[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rebase", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "LogRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "stakingContract", "type": "address" } ], "name": "LogStakingContractUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "LogSupply", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gons", "type": "uint256" } ], "name": "balanceForGons", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "gonsForBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "index", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_stakingContract", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "uint256", "name": "epoch_", "type": "uint256" } ], "name": "rebase", "outputs": [ { "internalType": "uint256", "name": "_newSupply", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rebases", "outputs": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "uint256", "name": "rebase", "type": "uint256" }, { "internalType": "uint256", "name": "totalStakedBefore", "type": "uint256" }, { "internalType": "uint256", "name": "totalStakedAfter", "type": "uint256" }, { "internalType": "uint256", "name": "amountRebased", "type": "uint256" }, { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "blockNumberOccured", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakingContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620012023803806200120283398101604081905262000034916200016f565b8181600362000044838262000268565b50600462000053828262000268565b5050600580546001600160a01b031916331790555067016345785d8a0000600781905562000084816000196200034a565b620000929060001962000361565b6200009e919062000389565b60095550620003a09050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d257600080fd5b81516001600160401b0380821115620000ef57620000ef620000aa565b604051601f8301601f19908116603f011681019082821181831017156200011a576200011a620000aa565b816040528381526020925086838588010111156200013757600080fd5b600091505b838210156200015b57858201830151818301840152908201906200013c565b600093810190920192909252949350505050565b600080604083850312156200018357600080fd5b82516001600160401b03808211156200019b57600080fd5b620001a986838701620000c0565b93506020850151915080821115620001c057600080fd5b50620001cf85828601620000c0565b9150509250929050565b600181811c90821680620001ee57607f821691505b6020821081036200020f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026357600081815260208120601f850160051c810160208610156200023e5750805b601f850160051c820191505b818110156200025f578281556001016200024a565b5050505b505050565b81516001600160401b03811115620002845762000284620000aa565b6200029c81620002958454620001d9565b8462000215565b602080601f831160018114620002d45760008415620002bb5750858301515b600019600386901b1c1916600185901b1785556200025f565b600085815260208120601f198616915b828110156200030557888601518255948401946001909101908401620002e4565b5085821015620003245787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601260045260246000fd5b6000826200035c576200035c62000334565b500690565b818103818111156200038357634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200039b576200039b62000334565b500490565b610e5280620003b06000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806370a08231116100cd578063a457c2d711610081578063c4d66de811610066578063c4d66de8146102b0578063dd62ed3e146102c5578063ee99205c146102fe57600080fd5b8063a457c2d71461028a578063a9059cbb1461029d57600080fd5b80637965d56d116100b25780637965d56d146102675780639358928b1461027a57806395d89b411461028257600080fd5b806370a082311461020c57806373c69eb71461021f57600080fd5b80631bd39674116101245780632986c0e5116101095780632986c0e5146101e2578063313ce567146101ea57806339509351146101f957600080fd5b80631bd39674146101bc57806323b872dd146101cf57600080fd5b8063058ecdb41461015657806306fdde031461017c578063095ea7b31461019157806318160ddd146101b4575b600080fd5b610169610164366004610bf1565b610329565b6040519081526020015b60405180910390f35b6101846104f7565b6040516101739190610c13565b6101a461019f366004610c7d565b610589565b6040519015158152602001610173565b600254610169565b6101696101ca366004610ca7565b61059f565b6101a46101dd366004610cc0565b6105af565b610169610701565b60405160098152602001610173565b6101a4610207366004610c7d565b610713565b61016961021a366004610cfc565b61074f565b61023261022d366004610ca7565b610776565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610173565b610169610275366004610ca7565b6107c8565b6101696107d8565b6101846107fd565b6101a4610298366004610c7d565b61080c565b6101a46102ab366004610c7d565b610861565b6102c36102be366004610cfc565b610920565b005b6101696102d3366004610d1e565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b600654610311906001600160a01b031681565b6040516001600160a01b039091168152602001610173565b6006546000906001600160a01b031633146103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4f6e6c79207374616b696e670000000000000000000000000000000000000000604482015260640160405180910390fd5b6000806103af6107d8565b90508460000361044557837f0417b340e646d4be71f9b2da63b5c3c69bc9cfa069f0e0db4756271886130bf46007546040516103ed91815260200190565b60405180910390a2837f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb26000610421610701565b6040805192835260208301919091520160405180910390a2600754925050506104f1565b801561046b57806007548661045a9190610d67565b6104649190610d94565b915061046f565b8491505b8160075461047d9190610da8565b60078190556fffffffffffffffffffffffffffffffff10156104ae576fffffffffffffffffffffffffffffffff6007555b6007546104c567016345785d8a0000600019610dbb565b6104d190600019610dcf565b6104db9190610d94565b6009556104e9818686610a41565b600754925050505b92915050565b60606003805461050690610de2565b80601f016020809104026020016040519081016040528092919081815260200182805461053290610de2565b801561057f5780601f106105545761010080835404028352916020019161057f565b820191906000526020600020905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b6000610596338484610b90565b50600192915050565b6000600954826104f19190610d67565b6001600160a01b0383166000908152600c602090815260408083203384529091528120546105de908390610dcf565b6001600160a01b0385166000818152600c6020908152604080832033808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a360006106438361059f565b6001600160a01b0386166000908152600b602052604090205490915061066a908290610dcf565b6001600160a01b038087166000908152600b6020526040808220939093559086168152205461069a908290610da8565b6001600160a01b038086166000818152600b602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ee9087815260200190565b60405180910390a3506001949350505050565b600061070e6008546107c8565b905090565b336000818152600c602090815260408083206001600160a01b0387168452909152812054909161059691859061074a908690610da8565b610b90565b6009546001600160a01b0382166000908152600b602052604081205490916104f191610d94565b600a818154811061078657600080fd5b90600052602060002090600702016000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b6000600954826104f19190610d94565b6006546000906107f0906001600160a01b031661074f565b60075461070e9190610dcf565b60606004805461050690610de2565b336000908152600c602090815260408083206001600160a01b03861684529091528120548083106108485761084333856000610b90565b610857565b610857338561074a8685610dcf565b5060019392505050565b600080600954836108729190610d67565b336000908152600b6020526040902054909150610890908290610dcf565b336000908152600b6020526040808220929092556001600160a01b038616815220546108bd908290610da8565b6001600160a01b0385166000818152600b60205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061090e9087815260200190565b60405180910390a35060019392505050565b6005546001600160a01b0316331461093757600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905561097367016345785d8a0000600019610dbb565b61097f90600019610dcf565b600680546001600160a01b039081166000908152600b602052604080822094909455915460075493519116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916109d991815260200190565b60405180910390a36006546040516001600160a01b0390911681527f817c653428858ed536dc085c5d8273734c517b55de44b55f5c5877a75e3373a19060200160405180910390a1506005805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008315610a695783610a5c84670de0b6b3a7640000610d67565b610a669190610d94565b90505b600a6040518060e00160405280848152602001838152602001868152602001610a906107d8565b8152602001858152602001610aa3610701565b8152436020918201528254600181810185556000948552938290208351600792830290910190815591830151938201939093556040808301516002830155606083015160038301556080830151600483015560a0830151600583015560c0909201516006909101559054905183917f0417b340e646d4be71f9b2da63b5c3c69bc9cfa069f0e0db4756271886130bf491610b3f91815260200190565b60405180910390a2817f6012dbce857565c4a40974aa5de8373a761fc429077ef0c8c8611d1e20d63fb282610b72610701565b6040805192835260208301919091520160405180910390a250505050565b6001600160a01b038381166000818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008060408385031215610c0457600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015610c4057858101830151858201604001528201610c24565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c7857600080fd5b919050565b60008060408385031215610c9057600080fd5b610c9983610c61565b946020939093013593505050565b600060208284031215610cb957600080fd5b5035919050565b600080600060608486031215610cd557600080fd5b610cde84610c61565b9250610cec60208501610c61565b9150604084013590509250925092565b600060208284031215610d0e57600080fd5b610d1782610c61565b9392505050565b60008060408385031215610d3157600080fd5b610d3a83610c61565b9150610d4860208401610c61565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104f1576104f1610d51565b634e487b7160e01b600052601260045260246000fd5b600082610da357610da3610d7e565b500490565b808201808211156104f1576104f1610d51565b600082610dca57610dca610d7e565b500690565b818103818111156104f1576104f1610d51565b600181811c90821680610df657607f821691505b602082108103610e1657634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122055dae05f07e8dce2104d49cddfec1c859e6b7d9a760e73d9d921e3c5e6c7835364736f6c634300081300330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000115374616b6564204d656d6546692044414f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004734d464400000000000000000000000000000000000000000000000000000000