From fd3b2aba58f1d0ee4cbb6bbd92f7a175b43cc037 Mon Sep 17 00:00:00 2001 From: arbazkiraak <13177578+arbazkiraak@users.noreply.github.com> Date: Mon, 20 Nov 2023 18:04:55 +0530 Subject: [PATCH] expose parameters to ERC20 constructor and change the directory name to mock --- src/{weird-erc20 => mocks}/ERC20-bool.sol | 15 +++++++------ .../base/ERC20Base.sol} | 21 +++++-------------- test/examples/ERC20Example.t.sol | 5 +++-- 3 files changed, 17 insertions(+), 24 deletions(-) rename src/{weird-erc20 => mocks}/ERC20-bool.sol (76%) rename src/{weird-erc20/ERC20-base.sol => mocks/base/ERC20Base.sol} (79%) diff --git a/src/weird-erc20/ERC20-bool.sol b/src/mocks/ERC20-bool.sol similarity index 76% rename from src/weird-erc20/ERC20-bool.sol rename to src/mocks/ERC20-bool.sol index 47176f6..c55f134 100644 --- a/src/weird-erc20/ERC20-bool.sol +++ b/src/mocks/ERC20-bool.sol @@ -1,14 +1,17 @@ pragma solidity ^0.8.0; import "forge-std/interfaces/IERC20.sol"; -import {ERC20Token} from "./ERC20-base.sol"; +import {ERC20Base} from "./base/ERC20Base.sol"; -contract ERC20Bool is ERC20Token { - constructor(uint256 initialSupply) { - totalSupply = initialSupply; - balanceOf[msg.sender] = initialSupply; +contract ERC20Bool is ERC20Base { + constructor(string memory _name, string memory _symbol, uint8 _decimals, uint256 _initialSupply) { + name = _name; + symbol = _symbol; + decimals = _decimals; + totalSupply = _initialSupply; + balanceOf[msg.sender] = _initialSupply; - emit Transfer(address(0),msg.sender,initialSupply); + emit Transfer(address(0),msg.sender,_initialSupply); } function transfer(address to,uint256 amount) public override returns (bool) { diff --git a/src/weird-erc20/ERC20-base.sol b/src/mocks/base/ERC20Base.sol similarity index 79% rename from src/weird-erc20/ERC20-base.sol rename to src/mocks/base/ERC20Base.sol index 30460f1..211b276 100644 --- a/src/weird-erc20/ERC20-base.sol +++ b/src/mocks/base/ERC20Base.sol @@ -2,27 +2,16 @@ pragma solidity ^0.8.0; import "forge-std/interfaces/IERC20.sol"; -contract ERC20Token is IERC20 { - string private _name = "ERC20Token"; - string private _symbol = "ERC"; - uint8 private _decimals = 18; +contract ERC20Base is IERC20 { + string public name = "ERC20Token"; + string public symbol = "ERC"; + uint8 public decimals = 18; + uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; - function name() public view returns (string memory) { - return _name; - } - - function symbol() public view returns (string memory) { - return _symbol; - } - - function decimals() public view returns (uint8) { - return _decimals; - } - function approve(address spender, uint256 amount) public returns (bool) { _approve(msg.sender,spender,amount); return true; diff --git a/test/examples/ERC20Example.t.sol b/test/examples/ERC20Example.t.sol index 4ec19eb..88ac247 100644 --- a/test/examples/ERC20Example.t.sol +++ b/test/examples/ERC20Example.t.sol @@ -2,16 +2,17 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; import "forge-std/interfaces/IERC20.sol"; -import "../../src/weird-erc20/ERC20-bool.sol"; +import "../../src/mocks/ERC20-bool.sol"; contract ERC20Test is Test { IERC20 public boolToken; uint256 immutable initialSupply = 1000000000; + address alice = vm.addr(1); address bob = vm.addr(2); function setUp() public { - boolToken = new ERC20Bool(initialSupply); + boolToken = new ERC20Bool("BoolToken","Btoken",18,initialSupply); assertEq(boolToken.balanceOf(address(this)),initialSupply); }