Skip to content

Commit

Permalink
feat: first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
dangerousfood committed Oct 28, 2023
1 parent be6492c commit 618a60c
Show file tree
Hide file tree
Showing 6 changed files with 1,101 additions and 38 deletions.
1 change: 1 addition & 0 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
solady/=lib/solady/
72 changes: 72 additions & 0 deletions src/MockTERC20.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import {TERC20} from "src/TERC20.sol";

/// @dev WARNING! This mock is strictly intended for testing purposes only.
/// Do NOT copy anything here into production code unless you really know what you are doing.
contract MockTERC20 is TERC20 {
string internal _name;
string internal _symbol;
uint8 internal _decimals;
bytes32 internal immutable _nameHash;

constructor(string memory name_, string memory symbol_, uint8 decimals_) {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
_nameHash = keccak256(bytes(name_));
}

function _constantNameHash() internal view virtual override returns (bytes32) {
return _nameHash;
}

function name() public view virtual override returns (string memory) {
return _name;
}

function symbol() public view virtual override returns (string memory) {
return _symbol;
}

function decimals() public view virtual override returns (uint8) {
return _decimals;
}

function mint(address to, uint256 value) public virtual {
_mint(_brutalized(to), value);
}

function burn(address from, uint256 value) public virtual {
_burn(_brutalized(from), value);
}

function directTransfer(address from, address to, uint256 amount) public virtual {
_transfer(_brutalized(from), _brutalized(to), amount);
}

function directSpendAllowance(address owner, address spender, uint256 amount) public virtual {
_spendAllowance(_brutalized(owner), _brutalized(spender), amount);
}

function transfer(address to, uint256 amount) public virtual override returns (bool) {
return super.transfer(_brutalized(to), amount);
}

function transferFrom(address from, address to, uint256 amount)
public
virtual
override
returns (bool)
{
return super.transferFrom(_brutalized(from), _brutalized(to), amount);
}

function _brutalized(address a) internal view returns (address result) {
/// @solidity memory-safe-assembly
assembly {
result := or(a, shl(160, gas()))
}
}
}
15 changes: 0 additions & 15 deletions src/SimpleTStore.sol

This file was deleted.

Loading

0 comments on commit 618a60c

Please sign in to comment.