Kickstart is a POW crowfunding plateform using Ethereum Smart Contract...
- Ethereum - Ethereum Network
- Solidity - Contract-Oriented Programming Language
- Nodejs - Node.js JavaScript runtime
- Next - Lightweight framework for server‑rendered applications.
- Metamask - Browser extension for browsing Ethereum blockchain enabled websites
- Create new campaigns; Users can create new campaigns using Metamask
- Add Campaigns requests, When desired Campaigns owners can ask for a transfert requests...
- Validate new requests; Contributors of the campaigns can validate requests
- Withdraw funds; Uppon contributor validation campaigns owners can withdraw funds.
- Clone Repo
$ git clone https://github.com/ThalKod/kickstart.git
- Install Node modules
$ npm install
- Built nextjs
$ npm run build
- Start the applicaton
$ npm start
If you want to deploy a new root contract, you can do so by setting up a deploy scripts in the ethereum/ Folder
- Template for a deploy script :
const HDWalletProvider = require("truffle-hdwallet-provider");
const Web3 = require("web3");
const compiledFactory = require("./build/CampaignFactory.json");
const provider = new HDWalletProvider(
YOUR_SEED,
YOUR_NODE_PROVIDER_ADDRESS
);
const web3 = new Web3(provider);
// web3.eth.getAccounts().then((accounts)=>{
// console.log("Attempting to deploy from Account " + accounts[0]);
// new web3.eth.Contract(JSON.parse(interface))
// .deploy({data: bytecode, arguments: ["Hi, There"]})
// .send({gas: "7000000", from: accounts[0]}).then((res)=>{
// console.log("Contract deployed to ", res.options.address);
// }).catch((e)=>{
// console.log(e);
// });
// }).catch((e)=>{
// console.log(e);
// });
const deploy = async ()=>{
const accounts = await web3.eth.getAccounts();
// console.log(accounts);
console.log("Attempting to deploy from Account " + accounts[0]);
const result = await new web3.eth.Contract(JSON.parse(compiledFactory.interface))
.deploy({data: "0x" + compiledFactory.bytecode})
.send({gas: "1000000", from: accounts[0]});
console.log("Contract deployed to ", result.options.address);
};
deploy();