Skip to content

Instantly share code, notes, and snippets.

@Falilah
Created January 15, 2024 22:32
Show Gist options
  • Save Falilah/3e1778390d82939e2ab9089a13929dc8 to your computer and use it in GitHub Desktop.
Save Falilah/3e1778390d82939e2ab9089a13929dc8 to your computer and use it in GitHub Desktop.
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;
import {Test, console2} from "forge-std/Test.sol";
import {Curves} from "../contracts/Curves.sol";
import {FeeSplitter} from "../contracts/FeeSplitter.sol";
import {CurvesERC20Factory} from "../contracts/CurvesERC20Factory.sol";
contract testCurve is Test {
FeeSplitter feespliter;
CurvesERC20Factory factory;
Curves curves;
address owner = makeAddr("owner");
address user1 = makeAddr("user1");
function setUp() external {
feespliter = new FeeSplitter();
factory = new CurvesERC20Factory();
curves = new Curves(address(factory), address(feespliter));
vm.deal(owner, 20 ether);
vm.deal(user1, 20 ether);
}
function testTransferToAddressZero() external {
vm.prank(owner);
//tokensubject no fee for buying 1 token first
curves.buyCurvesToken(owner, 1);
uint pricewithFee = curves.getBuyPriceAfterFee(owner, 50);
// user buycurveToken before all necessary fee parameters are set
vm.prank(user1);
curves.buyCurvesToken{value: pricewithFee}(owner, 50);
vm.prank(user1);
//transfer to address(0)
curves.transferCurvesToken(owner, address(0), 10);
assertEq(curves.curvesTokenBalance(owner, address(0)), 10);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment