Skip to content

Instantly share code, notes, and snippets.

View ac12644's full-sized avatar
⛓️
one block at a time

Abhishek Chauhan ac12644

⛓️
one block at a time
View GitHub Profile
import React, { useEffect } from 'react';
import Web3 from 'web3';
import Web3Modal from 'web3modal';
import FundraiserFactoryContract from 'contracts/FundraiserFactory.json';
useEffect(() => {
init();
}, []);
const init = async () => {
import { create } from 'ipfs-http-client';
const auth =
'Basic ' + Buffer.from(INFURA_IPFS_PROJECT_ID + ':' + INFURA_IPFS_PROJECT_SECRET_KEY).toString('base64');
const client = create({
host: 'ipfs.infura.io',
port: 5001,
protocol: 'https',
headers: {
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import './Fundraiser.sol';
contract FundraiserFactory {
uint256 constant maxLimit = 20;
Fundraiser[] public _fundraisers;
event FundraiserCreated(Fundraiser indexed fundraiser, address indexed owner);
...
uint256 constant maxLimit = 20;
function fundraisersCount() public view returns (uint256) {
return _fundraisers.length;
}
function fundraisers(uint256 limit, uint256 offset)
public
view
...
event FundraiserCreated(Fundraiser indexed fundraiser, address indexed owner);
function createFundraiser(
string memory name,
string memory image,
string memory description,
uint256 goalAmount,
address payable beneficiary
) public {
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import './Fundraiser.sol';
contract FundraiserFactory {
Fundraiser[] public _fundraisers;
function fundraisersCount() public view returns(uint256) { return _fundraisers.length; }
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import '@openzeppelin/contracts/access/Ownable.sol';
import '@openzeppelin/contracts/utils/math/SafeMath.sol';
contract Fundraiser is Ownable {
using SafeMath for uint256;
struct Donation {
...
function myDonations() public view returns (
uint256[] memory values,
uint256[] memory dates
)
{
uint256 count = myDonationsCount();
...
event DonationReceived(address indexed donor, uint256 value);
...
function donate() public payable {
Donation memory donation = Donation({
value: msg.value,
date: block.timestamp
});
_donations[msg.sender].push(donation);
contract Fundraiser is Ownable {
...
string public name;
string public image;
string public description;
address payable public beneficiary;
uint256 public goalAmount;
uint256 public totalDonations;
uint256 public donationsCount;