{"id":15385994,"url":"https://github.com/alstonchan/web3basetrove","last_synced_at":"2025-09-11T02:32:24.145Z","repository":{"id":250674053,"uuid":"835116257","full_name":"AlstonChan/Web3BaseTrove","owner":"AlstonChan","description":"Web 3 project on Base chain","archived":false,"fork":false,"pushed_at":"2024-09-15T14:54:51.000Z","size":5927,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-31T15:53:59.067Z","etag":null,"topics":["base","erc20","erc721","evm-blockchain","smart-contracts"],"latest_commit_sha":null,"homepage":"https://trove-web3.netlify.app/","language":"TypeScript","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/AlstonChan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-07-29T07:36:17.000Z","updated_at":"2024-09-15T14:54:55.000Z","dependencies_parsed_at":"2024-08-02T08:44:22.975Z","dependency_job_id":"16719447-f70a-4b1f-9337-fac3cf4243c2","html_url":"https://github.com/AlstonChan/Web3BaseTrove","commit_stats":{"total_commits":53,"total_committers":1,"mean_commits":53.0,"dds":0.0,"last_synced_commit":"20d10e2dbfdbd41ab856d5a9b5ec19a6ccfc2827"},"previous_names":["alstonchan/tokentrove","alstonchan/web3basetrove"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlstonChan%2FWeb3BaseTrove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlstonChan%2FWeb3BaseTrove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlstonChan%2FWeb3BaseTrove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlstonChan%2FWeb3BaseTrove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlstonChan","download_url":"https://codeload.github.com/AlstonChan/Web3BaseTrove/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239914929,"owners_count":19717760,"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":["base","erc20","erc721","evm-blockchain","smart-contracts"],"created_at":"2024-10-01T14:46:57.165Z","updated_at":"2025-02-20T20:43:43.542Z","avatar_url":"https://github.com/AlstonChan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"\"\u003e\n      \u003cimg src=\"./public/images/site.png\" alt=\"Ad Explorer logo\" width=\"200px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nThis is a web3 project that is built on the \u003ca href=\"https://www.base.org/\"\u003eBase Blockchain\u003c/a\u003e, which is a \u003ca href=\"https://ethereum.org/en/layer-2/\"\u003elayer 2\u003c/a\u003e chain for Ethereum blockchain using \u003ca href=\"https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/\"\u003eoptimistic rollups\u003c/a\u003e. The project is deployed on \u003ca href=\"https://sepolia.basescan.org\"\u003eBase Sepolia testnet\u003c/a\u003e blockchain to allow easy access to the smart contract without cost, the \u003ca href=\"https://trove-web3.netlify.app/\"\u003ewebsite\u003c/a\u003e provides an interface to interact with the smart contract easily.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Remix-121212?style=for-the-badge\u0026logo=remix\u0026logoColor=fffff\" alt=\"Remix\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\" alt=\"React\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" alt=\"Typescript\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Ethereum-3C3C3D?logo=ethereum\u0026logoColor=fff\u0026style=for-the-badge\" alt=\"Ethereum\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Solidity-2b247c?style=for-the-badge\u0026logo=solidity\u0026logoColor=white\" alt=\"Solidity\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpenZeppelin-4E5EE4?logo=openzeppelin\u0026logoColor=fff\u0026style=for-the-badge\" alt=\"OpenZeppelin\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Wagmi-1b1b1f?logo=wagmi\u0026logoColor=fff\u0026style=for-the-badge\" alt=\"Wagmi\"\u003e\n  \u003cbr /\u003e\n      \u003cimg src=\"https://api.netlify.com/api/v1/badges/11946043-0368-478e-8466-06f1207a44e2/deploy-status\" alt=\"Netlify Status\"\u003e\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003cimg src=\"./public/images/preview.png\" alt=\"Preview\"\u003e\n  \u003cbr /\u003e\n\u003c/p\u003e\n\n## Tools/package/framework used\n\n- [Remix](https://remix.run) - A fully featured ReactJs framework\n- [Wagmi](https://wagmi.sh/) - A type safe React hook library for Ethereum, allow easy integration with Foundry\n- [Foundry](https://book.getfoundry.sh/) - A smart contract development toolchain ([Hardhat](https://hardhat.org/) alternative)\n- [RainbowKit](https://www.rainbowkit.com/) - A wallet interface for user to connect their wallet, seamless integration with Wagmi\n- [shadcn/ui](https://ui.shadcn.com/) - Pre-build React component on top of [Radix-ui](https://www.radix-ui.com/) and [tailwindcss](https://tailwindcss.com/)\n- [Eslint](https://eslint.org/) and [Prettier](https://prettier.io/) - Eslint for linting code and Prettier to format the styling of code.\n- [Typescript](https://www.typescriptlang.org/) and [Solidity](https://soliditylang.org/) - Full type safety on both frontend and blockchain development\n- [Windows WSL](https://learn.microsoft.com/en-us/windows/wsl/) - To run the project on a Windows machine, this is a requirement\n- Makefile - I use it to run rpc command easily without typing out the long rpc curl command\n\n## Development\n\n### Prerequisites\n\nThe following is a requirement if you wish to run the project locally on your machine\n\n1. If you are using Windows operating system, then [Windows WSL](https://learn.microsoft.com/en-us/windows/wsl/) is needed. This is because forge does not seems to be able to work well on Windows environment. The project should be cloned into the WSL drive instead of the windows drive and access it from wsl terminal. You should be fine if you are using either Mac os or Linux based operating system.\n2. Have foundry toolchain installed, refer to the [documentation](https://book.getfoundry.sh/) on the installation of the programs.\n\n   - You should have the following commands available after your foundry installation\n\n     ```bash\n     forge --version\n     anvil --version\n     chisel --version\n     cast --version\n     ```\n\n3. You need to have [pnpm](https://pnpm.io/installation) package manager installed as the project's dependency is managed using pnpm.\n4. Have Make installed, so you can run execute some commands faster and easier to test your application with the local anvil blockchain.\n\n### Local development\n\n1. Clone the repository to your local machine:\n\n   ```bash\n   git clone https://github.com/AlstonChan/Web3BaseTrove\n   ```\n\n2. Install the required dependencies for Remix app:\n\n   ```bash\n   pnpm install\n   ```\n\n3. Open up a new terminal, and change directory (`cd`) into the project's `contracts` directory to\n\n   1. Run the local blockchain node (anvil)\n   2. Deploy the contract to local blockchain\n\n   Execute the `start_anvil.sh` file and it will does the job.\n\n   ```bash\n   ./start_anvil.sh\n   ```\n\n\u003e \\[!WARNING]\\\n\u003e The private key in the start_anvil.sh file is using the private key provided by anvil package. You **SHOULD NOT** expose your private key in the terminal as such when using your own private key or you are in risk of getting your private key leak!\n\n4. Run the Remix development server at the root of the project:\n\n   ```bash\n   pnpm dev\n   ```\n\nYou should have at least two terminal opened that are running a process.\n\n- Remix dev server\n- Anvil blockchain testnet\n\n\u003e \\[!NOTE]\\\n\u003e Whenever you have made changes to `wagmi.config.ts` file or have updated the smart contract interface (like adding a new function/change the args/update the function return type), you **SHOULD** run `pnpm wagmi` to regenerate the `app/generated.ts` file.\n\n### Improvement to made\n\nThis project has been marked as completed, but further improvement can be made.\n\n- [ ] Add a new tab at profile page to allow user to view the auctions that they have bid on\n  - [ ] Allow user to see if they can claim bid or rewards without clicking in\n- [ ] Add social images/metadata\n- [ ] Add security headers\n- [ ] Auto refresh the relevant data of the operation once transaction has been included in the block\n- [ ] Configure Bridge\n  - [ ] Bridge from Base to Ethereum\n  - [ ] Bridge from Base to other superchain (Optimism, Redstone, etc..)\n\n## Deployment\n\nThe [frontend website](https://trove-web3.netlify.app/) is deployed to Netlify (with Netlify Functions) using the `@netlify/remix-adapter` package adapter for RemixJs.\n\nThe smart contract of the project has been deployed to the Base Sepolia testnet. All 5 contracts can be found on [BaseScan](https://sepolia.basescan.org) that is already verified on deployed.\n\n- Trove - [0xbeA56E6FE2a1dd5730f26911393423fF9769d9Aa](https://sepolia.basescan.org/address/0xbeA56E6FE2a1dd5730f26911393423fF9769d9Aa#code)\n- Trove1 - [0xA918a1656f58448D1E2419c523B11Df10b05099a](https://sepolia.basescan.org/address/0xA918a1656f58448D1E2419c523B11Df10b05099a#code)\n- Trove2 - [0x5D258E6cc4078fd2EAC464E07B26DFC40439A594](https://sepolia.basescan.org/address/0x5D258E6cc4078fd2EAC464E07B26DFC40439A594#code)\n- TroveStake - [0xd9b4CcF687a3b9f5079756349154D8583D379B98](https://sepolia.basescan.org/address/0xd9b4CcF687a3b9f5079756349154D8583D379B98#code)\n- TroveAuction - [0x1788EE841E724E500eD0fB3446E3076b7182DCCF](https://sepolia.basescan.org/address/0x1788ee841e724e500ed0fb3446e3076b7182dccf#code)\n\n## License\n\nThis project is licensed under [GNU General Public License v3](./LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falstonchan%2Fweb3basetrove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falstonchan%2Fweb3basetrove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falstonchan%2Fweb3basetrove/lists"}