ERC-20
Overview
Max Total Supply
285,889.57800620589534083 PEG:USD
Holders
181
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 PEG:USDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DebtToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-08 */ pragma solidity ^0.4.23; contract AntiERC20Sink { address public deployer; constructor() public { deployer = msg.sender; } function transferERC20Token(IERC20Token _token, address _to, uint256 _amount) public { require(msg.sender == deployer); _token.transfer(_to, _amount); } } library SafeMath { function plus(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; assert(c >= _a); return c; } function plus(int256 _a, int256 _b) internal pure returns (int256) { int256 c = _a + _b; assert((_b >= 0 && c >= _a) || (_b < 0 && c < _a)); return c; } function minus(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_a >= _b); return _a - _b; } function minus(int256 _a, int256 _b) internal pure returns (int256) { int256 c = _a - _b; assert((_b >= 0 && c <= _a) || (_b < 0 && c > _a)); return c; } function times(uint256 _a, uint256 _b) internal pure returns (uint256) { if (_a == 0) { return 0; } uint256 c = _a * _b; assert(c / _a == _b); return c; } function times(int256 _a, int256 _b) internal pure returns (int256) { if (_a == 0) { return 0; } int256 c = _a * _b; assert(c / _a == _b); return c; } function toInt256(uint256 _a) internal pure returns (int256) { assert(_a <= 2 ** 255); return int256(_a); } function toUint256(int256 _a) internal pure returns (uint256) { assert(_a >= 0); return uint256(_a); } function div(uint256 _a, uint256 _b) internal pure returns (uint256) { return _a / _b; } function div(int256 _a, int256 _b) internal pure returns (int256) { return _a / _b; } } /* ERC20 Standard Token interface */ contract IERC20Token { // these functions aren't abstract since the compiler emits automatically generated getter functions as external function name() public constant returns (string) {} function symbol() public constant returns (string) {} function decimals() public constant returns (uint8) {} function totalSupply() public constant returns (uint256) {} function balanceOf(address _owner) public constant returns (uint256) { _owner; } function allowance(address _owner, address _spender) public constant returns (uint256) { _owner; _spender; } function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); } /* Owned contract interface */ contract IOwned { // this function isn't abstract since the compiler emits automatically generated getter functions as external function owner() public constant returns (address) {} function transferOwnership(address _newOwner) public; function acceptOwnership() public; function setOwner(address _newOwner) public; } contract Vault { PegInstance public pegInstance; address public owner; uint256 public totalBorrowed; uint256 public rawDebt; uint256 public timestamp; constructor(PegInstance _pegInstance, address _owner) public { pegInstance = _pegInstance; owner = _owner; } modifier authOnly() { require(pegInstance.authorized(msg.sender)); _; } function setOwner(address _newOwner) public authOnly { owner = _newOwner; } function setRawDebt(uint _newRawDebt) public authOnly { rawDebt = _newRawDebt; } function setTotalBorrowed(uint _totalBorrowed) public authOnly { totalBorrowed = _totalBorrowed; } function setTimestamp(uint256 _timestamp) public authOnly { timestamp = _timestamp; } function payoutPEG(address _to, uint _amount) public authOnly { pegInstance.pegNetworkToken().transfer(_to, _amount); } function burnPEG(uint _amount) public authOnly { pegInstance.pegNetworkToken().destroy(address(this), _amount); } function transferERC20Token(IERC20Token _token, address _to, uint256 _amount) public authOnly { _token.transfer(_to, _amount); } } contract IPegOracle { function getValue() public view returns (uint256); } /* Smart Token interface */ contract ISmartToken is IOwned, IERC20Token { function disableTransfers(bool _disable) public; function issue(address _to, uint256 _amount) public; function destroy(address _from, uint256 _amount) public; } contract PegLogic is AntiERC20Sink { using SafeMath for uint256; using SafeMath for int256; ISmartToken public pegNetworkToken; PegInstance public pegInstance; constructor(ISmartToken _pegNetworkToken, PegInstance _pegInstance) public { pegNetworkToken = _pegNetworkToken; pegInstance = _pegInstance; } modifier vaultExists(Vault _vault) { require(pegInstance.vaultExists(_vault)); _; } modifier authOnly() { require(pegInstance.authorized(msg.sender)); _; } function newVault() public returns (Vault) { // pegNetworkToken.destroy(msg.sender, 1e18); charge a fee? Vault vault = new Vault(pegInstance, msg.sender); pegInstance.addNewVault(vault, msg.sender); return vault; } function getTotalCredit(Vault _vault) public view vaultExists(_vault) returns (int256) { uint256 oraclePrice = pegInstance.oracle().getValue(); return (pegNetworkToken.balanceOf(_vault).times(oraclePrice).times(pegInstance.maxBorrowLTV()) / 1e12).toInt256(); } function getAvailableCredit(Vault _vault) public view returns (int256) { return getTotalCredit(_vault).minus(actualDebt(_vault).toInt256()); } function borrow(Vault _vault, uint256 _amount) public vaultExists(_vault) { require(_vault.owner() == msg.sender && _amount.toInt256() <= getAvailableCredit(_vault)); _vault.setRawDebt(_vault.rawDebt().plus(debtActualToRaw(_amount))); _vault.setTotalBorrowed(_vault.totalBorrowed().plus(_amount)); pegInstance.debtToken().issue(msg.sender, _amount); pegInstance.emitBorrow(_vault, _amount); } function repay(Vault _vault, uint256 _amount) public vaultExists(_vault) { uint amountToRepay = _amount; if (actualDebt(_vault) < _amount) amountToRepay = actualDebt(_vault); pegInstance.debtToken().destroy(msg.sender, amountToRepay); _vault.setRawDebt(_vault.rawDebt().minus(debtActualToRaw(amountToRepay))); _vault.setTotalBorrowed(_vault.totalBorrowed().minus(amountToRepay)); pegInstance.emitRepay(_vault, amountToRepay); } function requiredCollateral(Vault _vault) public view vaultExists(_vault) returns (uint256) { return actualDebt(_vault).times(1e12) / pegInstance.oracle().getValue() / pegInstance.maxBorrowLTV(); } function getExcessCollateral(Vault _vault) public view returns (int256) { return int(pegNetworkToken.balanceOf(_vault)).minus(int(requiredCollateral(_vault))); } function liquidate(Vault _vault) public { require(actualDebt(_vault) > 0); uint requiredPEG = actualDebt(_vault).times(1e12) / pegInstance.oracle().getValue() / pegInstance.liquidationRatio(); require(pegNetworkToken.balanceOf(_vault) < requiredPEG); require(pegInstance.debtToken().balanceOf(msg.sender) >= actualDebt(_vault)); pegInstance.debtToken().destroy(msg.sender, actualDebt(_vault)); _vault.setRawDebt(0); _vault.setOwner(msg.sender); } function reportPriceToTargetValue(bool _aboveValue) public authOnly { if(_aboveValue) { pegInstance.setDebtScalingRate(pegInstance.debtScalingPerBlock().plus(1e8)); pegInstance.setDebtTokenScalingRate(pegInstance.debtTokenScalingPerBlock().plus(1e8)); }else{ pegInstance.setDebtScalingRate(pegInstance.debtScalingPerBlock().minus(1e8)); pegInstance.setDebtTokenScalingRate(pegInstance.debtTokenScalingPerBlock().minus(1e8)); } } function debtRawToActual(uint256 _raw) public view returns(uint256) { return _raw.times(1e18) / pegInstance.debtScalingFactor(); } function debtActualToRaw(uint256 _actual) public view returns(uint256) { return _actual.times(pegInstance.debtScalingFactor()) / 1e18; } function withdrawExcessCollateral(Vault _vault, address _to, uint256 _amount) public { require(msg.sender == _vault.owner()); require(_amount.toInt256() <= getExcessCollateral(_vault)); _vault.payoutPEG(_to, _amount); pegInstance.emitWithdraw(_vault, _amount); } function actualDebt(Vault _vault) public view returns(uint) { return debtRawToActual(_vault.rawDebt()); } } contract PegInstance { using SafeMath for uint256; using SafeMath for int256; ISmartToken public pegNetworkToken; uint8 public constant version = 0; IPegOracle public oracle; DebtToken public debtToken; PegLogic public pegLogic; address[] public vaults; mapping (address => bool) public vaultExists; mapping (address => bool) public authorized; uint32 public liquidationRatio = 850000; uint32 public maxBorrowLTV = 100000; uint256 public lastDebtTokenScalingFactor = 1e18; uint256 public lastDebtTokenScalingRetarget; int256 public debtTokenScalingPerBlock; uint256 public lastDebtScalingFactor = 1e18; uint256 public lastDebtScalingRetarget; int256 public debtScalingPerBlock; uint256 public amountMinted; event LiquidateVault(address indexed _vault); event Borrow(address indexed _vault, uint256 amount); event Repay(address indexed _vault, uint256 amount); event Withdraw(address indexed _vault, uint256 amount); event LiquidationRatioUpdate(int _old, int _new); event MaxBorrowUpdate(uint32 _old, uint32 _new); event DebtTokenScalingRateUpdate(int _old, int _new); event DebtScalingRateUpdate(int _old, int _new); event NewVault(address indexed _vault, address indexed _vaultOwner); event LogicUpgrade(address _old, address _new); event DebtTokenUpgrade(address _old, address _new); event OracleUpgrade(address _old, address _new); event Authorize(address _address, bool _auth); constructor(ISmartToken _pegNetworkToken) public { pegNetworkToken = _pegNetworkToken; authorized[msg.sender] = true; } modifier authOnly() { require(authorized[msg.sender] == true); _; } function setDebtToken(DebtToken _debtToken) public authOnly { emit DebtTokenUpgrade(address(debtToken), address(_debtToken)); debtToken = _debtToken; } function setOracle(IPegOracle _oracle) public authOnly { emit OracleUpgrade(address(oracle), address(_oracle)); oracle = _oracle; } function setPegLogic(PegLogic _pegLogic) public authOnly { emit LogicUpgrade(address(pegLogic), address(_pegLogic)); authorized[address(_pegLogic)] = true; authorized[address(pegLogic)] = false; pegLogic = _pegLogic; } function authorize(address _address, bool _auth) public authOnly { emit Authorize(_address, _auth); authorized[_address] = _auth; } function setLiquidationRatio(uint32 _liquidationRatio) public authOnly { emit LiquidationRatioUpdate(liquidationRatio, _liquidationRatio); liquidationRatio = _liquidationRatio; } function setMaxBorrowLTV(uint32 _maxBorrowLTV) public authOnly { emit MaxBorrowUpdate(maxBorrowLTV, _maxBorrowLTV); maxBorrowLTV = _maxBorrowLTV; } function setDebtTokenScalingRate(int256 _debtTokenScalingPerBlock) public authOnly { emit DebtTokenScalingRateUpdate(debtTokenScalingPerBlock, _debtTokenScalingPerBlock); lastDebtTokenScalingFactor = debtTokenScalingFactor(); lastDebtTokenScalingRetarget = block.number; debtTokenScalingPerBlock = _debtTokenScalingPerBlock; } function setDebtScalingRate(int256 _debtScalingPerBlock) public authOnly { emit DebtScalingRateUpdate(debtScalingPerBlock, _debtScalingPerBlock); lastDebtScalingFactor = debtScalingFactor(); lastDebtScalingRetarget = block.number; debtScalingPerBlock = _debtScalingPerBlock; } function setAmountMinted(uint _amountMinted) public authOnly { amountMinted = _amountMinted; } function addNewVault(Vault _vault, address _vaultOwner) public authOnly { emit NewVault(address(_vault), _vaultOwner); vaults.push(_vault); vaultExists[_vault] = true; } function emitBorrow(Vault _vault, uint256 _amount) public authOnly { emit Borrow(address(_vault), _amount); } function emitRepay(Vault _vault, uint256 _amount) public authOnly { emit Repay(address(_vault), _amount); } function emitWithdraw(Vault _vault, uint256 _amount) public authOnly { emit Withdraw(address(_vault), _amount); } function emitLiquidateVault(Vault _vault) public authOnly { emit LiquidateVault(address(_vault)); } function getVaults() public view returns (address[]) { return vaults; } function debtTokenScalingFactor() public view returns (uint) { return uint(int(lastDebtTokenScalingFactor).plus(debtTokenScalingPerBlock.times(int(block.number.minus(lastDebtTokenScalingRetarget))))); } function debtScalingFactor() public view returns (uint) { return uint(int(lastDebtScalingFactor).plus(debtScalingPerBlock.times(int(block.number.minus(lastDebtScalingRetarget))))); } function transferERC20Token(IERC20Token _token, address _to, uint256 _amount) public authOnly { _token.transfer(_to, _amount); } } contract DebtToken is IERC20Token { using SafeMath for uint256; string public name; string public symbol; uint8 public decimals = 18; PegInstance public pegInstance; uint256 public rawTotalSupply; mapping (address => uint256) public rawBalance; mapping (address => mapping (address => uint256)) public rawAllowance; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); event Issuance(uint256 amount); event Destruction(uint256 amount); constructor(string _name, string _symbol, PegInstance _pegInstance) public { require(bytes(_name).length > 0 && bytes(_symbol).length > 0); name = _name; symbol = _symbol; pegInstance = _pegInstance; } modifier validAddress(address _address) { require(_address != address(0)); _; } modifier authOnly() { require(pegInstance.authorized(msg.sender)); _; } function rawToActual(uint256 _raw) public view returns(uint256) { return _raw.times(1e18) / pegInstance.debtTokenScalingFactor(); } function actualToRaw(uint256 _actual) public view returns(uint256) { return _actual.times(pegInstance.debtTokenScalingFactor()) / 1e18; } function balanceOf(address _address) public view returns(uint256) { return rawToActual(rawBalance[_address]); } function totalSupply() public view returns (uint256) { return rawToActual(rawTotalSupply); } function allowance(address _owner, address _spender) public view returns (uint256) { return rawToActual(rawAllowance[_owner][_spender]); } function transfer(address _to, uint256 _amount) public validAddress(_to) returns (bool) { rawBalance[msg.sender] = rawBalance[msg.sender].minus(actualToRaw(_amount)); rawBalance[_to] = rawBalance[_to].plus(actualToRaw(_amount)); emit Transfer(msg.sender, _to, _amount); return true; } function transferFrom(address _from, address _to, uint256 _amount) public validAddress(_from) validAddress(_to) returns (bool) { rawAllowance[_from][msg.sender] = rawAllowance[_from][msg.sender].minus(actualToRaw(_amount)); rawBalance[_from] = rawBalance[_from].minus(actualToRaw(_amount)); rawBalance[_to] = rawBalance[_to].plus(actualToRaw(_amount)); emit Transfer(_from, _to, _amount); return true; } function approve(address _spender, uint256 _amount) public validAddress(_spender) returns (bool) { require(_amount == 0 || rawAllowance[msg.sender][_spender] == 0); rawAllowance[msg.sender][_spender] = actualToRaw(_amount); emit Approval(msg.sender, _spender, _amount); return true; } function issue(address _to, uint256 _amount) public validAddress(_to) authOnly { rawTotalSupply = rawTotalSupply.plus(actualToRaw(_amount)); rawBalance[_to] = rawBalance[_to].plus(actualToRaw(_amount)); emit Issuance(_amount); emit Transfer(this, _to, _amount); } function destroy(address _from, uint256 _amount) public validAddress(_from) authOnly { rawBalance[_from] = rawBalance[_from].minus(actualToRaw(_amount)); rawTotalSupply = rawTotalSupply.minus(actualToRaw(_amount)); emit Transfer(_from, this, _amount); emit Destruction(_amount); } function setName(string _name) public authOnly { name = _name; } function setSymbol(string _symbol) public authOnly { symbol = _symbol; } function transferERC20Token(IERC20Token _token, address _to, uint256 _amount) validAddress(_to) public { require(pegInstance.authorized(msg.sender)); _token.transfer(_to, _amount); } }
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":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"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":"_actual","type":"uint256"}],"name":"actualToRaw","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","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":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rawBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferERC20Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rawTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pegInstance","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"rawAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","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":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_raw","type":"uint256"}],"name":"rawToActual","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_pegInstance","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issuance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Destruction","type":"event"}]
Contract Creation Code
60806040526012600260006101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200208038038062002080833981018060405281019080805182019291906020018051820192919060200180519060200190929190505050600083511180156200007c575060008251115b15156200008857600080fd5b8260009080519060200190620000a092919062000104565b508160019080519060200190620000b992919062000104565b5080600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620001b3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014757805160ff191683800117855562000178565b8280016001018555821562000178579182015b82811115620001775782518255916020019190600101906200015a565b5b5090506200018791906200018b565b5090565b620001b091905b80821115620001ac57600081600090555060010162000192565b5090565b90565b611ebd80620001c36000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610117578063095ea7b3146101a757806318160ddd1461020c5780631d1b6e541461023757806323b872dd14610278578063313ce567146102fd57806370a082311461032e578063867904b4146103855780638a0effd2146103d257806392940bf91461042957806395d89b4114610496578063a24835d114610526578063a592d9ec14610573578063a9059cbb1461059e578063af894d3814610603578063b76e76b11461065a578063b84c8246146106d1578063c47f00271461073a578063dd62ed3e146107a3578063ee5ba13b1461081a575b600080fd5b34801561012357600080fd5b5061012c61085b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016c578082015181840152602081019050610151565b50505050905090810190601f1680156101995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101b357600080fd5b506101f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f9565b604051808215151515815260200191505060405180910390f35b34801561021857600080fd5b50610221610ac7565b6040518082815260200191505060405180910390f35b34801561024357600080fd5b5061026260048036038101908080359060200190929190505050610ad9565b6040518082815260200191505060405180910390f35b34801561028457600080fd5b506102e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc8565b604051808215151515815260200191505060405180910390f35b34801561030957600080fd5b50610312610f07565b604051808260ff1660ff16815260200191505060405180910390f35b34801561033a57600080fd5b5061036f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f1a565b6040518082815260200191505060405180910390f35b34801561039157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6b565b005b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061120c565b6040518082815260200191505060405180910390f35b34801561043557600080fd5b50610494600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611224565b005b3480156104a257600080fd5b506104ab611449565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104eb5780820151818401526020810190506104d0565b50505050905090810190601f1680156105185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053257600080fd5b50610571600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e7565b005b34801561057f57600080fd5b50610588611788565b6040518082815260200191505060405180910390f35b3480156105aa57600080fd5b506105e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061178e565b604051808215151515815260200191505060405180910390f35b34801561060f57600080fd5b50610618611977565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066657600080fd5b506106bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199d565b6040518082815260200191505060405180910390f35b3480156106dd57600080fd5b50610738600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506119c2565b005b34801561074657600080fd5b506107a1600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611adf565b005b3480156107af57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bfc565b6040518082815260200191505060405180910390f35b34801561082657600080fd5b5061084560048036038101908080359060200190929190505050611c8b565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f15780601f106108c6576101008083540402835291602001916108f1565b820191906000526020600020905b8154815290600101906020018083116108d457829003601f168201915b505050505081565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561093857600080fd5b60008314806109c357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156109ce57600080fd5b6109d783610ad9565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6000610ad4600354611c8b565b905090565b6000670de0b6b3a7640000610bb7600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31626516040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b6d57600080fd5b505af1158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b810190808051906020019092919050505084611d7a90919063ffffffff16565b811515610bc057fe5b049050919050565b600083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c0757600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c4457600080fd5b610cdb610c5085610ad9565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db5610d6785610ad9565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e52610e0485610ad9565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b600260009054906101000a900460ff1681565b6000610f64600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b9050919050565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fa857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561106557600080fd5b505af1158015611079573d6000803e3d6000fd5b505050506040513d602081101561108f57600080fd5b810190808051906020019092919050505015156110ab57600080fd5b6110c86110b783610ad9565b600354611dce90919063ffffffff16565b6003819055506111286110da83610ad9565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3826040518082815260200191505060405180910390a18273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b60046020528060005260406000206000915090505481565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561126157600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050506040513d602081101561134857600080fd5b8101908080519060200190929190505050151561136457600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d602081101561143157600080fd5b81019080805190602001909291905050505050505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114df5780601f106114b4576101008083540402835291602001916114df565b820191906000526020600020905b8154815290600101906020018083116114c257829003601f168201915b505050505081565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561152457600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115e157600080fd5b505af11580156115f5573d6000803e3d6000fd5b505050506040513d602081101561160b57600080fd5b8101908080519060200190929190505050151561162757600080fd5b61168161163383610ad9565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e16116d083610ad9565b600354611db590919063ffffffff16565b6003819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd3453826040518082815260200191505060405180910390a1505050565b60035481565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117cd57600080fd5b6118276117d984610ad9565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118c461187684610ad9565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a7f57600080fd5b505af1158015611a93573d6000803e3d6000fd5b505050506040513d6020811015611aa957600080fd5b81019080805190602001909291905050501515611ac557600080fd5b8060019080519060200190611adb929190611dec565b5050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b505050506040513d6020811015611bc657600080fd5b81019080805190602001909291905050501515611be257600080fd5b8060009080519060200190611bf8929190611dec565b5050565b6000611c83600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b905092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31626516040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d1357600080fd5b505af1158015611d27573d6000803e3d6000fd5b505050506040513d6020811015611d3d57600080fd5b8101908080519060200190929190505050611d69670de0b6b3a764000084611d7a90919063ffffffff16565b811515611d7257fe5b049050919050565b6000806000841415611d8f5760009150611dae565b8284029050828482811515611da057fe5b04141515611daa57fe5b8091505b5092915050565b6000818310151515611dc357fe5b818303905092915050565b6000808284019050838110151515611de257fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e2d57805160ff1916838001178555611e5b565b82800160010185558215611e5b579182015b82811115611e5a578251825591602001919060010190611e3f565b5b509050611e689190611e6c565b5090565b611e8e91905b80821115611e8a576000816000905550600101611e72565b5090565b905600a165627a7a7230582042490077827efb1d2e18d063ee25eeae043d42d756a41b8e08d5b68542d7d78e0029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000003d6a8a3d37feca3f8e988a25d267312d35fe3879000000000000000000000000000000000000000000000000000000000000000d5045473a555320446f6c6c61720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075045473a55534400000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610117578063095ea7b3146101a757806318160ddd1461020c5780631d1b6e541461023757806323b872dd14610278578063313ce567146102fd57806370a082311461032e578063867904b4146103855780638a0effd2146103d257806392940bf91461042957806395d89b4114610496578063a24835d114610526578063a592d9ec14610573578063a9059cbb1461059e578063af894d3814610603578063b76e76b11461065a578063b84c8246146106d1578063c47f00271461073a578063dd62ed3e146107a3578063ee5ba13b1461081a575b600080fd5b34801561012357600080fd5b5061012c61085b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016c578082015181840152602081019050610151565b50505050905090810190601f1680156101995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101b357600080fd5b506101f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f9565b604051808215151515815260200191505060405180910390f35b34801561021857600080fd5b50610221610ac7565b6040518082815260200191505060405180910390f35b34801561024357600080fd5b5061026260048036038101908080359060200190929190505050610ad9565b6040518082815260200191505060405180910390f35b34801561028457600080fd5b506102e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc8565b604051808215151515815260200191505060405180910390f35b34801561030957600080fd5b50610312610f07565b604051808260ff1660ff16815260200191505060405180910390f35b34801561033a57600080fd5b5061036f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f1a565b6040518082815260200191505060405180910390f35b34801561039157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6b565b005b3480156103de57600080fd5b50610413600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061120c565b6040518082815260200191505060405180910390f35b34801561043557600080fd5b50610494600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611224565b005b3480156104a257600080fd5b506104ab611449565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104eb5780820151818401526020810190506104d0565b50505050905090810190601f1680156105185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053257600080fd5b50610571600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e7565b005b34801561057f57600080fd5b50610588611788565b6040518082815260200191505060405180910390f35b3480156105aa57600080fd5b506105e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061178e565b604051808215151515815260200191505060405180910390f35b34801561060f57600080fd5b50610618611977565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066657600080fd5b506106bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199d565b6040518082815260200191505060405180910390f35b3480156106dd57600080fd5b50610738600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506119c2565b005b34801561074657600080fd5b506107a1600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611adf565b005b3480156107af57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bfc565b6040518082815260200191505060405180910390f35b34801561082657600080fd5b5061084560048036038101908080359060200190929190505050611c8b565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f15780601f106108c6576101008083540402835291602001916108f1565b820191906000526020600020905b8154815290600101906020018083116108d457829003601f168201915b505050505081565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561093857600080fd5b60008314806109c357506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156109ce57600080fd5b6109d783610ad9565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6000610ad4600354611c8b565b905090565b6000670de0b6b3a7640000610bb7600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31626516040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b6d57600080fd5b505af1158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b810190808051906020019092919050505084611d7a90919063ffffffff16565b811515610bc057fe5b049050919050565b600083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c0757600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c4457600080fd5b610cdb610c5085610ad9565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db5610d6785610ad9565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e52610e0485610ad9565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b600260009054906101000a900460ff1681565b6000610f64600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b9050919050565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fa857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561106557600080fd5b505af1158015611079573d6000803e3d6000fd5b505050506040513d602081101561108f57600080fd5b810190808051906020019092919050505015156110ab57600080fd5b6110c86110b783610ad9565b600354611dce90919063ffffffff16565b6003819055506111286110da83610ad9565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3826040518082815260200191505060405180910390a18273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b60046020528060005260406000206000915090505481565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561126157600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561131e57600080fd5b505af1158015611332573d6000803e3d6000fd5b505050506040513d602081101561134857600080fd5b8101908080519060200190929190505050151561136457600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d602081101561143157600080fd5b81019080805190602001909291905050505050505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114df5780601f106114b4576101008083540402835291602001916114df565b820191906000526020600020905b8154815290600101906020018083116114c257829003601f168201915b505050505081565b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561152457600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115e157600080fd5b505af11580156115f5573d6000803e3d6000fd5b505050506040513d602081101561160b57600080fd5b8101908080519060200190929190505050151561162757600080fd5b61168161163383610ad9565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e16116d083610ad9565b600354611db590919063ffffffff16565b6003819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd3453826040518082815260200191505060405180910390a1505050565b60035481565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156117cd57600080fd5b6118276117d984610ad9565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db590919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118c461187684610ad9565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dce90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a7f57600080fd5b505af1158015611a93573d6000803e3d6000fd5b505050506040513d6020811015611aa957600080fd5b81019080805190602001909291905050501515611ac557600080fd5b8060019080519060200190611adb929190611dec565b5050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b9181611336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b505050506040513d6020811015611bc657600080fd5b81019080805190602001909291905050501515611be257600080fd5b8060009080519060200190611bf8929190611dec565b5050565b6000611c83600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b905092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e31626516040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d1357600080fd5b505af1158015611d27573d6000803e3d6000fd5b505050506040513d6020811015611d3d57600080fd5b8101908080519060200190929190505050611d69670de0b6b3a764000084611d7a90919063ffffffff16565b811515611d7257fe5b049050919050565b6000806000841415611d8f5760009150611dae565b8284029050828482811515611da057fe5b04141515611daa57fe5b8091505b5092915050565b6000818310151515611dc357fe5b818303905092915050565b6000808284019050838110151515611de257fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e2d57805160ff1916838001178555611e5b565b82800160010185558215611e5b579182015b82811115611e5a578251825591602001919060010190611e3f565b5b509050611e689190611e6c565b5090565b611e8e91905b80821115611e8a576000816000905550600101611e72565b5090565b905600a165627a7a7230582042490077827efb1d2e18d063ee25eeae043d42d756a41b8e08d5b68542d7d78e0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000003d6a8a3d37feca3f8e988a25d267312d35fe3879000000000000000000000000000000000000000000000000000000000000000d5045473a555320446f6c6c61720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075045473a55534400000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): PEG:US Dollar
Arg [1] : _symbol (string): PEG:USD
Arg [2] : _pegInstance (address): 0x3d6A8A3d37FEca3F8e988a25d267312d35FE3879
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000003d6a8a3d37feca3f8e988a25d267312d35fe3879
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [4] : 5045473a555320446f6c6c617200000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 5045473a55534400000000000000000000000000000000000000000000000000
Swarm Source
bzzr://42490077827efb1d2e18d063ee25eeae043d42d756a41b8e08d5b68542d7d78e
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.