{"id":20975105,"url":"https://github.com/0xheartcode/foundryproxytutorial","last_synced_at":"2025-03-13T09:17:17.954Z","repository":{"id":245591390,"uuid":"818697247","full_name":"0xheartcode/FoundryProxyTutorial","owner":"0xheartcode","description":"Quick Repository that shows how to use the upgradeable EIP-1967 Transparent Proxy with foundry and open zeppelin.","archived":false,"fork":false,"pushed_at":"2024-06-22T15:51:36.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T05:42:35.444Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xheartcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-06-22T15:38:31.000Z","updated_at":"2024-06-22T15:51:39.000Z","dependencies_parsed_at":"2024-06-22T23:33:36.917Z","dependency_job_id":"78d1f62c-dec5-41b5-b858-fa318446ae59","html_url":"https://github.com/0xheartcode/FoundryProxyTutorial","commit_stats":null,"previous_names":["0xheartcode/foundryproxytutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xheartcode%2FFoundryProxyTutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xheartcode%2FFoundryProxyTutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xheartcode%2FFoundryProxyTutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xheartcode%2FFoundryProxyTutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xheartcode","download_url":"https://codeload.github.com/0xheartcode/FoundryProxyTutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243374325,"owners_count":20280661,"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":[],"created_at":"2024-11-19T04:39:27.117Z","updated_at":"2025-03-13T09:17:17.909Z","avatar_url":"https://github.com/0xheartcode.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UpgradeableToken Project\n\nThis project contains the `UpgradeableToken` smart contract, its deployment script, and test cases. Below are the instructions on how to verify, deploy, and test the contract.\n\n## Prerequisites\n\n- Node.js (v12.x or later)\n- Foundry\n- OpenZeppelin Contracts Upgradeable\n- OpenZeppelin Upgrades\n\n## Installation\n\n1. Install Foundry:\n    ```bash\n    curl -L https://foundry.paradigm.xyz | bash\n    foundryup\n    ```\n\n2. Clone the repository and install dependencies:\n    ```bash\n    git clone \u003crepository_url\u003e\n    cd \u003crepository_name\u003e\n    forge install\n    ```\n    Or install the following dependencies directly:\n    ```bash\n    forge install OpenZeppelin/openzeppelin-foundry-upgrades\n    forge install OpenZeppelin/openzeppelin-contracts-upgradeable\n    ```\n\n3. Ensure you have the following dependencies in your `foundry.toml`:\n    ```toml\n    [profile.default]\n    src = \"src\"\n    out = \"out\"\n    libs = [\"lib\"]\n    ffi = true\n    ast = true\n    build_info = true\n    extra_output = [\"storageLayout\"]\n    # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options\n    ```\n\n## Environment Variables\n\nSet the environment variables for your private key and RPC URL:\nCopy the `.env.local` file to `.env` and fill out the necessary details.\n\n## Compilation\n\nTo compile the project, run:\n```bash\nforge build\n```\n\n## Testing\n\nTo test the project, run:\n```bash\nforge test\n```\n\n## Deployment\n\nTo deploy the contract, follow these steps:\n\n1. Clean and rebuild the project (⚠️  use this in case of any issues. Clean \u0026\u0026 rebuild):\n    ```bash\n    forge clean\n    forge build\n    ```\n2. Deploying with Forge Script\n\nTo deploy the contract using the Forge script, run:\n```bash\nforge script script/DeployUpgradeableToken.s.sol --rpc-url $RPC_URL --broadcast -vvvv\n```\n\n## Verification\nTo verify the contract on Etherscan, use the following command:\n```bash\nforge verify-contract --rpc-url $RPC_URL --etherscan-api-key $ETHERSCAN_API_KEY $DEPLOYED_CONTRACT_ADDRESS src/UpgradeableToken.sol:UpgradeableToken\n```\n\n\n### Documentation and Credits\n\nThis project was inspired by and adapted from the following blog post:\n[Deploy Upgradeable Contract with Foundry and OpenZeppelin](https://www.proof2work.com/blog/deploy-upgradeable-contract-with-foundry-and-openzeppelin)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xheartcode%2Ffoundryproxytutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xheartcode%2Ffoundryproxytutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xheartcode%2Ffoundryproxytutorial/lists"}