{"id":20162703,"url":"https://github.com/codeamt/ethico","last_synced_at":"2025-04-10T00:36:19.071Z","repository":{"id":201923594,"uuid":"138097611","full_name":"codeamt/ethICO","owner":"codeamt","description":"A web3 client built with webpack.js to demo purchasing an asset from an ICO smart contract. Powered by Metamask, Truffle, and Ganache","archived":false,"fork":false,"pushed_at":"2018-06-21T08:16:26.000Z","size":25157,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T02:21:57.889Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/codeamt.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}},"created_at":"2018-06-20T23:49:49.000Z","updated_at":"2021-09-25T10:56:51.000Z","dependencies_parsed_at":"2024-03-28T17:15:29.099Z","dependency_job_id":null,"html_url":"https://github.com/codeamt/ethICO","commit_stats":null,"previous_names":["codeamt/ethico"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FethICO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FethICO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FethICO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeamt%2FethICO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeamt","download_url":"https://codeload.github.com/codeamt/ethICO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137980,"owners_count":21053772,"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-14T00:26:30.297Z","updated_at":"2025-04-10T00:36:14.062Z","avatar_url":"https://github.com/codeamt.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e ethICO \u003c/h1\u003e\n\u003cp\u003eThis is a simple decentralized app (dApp) to help launch/manage an Initial Coin Offering (ICO) backed by Ether and the Ethereum blockchain. The dApp utilizes Truffle, Metamask and Ganache to deploy and test contracts:\u003c/p\u003e \n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/b787bba8-3f2d-47b3-8073-76c830fc023e/\" width=\"40%\" height=\"30%\" /\u003e\n\u003c/p\u003e\n\n## Demo on Ropsten Network \nThis demo is hosted on Heroku and works if you have the Metamask extension for your browser installed. More details on installation below.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/357cb6ae-a347-4f3a-bf7e-e584509b25bf/\" width=\"70%\" height=\"60%\" /\u003e\n\u003c/p\u003e\n\n- Live Demo: [https://ico-launcher.herokuapp.com/](https://ico-launcher.herokuapp.com/)\n\nThis dAPP implements three solidity contracts deployed to the Ropsten Testnet -- Fundraiser.sol, Fund.sol, and FundCoin.sol (the pretend asset of the fundraiser).\n\n## Iterating on Repo Locally \n\nTo run the app in your own development environment, you need Node.js / NPM, Webpack, Truffle, and Optionally Ganache. To get these build essentials, do the following...\n\n\u003cb\u003e1. Install Homebrew: \u003c/b\u003e\n\nIn the terminal:\u003cbr\u003e\n```\n/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\nbrew update\nbrew doctor\nbrew prune\nbrew -v\n```\n\u003cbr\u003e\n\n\u003cb\u003e2. Install Node, NPM, Weback and Truffle \u003c/b\u003e\n\nNow, install build essentials (if you don't have these already:\u003cbr\u003e\n```\nbrew install node               #installs both node and npm\nnpm install -g truffle\nnpm install -g webpack          #for the cli\nnode -v\nnpm -v\ntruffle -v \nwebpack -v\n```\n\n\u003cb\u003e3. Clone this repo \u003c/b\u003e\n\nThen, clone a copy of this repo:\u003cbr\u003e\n```\ngit clone https://github.com/codeamt/ethICO.git\n```\n\u003cbr\u003e\n\n\n\u003cb\u003e4. Install/Setup Metamask \u003c/b\u003e\n\nMetamask has a few extensions available, depending upon your preferred browser (Chrome, Firefox, or Opera), but also\noffers their own web3 browser [Brave](https://brave.com/).\n\nTo get the right extension, download [here](https://metamask.io/). \n\nOnce you've completed the Metamask onboarding process, switch the network from the MainNet to Ropsten Testnet. \n\n\u003cb\u003eSteps:\u003c/b\u003e\n\n- Go back to the Metamask extension, click on the drop down menu where it says MainNet and select the \"Ropsten Test Network\" option: \u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/bee2e7f3-e7b7-4914-8138-dbe9b7e3b61b/\" width=\"40%\" height=\"50%\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n\nMetamask will automagically generate your first eth account on the Testnet for you.\n\u003cbr\u003e\n\n\u003cb\u003e5. Run the Project and Launch an ICO Campaign! \u003c/b\u003e\n\nIn the terminal:\u003cbr\u003e\n```\ncd ethICO \u0026\u0026 npm run dev\n```\n\u003cbr\u003e\nNow go to http://localhost:7545 in the browser, and the dApp should be running out of the box! You can launch the ICO and purchase FundCoin (FDC) to contribute! Since this app is only for demonstrative purposes, the Withdrawal functionality is intentially left out.\n\u003cbr\u003e\n\nTo iterate on this project, delete index.html and app.js in the build directory, make changes, save and run:\u003cbr\u003e\n\n```\nnpm run build\n```\n\u003cbr\u003e \nThe build folder should be populated with browser-friendly versions of your updated index.html and app.js. \n\u003cbr\u003e\u003cbr\u003e\n\n\u003cb\u003e6. Download/Install Truffle's Ganache (Optional)\u003c/b\u003e\n\nGanache sets up a local rpc server and blockchain for testing purposes. It also comes with 5 Ethereum test accounts, preloaded with ether. \n\nDownload here: [Ganache Download for Mac OS](https://github.com/trufflesuite/ganache/releases/download/v1.1.0/Ganache-1.1.0.dmg) \n\n\nOnce downloaded and launched, your dashboard should look like this: \u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/5344d135-e773-4733-a5bd-073d52fd2e93/\" width=\"70%\" height=\"60%\" /\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\nLocalhost will use Ganache now. To import Ganache addresses into Metamask: \n\n\u003cb\u003eSteps:\u003c/b\u003e\n- In Ganache, copy the RPC server url up at the top (which should be http://127.0.0.1:7545)\n- Go back to the Metamask extension, click on the drop down menu where it says MainNet and select the \"Custom RPC\" option: \u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/0cc9e6fe-e32d-45fd-bca4-6663dcb14561/\" width=\"40%\" height=\"50%\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n- Then paste the Ganache RPC url where it says \"New RPC url\" and save: \u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://ucarecdn.com/e3ec46b7-62ab-4da9-9e8a-8b1b60e57be2/\" width=\"40%\" height=\"50%\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n\nAgain, Metamask will automagically import your first eth address listed in Ganache. To import more than one Ganache account: \n\n- In Ganache, under accounts, click on the key icon by one of the other accounts you'd like to sync with Metamask and copy its private key. \n- Back in Metamask, click on the user profile icon and select \"import address\" \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://ucarecdn.com/2d863f84-1def-43d3-a302-b3786f34525b/\" width=\"40%\" height=\"50%\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n- Paste the private key you copied into the input:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://ucarecdn.com/00e387cd-20b0-4a9f-9aec-bd7c780e81d5/\" width=\"40%\" height=\"50%\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeamt%2Fethico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeamt%2Fethico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeamt%2Fethico/lists"}