[ { "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": false, "inputs": [ { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "decimals", "type": "uint8" } ], "name": "initialize", "outputs": [], "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": "paused", "type": "bool" } ], "name": "setRebasePaused", "outputs": [], "payable": false, "stateMutability": "nonpayable", "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": false, "inputs": [ { "name": "paused", "type": "bool" } ], "name": "setTokenPaused", "outputs": [], "payable": false, "stateMutability": "nonpayable", "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": "rebasePaused", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "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": true, "inputs": [], "name": "tokenPaused", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "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": "isOwner", "outputs": [ { "name": "", "type": "bool" } ], "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": false, "inputs": [ { "name": "owner_", "type": "address" } ], "name": "initialize", "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": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "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": "paused", "type": "bool" } ], "name": "LogRebasePaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "paused", "type": "bool" } ], "name": "LogTokenPaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "monetaryPolicy", "type": "address" } ], "name": "LogMonetaryPolicyUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" } ]
608060405234801561001057600080fd5b50611595806100206000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610142578063095ea7b3146101cc5780631624f6c61461020457806318160ddd146102a257806322872e0b146102c957806323b872dd146102e3578063295194571461030d578063313ce56714610327578063395093511461035257806353ca9f241461037657806370a082311461038b578063715018a6146103ac5780637a43e23f146103c157806386c75e74146103dc5780638b5a6a08146103f15780638da5cb5b146104125780638e27d7d7146104435780638f32d59b1461045857806395d89b411461046d578063a457c2d714610482578063a9059cbb146104a6578063c4d66de8146104ca578063dd62ed3e146104eb578063f2fde38b14610512575b600080fd5b34801561014e57600080fd5b50610157610533565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101f0600160a060020a03600435166024356105ca565b604080519115158252519081900360200190f35b34801561021057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a094369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff16935061064c92505050565b005b3480156102ae57600080fd5b506102b7610785565b60408051918252519081900360200190f35b3480156102d557600080fd5b506102a0600435151561078b565b3480156102ef57600080fd5b506101f0600160a060020a0360043581169060243516604435610813565b34801561031957600080fd5b506102a06004351515610989565b34801561033357600080fd5b5061033c610a01565b6040805160ff9092168252519081900360200190f35b34801561035e57600080fd5b506101f0600160a060020a0360043516602435610a0a565b34801561038257600080fd5b506101f0610abd565b34801561039757600080fd5b506102b7600160a060020a0360043516610ade565b3480156103b857600080fd5b506102a0610b0c565b3480156103cd57600080fd5b506102b7600435602435610b76565b3480156103e857600080fd5b506101f0610cde565b3480156103fd57600080fd5b506102a0600160a060020a0360043516610cee565b34801561041e57600080fd5b50610427610d62565b60408051600160a060020a039092168252519081900360200190f35b34801561044f57600080fd5b50610427610d71565b34801561046457600080fd5b506101f0610d80565b34801561047957600080fd5b50610157610d91565b34801561048e57600080fd5b506101f0600160a060020a0360043516602435610df2565b3480156104b257600080fd5b506101f0600160a060020a0360043516602435610f00565b3480156104d657600080fd5b506102a0600160a060020a036004351661100f565b3480156104f757600080fd5b506102b7600160a060020a036004358116906024351661122d565b34801561051e57600080fd5b506102a0600160a060020a0360043516611258565b60338054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b505050505090505b90565b609b5460009060a860020a900460ff16156105e457600080fd5b336000818152609f60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60008054610100900460ff16806106665750610666611277565b80610674575060005460ff16155b151561070757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a6564000000000000000000000000000000000000606482015290519081900360840190fd5b5060008054600161010061ff00198316811760ff191691909117909255845191900460ff169061073e9060339060208701906114db565b5082516107529060349060208601906114db565b506035805460ff90931660ff1990931692909217909155600080549115156101000261ff00199092169190911790555050565b609c5490565b610793610d80565b151561079e57600080fd5b609b805482151574010000000000000000000000000000000000000000810274ff0000000000000000000000000000000000000000199092169190911790915560408051918252517fb36927c68760751ec71d827eb30be804be612d87c7c6b6a1f255258c6a1bea669181900360200190a150565b60008083600160a060020a038116151561082c57600080fd5b600160a060020a03811630141561084257600080fd5b609b5460a860020a900460ff161561085957600080fd5b600160a060020a0386166000908152609f6020908152604080832033845290915290205461088d908563ffffffff61128116565b600160a060020a0387166000908152609f60209081526040808320338452909152902055609d546108c590859063ffffffff61129816565b600160a060020a0387166000908152609e60205260409020549092506108f1908363ffffffff61128116565b600160a060020a038088166000908152609e60205260408082209390935590871681522054610926908363ffffffff6112cd16565b600160a060020a038087166000818152609e602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350600195945050505050565b610991610d80565b151561099c57600080fd5b609b805482151560a860020a810275ff000000000000000000000000000000000000000000199092169190911790915560408051918252517f398c4e18c8ef7f11eb3921fe2d01d3b469329a5f01febf5ba17f2462f27f439c9181900360200190a150565b60355460ff1690565b609b5460009060a860020a900460ff1615610a2457600080fd5b336000908152609f60209081526040808320600160a060020a0387168452909152902054610a58908363ffffffff6112cd16565b336000818152609f60209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b609b5474010000000000000000000000000000000000000000900460ff1681565b609d54600160a060020a0382166000908152609e60205260408120549091610646919063ffffffff6112df16565b610b14610d80565b1515610b1f57600080fd5b606854604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26068805473ffffffffffffffffffffffffffffffffffffffff19169055565b609b54600090600160a060020a03163314610b9057600080fd5b609b5474010000000000000000000000000000000000000000900460ff1615610bb857600080fd5b811515610c0057609c54604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250609c54610646565b6000821215610c2c57610c24610c1583611302565b609c549063ffffffff61128116565b609c55610c43565b609c54610c3f908363ffffffff6112cd16565b609c555b609c546fffffffffffffffffffffffffffffffff1015610c72576fffffffffffffffffffffffffffffffff609c555b609c54610c99906919e1ae08d8ecdb8e00006000195b06600019039063ffffffff6112df16565b609d55609c54604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250609c5492915050565b609b5460a860020a900460ff1681565b610cf6610d80565b1515610d0157600080fd5b609b8054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f0e6961f1a1afb87eaf51fd64f22ddc10062e23aa7838eac5d0bdf140bfd389729181900360200190a150565b606854600160a060020a031690565b609b54600160a060020a031681565b606854600160a060020a0316331490565b60348054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105bf5780601f10610594576101008083540402835291602001916105bf565b609b54600090819060a860020a900460ff1615610e0e57600080fd5b50336000908152609f60209081526040808320600160a060020a0387168452909152902054808310610e6357336000908152609f60209081526040808320600160a060020a0388168452909152812055610e98565b610e73818463ffffffff61128116565b336000908152609f60209081526040808320600160a060020a03891684529091529020555b336000818152609f60209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b60008083600160a060020a0381161515610f1957600080fd5b600160a060020a038116301415610f2f57600080fd5b609b5460a860020a900460ff1615610f4657600080fd5b609d54610f5a90859063ffffffff61129816565b336000908152609e6020526040902054909250610f7d908363ffffffff61128116565b336000908152609e602052604080822092909255600160a060020a03871681522054610faf908363ffffffff6112cd16565b600160a060020a0386166000818152609e60209081526040918290209390935580518781529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001949350505050565b60008054610100900460ff16806110295750611029611277565b80611037575060005460ff16155b15156110ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a6564000000000000000000000000000000000000606482015290519081900360840190fd5b5060008054600161010061ff00198316811760ff191691909117909255604080518082018252600b81527f444f4745204b494c4c45520000000000000000000000000000000000000000006020808301919091528251808401909352600583527f4c45415348000000000000000000000000000000000000000000000000000000908301529290910460ff169161116291601261064c565b61116b82611346565b609b805475ffff0000000000000000000000000000000000000000191690556919e1ae08d8ecdb8e0000609c818155600160a060020a0384166000908152609e60205260409020682ebfb46832583dffff199055546111cc91600019610c88565b609d55609c546040805191825251600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600080549115156101000261ff001990921691909117905550565b600160a060020a039182166000908152609f6020908152604080832093909416825291909152205490565b611260610d80565b151561126b57600080fd5b6112748161145d565b50565b303b8015905b5090565b6000808383111561129157600080fd5b5050900390565b6000808315156112ab5760009150610ef9565b508282028284828115156112bb57fe5b04146112c657600080fd5b9392505050565b6000828201838110156112c657600080fd5b6000808083116112ee57600080fd5b82848115156112f957fe5b04949350505050565b60007f800000000000000000000000000000000000000000000000000000000000000082141561133157600080fd5b6000821261133f5781610646565b5060000390565b60008054610100900460ff16806113605750611360611277565b8061136e575060005460ff16155b151561140157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201527f656e20696e697469616c697a6564000000000000000000000000000000000000606482015290519081900360840190fd5b50600080546068805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931790925561ff001980831661010090811760ff19166001179091169281900460ff16151502919091179055565b600160a060020a038116151561147257600080fd5b606854604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36068805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061151c57805160ff1916838001178555611549565b82800160010185558215611549579182015b8281111561154957825182559160200191906001019061152e565b5061127d926105c79250905b8082111561127d57600081556001016115555600a165627a7a72305820110045ddcdac3081ec4b21e9a876fdccd4adf815653a0e5d4c02bb33047c487c0029