Open geoinheritance opened 6 years ago
Are you trying to publish the token or the crowdsale smart contract? They are at two separate addresses. I see your token located here: https://poaexplorer.com/address/0xa17ed5dfc62d0a3e74d69a0503ae9fda65d9f212
What is the source code of your token?
What solidity version was used to deploy it?
Andrew, thanks for your rapid response.
See the message on the Token Explorer page that I was trying to respond to: "Are you The Contract Creator? Verify And Publish https://poaexplorer.com/tools/verify/0xa17ed5dfc62d0a3e74d69a0503ae9fda65d9f212 your Contract Source Code Today!"
Thus, I was trying to Verify And Publish https://poaexplorer.com/tools/verify/0xa17ed5dfc62d0a3e74d69a0503ae9fda65d9f212 my Contract Source Code. But is this mandatory for token listing on exchange? Please, what are the advantages of verifying and publishing a contract source code?
Please, find attached the source code in a .zip
The Compiler Version: 0.4.11.
Regards, @geoinheritance
On 21 July 2018 at 05:05, Andrew Cravenho notifications@github.com wrote:
Are you trying to publish the token or the crowdsale smart contract? They are at two separate addresses. I see your token located here: https://poaexplorer.com/address/0xa17ed5dfc62d0a3e74d69a0503ae9fda65d9f212
What is the source code of your token?
What solidity version was used to deploy it?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/acravenho/poaexplorer.com/issues/3#issuecomment-406768832, or mute the thread https://github.com/notifications/unsubscribe-auth/AlkiCs6Yay9FqOM7LGeyLAJj7mfwIKvbks5uIqingaJpZM4VZeA3 .
Please copy and paste the source code below
Thanks. Please. find the Contract Source Code below:
0x606060405236156101f35763ffffffff60e060020a60003504166302f652a381146101f557806305d2035b1461021857806306fdde031461023c578063095ea7b3146102cc57806318160ddd146102ff57806323b872dd1461032157806329ff4f531461035a578063313ce567146103785780633d0acdaa1461039a5780633fa615b0146103c857806340c10f19146103ea57806342c1867b1461040b578063432146751461043b57806345977d031461045e57806345e7e140146104735780634eee966f146104a157806351ed17a4146105365780635de4ccb0146105815780635f412d4f146105ad578063600440cb146105bf578063612544b3146105eb5780636ffc22b81461061957806370a08231146106375780637386f0a7146106655780638444b39114610694578063867c2857146106c85780638da5cb5b146106f857806395d89b411461072457806395fe6f1d146107b457806396132521146107e45780639738968c14610808578063a9059cbb1461082c578063b4ecb8471461085f578063c33105171461088f578063c752ff62146108b1578063d1f276d3146108d3578063d7e7088a146108ff578063dd62ed3e1461091d578063df8de3e714610951578063eefa597b1461096f578063f05834d614610993578063f2fde38b14610a90578063ffeb7d7514610aae575bfe5b34156101fd57fe5b610216600160a060020a03600435166024351515610acc565b005b341561022057fe5b610228610b2f565b604080519115158252519081900360200190f35b341561024457fe5b61024c610b38565b604080516020808252835181830152835191928392908301918501908083838215610292575b80518252602083111561029257601f199092019160209182019101610272565b505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d457fe5b610228600160a060020a0360043516602435610bc6565b604080519115158252519081900360200190f35b341561030757fe5b61030f610c6d565b60408051918252519081900360200190f35b341561032957fe5b610228600160a060020a0360043581169060243516604435610c73565b604080519115158252519081900360200190f35b341561036257fe5b610216600160a060020a0360043516610ccb565b005b341561038057fe5b61030f610d31565b60408051918252519081900360200190f35b34156103a257fe5b61030f600160a060020a0360043516610d37565b60408051918252519081900360200190f35b34156103d057fe5b61030f610d59565b60408051918252519081900360200190f35b34156103f257fe5b610216600160a060020a0360043516602435610d5f565b005b341561041357fe5b610228600160a060020a0360043516610f0c565b604080519115158252519081900360200190f35b341561044357fe5b610216600160a060020a03600435166024351515610f21565b005b341561046657fe5b610216600435610fb5565b005b341561047b57fe5b61030f600160a060020a0360043516611125565b60408051918252519081900360200190f35b34156104a957fe5b610216600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f89358b0180359182018390048302840183019094528083529799988101979196509182019450925082915084018382808284375094965061114795505050505050565b005b341561053e57fe5b610552600160a060020a03600435166112bb565b604080519586526020860194909452848401929092521515606084015215156080830152519081900360a00190f35b341561058957fe5b6105916112ee565b60408051600160a060020a039092168252519081900360200190f35b34156105b557fe5b6102166112fd565b005b34156105c757fe5b610591611332565b60408051600160a060020a039092168252519081900360200190f35b34156105f357fe5b61030f600160a060020a0360043516611346565b60408051918252519081900360200190f35b341561062157fe5b610216600160a060020a0360043516611365565b005b341561063f57fe5b61030f600160a060020a03600435166113cf565b60408051918252519081900360200190f35b341561066d57fe5b6105916004356113ee565b60408051600160a060020a039092168252519081900360200190f35b341561069c57fe5b6106a4611420565b604051808260048111156106b457fe5b60ff16815260200191505060405180910390f35b34156106d057fe5b610228600160a060020a036004351661146d565b604080519115158252519081900360200190f35b341561070057fe5b610591611482565b60408051600160a060020a039092168252519081900360200190f35b341561072c57fe5b61024c611491565b604080516020808252835181830152835191928392908301918501908083838215610292575b80518252602083111561029257601f199092019160209182019101610272565b505050905090810190601f1680156102be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107bc57fe5b610228600160a060020a036004351661151f565b604080519115158252519081900360200190f35b34156107ec57fe5b610228611544565b604080519115158252519081900360200190f35b341561081057fe5b610228611554565b604080519115158252519081900360200190f35b341561083457fe5b610228600160a060020a036004351660243561157a565b604080519115158252519081900360200190f35b341561086757fe5b610228600160a060020a03600435166115d0565b604080519115158252519081900360200190f35b341561089757fe5b61030f6115fa565b60408051918252519081900360200190f35b34156108b957fe5b61030f611600565b60408051918252519081900360200190f35b34156108db57fe5b610591611606565b60408051600160a060020a039092168252519081900360200190f35b341561090757fe5b610216600160a060020a0360043516611615565b005b341561092557fe5b61030f600160a060020a03600435811690602435166117f7565b60408051918252519081900360200190f35b341561095957fe5b610216600160a060020a0360043516611824565b005b341561097757fe5b6102286119a6565b604080519115158252519081900360200190f35b341561099b57fe5b610216600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750506040805187358901803560208181028481018201909552818452989a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989a9989019892975090820195509350839250850190849080828437509496506119ac95505050505050565b005b3415610a9857fe5b610216600160a060020a0360043516611ac9565b005b3415610ab657fe5b610216600160a060020a0360043516611b62565b005b60035433600160a060020a03908116911614610ae85760006000fd5b60045460009060a060020a900460ff1615610b035760006000fd5b600160a060020a0383166000908152600560205260409020805460ff19168315151790555b5b505b5050565b60065460ff1681565b600e805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bbe5780601f10610b9357610100808354040283529160200191610bbe565b820191906000526020600020905b815481529060010190602001808311610ba157829003601f168201915b505050505081565b60008115801590610bfb5750600160a060020a0333811660009081526002602090815260408083209387168352929052205415155b15610c065760006000fd5b600160a060020a03338116600081815260026020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60005481565b600454600090849060a060020a900460ff161515610cb357600160a060020a03811660009081526005602052604090205460ff161515610cb35760006000fd5b5b610cbf858585611bca565b91505b5b509392505050565b60035433600160a060020a03908116911614610ce75760006000fd5b60045460009060a060020a900460ff1615610d025760006000fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790555b5b505b50565b60105481565b600160a060020a0381166000908152600860205260409020600101545b919050565b60115481565b600160a060020a03331660009081526007602052604090205460ff161515610d875760006000fd5b60065460ff1615610d985760006000fd5b600054732f708b27b519750d65218737d60ae5b0a1125b066366098d4f9091836000604051602001526040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b1515610dfb57fe5b6102c65a03f41515610e0957fe5b50506040805180516000908155600160a060020a038616815260016020908152838220549281019190915282517f66098d4f0000000000000000000000000000000000000000000000000000000081526004810192909252602482018590529151732f708b27b519750d65218737d60ae5b0a1125b0693506366098d4f92604480840193919291829003018186803b1515610ea057fe5b6102c65a03f41515610eae57fe5b5050604080518051600160a060020a0386166000818152600160209081528582209390935586845293519094507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35b5b5b5050565b60076020526000908152604090205460ff1681565b60035433600160a060020a03908116911614610f3d5760006000fd5b60065460ff1615610f4e5760006000fd5b600160a060020a038216600081815260076020908152604091829020805460ff191685151590811790915582519384529083015280517f4b0adf6c802794c7dde28a08a4e07131abcff3bf9603cd71f14f90bec7865efa9281900390910190a15b5b5b5050565b6000610fbf611420565b905060035b816004811115610fd057fe5b1480610fe8575060045b816004811115610fe657fe5b145b1515610ff45760006000fd5b8115156110015760006000fd5b600160a060020a0333166000908152600160205260409020546110249083611ccd565b600160a060020a0333166000908152600160205260408120919091555461104b9083611ccd565b600055600d5461105b9083611ce4565b600d55600c54604080517f753e88e5000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018690529151919092169163753e88e591604480830192600092919082900301818387803b15156110c857fe5b6102c65a03f115156110d657fe5b5050600c54604080518581529051600160a060020a03928316935033909216917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac9181900360200190a35b5050565b600160a060020a0381166000908152600860205260409020600201545b919050565b60035433600160a060020a039081169116146111635760006000fd5b815161117690600e906020850190611f2b565b50805161118a90600f906020840190611f2b565b5060408051818152600e8054600260001961010060018416150201909116049282018390527fd131ab1e6f279deea74e13a18477e13e2107deb6dc8ae955648948be5841fb46929091600f91819060208201906060830190869080156112315780601f1061120657610100808354040283529160200191611231565b820191906000526020600020905b81548152906001019060200180831161121457829003601f168201915b50508381038252845460026000196101006001841615020190911604808252602090910190859080156112a55780601f1061127a576101008083540402835291602001916112a5565b820191906000526020600020905b81548152906001019060200180831161128857829003601f168201915b505094505050505060405180910390a15b5b5050565b60086020526000908152604090208054600182015460028301546003909301549192909160ff8082169161010090041685565b600c54600160a060020a031681565b60045433600160a060020a039081169116146113195760006000fd5b6006805460ff1916600117905561132e611d0c565b5b5b565b600b546101009004600160a060020a031681565b600160a060020a0381166000908152600860205260409020545b919050565b600160a060020a03331660009081526007602052604081205460ff16151561138d5760006000fd5b60065460ff161561139e5760006000fd5b50600160a060020a038116600090815260086020526040902060038101805461ff0019166101001790555b5b5b5050565b600160a060020a0381166000908152600160205260409020545b919050565b60098054829081106113fc57fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600061142a611554565b151561143857506001611467565b600c54600160a060020a0316151561145257506002611467565b600d54151561146357506003611467565b5060045b5b5b5b90565b60056020526000908152604090205460ff1681565b600354600160a060020a031681565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bbe5780601f10610b9357610100808354040283529160200191610bbe565b820191906000526020600020905b815481529060010190602001808311610ba157829003601f168201915b505050505081565b600160a060020a03811660009081526008602052604090206003015460ff165b919050565b60045460a060020a900460ff1681565b60045460009060a060020a900460ff16801561157357506115736119a6565b5b90505b90565b600454600090339060a060020a900460ff1615156115ba57600160a060020a03811660009081526005602052604090205460ff1615156115ba5760006000fd5b5b6115c58484611d56565b91505b5b5092915050565b600160a060020a038116600090815260086020526040902060030154610100900460ff165b919050565b600a5481565b600d5481565b600454600160a060020a031681565b61161d611554565b15156116295760006000fd5b600160a060020a038116151561163f5760006000fd5b600b5433600160a060020a0390811661010090920416146116605760006000fd5b60045b61166b611420565b600481111561167657fe5b14156116825760006000fd5b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055604080516000602091820181905282517f61d3d7a6000000000000000000000000000000000000000000000000000000008152925194909316936361d3d7a6936004808501948390030190829087803b151561170857fe5b6102c65a03f1151561171657fe5b5050604051511515905061172a5760006000fd5b60008054600c5460408051602090810185905281517f4b2ba0dd00000000000000000000000000000000000000000000000000000000815291519394600160a060020a0390931693634b2ba0dd936004808501948390030190829087803b151561179057fe5b6102c65a03f1151561179e57fe5b5050604051519190911490506117b45760006000fd5b600c5460408051600160a060020a039092168252517f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc9181900360200190a15b50565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600354600090819033600160a060020a039081169116146118455760006000fd5b600160a060020a038316151561185b5760006000fd5b82915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15156118be57fe5b6102c65a03f115156118cc57fe5b50506040805180516003546000602093840181905284517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529451929650908716945063a9059cbb936044808201949392918390030190829087803b151561194857fe5b6102c65a03f1151561195657fe5b5050604080516003548482529151600160a060020a039283169350918616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c9181900360200190a35b5b505050565b60015b90565b60065460009060ff16156119c05760006000fd5b60035433600160a060020a039081169116146119dc5760006000fd5b600b5460ff16156119e957fe5b83518551146119f457fe5b82518451146119ff57fe5b8151835114611a0a57fe5b5060005b8451811015611ab2578451600090869083908110611a2857fe5b60209081029091010151600160a060020a031614611aa857611aa88582815181101515611a5157fe5b906020019060200201518583815181101515611a6957fe5b906020019060200201518584815181101515611a8157fe5b906020019060200201518585815181101515611a9957fe5b90602001906020020151611e0a565b5b5b600101611a0e565b600b805460ff191660011790555b5b5b5050505050565b60035433600160a060020a03908116911614611ae55760006000fd5b600160a060020a0381161515611afb5760006000fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a0381161515611b785760006000fd5b600b5433600160a060020a039081166101009092041614611b995760006000fd5b600b805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416021790555b50565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152812054909190611c0b9084611ce4565b600160a060020a038086166000908152600160205260408082209390935590871681522054611c3a9084611ccd565b600160a060020a038616600090815260016020526040902055611c5d8184611ccd565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600191505b509392505050565b600082821115611cd957fe5b508082035b92915050565b6000828201838110801590611cf95750828110155b1515611d0157fe5b8091505b5092915050565b60045433600160a060020a03908116911614611d285760006000fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60015b90565b600160a060020a033316600090815260016020526040812054611d799083611ccd565b600160a060020a033381166000908152600160205260408082209390935590851681522054611da89083611ce4565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b60065460ff1615611e1b5760006000fd5b60035433600160a060020a03908116911614611e375760006000fd5b600160a060020a0384161515611e4957fe5b611e528461151f565b1515611ea1576009805460018101611e6a8382611faa565b916000526020600020900160005b8154600160a060020a038089166101009390930a9283029202191617905550600a805460010190555b6040805160a0810182528481526020808201858152828401858152600160608501818152600060808701818152600160a060020a038d16825260089096529690962094518555915191840191909155516002830155915160039091018054925115156101000261ff001992151560ff1990941693909317919091169190911790555b5b5b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f6c57805160ff1916838001178555611f99565b82800160010185558215611f99579182015b82811115611f99578251825591602001919060010190611f7e565b5b50611fa6929150611fd4565b5090565b815481835581811511610b2857600083815260209020610b28918101908301611fd4565b5b505050565b61146791905b80821115611fa65760008155600101611fda565b5090565b905600a165627a7a7230582051cdcd01e28bff7e6c64773a244d30a010ae885e9a0e9e16188e1055e87dcd560029
On 22 July 2018 at 03:03, Andrew Cravenho notifications@github.com wrote:
Please copy and paste the source code below
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/acravenho/poaexplorer.com/issues/3#issuecomment-406835677, or mute the thread https://github.com/notifications/unsubscribe-auth/AlkiCrr5Zq7BcPFMi8K1ApMAHG1ysyjnks5uI91pgaJpZM4VZeA3 .
@geoinheritance, that's the bytecode, I need the contract source code.
// Created using Token Wizard https://github.com/poanetwork/token-wizard by POA Network pragma solidity ^0.4.11;
/**
/**
functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
owner
of the contract
to the sender/**
/**
} // Temporarily have SafeMath here until all contracts have been migrated to SafeMathLib version from OpenZeppelin
/**
Math operations with safety checks / contract SafeMath { function safeMul(uint a, uint b) internal returns (uint) { uint c = a b; assert(a == 0 || c / a == b); return c; }
function safeDiv(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; }
function safeSub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; }
function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; }
function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; }
function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; }
function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; }
function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; }
} /**
/**
/**
/**
https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, SafeMath {
/ Token supply got increased and a new owner received these tokens / event Minted(address receiver, uint amount);
/ Actual balances of token holders / mapping(address => uint) balances;
/ approve() allowances / mapping (address => mapping (address => uint)) allowed;
/ Interface declaration / function isToken() public constant returns (bool weAre) { return true; }
function transfer(address _to, uint _value) returns (bool success) { balances[msg.sender] = safeSub(balances[msg.sender], _value); balances[_to] = safeAdd(balances[_to], _value); Transfer(msg.sender, _to, _value); return true; }
function transferFrom(address _from, address _to, uint _value) returns (bool success) { uint _allowance = allowed[_from][msg.sender];
balances[_to] = safeAdd(balances[_to], _value); balances[_from] = safeSub(balances[_from], _value); allowed[_from][msg.sender] = safeSub(_allowance, _value); Transfer(_from, _to, _value); return true; }
function balanceOf(address _owner) constant returns (uint balance) { return balances[_owner]; }
function approve(address _spender, uint _value) returns (bool success) {
// To change the approve amount you first have to reduce the addresses // allowance to zero by calling
approve(_spender, 0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;
allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; }
function allowance(address _owner, address _spender) constant returns (uint remaining) { return allowed[_owner][_spender]; }
}
/**
/**
/**
Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting. */ contract UpgradeAgent {
uint public originalSupply;
/* Interface marker / function isUpgradeAgent() public constant returns (bool) { return true; }
function upgradeFrom(address _from, uint256 _value) public;
}
/**
First envisioned by Golem and Lunyr projects. */ contract UpgradeableToken is StandardToken {
/* Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. / address public upgradeMaster;
/* The next contract where the tokens will be migrated. / UpgradeAgent public upgradeAgent;
/* How many tokens we have upgraded by now. / uint256 public totalUpgraded;
/**
*/ enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading}
/**
/**
/**
/**
Allow the token holder to upgrade some of their tokens to a new contract. */ function upgrade(uint256 value) public {
UpgradeState state = getUpgradeState(); if(!(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading)) { // Called in a bad state throw; }
// Validate input value. if (value == 0) throw;
balances[msg.sender] = safeSub(balances[msg.sender], value);
// Take tokens out from circulation totalSupply = safeSub(totalSupply, value); totalUpgraded = safeAdd(totalUpgraded, value);
// Upgrade agent reissues the tokens upgradeAgent.upgradeFrom(msg.sender, value); Upgrade(msg.sender, upgradeAgent, value); }
/**
Set an upgrade agent that handles */ function setUpgradeAgent(address agent) external {
if(!canUpgrade()) { // The token is not yet in a state that we could think upgrading throw; }
if (agent == 0x0) throw; // Only a master can designate the next agent if (msg.sender != upgradeMaster) throw; // Upgrade has already begun for an agent if (getUpgradeState() == UpgradeState.Upgrading) throw;
upgradeAgent = UpgradeAgent(agent);
// Bad interface if(!upgradeAgent.isUpgradeAgent()) throw; // Make sure that token supplies match in source and target if (upgradeAgent.originalSupply() != totalSupply) throw;
UpgradeAgentSet(upgradeAgent); }
/**
/**
/**
}
/**
/**
Define interface for releasing the token transfer after a successful crowdsale. */ contract ReleasableToken is ERC20, Ownable {
/ The finalizer contract that allows unlift the transfer limits on this token / address public releaseAgent;
/* A crowdsale contract can release us to the wild if ICO success. If false we are are in transfer lock up period./ bool public released = false;
/* Map of agents that are allowed to transfer tokens regardless of the lock down period. These are crowdsale contracts and possible the team multisig itself. / mapping (address => bool) public transferAgents;
/**
*/ modifier canTransfer(address _sender) {
if(!released) { if(!transferAgents[_sender]) { throw; } }
_; }
/**
// We don't do interface check here as we might want to a normal wallet address to act as a release agent releaseAgent = addr; }
/**
/**
/* The function can be called only before or after the tokens have been releasesd / modifier inReleaseState(bool releaseState) { if(releaseState != released) { throw; } _; }
/* The function can be called only by a whitelisted release agent. / modifier onlyReleaseAgent() { if(msg.sender != releaseAgent) { throw; } _; }
function transfer(address _to, uint _value) canTransfer(msg.sender) returns (bool success) { // Call StandardToken.transfer() return super.transfer(_to, _value); }
function transferFrom(address _from, address _to, uint _value) canTransfer(_from) returns (bool success) { // Call StandardToken.transferForm() return super.transferFrom(_from, _to, _value); }
}
/**
/**
/**
https://blog.aragon.one/library-driven-development-in-solidity-2bebcaf88736#.750gwtwli
*/ library SafeMathLibExt {
function times(uint a, uint b) returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; }
function divides(uint a, uint b) returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; }
function minus(uint a, uint b) returns (uint) { assert(b <= a); return a - b; }
function plus(uint a, uint b) returns (uint) { uint c = a + b; assert(c>=a); return c; }
}
/**
*/ contract MintableTokenExt is StandardToken, Ownable {
using SafeMathLibExt for uint;
bool public mintingFinished = false;
/* List of agents that are allowed to create new tokens / mapping (address => bool) public mintAgents;
event MintingAgentChanged(address addr, bool state );
/** inPercentageUnit is percents of tokens multiplied to 10 up to percents decimals.
mapping (address => ReservedTokensData) public reservedTokensList; address[] public reservedTokensDestinations; uint public reservedTokensDestinationsLen = 0; bool reservedTokensDestinationsAreSet = false;
modifier onlyMintAgent() { // Only crowdsale contracts are allowed to mint new tokens if(!mintAgents[msg.sender]) { throw; } _; }
/* Make sure we are not done yet. / modifier canMint() { if(mintingFinished) throw; _; }
function finalizeReservedAddress(address addr) public onlyMintAgent canMint { ReservedTokensData storage reservedTokensData = reservedTokensList[addr]; reservedTokensData.isDistributed = true; }
function isAddressReserved(address addr) public constant returns (bool isReserved) { return reservedTokensList[addr].isReserved; }
function areTokensDistributedForAddress(address addr) public constant returns (bool isDistributed) { return reservedTokensList[addr].isDistributed; }
function getReservedTokens(address addr) public constant returns (uint inTokens) { return reservedTokensList[addr].inTokens; }
function getReservedPercentageUnit(address addr) public constant returns (uint inPercentageUnit) { return reservedTokensList[addr].inPercentageUnit; }
function getReservedPercentageDecimals(address addr) public constant returns (uint inPercentageDecimals) { return reservedTokensList[addr].inPercentageDecimals; }
function setReservedTokensListMultiple( address[] addrs, uint[] inTokens, uint[] inPercentageUnit, uint[] inPercentageDecimals ) public canMint onlyOwner { assert(!reservedTokensDestinationsAreSet); assert(addrs.length == inTokens.length); assert(inTokens.length == inPercentageUnit.length); assert(inPercentageUnit.length == inPercentageDecimals.length); for (uint iterator = 0; iterator < addrs.length; iterator++) { if (addrs[iterator] != address(0)) { setReservedTokensList(addrs[iterator], inTokens[iterator], inPercentageUnit[iterator], inPercentageDecimals[iterator]); } } reservedTokensDestinationsAreSet = true; }
/**
// This will make the mint transaction apper in EtherScan.io // We can remove this after there is a standardized minting event Transfer(0, receiver, amount); }
/**
function setReservedTokensList(address addr, uint inTokens, uint inPercentageUnit, uint inPercentageDecimals) private canMint onlyOwner { assert(addr != address(0)); if (!isAddressReserved(addr)) { reservedTokensDestinations.push(addr); reservedTokensDestinationsLen++; }
reservedTokensList[addr] = ReservedTokensData({ inTokens: inTokens, inPercentageUnit: inPercentageUnit, inPercentageDecimals: inPercentageDecimals, isReserved: true, isDistributed: false }); } }
/**
*/ contract CrowdsaleTokenExt is ReleasableToken, MintableTokenExt, UpgradeableToken {
/* Name and symbol were updated. / event UpdatedTokenInformation(string newName, string newSymbol);
event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount);
string public name;
string public symbol;
uint public decimals;
/ Minimum ammount of tokens every buyer can buy. / uint public minCap;
/**
// Create any address, can be transferred // to team multisig via changeOwner(), // also remember to call setUpgradeMaster() owner = msg.sender;
name = _name; symbol = _symbol;
totalSupply = _initialSupply;
decimals = _decimals;
minCap = _globalMinCap;
// Create initially all balance on the team multisig balances[owner] = totalSupply;
if(totalSupply > 0) { Minted(owner, totalSupply); }
// No more new supply allowed after the token creation if(!_mintable) { mintingFinished = true; if(totalSupply == 0) { throw; // Cannot create a token without supply and no minting } } }
/**
/**
/**
UpdatedTokenInformation(name, symbol); }
/**
ERC20 token = ERC20(_token); uint balance = token.balanceOf(this); token.transfer(owner, balance);
ClaimedTokens(_token, owner, balance); }
}
On 23 July 2018 at 04:06, Andrew Cravenho notifications@github.com wrote:
@geoinheritance https://github.com/geoinheritance, that's the bytecode, I need the contract source code.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/acravenho/poaexplorer.com/issues/3#issuecomment-406926398, or mute the thread https://github.com/notifications/unsubscribe-auth/AlkiCvEa888fx_8F7QezQK2me7uahKxHks5uJT3OgaJpZM4VZeA3 .
Andrew, thanks for your rapid response.
See the message on the Token Explorer page that I was trying to respond to: "Are you The Contract Creator? Verify And Publish your Contract Source Code Today!"
Thus, I was trying to Verify And Publish my Contract Source Code. But is this mandatory for token listing on exchange? Please, what are the advantages of verifying and publishing a contract source code?
Please, find attached the source code in a .zip
The Compiler Version: 0.4.11.
Regards, @geoinheritance tokenwizard_Core_POA_0xA17ed5dFc62D0a3E74D69a0503AE9FdA65d9f212.zip
If you are reporting a problem with Token Wizard, please include the following information:
As I was trying to Verify and Publish contract code for the Token Contract deployed on POA Core net, SafeMathLibExt was SUCCESSFULLY VERIFIED; CrowdsaleTokenExt and others was NOT SUCCESSFUL, showing: "Bytecode does not match"
The Token Distribution was successful; and The Crowdsale was successfully Finalized.
Please, how can I resolve the issue to get the contract code for CrowdsaleTokenExt and others Verified and Published on https://poaexplorer.com?
Which network did you use? (Mainnet, Kovan, Rinkeby, etc.) POA Core net - using Custom RPC (Private Network): https://poa.infura.io
If you were able to create it, what is the URL of your crowdsale? https://wizard.oracles.org/crowdsale?addr=0xc739fAf883644f540EafB9eC3Fa52bcA82e6417c&networkID=99
Do you have screenshots showing the problem? Yes, I do