Skip to content

Instantly share code, notes, and snippets.

View ankitbrahmbhatt1997's full-sized avatar

Ankit Brahmbhatt ankitbrahmbhatt1997

View GitHub Profile
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / Fundraising-1
Last active February 21, 2019 13:08
Storage Variables
// Defining a Struct for a Spending Request
struct Request {
string description;
uint value;
address recipient;
bool completed;
uint numberOfVoters;
mapping(address=>bool) voters;
}
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-2
Last active February 21, 2019 13:12
Constructor For the Fundraising contract
constructor(uint _deadline,uint _goal,uint _minimumContribution) public{
minimumContribution = _minimumContribution;
deadline=block.number + _deadline;
goal=_goal;
admin = msg.sender;
}
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-3
Last active February 21, 2019 14:04
A payable function for contribution
function contribute() public payable {
//CONDITIONS FOR EXECUTING THE REST OF THE FUNCTION
require(msg.value > minimumContribution);
require(block.number < deadline);
// CHECKING WHETHER THIS IS THE FIRST TIME THAT APERSON IS CONTRIBUTING TO THIS CAMPAIGN
if(contributions[msg.sender] == 0)
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-4
Created February 21, 2019 14:13
getting a refund
function getRefund() public {
// REQUIRED CONDITIONS FOR GETTING A REFUND
require(block.number > deadline);
require(raisedAmount < goal);
require(contributions[msg.sender] > 0);
msg.sender.transfer(contributions[msg.sender]);
contributions[msg.sender] = 0;
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-5
Last active February 21, 2019 18:57
spending request
function createSpendingRequest(string _description, address _recipient, uint _value) public onlyAdmin goalReached{
// INSTANTIATING A Request STRUCT IN THE MEMORY
Request memory newRequest = Request(
{
description:_description,
value:_value,
recipient:_recipient,
numberOfVoters:0,
modifier onlyAdmin {
require(msg.sender == admin);
_;
}
modifier goalReached {
require(raisedAmount >= goal);
_;
}
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-7
Created February 21, 2019 14:57
vote for a request
function voteForRequest(uint index) public goalReached {
// Directly referencing the specific spending request inside the requests dynamic array
Request storage thisRequest = requests[index];
// Checking for the conditions
require(contributions[msg.sender] > 0);
require(thisRequest.voters[msg.sender] == false);
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / FundRaising-8
Created February 21, 2019 18:19
making a payment to the third party
function makePayment(uint index) public onlyAdmin goalReached{
// Directly referencing the specific spending request inside the requests dynamic array
Request storage thisRequest = requests[index];
// Checking the necessary conditions
require(thisRequest.completed == false);
require(thisRequest.numberOfVoters > totalContributors / 2);//more than 50% voted
@ankitbrahmbhatt1997
ankitbrahmbhatt1997 / web3_setup
Created March 17, 2019 15:41
ethereum stack exchange question
if (typeof window !== "undefined" && typeof window.web3 !== "undefined") {
// In the browser and metamask is running
web3 = new Web3(window.web3.currentProvider);
} else {
// We are on the server *OR* the user is not running metamask
const provider = new Web3.providers.HttpProvider(
"https://rinkeby.infura.io/v3/bb20540179824ccb94cf748904d43090"
);
web3 = new Web3(provider);
}