Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Editor live
Comprimi invariate
Senza a capo
Layout
Diviso
Unificato
Livello di dettaglio
Intelligente
Parola
Carattere
Evidenziazione sintassi
Scegli sintassi
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
SHARE
Creato
anno scorso
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
51 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
105 linee
Copia tutti
21 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
79 linee
Copia tutti
Copia
Copiato
Copia
Copiato
contract
TShare
is ERC20Burnable, Operator {
contract
GHOG
is ERC20Burnable, Operator {
using SafeMath for uint256;
using SafeMath for uint256;
Copia
Copiato
Copia
Copiato
// 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;
Copia
Copiato
Copia
Copiato
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;
Copia
Copiato
Copia
Copiato
uint256 public communityFundRewardRate;
uint256 public devFundRewardRate;
uint256 public devFundRewardRate;
Copia
Copiato
Copia
Copiato
address public communityFund;
address public devFund;
address public devFund;
Copia
Copiato
Copia
Copiato
uint256 public communityFundLastClaimed;
uint256 public devFundLastClaimed;
uint256 public devFundLastClaimed;
Copia
Copiato
Copia
Copiato
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;
Copia
Copiato
Copia
Copiato
communityFundLastClaimed = startTime;
devFundLastClaimed = startTime;
devFundLastClaimed = startTime;
Copia
Copiato
Copia
Copiato
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;
Copia
Copiato
Copia
Copiato
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;
}
}
Copia
Copiato
Copia
Copiato
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 {
Copia
Copiato
Copia
Copiato
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)
*/
*/
Copia
Copiato
Copia
Copiato
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);
}
}
}
}
Copia
Copiato
Copia
Copiato
Diff salvati
Testo originale
Apri 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); } }
Testo modificato
Apri 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); } }
Trovare la differenza