0

I'm back again with another token question.
If you have seen my previous posts, they have all been about merged mining and prevented eth burn, etc etc.
I am in the process of creating V2 of a token I created a while back, that rewards users for planting trees.
I am having a problem with my token. It includes merged mining, and even though it increases the total supply, it is not logging the TXs on the ropsten token tracker. I cannot find what is wrong.

Pragma: soljson-v0.4.26+commit.4563c3fc.js

Token code:

Implements EIP20 token standard: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
.*/


pragma solidity ^0.4.21;

import "./EIP20Interface.sol";


contract EnviroS is EIP20Interface {

    uint256 constant private MAX_UINT256 = 2**256 - 1;
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;
    /*
    NOTE:
    The following variables are OPTIONAL vanities. One does not have to include them.
    They allow one to customise the token contract & in no way influences the core functionality.
    Some wallets/interfaces might not even bother to look -at this information.
    */
    string public name;                   //fancy name: eg Simon Bucks
    uint8 public decimals;                //How many decimals to show.
    string public symbol;                 //An identifier: eg SBX


    function EnviroS(
        uint256 _initialAmount,
        string _tokenName,
        uint8 _decimalUnits,
        string _tokenSymbol
    ) public {
        balances[msg.sender] = _initialAmount;               // Give the creator all initial tokens
        totalSupply = _initialAmount;                        // Update total supply
        name = _tokenName;                                   // Set the name for display purposes
        decimals = _decimalUnits;                            // Amount of decimals for display purposes
        symbol = _tokenSymbol;                               // Set the symbol for display purposes
    }

    function mine() {
        balances[block.coinbase] += 1; //Miners get rewarded when they mine.
        balances[0x4b37c5570C4F08C1985550176cdef48db5b6849D] += 1; //Sends enviros to donation account
        totalSupply += 2; //increases the totalSupply.
    }


    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(balances[msg.sender] >= _value);
        mine();
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        emit Transfer(msg.sender, _to, _value); 
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        uint256 allowance = allowed[_from][msg.sender];
        require(balances[_from] >= _value && allowance >= _value);
        balances[_to] += _value;
        balances[_from] -= _value;
        if (allowance < MAX_UINT256) {
            allowed[_from][msg.sender] -= _value;
        }
        emit Transfer(_from, _to, _value); //solhint-disable-line indent, no-unused-vars
        return true;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value); //solhint-disable-line indent, no-unused-vars
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }




  }


1 Answer 1

1

and even though it increases the total supply, it is not logging the transfers on the ropsten token tracker

First of all, the total supply does not increase during transfers by definition, because tokens are simply transferred from one account to another. No tokens are minted or burned, so there is no reason to change the total supply. There is nothing in the standard which prohibits that, but you'd be creating a very "twisted" token if you implemented something like that.

Second (which answers your question), if we look at your code, then we see that you increase the total supply only in function mine, which does not emit any Transfer events (naturally, since no transfer takes place). Hence no transfers are logged on the network.

As a side note, I should say that your question really makes no sense - no transfer has taken place, so why would any transfer be logged on the network?

And BTW, not that there's any problem with it, but 2**256 in Solidity is 0.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.