ERC-20
Overview
Max Total Supply
100,000,000 SWC
Holders
646
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,847.597972 SWCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SweetToken
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-04 */ // Copyright (c) 2017 Sweetbridge Stiftung (Sweetbridge Foundation) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. /// math.sol -- mixin for inline numerical wizardry // Copyright (C) 2015, 2016, 2017 DappHub, LLC // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND (express or implied). pragma solidity ^0.4.17; library Math { // standard uint256 functions function add(uint256 x, uint256 y) pure internal returns (uint256 z) { require((z = x + y) >= x); } function sub(uint256 x, uint256 y) pure internal returns (uint256 z) { require((z = x - y) <= x); } function mul(uint256 x, uint256 y) pure internal returns (uint256 z) { z = x * y; require((z == 0 && (x == 0 || y == 0)) || z >= (x > y ? x : y)); } //division by zero is ignored and returns zero function div(uint256 x, uint256 y) pure internal returns (uint256 z) { z = y > 0 ? x / y : 0; } function min(uint256 x, uint256 y) pure internal returns (uint256 z) { return x <= y ? x : y; } function max(uint256 x, uint256 y) pure internal returns (uint256 z) { return x >= y ? x : y; } /* uint128 functions (h is for half) */ function hadd(uint128 x, uint128 y) pure internal returns (uint128 z) { require((z = x + y) >= x); } function hsub(uint128 x, uint128 y) pure internal returns (uint128 z) { require((z = x - y) <= x); } function hmul(uint128 x, uint128 y) pure internal returns (uint128 z) { require((z = x * y) >= x); } function hdiv(uint128 x, uint128 y) pure internal returns (uint128 z) { require(y > 0); z = x / y; } function hmin(uint128 x, uint128 y) pure internal returns (uint128 z) { return x <= y ? x : y; } function hmax(uint128 x, uint128 y) pure internal returns (uint128 z) { return x >= y ? x : y; } /* int256 functions */ function imin(int256 x, int256 y) pure internal returns (int256 z) { return x <= y ? x : y; } function imax(int256 x, int256 y) pure internal returns (int256 z) { return x >= y ? x : y; } /* WAD math */ uint128 constant WAD = 10 ** 18; function wadd(uint128 x, uint128 y) pure internal returns (uint128) { return hadd(x, y); } function wsub(uint128 x, uint128 y) pure internal returns (uint128) { return hsub(x, y); } function wmul(uint128 x, uint128 y) pure internal returns (uint128 z) { z = cast((uint256(x) * y + WAD / 2) / WAD); } function wdiv(uint128 x, uint128 y) pure internal returns (uint128 z) { z = cast((uint256(x) * WAD + y / 2) / y); } function wmin(uint128 x, uint128 y) pure internal returns (uint128) { return hmin(x, y); } function wmax(uint128 x, uint128 y) pure internal returns (uint128) { return hmax(x, y); } /* RAY math */ uint128 constant RAY = 10 ** 27; function radd(uint128 x, uint128 y) pure internal returns (uint128) { return hadd(x, y); } function rsub(uint128 x, uint128 y) pure internal returns (uint128) { return hsub(x, y); } function rmul(uint128 x, uint128 y) pure internal returns (uint128 z) { z = cast((uint256(x) * y + RAY / 2) / RAY); } function rdiv(uint128 x, uint128 y) pure internal returns (uint128 z) { z = cast((uint256(x) * RAY + y / 2) / y); } function rpow(uint128 x, uint64 n) pure internal returns (uint128 z) { // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } function rmin(uint128 x, uint128 y) pure internal returns (uint128) { return hmin(x, y); } function rmax(uint128 x, uint128 y) pure internal returns (uint128) { return hmax(x, y); } function cast(uint256 x) pure internal returns (uint128 z) { require((z = uint128(x)) == x); } } contract OwnedEvents { event LogSetOwner (address newOwner); } contract Owned is OwnedEvents { address public owner; function Owned() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function setOwner(address owner_) public onlyOwner { owner = owner_; LogSetOwner(owner); } } interface SecuredWithRolesI { function hasRole(string roleName) public view returns (bool); function senderHasRole(string roleName) public view returns (bool); function contractHash() public view returns (bytes32); } contract SecuredWithRoles is Owned { RolesI public roles; bytes32 public contractHash; bool public stopped = false; function SecuredWithRoles(string contractName_, address roles_) public { contractHash = keccak256(contractName_); roles = RolesI(roles_); } modifier stoppable() { require(!stopped); _; } modifier onlyRole(string role) { require(senderHasRole(role)); _; } modifier roleOrOwner(string role) { require(msg.sender == owner || senderHasRole(role)); _; } // returns true if the role has been defined for the contract function hasRole(string roleName) public view returns (bool) { return roles.knownRoleNames(contractHash, keccak256(roleName)); } function senderHasRole(string roleName) public view returns (bool) { return hasRole(roleName) && roles.roleList(contractHash, keccak256(roleName), msg.sender); } function stop() public roleOrOwner("stopper") { stopped = true; } function restart() public roleOrOwner("restarter") { stopped = false; } function setRolesContract(address roles_) public onlyOwner { // it must not be possible to change the roles contract on the roles contract itself require(this != address(roles)); roles = RolesI(roles_); } } interface RolesI { function knownRoleNames(bytes32 contractHash, bytes32 nameHash) public view returns (bool); function roleList(bytes32 contractHash, bytes32 nameHash, address member) public view returns (bool); function addContractRole(bytes32 ctrct, string roleName) public; function removeContractRole(bytes32 ctrct, string roleName) public; function grantUserRole(bytes32 ctrct, string roleName, address user) public; function revokeUserRole(bytes32 ctrct, string roleName, address user) public; } contract RolesEvents { event LogRoleAdded(bytes32 contractHash, string roleName); event LogRoleRemoved(bytes32 contractHash, string roleName); event LogRoleGranted(bytes32 contractHash, string roleName, address user); event LogRoleRevoked(bytes32 contractHash, string roleName, address user); } contract Roles is RolesEvents, SecuredWithRoles { // mapping is contract -> role -> sender_address -> boolean mapping(bytes32 => mapping (bytes32 => mapping (address => bool))) public roleList; // the intention is mapping (bytes32 => mapping (bytes32 => bool)) public knownRoleNames; function Roles() SecuredWithRoles("RolesRepository", this) public {} function addContractRole(bytes32 ctrct, string roleName) public roleOrOwner("admin") { require(!knownRoleNames[ctrct][keccak256(roleName)]); knownRoleNames[ctrct][keccak256(roleName)] = true; LogRoleAdded(ctrct, roleName); } function removeContractRole(bytes32 ctrct, string roleName) public roleOrOwner("admin") { require(knownRoleNames[ctrct][keccak256(roleName)]); delete knownRoleNames[ctrct][keccak256(roleName)]; LogRoleRemoved(ctrct, roleName); } function grantUserRole(bytes32 ctrct, string roleName, address user) public roleOrOwner("admin") { require(knownRoleNames[ctrct][keccak256(roleName)]); roleList[ctrct][keccak256(roleName)][user] = true; LogRoleGranted(ctrct, roleName, user); } function revokeUserRole(bytes32 ctrct, string roleName, address user) public roleOrOwner("admin") { delete roleList[ctrct][keccak256(roleName)][user]; LogRoleRevoked(ctrct, roleName, user); } } // Token standard API // https://github.com/ethereum/EIPs/issues/20 contract ERC20Events { event Transfer( address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value); } contract ERC20 is ERC20Events { function totalSupply() public view returns (uint256 supply); function balanceOf( address who ) public view returns (uint256 value); function allowance( address owner, address spender ) public view returns (uint256 _allowance); function transfer( address to, uint256 value) public returns (bool ok); function transferFrom( address from, address to, uint256 value) public returns (bool ok); function approve( address spender, uint256 value ) public returns (bool ok); } contract TokenData is Owned { uint256 public supply; mapping (address => uint256) public balances; mapping (address => mapping (address => uint256)) public approvals; address logic; modifier onlyLogic { assert(msg.sender == logic); _; } function TokenData(address logic_, address owner_) public { logic = logic_; owner = owner_; balances[owner] = supply; } function setTokenLogic(address logic_) public onlyLogic { logic = logic_; } function setSupply(uint256 supply_) public onlyLogic { supply = supply_; } function setBalances(address guy, uint256 balance) public onlyLogic { balances[guy] = balance; } function setApprovals(address src, address guy, uint256 wad) public onlyLogic { approvals[src][guy] = wad; } } interface TokenI { function totalSupply() public view returns (uint256 supply); function balanceOf( address who ) public view returns (uint256 value); function allowance( address owner, address spender ) public view returns (uint256 _allowance); function triggerTransfer(address src, address dst, uint256 wad); function transfer( address to, uint256 value) public returns (bool ok); function transferFrom( address from, address to, uint256 value) public returns (bool ok); function approve( address spender, uint256 value ) public returns (bool ok); function mintFor(address recipient, uint256 wad) public; } interface TokenLogicI { // we have slightly different interface then ERC20, because function totalSupply() public view returns (uint256 supply); function balanceOf( address who ) public view returns (uint256 value); function allowance( address owner, address spender ) public view returns (uint256 _allowance); function transferFrom( address from, address to, uint256 value) public returns (bool ok); // this two functions are different from ERC20. ERC20 assumes that msg.sender is the owner, // but because logic contract is behind a proxy we need to add an owner parameter. function transfer( address owner, address to, uint256 value) public returns (bool ok); function approve( address owner, address spender, uint256 value ) public returns (bool ok); function setToken(address token_) public; function mintFor(address dest, uint256 wad) public; function burn(address src, uint256 wad) public; } contract TokenLogicEvents { event WhiteListAddition(bytes32 listName); event AdditionToWhiteList(bytes32 listName, address guy); event WhiteListRemoval(bytes32 listName); event RemovalFromWhiteList(bytes32 listName, address guy); } contract TokenLogic is TokenLogicEvents, TokenLogicI, SecuredWithRoles { TokenData public data; Token public token; // facade: Token.sol:Token /* White lists are used to restrict who can transact with whom. * Since we can't iterate over the mapping we need to store the keys separaterly in the * listNames */ bytes32[] public listNames; mapping (address => mapping (bytes32 => bool)) public whiteLists; // by default there is no need for white listing addresses, anyone can transact freely bool public freeTransfer = true; function TokenLogic( address token_, address tokenData_, address rolesContract) public SecuredWithRoles("TokenLogic", rolesContract) { require(token_ != address(0x0)); require(rolesContract != address(0x0)); token = Token(token_); if (tokenData_ == address(0x0)) { data = new TokenData(this, msg.sender); } else { data = TokenData(tokenData_); } } modifier tokenOnly { assert(msg.sender == address(token)); _; } /* check that freeTransfer is true or that the owner is involved or both sender and recipient are in the same whitelist*/ modifier canTransfer(address src, address dst) { require(freeTransfer || src == owner || dst == owner || sameWhiteList(src, dst)); _; } function sameWhiteList(address src, address dst) internal view returns(bool) { for(uint8 i = 0; i < listNames.length; i++) { bytes32 listName = listNames[i]; if(whiteLists[src][listName] && whiteLists[dst][listName]) { return true; } } return false; } function listNamesLen() public view returns (uint256) { return listNames.length; } function listExists(bytes32 listName) public view returns (bool) { var (, ok) = indexOf(listName); return ok; } function indexOf(bytes32 listName) public view returns (uint8, bool) { for(uint8 i = 0; i < listNames.length; i++) { if(listNames[i] == listName) { return (i, true); } } return (0, false); } function replaceLogic(address newLogic) public onlyOwner { token.setLogic(TokenLogicI(newLogic)); data.setTokenLogic(newLogic); selfdestruct(owner); } /* creating a removeWhiteList would be too onerous. Therefore it does not exist*/ function addWhiteList(bytes32 listName) public onlyRole("admin") { require(! listExists(listName)); require(listNames.length < 256); listNames.push(listName); WhiteListAddition(listName); } function removeWhiteList(bytes32 listName) public onlyRole("admin") { var (i, ok) = indexOf(listName); require(ok); if(i < listNames.length - 1) { listNames[i] = listNames[listNames.length - 1]; } delete listNames[listNames.length - 1]; --listNames.length; WhiteListRemoval(listName); } function addToWhiteList(bytes32 listName, address guy) public onlyRole("userManager") { require(listExists(listName)); whiteLists[guy][listName] = true; AdditionToWhiteList(listName, guy); } function removeFromWhiteList(bytes32 listName, address guy) public onlyRole("userManager") { require(listExists(listName)); whiteLists[guy][listName] = false; RemovalFromWhiteList(listName, guy); } function setFreeTransfer(bool isFree) public onlyOwner { freeTransfer = isFree; } function setToken(address token_) public onlyOwner { token = Token(token_); } function totalSupply() public view returns (uint256) { return data.supply(); } function balanceOf(address src) public view returns (uint256) { return data.balances(src); } function allowance(address src, address spender) public view returns (uint256) { return data.approvals(src, spender); } function transfer(address src, address dst, uint256 wad) public tokenOnly canTransfer(src, dst) returns (bool) { // balance check is not needed because sub(a, b) will throw if a<b data.setBalances(src, Math.sub(data.balances(src), wad)); data.setBalances(dst, Math.add(data.balances(dst), wad)); return true; } function transferFrom(address src, address dst, uint256 wad) public tokenOnly canTransfer(src, dst) returns (bool) { // balance and approval check is not needed because sub(a, b) will throw if a<b data.setApprovals(src, dst, Math.sub(data.approvals(src, dst), wad)); data.setBalances(src, Math.sub(data.balances(src), wad)); data.setBalances(dst, Math.add(data.balances(dst), wad)); return true; } function approve(address src, address dst, uint256 wad) public tokenOnly returns (bool) { data.setApprovals(src, dst, wad); return true; } function mintFor(address dst, uint256 wad) public tokenOnly { data.setBalances(dst, Math.add(data.balances(dst), wad)); data.setSupply(Math.add(data.supply(), wad)); } function burn(address src, uint256 wad) public tokenOnly { data.setBalances(src, Math.sub(data.balances(src), wad)); data.setSupply(Math.sub(data.supply(), wad)); } } contract TokenEvents { event LogBurn(address indexed src, uint256 wad); event LogMint(address indexed src, uint256 wad); event LogLogicReplaced(address newLogic); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Contract that will work with ERC223 tokens. */ interface ERC223ReceivingContract { /** * @dev Standard ERC223 function that will handle incoming token transfers. * * @param src Token sender address. * @param wad Amount of tokens. * @param _data Transaction metadata. */ function tokenFallback(address src, uint wad, bytes _data) public; } contract Token is TokenI, SecuredWithRoles, TokenEvents { string public symbol; string public name; // Optional token name uint8 public decimals = 18; // standard token precision. override to customize TokenLogicI public logic; function Token(string name_, string symbol_, address rolesContract) public SecuredWithRoles(name_, rolesContract) { // you can't create logic here, because this contract would be the owner. name = name_; symbol = symbol_; } modifier logicOnly { require(address(logic) == address(0x0) || address(logic) == msg.sender); _; } function totalSupply() public view returns (uint256) { return logic.totalSupply(); } function balanceOf( address who ) public view returns (uint256 value) { return logic.balanceOf(who); } function allowance(address owner, address spender ) public view returns (uint256 _allowance) { return logic.allowance(owner, spender); } function triggerTransfer(address src, address dst, uint256 wad) logicOnly { Transfer(src, dst, wad); } function setLogic(address logic_) public logicOnly { assert(logic_ != address(0)); logic = TokenLogicI(logic_); LogLogicReplaced(logic); } /** * @dev Transfer the specified amount of tokens to the specified address. * Invokes the `tokenFallback` function if the recipient is a contract. * The token transfer fails if the recipient is a contract * but does not implement the `tokenFallback` function * or the fallback function to receive funds. */ function transfer(address dst, uint256 wad) public stoppable returns (bool) { bool retVal = logic.transfer(msg.sender, dst, wad); if (retVal) { uint codeLength; assembly { // Retrieve the size of the code on target address, this needs assembly . codeLength := extcodesize(dst) } if (codeLength>0) { ERC223ReceivingContract receiver = ERC223ReceivingContract(dst); bytes memory empty; receiver.tokenFallback(msg.sender, wad, empty); } Transfer(msg.sender, dst, wad); } return retVal; } function transferFrom(address src, address dst, uint256 wad) public stoppable returns (bool) { bool retVal = logic.transferFrom(src, dst, wad); if (retVal) { uint codeLength; assembly { // Retrieve the size of the code on target address, this needs assembly . codeLength := extcodesize(dst) } if (codeLength>0) { ERC223ReceivingContract receiver = ERC223ReceivingContract(dst); bytes memory empty; receiver.tokenFallback(src, wad, empty); } Transfer(src, dst, wad); } return retVal; } function approve(address guy, uint256 wad) public stoppable returns (bool) { bool ok = logic.approve(msg.sender, guy, wad); if (ok) Approval(msg.sender, guy, wad); return ok; } function pull(address src, uint256 wad) public stoppable returns (bool) { return transferFrom(src, msg.sender, wad); } function mintFor(address recipient, uint256 wad) public stoppable onlyRole("minter") { logic.mintFor(recipient, wad); LogMint(recipient, wad); Transfer(address(0x0), recipient, wad); } function burn(uint256 wad) public stoppable { logic.burn(msg.sender, wad); LogBurn(msg.sender, wad); } function setName(string name_) public roleOrOwner("admin") { name = name_; } } contract SweetTokenLogic is TokenLogic { function SweetTokenLogic( address token_, address tokenData_, address rolesContract, address[] initialWallets, uint256[] initialBalances) TokenLogic(token_, tokenData_, rolesContract) public { if (tokenData_ == address(0x0)) { uint256 totalSupply; require(initialBalances.length == initialWallets.length); for (uint256 i = 0; i < initialWallets.length; i++) { data.setBalances(initialWallets[i], initialBalances[i]); token.triggerTransfer(address(0x0), initialWallets[i], initialBalances[i]); totalSupply = Math.add(totalSupply, initialBalances[i]); } data.setSupply(totalSupply); } } function mintFor(address, uint256) public tokenOnly { // no more SweetTokens can be minted after the initial mint assert(false); } function burn(address, uint256) public tokenOnly { // burning is not possible assert(false); } } contract SweetToken is Token { function SweetToken(string name_, string symbol_, address rolesContract) public Token(name_, symbol_, rolesContract) { // you shouldn't create logic here, because this contract would be the owner. } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"roleName","type":"string"}],"name":"senderHasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"restart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roles","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"logic_","type":"address"}],"name":"setLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"roles_","type":"address"}],"name":"setRolesContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name_","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"logic","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"wad","type":"uint256"}],"name":"mintFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"_allowance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"triggerTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"roleName","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"pull","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"name_","type":"string"},{"name":"symbol_","type":"string"},{"name":"rolesContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"LogBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"LogMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newLogic","type":"address"}],"name":"LogLogicReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"LogSetOwner","type":"event"}]
Contract Creation Code
60606040526000600360006101000a81548160ff0219169083151502179055506012600660006101000a81548160ff021916908360ff16021790555034156200004757600080fd5b6040516200261f3803806200261f833981016040528080518201919060200180518201919060200180519060200190919050508282828281336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816040518082805190602001908083835b602083101515620000f75780518252602082019150602081019050602083039250620000d0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206002816000191690555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050826005908051906020019062000189929190620001af565b508160049080519060200190620001a2929190620001af565b505050505050506200025e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000223565b8280016001018555821562000223579182015b828111156200022257825182559160200191906001019062000205565b5b50905062000232919062000236565b5090565b6200025b91905b80821115620002575760008160009055506001016200023d565b5090565b90565b6123b1806200026e6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461015957806307da68f5146101e7578063095ea7b3146101fc57806313af40351461025657806318160ddd1461028f5780631ca03b8e146102b85780631ef3755d1461032d57806323b872dd14610342578063313ce567146103bb578063392f5f64146103ea57806342966c681461043f57806370a082311461046257806371857000146104af57806375f12b21146104e85780638da5cb5b14610515578063904c60941461056a57806395d89b411461059b578063a9059cbb14610629578063afa202ac14610683578063c47f0027146106bc578063d7dfa0dd14610719578063da1919b31461076e578063dd62ed3e146107b0578063e31a7c011461081c578063e3c33a9b1461087d578063f2d5d56b146108f2575b600080fd5b341561016457600080fd5b61016c61094c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101f257600080fd5b6101fa6109ea565b005b341561020757600080fd5b61023c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610aa9565b604051808215151515815260200191505060405180910390f35b341561026157600080fd5b61028d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c5c565b005b341561029a57600080fd5b6102a2610d7e565b6040518082815260200191505060405180910390f35b34156102c357600080fd5b610313600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e2e565b604051808215151515815260200191505060405180910390f35b341561033857600080fd5b610340610fac565b005b341561034d57600080fd5b6103a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061106b565b604051808215151515815260200191505060405180910390f35b34156103c657600080fd5b6103ce611361565b604051808260ff1660ff16815260200191505060405180910390f35b34156103f557600080fd5b6103fd611374565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044a57600080fd5b610460600480803590602001909190505061139a565b005b341561046d57600080fd5b610499600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114df565b6040518082815260200191505060405180910390f35b34156104ba57600080fd5b6104e6600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115c8565b005b34156104f357600080fd5b6104fb61177f565b604051808215151515815260200191505060405180910390f35b341561052057600080fd5b610528611792565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057557600080fd5b61057d6117b7565b60405180826000191660001916815260200191505060405180910390f35b34156105a657600080fd5b6105ae6117bd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ee5780820151818401526020810190506105d3565b50505050905090810190601f16801561061b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561063457600080fd5b610669600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061185b565b604051808215151515815260200191505060405180910390f35b341561068e57600080fd5b6106ba600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b50565b005b34156106c757600080fd5b610717600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c4c565b005b341561072457600080fd5b61072c611d08565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561077957600080fd5b6107ae600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d2e565b005b34156107bb57600080fd5b610806600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f25565b6040518082815260200191505060405180910390f35b341561082757600080fd5b61087b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612043565b005b341561088857600080fd5b6108d8600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612162565b604051808215151515815260200191505060405180910390f35b34156108fd57600080fd5b610932600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061229b565b604051808215151515815260200191505060405180910390f35b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e25780601f106109b7576101008083540402835291602001916109e2565b820191906000526020600020905b8154815290600101906020018083116109c557829003601f168201915b505050505081565b6040805190810160405280600781526020017f73746f70706572000000000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a805750610a7f81610e2e565b5b1515610a8b57600080fd5b6001600360006101000a81548160ff02191690831515021790555050565b600080600360009054906101000a900460ff16151515610ac857600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c673386866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515610bc957600080fd5b6102c65a03f11515610bda57600080fd5b5050506040518051905090508015610c52578373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b8091505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cb757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed946000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610e0e57600080fd5b6102c65a03f11515610e1f57600080fd5b50505060405180519050905090565b6000610e3982612162565b8015610fa55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b51ca42600254846040518082805190602001908083835b602083101515610eb75780518252602082019150602081019050602083039250610e92565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020336000604051602001526040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610f8957600080fd5b6102c65a03f11515610f9a57600080fd5b505050604051805190505b9050919050565b6040805190810160405280600981526020017f72657374617274657200000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611042575061104181610e2e565b5b151561104d57600080fd5b6000600360006101000a81548160ff02191690831515021790555050565b6000806000806110796122cc565b600360009054906101000a900460ff1615151561109557600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8989896000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561119657600080fd5b6102c65a03f115156111a757600080fd5b505050604051805190509350831561135357863b925060008311156112ed578691508173ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a8988846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561128b578082015181840152602081019050611270565b50505050905090810190601f1680156112b85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15156112d857600080fd5b6102c65a03f115156112e957600080fd5b5050505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b839450505050509392505050565b600660009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff161515156113b657600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561147a57600080fd5b6102c65a03f1151561148b57600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581826040518082815260200191505060405180910390a250565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156115a657600080fd5b6102c65a03f115156115b757600080fd5b505050604051805190509050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061167257503373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561167d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b657fe5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ffe2210ec3c91da0ee4bf50e5962a84bb51e9e2196c49c371b20c2b5226974e5e600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118535780601f1061182857610100808354040283529160200191611853565b820191906000526020600020905b81548152906001019060200180831161183657829003601f168201915b505050505081565b6000806000806118696122cc565b600360009054906101000a900460ff1615151561188557600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc83389896000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561198657600080fd5b6102c65a03f1151561199757600080fd5b5050506040518051905093508315611b4357863b92506000831115611add578691508173ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3388846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a7b578082015181840152602081019050611a60565b50505050905090810190601f168015611aa85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611ac857600080fd5b6102c65a03f11515611ad957600080fd5b5050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b8394505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bab57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614151515611c0857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ce25750611ce181610e2e565b5b1515611ced57600080fd5b8160059080519060200190611d039291906122e0565b505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff16151515611d4a57600080fd5b6040805190810160405280600681526020017f6d696e7465720000000000000000000000000000000000000000000000000000815250611d8981610e2e565b1515611d9457600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da1919b384846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611e5857600080fd5b6102c65a03f11515611e6957600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167f9f494565851dbcb31fb5198ca217cda6833282fadb96ba9431bd19c82afc1dd3836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561202057600080fd5b6102c65a03f1151561203157600080fd5b50505060405180519050905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806120ed57503373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15156120f857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633037cea3600254846040518082805190602001908083835b6020831015156121db57805182526020820191506020810190506020830392506121b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b151561227957600080fd5b6102c65a03f1151561228a57600080fd5b505050604051805190509050919050565b6000600360009054906101000a900460ff161515156122b957600080fd5b6122c483338461106b565b905092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061232157805160ff191683800117855561234f565b8280016001018555821561234f579182015b8281111561234e578251825591602001919060010190612333565b5b50905061235c9190612360565b5090565b61238291905b8082111561237e576000816000905550600101612366565b5090565b905600a165627a7a72305820ffd348625cdca6e26266457481b24f94c1a36e63f08cfe41a77c2b569f4881a00029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000faf52e46655b947841c0c3699b261ea5a805875e000000000000000000000000000000000000000000000000000000000000000a5377656574546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035357430000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461015957806307da68f5146101e7578063095ea7b3146101fc57806313af40351461025657806318160ddd1461028f5780631ca03b8e146102b85780631ef3755d1461032d57806323b872dd14610342578063313ce567146103bb578063392f5f64146103ea57806342966c681461043f57806370a082311461046257806371857000146104af57806375f12b21146104e85780638da5cb5b14610515578063904c60941461056a57806395d89b411461059b578063a9059cbb14610629578063afa202ac14610683578063c47f0027146106bc578063d7dfa0dd14610719578063da1919b31461076e578063dd62ed3e146107b0578063e31a7c011461081c578063e3c33a9b1461087d578063f2d5d56b146108f2575b600080fd5b341561016457600080fd5b61016c61094c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ac578082015181840152602081019050610191565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101f257600080fd5b6101fa6109ea565b005b341561020757600080fd5b61023c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610aa9565b604051808215151515815260200191505060405180910390f35b341561026157600080fd5b61028d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c5c565b005b341561029a57600080fd5b6102a2610d7e565b6040518082815260200191505060405180910390f35b34156102c357600080fd5b610313600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e2e565b604051808215151515815260200191505060405180910390f35b341561033857600080fd5b610340610fac565b005b341561034d57600080fd5b6103a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061106b565b604051808215151515815260200191505060405180910390f35b34156103c657600080fd5b6103ce611361565b604051808260ff1660ff16815260200191505060405180910390f35b34156103f557600080fd5b6103fd611374565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561044a57600080fd5b610460600480803590602001909190505061139a565b005b341561046d57600080fd5b610499600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114df565b6040518082815260200191505060405180910390f35b34156104ba57600080fd5b6104e6600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115c8565b005b34156104f357600080fd5b6104fb61177f565b604051808215151515815260200191505060405180910390f35b341561052057600080fd5b610528611792565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057557600080fd5b61057d6117b7565b60405180826000191660001916815260200191505060405180910390f35b34156105a657600080fd5b6105ae6117bd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ee5780820151818401526020810190506105d3565b50505050905090810190601f16801561061b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561063457600080fd5b610669600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061185b565b604051808215151515815260200191505060405180910390f35b341561068e57600080fd5b6106ba600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b50565b005b34156106c757600080fd5b610717600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c4c565b005b341561072457600080fd5b61072c611d08565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561077957600080fd5b6107ae600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d2e565b005b34156107bb57600080fd5b610806600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f25565b6040518082815260200191505060405180910390f35b341561082757600080fd5b61087b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612043565b005b341561088857600080fd5b6108d8600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612162565b604051808215151515815260200191505060405180910390f35b34156108fd57600080fd5b610932600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061229b565b604051808215151515815260200191505060405180910390f35b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109e25780601f106109b7576101008083540402835291602001916109e2565b820191906000526020600020905b8154815290600101906020018083116109c557829003601f168201915b505050505081565b6040805190810160405280600781526020017f73746f70706572000000000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a805750610a7f81610e2e565b5b1515610a8b57600080fd5b6001600360006101000a81548160ff02191690831515021790555050565b600080600360009054906101000a900460ff16151515610ac857600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c673386866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515610bc957600080fd5b6102c65a03f11515610bda57600080fd5b5050506040518051905090508015610c52578373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a35b8091505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cb757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed946000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610e0e57600080fd5b6102c65a03f11515610e1f57600080fd5b50505060405180519050905090565b6000610e3982612162565b8015610fa55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b51ca42600254846040518082805190602001908083835b602083101515610eb75780518252602082019150602081019050602083039250610e92565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020336000604051602001526040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1515610f8957600080fd5b6102c65a03f11515610f9a57600080fd5b505050604051805190505b9050919050565b6040805190810160405280600981526020017f72657374617274657200000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611042575061104181610e2e565b5b151561104d57600080fd5b6000600360006101000a81548160ff02191690831515021790555050565b6000806000806110796122cc565b600360009054906101000a900460ff1615151561109557600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8989896000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561119657600080fd5b6102c65a03f115156111a757600080fd5b505050604051805190509350831561135357863b925060008311156112ed578691508173ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a8988846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561128b578082015181840152602081019050611270565b50505050905090810190601f1680156112b85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15156112d857600080fd5b6102c65a03f115156112e957600080fd5b5050505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b839450505050509392505050565b600660009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff161515156113b657600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561147a57600080fd5b6102c65a03f1151561148b57600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581826040518082815260200191505060405180910390a250565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156115a657600080fd5b6102c65a03f115156115b757600080fd5b505050604051805190509050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061167257503373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b151561167d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b657fe5b80600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ffe2210ec3c91da0ee4bf50e5962a84bb51e9e2196c49c371b20c2b5226974e5e600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600360009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118535780601f1061182857610100808354040283529160200191611853565b820191906000526020600020905b81548152906001019060200180831161183657829003601f168201915b505050505081565b6000806000806118696122cc565b600360009054906101000a900460ff1615151561188557600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc83389896000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561198657600080fd5b6102c65a03f1151561199757600080fd5b5050506040518051905093508315611b4357863b92506000831115611add578691508173ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3388846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a7b578082015181840152602081019050611a60565b50505050905090810190601f168015611aa85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515611ac857600080fd5b6102c65a03f11515611ad957600080fd5b5050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b8394505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bab57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614151515611c0857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600581526020017f61646d696e0000000000000000000000000000000000000000000000000000008152506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611ce25750611ce181610e2e565b5b1515611ced57600080fd5b8160059080519060200190611d039291906122e0565b505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff16151515611d4a57600080fd5b6040805190810160405280600681526020017f6d696e7465720000000000000000000000000000000000000000000000000000815250611d8981610e2e565b1515611d9457600080fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da1919b384846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515611e5857600080fd5b6102c65a03f11515611e6957600080fd5b5050508273ffffffffffffffffffffffffffffffffffffffff167f9f494565851dbcb31fb5198ca217cda6833282fadb96ba9431bd19c82afc1dd3836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561202057600080fd5b6102c65a03f1151561203157600080fd5b50505060405180519050905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806120ed57503373ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15156120f857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633037cea3600254846040518082805190602001908083835b6020831015156121db57805182526020820191506020810190506020830392506121b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b151561227957600080fd5b6102c65a03f1151561228a57600080fd5b505050604051805190509050919050565b6000600360009054906101000a900460ff161515156122b957600080fd5b6122c483338461106b565b905092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061232157805160ff191683800117855561234f565b8280016001018555821561234f579182015b8281111561234e578251825591602001919060010190612333565b5b50905061235c9190612360565b5090565b61238291905b8082111561237e576000816000905550600101612366565b5090565b905600a165627a7a72305820ffd348625cdca6e26266457481b24f94c1a36e63f08cfe41a77c2b569f4881a00029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000faf52e46655b947841c0c3699b261ea5a805875e000000000000000000000000000000000000000000000000000000000000000a5377656574546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035357430000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): SweetToken
Arg [1] : symbol_ (string): SWC
Arg [2] : rolesContract (address): 0xfAF52e46655b947841c0c3699b261EA5a805875E
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000faf52e46655b947841c0c3699b261ea5a805875e
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 5377656574546f6b656e00000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 5357430000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://ffd348625cdca6e26266457481b24f94c1a36e63f08cfe41a77c2b569f4881a0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.