Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.73 KB

README.md

File metadata and controls

43 lines (33 loc) · 1.73 KB

Forge - Staking Emission Contract with Token

Overview

This contract allows users to stake and unstake Ethereum(ETH) and earn rewards in the form of an ERC20 token, AstroCoin (🧑🏼‍🚀). This contracts facilitates staking, unstaking and reward claiming while holding their ETH by staking. It contains comprehensive tests which pass the contract ability to provide those above said features.

Features

  • Staking ETH
  • Reward Emission (ERC20 token)
  • Unstaking ETH
  • Claiming Rewards
  • Security- Built-in Checks

Getting Started

Click "Use this template" on GitHub to create a new repository with this repo as the initial state.

Or, if your repo already exists, run:

forge init
forge build
forge test

Writing your first test

All you need is to import forge-std/Test.sol and then inherit it from your test contract. Forge-std's Test contract comes with a pre-instatiated cheatcodes environment, the vm. It also has support for ds-test-style logs and assertions. Finally, it supports Hardhat's console.log. The logging functionalities require -vvvv.

pragma solidity 0.8.10;

import "forge-std/Test.sol";

contract ContractTest is Test {
    function testExample() public {
        vm.roll(100);
        console.log(1);
        emit log("hi");
        assertTrue(true);
    }
}

Development

This project uses Foundry. See the book for instructions on how to install and use Foundry.