{"id":15158186,"url":"https://github.com/cecile-hirschauer/foundry-pool","last_synced_at":"2025-06-28T16:41:49.193Z","repository":{"id":254173918,"uuid":"845701379","full_name":"Cecile-Hirschauer/foundry-pool","owner":"Cecile-Hirschauer","description":"Foundry Pool Contract","archived":false,"fork":false,"pushed_at":"2024-08-23T08:14:24.000Z","size":285,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T10:11:18.121Z","etag":null,"topics":["anvil","dapp","ethereum","evm","foundry","openzeppelin-contracts","ownable","smart-contracts","solidity"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cecile-Hirschauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2024-08-21T18:58:35.000Z","updated_at":"2024-08-23T08:14:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"d8a5f6f3-715f-40bc-aa5e-dfb7844b9057","html_url":"https://github.com/Cecile-Hirschauer/foundry-pool","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.1875,"last_synced_commit":"e28a41396fe4648498c1243c978611aba055fa36"},"previous_names":["cecile-hirschauer/foundry-pool"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cecile-Hirschauer/foundry-pool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cecile-Hirschauer%2Ffoundry-pool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cecile-Hirschauer%2Ffoundry-pool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cecile-Hirschauer%2Ffoundry-pool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cecile-Hirschauer%2Ffoundry-pool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cecile-Hirschauer","download_url":"https://codeload.github.com/Cecile-Hirschauer/foundry-pool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cecile-Hirschauer%2Ffoundry-pool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262461525,"owners_count":23314969,"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":["anvil","dapp","ethereum","evm","foundry","openzeppelin-contracts","ownable","smart-contracts","solidity"],"created_at":"2024-09-26T20:41:09.354Z","updated_at":"2025-06-28T16:41:49.156Z","avatar_url":"https://github.com/Cecile-Hirschauer.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foundry Pool Contract\n\nThis project implements a simple crowdfunding pool using the Solidity programming language. The contract allows users to contribute Ether to a pool, with the goal of reaching a specified amount within a certain timeframe. If the goal is reached, the owner can withdraw the collected funds. If the goal is not reached by the end of the timeframe, contributors can request a refund.\n\n## Table of Contents\n\n- [Foundry Pool Contract](#foundry-pool-contract)\n  - [Table of Contents](#table-of-contents)\n  - [Project Overview](#project-overview)\n  - [Getting Started](#getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Installation](#installation)\n  - [Usage](#usage)\n    - [Running Tests](#running-tests)\n    - [Coverage](#coverage)\n    - [Deployment](#deployment)\n      - [Deployment Details](#deployment-details)\n  - [License](#license)\n\n## Project Overview\n\nThe `Pool` contract is a simple crowdfunding contract where:\n\n- Users can contribute Ether to a common pool.\n- The owner can withdraw funds if a specified goal is reached.\n- If the goal is not reached by the end of the contribution period, contributors can request a refund.\n\n## Getting Started\n\n### Prerequisites\n\nTo work with this project, you will need:\n\n- [Foundry](https://getfoundry.sh/) - A blazing fast, portable and modular toolkit for Ethereum application development.\n- [Solidity](https://docs.soliditylang.org/) - The smart contract programming language.\n- [OpenZeppelin Contracts](https://openzeppelin.com/contracts/) - A library for secure smart contract development.\n\n### Installation\n\n1. Clone the repository:\n\n    ```bash\n    git clone https://github.com/Cecile-Hirschauer/foundry-pool.git\n    cd foundry-pool\n    ```\n\n2. Install the necessary dependencies:\n\n    ```bash\n    forge install\n    ```\n\n## Usage\n\n### Running Tests\n\nTo run the tests for the `Pool` contract, use the following command:\n\n```bash\nforge test\n```\n\nThis will execute all test cases written for the contract. The test suite ensures that all functionalities of the contract are working as expected. The tests cover a variety of scenarios, including successful contributions, withdrawals, and refunds, as well as edge cases where the contract should revert.\n\n### Coverage\n\nAfter running the tests, you can check the code coverage by running:\n\n```bash\nforge coverage\n\n```\n\n![image](https://github.com/user-attachments/assets/7aac381e-644b-4b96-b760-e3ee646d0364)\n\n\n### Deployment\n\nTo deploy the Pool contract, use the deployment script provided in the script directory. You can deploy the contract using the following command:\n\n```bash\nforge script script/Deploy.s.sol:MyScript --fork-url http://127.0.0.1:8545 --broadcast\n\n```\n\n#### Deployment Details\n\n- **Estimated Gas Used:** 562,534\n- **Estimated ETH Required:** 0.001125068 ETH\n- **Contract Address:** 0x5FbDB2315678afecb367f032d93F642f64180aa3\n- **Block:** 1\n- **Gas Paid:** 432,831 gas * 1.000000001 gwei = 0.000432831 ETH\n\nThe deployment transaction is saved in:\n\n- **Transactions:** broadcast/Deploy.s.sol/31337/run-latest.json\n- **Sensitive Values:** cache/Deploy.s.sol/31337/run-latest.json\n\n**Note:** The deployment was successful, but it's important to verify that the deployed contract is functioning as expected in your specific environment.\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcecile-hirschauer%2Ffoundry-pool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcecile-hirschauer%2Ffoundry-pool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcecile-hirschauer%2Ffoundry-pool/lists"}