RE: How To Create Your Own Ethereum Token In An Hour (ERC20 + Verified)

You are viewing a single comment's thread from:

How To Create Your Own Ethereum Token In An Hour (ERC20 + Verified)

in ethereum •  7 years ago 

Thanks for this post. However I am having difficulty verifying my source code.

I keep getting the error

Missing Constructor Arguments for function MyToken(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol)

Here is my Source Code any help would be greatly appreciated. I'll throw you at least $5 worth of steem if you can help me out.

pragma solidity ^0.4.11;
contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }

contract MyToken {
/* Public variables of the token */
string public standard = 'Token 0.1';
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;

/* This creates an array with all balances */
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;

/* This generates a public event on the blockchain that will notify clients */
event Transfer(address indexed from, address indexed to, uint256 value);

/* This notifies clients about the amount burnt */
event Burn(address indexed from, uint256 value);

/* Initializes contract with initial supply tokens to the creator of the contract */
function MyToken(
    uint256 initialSupply,
    string tokenName,
    uint8 decimalUnits,
    string tokenSymbol
    ) {
    balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
    totalSupply = initialSupply;                        // Update total supply
    name = tokenName;                                   // Set the name for display purposes
    symbol = tokenSymbol;                               // Set the symbol for display purposes
    decimals = decimalUnits;                            // Amount of decimals for display purposes
}

/* Send coins */
function transfer(address _to, uint256 _value) {
    require(_to != 0x0);                                // Prevent transfer to 0x0 address. Use burn() instead
    require(balanceOf[msg.sender] >= _value);           // Check if the sender has enough
    require(balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows
    balanceOf[msg.sender] -= _value;                    // Subtract from the sender
    balanceOf[_to] += _value;                           // Add the same to the recipient
    Transfer(msg.sender, _to, _value);                  // Notify anyone listening that this transfer took place
}

/* Allow another contract to spend some tokens in your behalf */
function approve(address _spender, uint256 _value)
    returns (bool success) {
    allowance[msg.sender][_spender] = _value;
    return true;
}

/* Approve and then communicate the approved contract in a single tx */
function approveAndCall(address _spender, uint256 _value, bytes _extraData)
    returns (bool success) {
    tokenRecipient spender = tokenRecipient(_spender);
    if (approve(_spender, _value)) {
        spender.receiveApproval(msg.sender, _value, this, _extraData);
        return true;
    }
}        

/* A contract attempts to get the coins */
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
    require(_to != 0x0);                                // Prevent transfer to 0x0 address. Use burn() instead
    require(balanceOf[_from] >= _value);                // Check if the sender has enough
    require(balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows
    require(_value <= allowance[_from][msg.sender]);    // Check allowance
    balanceOf[_from] -= _value;                         // Subtract from the sender
    balanceOf[_to] += _value;                           // Add the same to the recipient
    allowance[_from][msg.sender] -= _value;
    Transfer(_from, _to, _value);
    return true;
}

function burn(uint256 _value) returns (bool success) {
    require(balanceOf[msg.sender] >= _value);           // Check if the sender has enough
    balanceOf[msg.sender] -= _value;                    // Subtract from the sender
    totalSupply -= _value;                              // Updates totalSupply
    Burn(msg.sender, _value);
    return true;
}

function burnFrom(address _from, uint256 _value) returns (bool success) {
    require(balanceOf[_from] >= _value);                // Check if the targeted balance is enough
    require(_value <= allowance[_from][msg.sender]);    // Check allowance
    balanceOf[_from] -= _value;                         // Subtract from the targeted balance
    allowance[_from][msg.sender] -= _value;             // Subtract from the sender's allowance
    totalSupply -= _value;                              // Update totalSupply
    Burn(_from, _value);
    return true;
}

}

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you so much! One of the best posts on steemit!!! Can I just paste this in windows 7 notepad?

I looked at this again today I think I figured it out

besides not having inserted throw if your stil having issues check

balanceOf[_from] -= _value; // Subtract from the sender's allowance

allowance[_from][msg.sender] -= _value; // Subtract from the targeted balance

totalSupply -= _value; // Update totalSupply

i also believe you can delete
allowance[_from] line completly

HI - I can see from here that you havent completed the following:

Sorry - see you have fixed it!

Good article with worthwhile information. meanwhile, try this link to know about step by step process of creating erc20 token, erc223 token creation, erc721 token creation-https://www.cryptoexchangescript.com/erc20-token-creation