ERC-20
Rebase Token
Overview
Max Total Supply
32,625,747.630757213393634744 GATR
Holders
204 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
9,321.642180216346683895 GATRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GatorToken
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity Multiple files format)
pragma solidity 0.4.24; // import "./SafeMath.sol"; // import "./Ownable.sol"; // import "./ERC20Detailed.sol"; // import "./SafeMathInt.sol"; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Context { function _msgSender() internal constant returns (address ) { return msg.sender; } function _msgData() internal constant returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () public { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public constant returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function transferFrom(address from, address to, uint256 value) public returns (bool) { require(from != address(0)); require(to != address(0)); _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } function _transfer(address from, address to, uint256 value) internal { require(to != address(0), "invalid to address"); require(from != address(0), "invalid from address"); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } function _burnFrom(address account, uint256 value) internal { require(account != address(0)); _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value); _burn(account, value); emit Approval(account, msg.sender, _allowed[account][msg.sender]); } } contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor(string name, string symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns (string) { return _name; } function symbol() public view returns (string) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract GatorToken is ERC20Detailed { using SafeMath for uint256; using SafeMathInt for int256; address private _owner; event LogRebase(uint256 indexed epoch, uint256 totalSupply); event LogMonetaryPolicyUpdated(address monetaryPolicy); // Used for authentication address public monetaryPolicy; modifier onlyMonetaryPolicy() { require(msg.sender == monetaryPolicy); _; } modifier validRecipient(address to) { require(to != address(0)); require(to != address(this)); _; } uint256 public constant DECIMALS = 18; uint256 private constant MAX_UINT256 = ~uint256(0); uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 350000*10**DECIMALS; // uint256 private constant MAX_SUPPLY = 300000*10**DECIMALS; // (2^128) - 1 uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); uint256 private _totalSupply; uint256 private _gonsPerFragment; mapping(address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowedFragments; function owner() public constant returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public onlyOwner { _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _owner = newOwner; } function setMonetaryPolicy(address monetaryPolicy_) external onlyOwner { require(monetaryPolicy_ != address(0), "empty monetaryPolicy address"); monetaryPolicy = monetaryPolicy_; emit LogMonetaryPolicyUpdated(monetaryPolicy_); } function rebase(uint256 epoch, int256 supplyDelta) external onlyMonetaryPolicy returns (uint256) { if (supplyDelta == 0) { emit LogRebase(epoch, _totalSupply); return _totalSupply; } uint256 _supplyDelta = uint256(supplyDelta); _totalSupply = _totalSupply.div(_gonsPerFragment); if (supplyDelta >= 0) { _totalSupply = _totalSupply.add(_supplyDelta); } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _totalSupply = _totalSupply.mul(_gonsPerFragment); emit LogRebase(epoch, _totalSupply); return _totalSupply; } constructor() ERC20Detailed("GATOR", "GATR", uint8(DECIMALS)) public { _owner = msg.sender; _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _totalSupply = INITIAL_FRAGMENTS_SUPPLY.mul(_gonsPerFragment); _balances[_owner] = INITIAL_FRAGMENTS_SUPPLY.mul(_gonsPerFragment); emit Transfer(address(0), _owner, _totalSupply); } function totalSupply() public view returns (uint256) { return _totalSupply.div(_gonsPerFragment); } function balanceOf(address who) public view returns (uint256) { return _balances[who].div(_gonsPerFragment); } function transfer(address to, uint256 value) public validRecipient(to) returns (bool) { require(to != address(0)); uint256 gonValue = value.mul(_gonsPerFragment); _balances[msg.sender] = _balances[msg.sender].sub(gonValue); _balances[to] = _balances[to].add(gonValue); emit Transfer(msg.sender, to, value); return true; } function allowance(address owner_, address spender) public view returns (uint256) { return _allowedFragments[owner_][spender]; } function transferFrom(address from, address to, uint256 value) public validRecipient(to) returns (bool) { require(from != address(0)); _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value); uint256 gonValue = value.mul(_gonsPerFragment); _balances[from] = _balances[from].sub(gonValue); _balances[to] = _balances[to].add(gonValue); emit Transfer(from, to, value); return true; } function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue); } emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /* function mint(address account, uint256 amount) public onlyOwner { require(account != address(0), "ERC20: mint to the zero address"); amount = amount.mul(10**DECIMALS); _totalSupply = _totalSupply.div(_gonsPerFragment); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].div(_gonsPerFragment); _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _totalSupply = _totalSupply.mul(_gonsPerFragment); _balances[account] = _balances[account].add(amount); _balances[account] = _balances[account].mul(_gonsPerFragment); emit Transfer(address(0), account, amount); } */ }
pragma solidity 0.4.24; import "./Gator.sol"; library UInt256Lib { uint256 private constant MAX_INT256 = (2**255)-1; /** * @dev Safely converts a uint256 to an int256. */ function toInt256Safe(uint256 a) internal pure returns (int256) { require(a <= MAX_INT256, "SafeCast: value doesn't fit in an int256"); return int256(a); } } contract GatorPolicy is Ownable { using SafeMath for uint256; using SafeMathInt for int256; using UInt256Lib for uint256; event LogRebase( uint256 indexed epoch, uint256 exchangeRate, uint256 cpi, int256 requestedSupplyAdjustment, uint256 timestampSec ); GatorToken public uFrags; // CPI value at the time of launch, as an 18 decimal fixed point number. // uint256 private baseCpi; uint256 public deviationThreshold; // The actual token price, will update only if deviationThreshold crossed uint256 public token_price; // The rebase lag parameter, used to dampen the applied supply adjustment by 1 / rebaseLag // Check setRebaseLag comments for more details. // Natural number, no decimal places. //uint256 public rebaseLag; // More than this much time must pass between rebase operations. uint256 public minRebaseTimeIntervalSec; // Block timestamp of last rebase operation uint256 public lastRebaseTimestampSec; // The rebase window begins this many seconds into the minRebaseTimeInterval period. // For example if minRebaseTimeInterval is 24hrs, it represents the time of day in seconds. //uint256 public rebaseWindowOffsetSec; // The length of the time window where a rebase operation is allowed to execute, in seconds. //uint256 public rebaseWindowLengthSec; // The number of rebase cycles since inception uint256 public epoch; uint256 private constant DECIMALS = 18; // Due to the expression in computeSupplyDelta(), MAX_RATE * MAX_SUPPLY must fit into an int256. // Both are 18 decimals fixed point numbers. uint256 private constant MAX_RATE = 10**6*10**DECIMALS; // MAX_SUPPLY = MAX_INT256 / MAX_RATE uint256 private constant MAX_SUPPLY = ~(uint256(1) << 255) / MAX_RATE; // This module orchestrates the rebase execution and downstream notification. address public orchestrator; modifier onlyOrchestrator() { require(msg.sender == orchestrator); _; } function rebase(uint256 wei_token_price) external onlyOrchestrator { //sets the epoch epoch = epoch.add(1); //compute supply delta int256 supplyDelta = computeSupplyDelta(wei_token_price); if(supplyDelta == 0) { //require that 24 hours has passed and then set the current token price without rebasing supply require(lastRebaseTimestampSec + 24 hours < now, "24 hours has not passed since the last rebase"); //set the price and return token_price = wei_token_price; // Snap the rebase time after changes are made lastRebaseTimestampSec = now; } else { // This comparison also ensures there is no reentrancy. require(lastRebaseTimestampSec.add(minRebaseTimeIntervalSec) < now , "30 minutes has not passed since last rebase"); //to continue from here, the price must have increased past the old price require(supplyDelta != 0,"not a 5% increase"); //this sets the total_supply to max_supply if (supplyDelta > 0 && uFrags.totalSupply().add(uint256(supplyDelta)) > MAX_SUPPLY) { supplyDelta = (MAX_SUPPLY.sub(uFrags.totalSupply())).toInt256Safe(); } //only repegs up uint old_token_price = token_price; require(wei_token_price > old_token_price, "new token price is not greater than old"); //split the difference b/w old and new uint actual_new_token_price = old_token_price + uint(wei_token_price - old_token_price).div(2); int256 actual_rebase_price_delta = computeSupplyDelta(actual_new_token_price); //update totals uFrags.rebase(epoch, actual_rebase_price_delta); // Snap the rebase time to the start of this window. Ensures 30 minutes passed since last rebase call lastRebaseTimestampSec = now; token_price = actual_new_token_price; } } function setOrchestrator(address orchestrator_) external onlyOwner { require(orchestrator_ != address(0)); orchestrator = orchestrator_; } function setTokenPrice(uint256 _token_price) external onlyOwner { //set in wei token_price = _token_price; } function setDeviationThreshold(uint256 deviationThreshold_) external onlyOwner { // deviationThreshold = 0.05e18 = 5e16 5% deviationThreshold = deviationThreshold_; } function setRebaseTimingParameters( uint256 minRebaseTimeIntervalSec_, uint256 rebaseWindowOffsetSec_) external onlyOwner { require(minRebaseTimeIntervalSec_ > 0); require(rebaseWindowOffsetSec_ < minRebaseTimeIntervalSec_); minRebaseTimeIntervalSec = minRebaseTimeIntervalSec_; } constructor(GatorToken uFrags_, uint256 _token_price) public { token_price = _token_price; // deviationThreshold = 0.05e18 = 5e16 deviationThreshold = 5 * 10 ** (DECIMALS-2); // 5% minRebaseTimeIntervalSec = 30 minutes; lastRebaseTimestampSec = now; epoch = 0; uFrags = uFrags_; } function computeSupplyDelta(uint256 new_price) public view returns (int256) { if (withinDeviationThreshold(new_price, token_price)) { return 0; } if (new_price < token_price) { return 0; } // supplyDelta = totalSupply * (rate - targetRate) / targetRate int256 targetRateSigned = token_price.toInt256Safe(); return uFrags.totalSupply().toInt256Safe() .mul(new_price.toInt256Safe().sub(targetRateSigned)) .div(targetRateSigned); } function withinDeviationThreshold(uint256 new_price, uint256 old_price) public view returns (bool) { uint256 absoluteDeviationThreshold = old_price.mul(deviationThreshold).div(10**DECIMALS); return (new_price >= old_price && new_price.sub(old_price) < absoluteDeviationThreshold) || (new_price < old_price && old_price.sub(new_price) < absoluteDeviationThreshold); } }
pragma solidity 0.4.24; import "./GatorPolicy.sol"; /** * @title Orchestrator * @notice The orchestrator is the main entry point for rebase operations. It coordinates the policy * actions with external consumers. */ contract Orchestrator is Ownable { struct Transaction { bool enabled; address destination; bytes data; } event TransactionFailed(address indexed destination, uint index, bytes data); event TransactionSent(address indexed destination, uint index, bytes data); /*event TransactionRemoved(address indexed destination, uint index, bytes data);*/ // Stable ordering is not guaranteed. Transaction[] public transactions; GatorPolicy public policy; /** * @param policy_ Address of the UFragments policy. */ constructor(address policy_) public { require(policy_ != address(0), "policy is not set correctly"); policy = GatorPolicy(policy_); } /** * @notice Main entry point to initiate a rebase operation. * The Orchestrator calls rebase on the policy and notifies downstream applications. * Contracts are guarded from calling, to avoid flash loan attacks on liquidity * providers. * If a transaction in the transaction list reverts, it is swallowed and the remaining * transactions are executed. */ function rebase(uint256 wei_token_price) onlyOwner external { // require(msg.sender == tx.origin); // solhint-disable-line avoid-tx-origin policy.rebase(wei_token_price); for (uint i = 0; i < transactions.length; i++) { Transaction storage t = transactions[i]; if (t.enabled) { emit TransactionSent(t.destination, i, t.data); bool result = externalCall(t.destination, t.data); if (!result) { //commented out due to revert.. //emit TransactionFailed(t.destination, i, t.data); revert("Transaction Failed"); } } } } /** * @notice Adds a transaction that gets called for a downstream receiver of rebases * @param destination Address of contract destination * @param data Transaction data payload */ function addTransaction(address destination, bytes data) external onlyOwner { require(destination != address(0)); transactions.push(Transaction({ enabled: true, destination: destination, data: data })); } /** * @param index Index of transaction to remove. * Transaction ordering may have changed since adding. */ /* function removeTransaction(uint index) external onlyOwner { require(index < transactions.length, "index out of bounds"); emit TransactionRemoved(transactions[index].destination, index, transactions[index].data); if (index < transactions.length - 1) { transactions[index] = transactions[transactions.length - 1]; } transactions.length--; } */ /** * @param index Index of transaction. Transaction ordering may have changed since adding. * @param enabled True for enabled, false for disabled. */ function setTransactionEnabled(uint index, bool enabled) external onlyOwner { require(index < transactions.length, "index must be in range of stored tx list"); transactions[index].enabled = enabled; } /** * @return Number of transactions, both enabled and disabled, in transactions list. */ function transactionsSize() external view returns (uint256) { return transactions.length; } /** * @dev wrapper to call the encoded transactions on downstream consumers. * @param destination Address of destination contract. * @param data The encoded data payload. * @return True on success */ function externalCall(address destination, bytes data) internal returns (bool) { require(destination != address(0)); bool result; assembly { // solhint-disable-line no-inline-assembly // "Allocate" memory for output // (0x40 is where "free memory" pointer is stored by convention) let outputAddress := mload(0x40) // First 32 bytes are the padded length of data, so exclude that let dataAddress := add(data, 32) result := call( // 34710 is the value that solidity is currently emitting // It includes callGas (700) + callVeryLow (3, to pay for SUB) // + callValueTransferGas (9000) + callNewAccountGas // (25000, in case the destination address does not exist and needs creating) sub(gas, 34710), destination, 0, // transfer value in wei dataAddress, mload(data), // Size of the input, in bytes. Stored in position 0 of the array. outputAddress, 0 // Output is ignored, therefore the output size is zero ) } return result; } }
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":"value","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":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"epoch","type":"uint256"},{"name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"monetaryPolicy_","type":"address"}],"name":"setMonetaryPolicy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"monetaryPolicy","outputs":[{"name":"","type":"address"}],"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":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"epoch","type":"uint256"},{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monetaryPolicy","type":"address"}],"name":"LogMonetaryPolicyUpdated","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604080518082018252600581527f4741544f5200000000000000000000000000000000000000000000000000000060208083019182528351808501909452600484527f4741545200000000000000000000000000000000000000000000000000000000908401528151919291601291620000909160039190620003a7565b508151620000a6906004906020850190620003a7565b506005805460ff191660ff929092169190911761010060a860020a03191661010033021790555050694a1d89bb94865ec00000600781905562000101908060001906600019039064010000000062000e1a620001c482021704565b60088190556200012b90694a1d89bb94865ec000009064010000000062000ea56200021e82021704565b6007556008546200015690694a1d89bb94865ec000009064010000000062000ea56200021e82021704565b60058054600160a060020a036101009182900481166000908152600960209081526040808320969096559354600754865190815295519390049091169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a36200044c565b60006200021783836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002e3640100000000026401000000009004565b9392505050565b600080831515620002335760009150620002dc565b508282028284828115156200024457fe5b0414620002d857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8091505b5092915050565b6000808281851162000390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620003545781810151838201526020016200033a565b50505050905090810190601f168015620003825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5083858115156200039d57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ea57805160ff19168380011785556200041a565b828001600101855582156200041a579182015b828111156200041a578251825591602001919060010190620003fd565b50620004289291506200042c565b5090565b6200044991905b8082111562000428576000815560010162000433565b90565b6110d6806200045c6000396000f3006080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610100578063095ea7b31461018a57806318160ddd146101c257806323b872dd146101e95780632e0f262514610213578063313ce56714610228578063395093511461025357806370a0823114610277578063715018a6146102985780637a43e23f146102af5780638b5a6a08146102ca5780638da5cb5b146102eb5780638e27d7d71461031c57806395d89b4114610331578063a457c2d714610346578063a9059cbb1461036a578063dd62ed3e1461038e578063f2fde38b146103b5575b600080fd5b34801561010c57600080fd5b506101156103d6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019657600080fd5b506101ae600160a060020a036004351660243561046c565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b506101d76104ea565b60408051918252519081900360200190f35b3480156101f557600080fd5b506101ae600160a060020a0360043581169060243516604435610508565b34801561021f57600080fd5b506101d761067c565b34801561023457600080fd5b5061023d610681565b6040805160ff9092168252519081900360200190f35b34801561025f57600080fd5b506101ae600160a060020a036004351660243561068a565b34801561028357600080fd5b506101d7600160a060020a036004351661073a565b3480156102a457600080fd5b506102ad61076e565b005b3480156102bb57600080fd5b506101d76004356024356107f5565b3480156102d657600080fd5b506102ad600160a060020a036004351661090c565b3480156102f757600080fd5b50610300610a34565b60408051600160a060020a039092168252519081900360200190f35b34801561032857600080fd5b50610300610a48565b34801561033d57600080fd5b50610115610a57565b34801561035257600080fd5b506101ae600160a060020a0360043516602435610ab8565b34801561037657600080fd5b506101ae600160a060020a0360043516602435610bc0565b34801561039a57600080fd5b506101d7600160a060020a0360043581169060243516610ccd565b3480156103c157600080fd5b506102ad600160a060020a0360043516610cf8565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b820191906000526020600020905b81548152906001019060200180831161044557829003601f168201915b5050505050905090565b6000600160a060020a038316151561048357600080fd5b336000818152600a60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000610503600854600754610e1a90919063ffffffff16565b905090565b60008083600160a060020a038116151561052157600080fd5b600160a060020a03811630141561053757600080fd5b600160a060020a038616151561054c57600080fd5b600160a060020a0386166000908152600a60209081526040808320338452909152902054610580908563ffffffff610e6316565b600160a060020a0387166000908152600a602090815260408083203384529091529020556008546105b890859063ffffffff610ea516565b600160a060020a0387166000908152600960205260409020549092506105e4908363ffffffff610e6316565b600160a060020a038088166000908152600960205260408082209390935590871681522054610619908363ffffffff610f4416565b600160a060020a0380871660008181526009602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b601281565b60055460ff1690565b6000600160a060020a03831615156106a157600080fd5b336000908152600a60209081526040808320600160a060020a03871684529091529020546106d5908363ffffffff610f4416565b336000818152600a60209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600854600160a060020a0382166000908152600960205260408120549091610768919063ffffffff610e1a16565b92915050565b6005546101009004600160a060020a031633146107d5576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6006546000908190600160a060020a0316331461081157600080fd5b82151561085a57600754604080519182525185917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a26007549150610905565b506008546007548391610873919063ffffffff610e1a16565b6007556000831261089557600754610891908263ffffffff610f4416565b6007555b6007546108ae9069281e842641e57dbfffff1990610e1a565b60088190556007546108c59163ffffffff610ea516565b6007819055604080519182525185917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a260075491505b5092915050565b6005546101009004600160a060020a03163314610973576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a03811615156109d3576040805160e560020a62461bcd02815260206004820152601c60248201527f656d707479206d6f6e6574617279506f6c696379206164647265737300000000604482015290519081900360640190fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f0e6961f1a1afb87eaf51fd64f22ddc10062e23aa7838eac5d0bdf140bfd389729181900360200190a150565b6005546101009004600160a060020a031690565b600654600160a060020a031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b600080600160a060020a0384161515610ad057600080fd5b50336000908152600a60209081526040808320600160a060020a0387168452909152902054808310610b2557336000908152600a60209081526040808320600160a060020a0388168452909152812055610b5a565b610b35818463ffffffff610e6316565b336000908152600a60209081526040808320600160a060020a03891684529091529020555b336000818152600a60209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60008083600160a060020a0381161515610bd957600080fd5b600160a060020a038116301415610bef57600080fd5b600160a060020a0385161515610c0457600080fd5b600854610c1890859063ffffffff610ea516565b33600090815260096020526040902054909250610c3b908363ffffffff610e6316565b3360009081526009602052604080822092909255600160a060020a03871681522054610c6d908363ffffffff610f4416565b600160a060020a0386166000818152600960209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b600160a060020a039182166000908152600a6020908152604080832093909416825291909152205490565b6005546101009004600160a060020a03163314610d5f576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a0381161515610de5576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000610e5c83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa1565b9392505050565b6000610e5c83836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611049565b600080831515610eb85760009150610905565b50828202828482811515610ec857fe5b0414610e5c576040805160e560020a62461bcd02815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600082820183811015610e5c576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080828185116110335760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ff8578181015183820152602001610fe0565b50505050905090810190601f1680156110255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50838581151561103f57fe5b0495945050505050565b60008082858511156110a05760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610ff8578181015183820152602001610fe0565b50505091039190505600a165627a7a72305820a848b1df84512eb3f57ac65be568e954856e6addd0a9b91a150981f8bbf0709c0029
Deployed Bytecode
0x6080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610100578063095ea7b31461018a57806318160ddd146101c257806323b872dd146101e95780632e0f262514610213578063313ce56714610228578063395093511461025357806370a0823114610277578063715018a6146102985780637a43e23f146102af5780638b5a6a08146102ca5780638da5cb5b146102eb5780638e27d7d71461031c57806395d89b4114610331578063a457c2d714610346578063a9059cbb1461036a578063dd62ed3e1461038e578063f2fde38b146103b5575b600080fd5b34801561010c57600080fd5b506101156103d6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019657600080fd5b506101ae600160a060020a036004351660243561046c565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b506101d76104ea565b60408051918252519081900360200190f35b3480156101f557600080fd5b506101ae600160a060020a0360043581169060243516604435610508565b34801561021f57600080fd5b506101d761067c565b34801561023457600080fd5b5061023d610681565b6040805160ff9092168252519081900360200190f35b34801561025f57600080fd5b506101ae600160a060020a036004351660243561068a565b34801561028357600080fd5b506101d7600160a060020a036004351661073a565b3480156102a457600080fd5b506102ad61076e565b005b3480156102bb57600080fd5b506101d76004356024356107f5565b3480156102d657600080fd5b506102ad600160a060020a036004351661090c565b3480156102f757600080fd5b50610300610a34565b60408051600160a060020a039092168252519081900360200190f35b34801561032857600080fd5b50610300610a48565b34801561033d57600080fd5b50610115610a57565b34801561035257600080fd5b506101ae600160a060020a0360043516602435610ab8565b34801561037657600080fd5b506101ae600160a060020a0360043516602435610bc0565b34801561039a57600080fd5b506101d7600160a060020a0360043581169060243516610ccd565b3480156103c157600080fd5b506102ad600160a060020a0360043516610cf8565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b820191906000526020600020905b81548152906001019060200180831161044557829003601f168201915b5050505050905090565b6000600160a060020a038316151561048357600080fd5b336000818152600a60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000610503600854600754610e1a90919063ffffffff16565b905090565b60008083600160a060020a038116151561052157600080fd5b600160a060020a03811630141561053757600080fd5b600160a060020a038616151561054c57600080fd5b600160a060020a0386166000908152600a60209081526040808320338452909152902054610580908563ffffffff610e6316565b600160a060020a0387166000908152600a602090815260408083203384529091529020556008546105b890859063ffffffff610ea516565b600160a060020a0387166000908152600960205260409020549092506105e4908363ffffffff610e6316565b600160a060020a038088166000908152600960205260408082209390935590871681522054610619908363ffffffff610f4416565b600160a060020a0380871660008181526009602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b601281565b60055460ff1690565b6000600160a060020a03831615156106a157600080fd5b336000908152600a60209081526040808320600160a060020a03871684529091529020546106d5908363ffffffff610f4416565b336000818152600a60209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600854600160a060020a0382166000908152600960205260408120549091610768919063ffffffff610e1a16565b92915050565b6005546101009004600160a060020a031633146107d5576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6006546000908190600160a060020a0316331461081157600080fd5b82151561085a57600754604080519182525185917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a26007549150610905565b506008546007548391610873919063ffffffff610e1a16565b6007556000831261089557600754610891908263ffffffff610f4416565b6007555b6007546108ae9069281e842641e57dbfffff1990610e1a565b60088190556007546108c59163ffffffff610ea516565b6007819055604080519182525185917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a260075491505b5092915050565b6005546101009004600160a060020a03163314610973576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a03811615156109d3576040805160e560020a62461bcd02815260206004820152601c60248201527f656d707479206d6f6e6574617279506f6c696379206164647265737300000000604482015290519081900360640190fd5b60068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f0e6961f1a1afb87eaf51fd64f22ddc10062e23aa7838eac5d0bdf140bfd389729181900360200190a150565b6005546101009004600160a060020a031690565b600654600160a060020a031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104625780601f1061043757610100808354040283529160200191610462565b600080600160a060020a0384161515610ad057600080fd5b50336000908152600a60209081526040808320600160a060020a0387168452909152902054808310610b2557336000908152600a60209081526040808320600160a060020a0388168452909152812055610b5a565b610b35818463ffffffff610e6316565b336000908152600a60209081526040808320600160a060020a03891684529091529020555b336000818152600a60209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60008083600160a060020a0381161515610bd957600080fd5b600160a060020a038116301415610bef57600080fd5b600160a060020a0385161515610c0457600080fd5b600854610c1890859063ffffffff610ea516565b33600090815260096020526040902054909250610c3b908363ffffffff610e6316565b3360009081526009602052604080822092909255600160a060020a03871681522054610c6d908363ffffffff610f4416565b600160a060020a0386166000818152600960209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b600160a060020a039182166000908152600a6020908152604080832093909416825291909152205490565b6005546101009004600160a060020a03163314610d5f576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a0381161515610de5576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000610e5c83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa1565b9392505050565b6000610e5c83836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611049565b600080831515610eb85760009150610905565b50828202828482811515610ec857fe5b0414610e5c576040805160e560020a62461bcd02815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600082820183811015610e5c576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080828185116110335760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ff8578181015183820152602001610fe0565b50505050905090810190601f1680156110255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50838581151561103f57fe5b0495945050505050565b60008082858511156110a05760405160e560020a62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610ff8578181015183820152602001610fe0565b50505091039190505600a165627a7a72305820a848b1df84512eb3f57ac65be568e954856e6addd0a9b91a150981f8bbf0709c0029
Deployed Bytecode Sourcemap
8593:6309:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8344:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8344:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8344:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13000:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13000:266:0;-1:-1:-1;;;;;13000:266:0;;;;;;;;;;;;;;;;;;;;;;;;;11613:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11613:139:0;;;;;;;;;;;;;;;;;;;;12495:499;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12495:499:0;-1:-1:-1;;;;;12495:499:0;;;;;;;;;;;;9159:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9159:37:0;;;;8508:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8508:81:0;;;;;;;;;;;;;;;;;;;;;;;13272:375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13272:375:0;-1:-1:-1;;;;;13272:375:0;;;;;;;11758:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11758:150:0;-1:-1:-1;;;;;11758:150:0;;;;;9933:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9933:82:0;;;;;;10497:667;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10497:667:0;;;;;;;10206:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10206:285:0;-1:-1:-1;;;;;10206:285:0;;;;;9727:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9727:81:0;;;;;;;;-1:-1:-1;;;;;9727:81:0;;;;;;;;;;;;;;8889:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8889:29:0;;;;8424:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8424:78:0;;;;13653:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13653:540:0;-1:-1:-1;;;;;13653:540:0;;;;;;;11914:401;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11914:401:0;-1:-1:-1;;;;;11914:401:0;;;;;;;12321:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12321:168:0;-1:-1:-1;;;;;12321:168:0;;;;;;;;;;10021:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10021:179:0;-1:-1:-1;;;;;10021:179:0;;;;;8344:74;8406:5;8399:12;;;;;;;;-1:-1:-1;;8399:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8381:6;;8399:12;;8406:5;;8399:12;;8406:5;8399:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8344:74;:::o;13000:266::-;13081:4;-1:-1:-1;;;;;13109:21:0;;;;13101:30;;;;;;13159:10;13141:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13141:38:0;;;;;;;;;;;;:46;;;13202:36;;;;;;;13141:38;;13159:10;13202:36;;;;;;;;;;;-1:-1:-1;13255:4:0;13000:266;;;;:::o;11613:139::-;11681:7;11711:34;11728:16;;11711:12;;:16;;:34;;;;:::i;:::-;11704:41;;11613:139;:::o;12495:499::-;12617:4;;12596:2;-1:-1:-1;;;;;9080:16:0;;;;9072:25;;;;;;-1:-1:-1;;;;;9115:19:0;;9129:4;9115:19;;9107:28;;;;;;-1:-1:-1;;;;;12645:18:0;;;;12637:27;;;;;;-1:-1:-1;;;;;12712:23:0;;;;;;:17;:23;;;;;;;;12736:10;12712:35;;;;;;;;:46;;12752:5;12712:46;:39;:46;:::i;:::-;-1:-1:-1;;;;;12674:23:0;;;;;;:17;:23;;;;;;;;12698:10;12674:35;;;;;;;:84;12798:16;;12788:27;;:5;;:27;:9;:27;:::i;:::-;-1:-1:-1;;;;;12843:15:0;;;;;;:9;:15;;;;;;12769:46;;-1:-1:-1;12843:29:0;;12769:46;12843:29;:19;:29;:::i;:::-;-1:-1:-1;;;;;12825:15:0;;;;;;;:9;:15;;;;;;:47;;;;12898:13;;;;;;;:27;;12916:8;12898:27;:17;:27;:::i;:::-;-1:-1:-1;;;;;12882:13:0;;;;;;;:9;:13;;;;;;;;;:43;;;;12940:25;;;;;;;12882:13;;12940:25;;;;;;;;;;;;;-1:-1:-1;12983:4:0;;12495:499;-1:-1:-1;;;;;12495:499:0:o;9159:37::-;9194:2;9159:37;:::o;8508:81::-;8573:9;;;;8508:81;:::o;13272:375::-;13368:4;-1:-1:-1;;;;;13396:21:0;;;;13388:30;;;;;;13499:10;13481:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13481:38:0;;;;;;;;;;:54;;13524:10;13481:54;:42;:54;:::i;:::-;13446:10;13428:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13428:38:0;;;;;;;;;;;;:107;;;13550:69;;;;;;13428:38;;13550:69;;;;;;;;;;;-1:-1:-1;13636:4:0;13272:375;;;;:::o;11758:150::-;11884:16;;-1:-1:-1;;;;;11865:14:0;;11835:7;11865:14;;;:9;:14;;;;;;11835:7;;11865:36;;:14;:36;:18;:36;:::i;:::-;11858:43;11758:150;-1:-1:-1;;11758:150:0:o;9933:82::-;9853:6;;;;;-1:-1:-1;;;;;9853:6:0;9863:10;9853:20;9845:65;;;;;-1:-1:-1;;;;;9845:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9989:6;:19;;-1:-1:-1;;9989:19:0;;;9933:82::o;10497:667::-;8987:14;;10609:7;;;;-1:-1:-1;;;;;8987:14:0;8973:10;:28;8965:37;;;;;;10640:16;;10636:115;;;10694:12;;10677:30;;;;;;;10687:5;;10677:30;;;;;;;;;;10728:12;;10721:19;;;;10636:115;-1:-1:-1;10846:16:0;;10829:12;;10791:11;;10829:34;;:12;:34;:16;:34;:::i;:::-;10814:12;:49;10893:1;10878:16;;10874:92;;10925:12;;:30;;10942:12;10925:30;:16;:30;:::i;:::-;10910:12;:45;10874:92;11009:12;;10994:28;;-1:-1:-1;;9461:54:0;10994:14;:28::i;:::-;10975:16;:47;;;11048:12;;:34;;;:16;:34;:::i;:::-;11033:12;:49;;;11098:30;;;;;;;11108:5;;11098:30;;;;;;;;;;11145:12;;11138:19;;9012:1;10497:667;;;;;:::o;10206:285::-;9853:6;;;;;-1:-1:-1;;;;;9853:6:0;9863:10;9853:20;9845:65;;;;;-1:-1:-1;;;;;9845:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10315:29:0;;;;10307:70;;;;;-1:-1:-1;;;;;10307:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10396:14;:32;;-1:-1:-1;;;;;10396:32:0;;-1:-1:-1;;10396:32:0;;;;;;;;10443:41;;;;;;;;;;;;;;;;10206:285;:::o;9727:81::-;9795:6;;;;;-1:-1:-1;;;;;9795:6:0;;9727:81::o;8889:29::-;;;-1:-1:-1;;;;;8889:29:0;;:::o;8424:78::-;8488:7;8481:14;;;;;;;;-1:-1:-1;;8481:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8463:6;;8481:14;;8488:7;;8481:14;;8488:7;8481:14;;;;;;;;;;;;;;;;;;;;;;;;13653:540;13754:4;;-1:-1:-1;;;;;13782:21:0;;;;13774:30;;;;;;-1:-1:-1;13851:10:0;13833:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13833:38:0;;;;;;;;;;13885:27;;;13881:201;;13946:10;13969:1;13928:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13928:38:0;;;;;;;;;:42;13881:201;;;14042:29;:8;14055:15;14042:29;:12;:29;:::i;:::-;14019:10;14001:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;14001:38:0;;;;;;;;;:70;13881:201;14105:10;14126:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;14096:69:0;;14126:38;;;;;;;;;;;14096:69;;;;;;;;;14105:10;14096:69;;;;;;;;;;;-1:-1:-1;14182:4:0;;13653:540;-1:-1:-1;;;13653:540:0:o;11914:401::-;12018:4;;11997:2;-1:-1:-1;;;;;9080:16:0;;;;9072:25;;;;;;-1:-1:-1;;;;;9115:19:0;;9129:4;9115:19;;9107:28;;;;;;-1:-1:-1;;;;;12046:16:0;;;;12038:25;;;;;;12102:16;;12092:27;;:5;;:27;:9;:27;:::i;:::-;12163:10;12153:21;;;;:9;:21;;;;;;12073:46;;-1:-1:-1;12153:35:0;;12073:46;12153:35;:25;:35;:::i;:::-;12139:10;12129:21;;;;:9;:21;;;;;;:59;;;;-1:-1:-1;;;;;12214:13:0;;;;;;:27;;12232:8;12214:27;:17;:27;:::i;:::-;-1:-1:-1;;;;;12198:13:0;;;;;;:9;:13;;;;;;;;;:43;;;;12256:31;;;;;;;12198:13;;12265:10;;12256:31;;;;;;;;;;-1:-1:-1;12304:4:0;;11914:401;-1:-1:-1;;;;11914:401:0:o;12321:168::-;-1:-1:-1;;;;;12448:25:0;;;12418:7;12448:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;12321:168::o;10021:179::-;9853:6;;;;;-1:-1:-1;;;;;9853:6:0;9863:10;9853:20;9845:65;;;;;-1:-1:-1;;;;;9845:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10101:22:0;;;;10093:73;;;;;-1:-1:-1;;;;;10093:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10176:6;:17;;-1:-1:-1;;;;;10176:17:0;;;;;-1:-1:-1;;10176:17:0;;;;;;;;;10021:179::o;934:130::-;992:7;1018:39;1022:1;1025;1018:39;;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1011:46;934:130;-1:-1:-1;;;934:130:0:o;353:134::-;411:7;437:43;441:1;444;437:43;;;;;;;;;;;;;;;;;;:3;:43::i;686:242::-;744:7;;768:6;;764:45;;;797:1;790:8;;;;764:45;-1:-1:-1;831:5:0;;;835:1;831;:5;854;;;;;;;;:10;846:56;;;;;-1:-1:-1;;;;;846:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;171:176;229:7;260:5;;;283:6;;;;275:46;;;;;-1:-1:-1;;;;;275:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1070:272;1156:7;;1190:12;1183:5;;;1175:28;;;;-1:-1:-1;;;;;1175:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1175:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:1;1225;:5;;;;;;;;;1070:272;-1:-1:-1;;;;;1070:272:0:o;493:187::-;579:7;;614:12;606:6;;;;598:29;;;;-1:-1:-1;;;;;598:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;598:29:0;-1:-1:-1;;;649:5:0;;;493:187;-1:-1:-1;493:187:0:o
Swarm Source
bzzr://a848b1df84512eb3f57ac65be568e954856e6addd0a9b91a150981f8bbf0709c
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.