ETH Price: $2,565.85 (+1.65%)

Transaction Decoder

Block:
11278988 at Nov-18-2020 01:33:37 AM +UTC
Transaction Fee:
0.07517043 ETH $192.88
Gas Used:
928,030 Gas / 81 Gwei

Account State Difference:

  Address   Before After State Difference Code
(Spark Pool)
8.588329891003908808 Eth8.663500321003908808 Eth0.07517043
0x8cf87e36...51b193541
1.074903038 Eth
Nonce: 20
0.999732608 Eth
Nonce: 21
0.07517043
0x9CB56779...75220fF46
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 368017029917061568250561672227460536715205342818157296455177624468186458099511264517544286813804332734012035090470299053517029888443053821830411779589312914701903687611607988661935737027370115816760223742910254888953876311587163127827921654713833558167235002922252801214790099963601745332694578830660125975646435755799059018470662681389157815879214580306917314535611834783651816899123278717227960854745868502531123254438837037181352215467163221110949275751898677899194413433156492973692919832451493364141853246034534931323708980726983016150360880884695512933439048571821682925116506128670603966106954441955153835825058194430847811413549156863350579588387513623905377725871177217800946070343545892164164652692733104131242687502778207755559906189950906896056725569756747751693183454425208175385016875529867382088253119657850221601124421945872399887055354916928870823404864417887447132289832378543703103961668194641094475422459745000635902858275017789294820187668547815421417275310633725098217970586590387558255566632935584687879790347339898509191978283931286394024263054357969348979302363620376839234516068168906317322537619428881785102059032315155555741148343539923680773298005329988916286987401929911586500653600279209804382515575171663555416644266317008179813440275409543532322969403203813978388888361645391293486972584927315205258891607381498709751829793284559703215731581290720363956548070134362244866325713510326978342771919884692755223188731286892348550312945828580895846462360874629238169993695828800782186065429878727272780969820521728534008404476703899348510403635734003087514767626724351159983618883823195794439870795976079582262770783029118187146253166280538564985301233612548916912492176015583279063662940214080779407022057852584812748268147620074383965935587711777693246729730367420630144390048916240467287345301229517732318663639317333740599185982367598096175003143633879227660282467916612047907793837791381851378501008535967070537258940534086582984435772464187150522668981604631491260996841194179632287470804473710831527737341663821161950694873668007367802961378030543080490939433384185775037944187648340695986923432348576103975884096195237716842343131895337050306029804477567196549801263251871660436171938464567209252207938933979795245267443661430922230135113000956114014381818090955611041575110606912677253566350632245523066869889590578741698315865300054510695514775414209449584066900954118884475048978616736407984263541424374818192414511635015070890373961349971595757225534907221252887224635904648972341366231228108500348524602085665129341170391143379041841702669423310801629615410585805784996903956122902833053820257153033073301033274211277409441475279051327090424270268696231135538267416554053758796617797504096882431020109286183346763316196752737815149637281019648130054634661050866548964616976533468998164939720567118506565909796862077010437241534772704376206179692201034187338622636319923566852074278254989352820075801498302318922229385223314454874615261640578314701597272065787338759106400262788331539830207838428205536138517214248593269853316930250387805190075523148595501769924131907713796658449046471401163788258060423889882349800655505427094409701120398649322874045518884758544132799016522942285072913153879363177615725426878591735831542448653691213993050792013627936945045801388324348844998339578421116116618465085311047443443716756811431856297309659534350938948214814943091422690798326976009716571419253841714211815414385307541661075847145367163490190813350630547261609674039160271310117483573456325179397341859816148239566686145078230962377774737149293631293633516682595612724281022010195190332305919026019158611915833726776204960130664844633022335337503551150283455836550561830060340555180810484619191920289135731884283394600650008008119787679275262208437200981603319807455175423641407341654554026939282171224617057590056870576020721581776462601483881848106319583815327792125372889643485601982309783645260952315861273661870557156741254615642997185828344594794128685389674274935355924614322137997912895409513063804304694691039636310513207353661701125892887639824898818421305051719218453971992672608757785256811769074730163923466713698140326458190759392306072674629473625231447567899609036737802111032743814565212552356224385796802527632855457386958107835929087878505002012751193135159144029877729100601806941766535324757280597594670245965555857602371597755355002343870682952331413494444604709210691495564193654320332297384492619779583423922526773456767814110291935142060360549633099966880625003313845299614004683829399167479216019354989297910077845597277322225664213757432325787545269808141456082711174078113009573455169450448246532498847262690249190344213414738770902472568821181042818590139504371250646904354239120297028790543138661321089341459246777209986206635734718536680063006651173535619059520822666741476767963594853223530639592974778452730309765785904713789505977593638655298734860864496846876769023144418428131596136509742056546107426164988193472231318822037811627356566918268257734392079925578070594406628364285346833496585469215978324182627353171966138080231626333111015428203173563084990455967927263741193117127998285675474995185133005632934801793249067323343944550424030879835692765022124643039264127946332712212984347101549799782486348965688803688604973486759257907124743473329457216775102222905904497725867839846932059371040444249611259481474658778492694358625943567162761775501911423591529218455784144334146313717177054416021426650379784344878724644737952890797458785347884420693306279497937127225212082356851281241488041785803344895836588726930569214240188459133078597662707920776707909159728092361304974599100593863680336024713548628878405752788037203873866236306087347283394911619721357838278488477840811660684454116643957014122905125811770009543439016307785181577534819527940163783552381753734542820296229098127298702336403759405408577563087535389971708508527010542580472266253026757251064157119782399509041220871886899912980544441751050854402213650281174582385258135543381864363666283854384485111182698640660394778023844429521598168537326445857697008713988986333129616866785503870987269072698483413455145715531808661238816859714163802169330238694743273878182934765335845598492463663545729610808433971912239504712981038106727392619907420749319674876873421365858339664559137812065140923946285013439888697082824642838563094474699246744617901428161458438073223332193089771219556453453684320959888684376763371458462822760929760520428746393706400098604333903439818252341677878145286853060527623322062496268035047903856121879595197134798216251307750249080399957188713135859001855189726281282099167636928640461809394677888301322789242021594931463032977127084116836775829323324975045062363302704612043289780642705400937928139883327974003417125846979619795593983563584183170078894783968181153513085100186075670339230498327073336312699662587129288064204178184965555296606923641599885506027061354522588873746208449274469402766554686534405368624547065774669420012480921407222888813153890450085160557325550650557934186626612879570770047159602284344690806820185248518655129198681619118742599984362673612600974939584116651146459892838364163817382661557883492578974832480826797008717192138166509094902696437237068138835481093389512015431662419454405392795733012509575636935530411401044676972128257668749508107739249133683212339

Execution Trace

Creeperfinance.60806040( )
// SPDX-License-Identifier: MIT
//t.me/creeperfinance
pragma solidity 0.7.0;
 
interface IERC20 {
  function totalSupply()                                         external view returns (uint256);
  function balanceOf(address who)                                external view returns (uint256);
  function allowance(address owner, address spender)             external view returns (uint256);
  function transfer(address to, uint256 value)                   external      returns (bool);
  function approve(address spender, uint256 value)               external      returns (bool);
  function transferFrom(address from, address to, uint256 value) external      returns (bool);
 
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
 
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;
 
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b);
        return c;
    }
 
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0);
        uint256 c = a / b;
        return c;
    }
 
    function ceil(uint256 a, uint256 m) internal pure returns (uint256) {
        uint256 c = add(a,m);
        uint256 d = sub(c,1);
        return mul(div(d,m),m);
    }
}
 
 
abstract contract ERC20Detailed is IERC20 {
 
  string private _name;
  string private _symbol;
  uint8  private _decimals;
 
  constructor(string memory name, string memory symbol, uint8 decimals) {
    _name     = name;
    _symbol   = symbol;
    _decimals = decimals;
  }
 
  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;
  }
}
 
 
 contract Creeperfinance is ERC20Detailed {
 
  using SafeMath for uint256;
 
  mapping (address => uint256)                      private _balances;
  mapping (address => mapping (address => uint256)) private _allowed;
  mapping (address => bool)                         private _whitelist;
 
 
  address private constant _router  = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
  address private          _owner;
 
  string   constant tokenName     = "Creeper.finance";
  string   constant tokenSymbol   = "CREEPER";
  uint8    constant tokenDecimals = 18;
  uint256  public   burnPct       = 3;
  uint256  private  _totalSupply  = 7_000_000_000_000_000_000_000;
  uint256  private  _txCap        = 100_000_000_000_000_000_000;
 
  constructor() ERC20Detailed(tokenName, tokenSymbol, tokenDecimals) {
      _owner = msg.sender;
      _balances[_owner] = _totalSupply;
      _modifyWhitelist(_owner, true);
      _modifyWhitelist(_router, true);
 
  }
 
  function totalSupply() external view override returns (uint256) {
    return _totalSupply;
  }
 
  function balanceOf(address owner) external view override returns (uint256) {
    return _balances[owner];
  }
 
  function allowance(address owner, address spender) external view override returns (uint256) {
    return _allowed[owner][spender];
  }
 
 
  function findBurnAmount(uint256 rate, uint256 value) public pure returns (uint256) {
      return value.ceil(100).mul(rate).div(100);
  }
 
 
  function _modifyWhitelist(address adr, bool state) internal {
    _whitelist[adr] = state;
  }
 
  function _checkWhitelist(address adr) internal view returns (bool) {
    return _whitelist[adr];
  }
 
 
  function transfer(address to, uint256 value) external override returns (bool) {
    require(value <= _balances[msg.sender]);
    require(to != address(0));
    if (_checkWhitelist(msg.sender)) {
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    _balances[to] = _balances[to].add(value);
 
    emit Transfer(msg.sender, to, value);
    return true;
  } else {
    require (value <= _txCap || _checkWhitelist(to),
            "amount exceeds tx cap");
    uint256 tokensToBurn     = findBurnAmount(burnPct, value);
    uint256 tokensToTransfer = value.sub(tokensToBurn);
 
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    _balances[to] = _balances[to].add(tokensToTransfer);
 
    _totalSupply = _totalSupply.sub(tokensToBurn);
 
    emit Transfer(msg.sender, to, tokensToTransfer);
    emit Transfer(msg.sender, address(0), tokensToBurn);
    return true;
  }
}
 
  function approve(address spender, uint256 value) external override returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = value;
 
    emit Approval(msg.sender, spender, value);
    return true;
  }
 
  function transferFrom(address from, address to, uint256 value) external override returns (bool) {
    require(value <= _balances[from]);
    require(value <= _allowed[from][msg.sender]);
    require(to != address(0));
    if (_checkWhitelist(from)) {
      _balances[from] = _balances[from].sub(value);
      _balances[to] = _balances[to].add(value);
 
      emit Transfer(from, to, value);
      return true;
    } else {
      require (value <= _txCap || _checkWhitelist(to),
              "amount exceeds tx cap");
 
      _balances[from] = _balances[from].sub(value);
 
      uint256 tokensToBurn     = findBurnAmount(burnPct, value);
      uint256 tokensToTransfer = value.sub(tokensToBurn);
 
      _balances[to] = _balances[to].add(tokensToTransfer);
      _totalSupply  = _totalSupply.sub(tokensToBurn);
 
      _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
 
      emit Transfer(from, to, tokensToTransfer);
      emit Transfer(from, address(0), tokensToBurn);
 
      return true;
    }
  }
 
 
  function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].add(addedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }
 
  function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }
 
}