remove Counter contract and add basic Raffle contract

This commit is contained in:
han 2025-01-03 10:34:36 +07:00
parent 6ec32143b7
commit 938ea14d44
4 changed files with 48 additions and 57 deletions

View File

@ -1,19 +0,0 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import {Script, console} from "forge-std/Script.sol";
import {Counter} from "../src/Counter.sol";
contract CounterScript is Script {
Counter public counter;
function setUp() public {}
function run() public {
vm.startBroadcast();
counter = new Counter();
vm.stopBroadcast();
}
}

View File

@ -1,14 +0,0 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
contract Counter {
uint256 public number;
function setNumber(uint256 newNumber) public {
number = newNumber;
}
function increment() public {
number++;
}
}

48
lottery/src/Raffle.sol Normal file
View File

@ -0,0 +1,48 @@
// Layout of Contract:
// version
// imports
// errors
// interfaces, libraries, contracts
// Type declarations
// State variables
// Events
// Modifiers
// Functions
// Layout of Functions:
// constructor
// receive function (if exists)
// fallback function (if exists)
// external
// public
// internal
// private
// view & pure functions
// SPDX-License-Identifier: SEE LICENSE IN LICENSE
pragma solidity 0.8.19;
/**
* @title A sample Raffle contract
* @author hirugohan
* @notice This contract is for creating a sample raffle
* @dev Implements Chainlink VRFv2.5
*/
contract Raffle {
uint256 private immutable i_entranceFee;
constructor (uint256 entranceFee) {
i_entranceFee = entranceFee;
}
function enterRaffle() public payable {
require(msg.value >= i_entranceFee, "Not enough ETH sent!");
}
function pickWinner() public {}
/** Getter Functions */
function getEntranceFee() external view returns (uint256) {
return i_entranceFee;
}
}

View File

@ -1,24 +0,0 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import {Test, console} from "forge-std/Test.sol";
import {Counter} from "../src/Counter.sol";
contract CounterTest is Test {
Counter public counter;
function setUp() public {
counter = new Counter();
counter.setNumber(0);
}
function test_Increment() public {
counter.increment();
assertEq(counter.number(), 1);
}
function testFuzz_SetNumber(uint256 x) public {
counter.setNumber(x);
assertEq(counter.number(), x);
}
}