I've deployed a basic MichaelCoin
ERC20 contract without issue and able to interact with it via geth console. My issue is verifying it on http://rinkeby.etherscan.io.
I am inputting MichaelCoin
as the contract name and when I run truffle version
I get:
Truffle v3.4.5 (core: 3.4.5)
Solidity v0.4.11 (solc-js)
The compiler version I am choosing is v0.4.11+commit.68ef5810
The error I'm getting is:
Note: Contract was created during Txn# [0xb9c93fc42899022b578594706fcb770899e976054c1377df22f02273c6608a37]
Result: Does not match the input creation bytecode found at this address
Sorry! The Compiled Contract ByteCode for 'MichaelCoin' does NOT match the Contract Creation Code for [0xba598b093bf468053ad740729466045b17701d87].
Contract name(s) found: 'MichaelCoin'
Unable to Verify Contract at this point time.
Contract address on rinkeby etherscan is https://rinkeby.etherscan.io/address/0xba598b093bf468053ad740729466045b17701d87
Here is my contract code:
pragma solidity ^0.4.11;
contract MichaelCoin {
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
string public name = "Michael Coin";
string public symbol = "MC";
uint8 public decimals = 18;
uint256 public totalAmount = 1000000;
event Transfer (address indexed _from, address indexed _to, uint256 _value);
event Approval (address indexed _owner, address indexed _spender, uint256 _value);
function MichaelCoin() {
// constructor
balances[msg.sender] = totalAmount;
}
function totalSupply() constant returns(uint) {
return totalAmount;
}
function transfer (address _to, uint256 _value) returns (bool success) {
if (balances[msg.sender] >= _value
&& balances[_to] + _value > balances[_to]) {
balances[msg.sender] -= _value;
balances[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
} else { return false; }
}
function transferFrom(address _from, address _to, uint _value) returns (bool success) {
if(balances[_from] >= _value
&& _value > 0
&& balances[_to] + _value > balances[_to]
&& allowed[_from][msg.sender] >= _value) {
balances[_from] -= _value;
balances[_to] += _value;
Transfer(_from, _to, _value);
return true;
}
return false;
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
function() {
throw;
}
}
Thank you for any guidance.