Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
SHARE
Created
last year
Diff never expires
Clear
Export
Share
Explain
51 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
105 lines
Copy
21 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
79 lines
Copy
Copy
Copied
Copy
Copied
contract
TShare
is ERC20Burnable, Operator {
contract
GHOG
is ERC20Burnable, Operator {
using SafeMath for uint256;
using SafeMath for uint256;
Copy
Copied
Copy
Copied
// TOTAL MAX SUPPLY = 70,000 tSHAREs
uint256 public constant
REWARD_
POOL_ALLOCATION =
60000
ether;
uint256 public constant
FARMING_POOL_
REWARD_
ALLOCATION = 59500 ether;
uint256 public constant DEV_FUND_POOL_ALLOCATION =
10
000 ether;
uint256 public constant COMMUNITY_FUND_
POOL_ALLOCATION =
5500
ether;
uint256 public constant DEV_FUND_POOL_ALLOCATION =
5
000 ether;
Copy
Copied
Copy
Copied
uint256 public constant VESTING_DURATION =
365
days;
bool public rewardsDistributed = false;
uint256 public constant VESTING_DURATION =
370
days;
uint256 public startTime;
uint256 public startTime;
uint256 public endTime;
uint256 public endTime;
Copy
Copied
Copy
Copied
uint256 public communityFundRewardRate;
uint256 public devFundRewardRate;
uint256 public devFundRewardRate;
Copy
Copied
Copy
Copied
address public communityFund;
address public devFund;
address public devFund;
Copy
Copied
Copy
Copied
uint256 public communityFundLastClaimed;
uint256 public devFundLastClaimed;
uint256 public devFundLastClaimed;
Copy
Copied
Copy
Copied
bool public rewardPoolDistributed = false;
constructor(uint256 _startTime,
address _devFund)
ERC20("
GHOG
", "
GHOG
") {
_mint(msg.sender, 1
0
ether); // mint 1
0 GHOG
for initial pools deployment
constructor(uint256 _startTime,
address _communityFund,
address _devFund)
public
ERC20("
TSHARE
", "
TSHARE
") {
_mint(msg.sender, 1
ether); // mint 1
TOMB Share
for initial pools deployment
startTime = _startTime;
startTime = _startTime;
endTime = startTime + VESTING_DURATION;
endTime = startTime + VESTING_DURATION;
Copy
Copied
Copy
Copied
communityFundLastClaimed = startTime;
devFundLastClaimed = startTime;
devFundLastClaimed = startTime;
Copy
Copied
Copy
Copied
communityFundRewardRate = COMMUNITY_FUND_POOL_ALLOCATION.div(VESTING_DURATION);
devFundRewardRate = DEV_FUND_POOL_ALLOCATION.div(VESTING_DURATION);
devFundRewardRate = DEV_FUND_POOL_ALLOCATION.div(VESTING_DURATION);
require(_devFund != address(0), "Address cannot be 0");
require(_devFund != address(0), "Address cannot be 0");
devFund = _devFund;
devFund = _devFund;
Copy
Copied
Copy
Copied
require(_communityFund != address(0), "Address cannot be 0");
communityFund = _communityFund;
}
function setTreasuryFund(address _communityFund) external {
require(msg.sender == devFund, "!dev");
communityFund = _communityFund;
}
}
function setDevFund(address _devFund) external {
function setDevFund(address _devFund) external {
require(msg.sender == devFund, "!dev");
require(msg.sender == devFund, "!dev");
require(_devFund != address(0), "zero");
require(_devFund != address(0), "zero");
devFund = _devFund;
devFund = _devFund;
}
}
Copy
Copied
Copy
Copied
function unclaimedTreasuryFund() public view returns (uint256 _pending) {
uint256 _now = block.timestamp;
if (_now > endTime) _now = endTime;
if (communityFundLastClaimed >= _now) return 0;
_pending = _now.sub(communityFundLastClaimed).mul(communityFundRewardRate);
}
function unclaimedDevFund() public view returns (uint256 _pending) {
function unclaimedDevFund() public view returns (uint256 _pending) {
uint256 _now = block.timestamp;
uint256 _now = block.timestamp;
if (_now > endTime) _now = endTime;
if (_now > endTime) _now = endTime;
if (devFundLastClaimed >= _now) return 0;
if (devFundLastClaimed >= _now) return 0;
_pending = _now.sub(devFundLastClaimed).mul(devFundRewardRate);
_pending = _now.sub(devFundLastClaimed).mul(devFundRewardRate);
}
}
/**
/**
* @dev Claim pending rewards to community and dev fund
* @dev Claim pending rewards to community and dev fund
*/
*/
function claimRewards() external {
function claimRewards() external {
Copy
Copied
Copy
Copied
uint256 _pending =
unclaimedTreasuryFund();
uint256 _pending =
unclaimedDevFund();
if (_pending > 0 && communityFund != address(0)) {
_mint(communityFund, _pending);
communityFundLastClaimed = block.timestamp;
}
_pending =
unclaimedDevFund();
if (_pending > 0 && devFund != address(0)) {
if (_pending > 0 && devFund != address(0)) {
_mint(devFund, _pending);
_mint(devFund, _pending);
devFundLastClaimed = block.timestamp;
devFundLastClaimed = block.timestamp;
}
}
}
}
/**
/**
* @notice distribute to reward pool (only once)
* @notice distribute to reward pool (only once)
*/
*/
Copy
Copied
Copy
Copied
function distributeReward(
address _
farmingIncentiveFund
) external onlyOperator {
function distributeReward(
require(
!rewardPoolDistributed
, "only can distribute once");
address _
rewardPool
require(_farmingIncentiveFund != address(0), "!_farmingIncentiveFund");
) external onlyOperator {
reward
Pool
Distributed = true;
require(
_rewardPool != address(0), "!_rewardPool");
_mint(_
farmingIncentiveFund, FARMING_POOL_
REWARD_
ALLOCATION);
require(!rewardsDistributed
, "only can distribute once");
reward
s
Distributed = true;
_mint(_
rewardPool,
REWARD_
POOL_
ALLOCATION);
}
}
function burn(uint256 amount) public override {
function burn(uint256 amount) public override {
super.burn(amount);
super.burn(amount);
}
}
function governanceRecoverUnsupported(
function governanceRecoverUnsupported(
IERC20 _token,
IERC20 _token,
uint256 _amount,
uint256 _amount,
address _to
address _to
) external onlyOperator {
) external onlyOperator {
_token.transfer(_to, _amount);
_token.transfer(_to, _amount);
}
}
}
}
Copy
Copied
Copy
Copied
Saved diffs
Original text
Open file
contract TShare is ERC20Burnable, Operator { using SafeMath for uint256; // TOTAL MAX SUPPLY = 70,000 tSHAREs uint256 public constant FARMING_POOL_REWARD_ALLOCATION = 59500 ether; uint256 public constant COMMUNITY_FUND_POOL_ALLOCATION = 5500 ether; uint256 public constant DEV_FUND_POOL_ALLOCATION = 5000 ether; uint256 public constant VESTING_DURATION = 365 days; uint256 public startTime; uint256 public endTime; uint256 public communityFundRewardRate; uint256 public devFundRewardRate; address public communityFund; address public devFund; uint256 public communityFundLastClaimed; uint256 public devFundLastClaimed; bool public rewardPoolDistributed = false; constructor(uint256 _startTime, address _communityFund, address _devFund) public ERC20("TSHARE", "TSHARE") { _mint(msg.sender, 1 ether); // mint 1 TOMB Share for initial pools deployment startTime = _startTime; endTime = startTime + VESTING_DURATION; communityFundLastClaimed = startTime; devFundLastClaimed = startTime; communityFundRewardRate = COMMUNITY_FUND_POOL_ALLOCATION.div(VESTING_DURATION); devFundRewardRate = DEV_FUND_POOL_ALLOCATION.div(VESTING_DURATION); require(_devFund != address(0), "Address cannot be 0"); devFund = _devFund; require(_communityFund != address(0), "Address cannot be 0"); communityFund = _communityFund; } function setTreasuryFund(address _communityFund) external { require(msg.sender == devFund, "!dev"); communityFund = _communityFund; } function setDevFund(address _devFund) external { require(msg.sender == devFund, "!dev"); require(_devFund != address(0), "zero"); devFund = _devFund; } function unclaimedTreasuryFund() public view returns (uint256 _pending) { uint256 _now = block.timestamp; if (_now > endTime) _now = endTime; if (communityFundLastClaimed >= _now) return 0; _pending = _now.sub(communityFundLastClaimed).mul(communityFundRewardRate); } function unclaimedDevFund() public view returns (uint256 _pending) { uint256 _now = block.timestamp; if (_now > endTime) _now = endTime; if (devFundLastClaimed >= _now) return 0; _pending = _now.sub(devFundLastClaimed).mul(devFundRewardRate); } /** * @dev Claim pending rewards to community and dev fund */ function claimRewards() external { uint256 _pending = unclaimedTreasuryFund(); if (_pending > 0 && communityFund != address(0)) { _mint(communityFund, _pending); communityFundLastClaimed = block.timestamp; } _pending = unclaimedDevFund(); if (_pending > 0 && devFund != address(0)) { _mint(devFund, _pending); devFundLastClaimed = block.timestamp; } } /** * @notice distribute to reward pool (only once) */ function distributeReward(address _farmingIncentiveFund) external onlyOperator { require(!rewardPoolDistributed, "only can distribute once"); require(_farmingIncentiveFund != address(0), "!_farmingIncentiveFund"); rewardPoolDistributed = true; _mint(_farmingIncentiveFund, FARMING_POOL_REWARD_ALLOCATION); } function burn(uint256 amount) public override { super.burn(amount); } function governanceRecoverUnsupported( IERC20 _token, uint256 _amount, address _to ) external onlyOperator { _token.transfer(_to, _amount); } }
Changed text
Open file
contract GHOG is ERC20Burnable, Operator { using SafeMath for uint256; uint256 public constant REWARD_POOL_ALLOCATION = 60000 ether; uint256 public constant DEV_FUND_POOL_ALLOCATION = 10000 ether; bool public rewardsDistributed = false; uint256 public constant VESTING_DURATION = 370 days; uint256 public startTime; uint256 public endTime; uint256 public devFundRewardRate; address public devFund; uint256 public devFundLastClaimed; constructor(uint256 _startTime, address _devFund) ERC20("GHOG", "GHOG") { _mint(msg.sender, 10 ether); // mint 10 GHOG for initial pools deployment startTime = _startTime; endTime = startTime + VESTING_DURATION; devFundLastClaimed = startTime; devFundRewardRate = DEV_FUND_POOL_ALLOCATION.div(VESTING_DURATION); require(_devFund != address(0), "Address cannot be 0"); devFund = _devFund; } function setDevFund(address _devFund) external { require(msg.sender == devFund, "!dev"); require(_devFund != address(0), "zero"); devFund = _devFund; } function unclaimedDevFund() public view returns (uint256 _pending) { uint256 _now = block.timestamp; if (_now > endTime) _now = endTime; if (devFundLastClaimed >= _now) return 0; _pending = _now.sub(devFundLastClaimed).mul(devFundRewardRate); } /** * @dev Claim pending rewards to community and dev fund */ function claimRewards() external { uint256 _pending = unclaimedDevFund(); if (_pending > 0 && devFund != address(0)) { _mint(devFund, _pending); devFundLastClaimed = block.timestamp; } } /** * @notice distribute to reward pool (only once) */ function distributeReward( address _rewardPool ) external onlyOperator { require(_rewardPool != address(0), "!_rewardPool"); require(!rewardsDistributed, "only can distribute once"); rewardsDistributed = true; _mint(_rewardPool, REWARD_POOL_ALLOCATION); } function burn(uint256 amount) public override { super.burn(amount); } function governanceRecoverUnsupported( IERC20 _token, uint256 _amount, address _to ) external onlyOperator { _token.transfer(_to, _amount); } }
Find difference