UNPKG

@vaimee/my3sec-contracts

Version:

A set of contracts that implements the My3Sec protocol

380 lines (379 loc) 22.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "EnergyWallet", "sourceName": "contracts/profiles/EnergyWallet.sol", "abi": [ { "inputs": [], "name": "InitParamsInvalid", "type": "error" }, { "inputs": [], "name": "NotHub", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "hub", "type": "address" } ], "name": "__HubControllable_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "allocatedEnergyOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "createEnergyFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "destroyEnergyFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "energizedBy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "energizersOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "freeEnergyOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "from", "type": "uint256" }, { "internalType": "uint256", "name": "to", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "giveEnergy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hub", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "receivedEnergyOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "from", "type": "uint256" }, { "internalType": "uint256", "name": "to", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "removeEnergy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "hub", "type": "address" } ], "name": "setHub", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "totalEnergizedBy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "totalEnergizersOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "profileId", "type": "uint256" } ], "name": "totalEnergyOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50610e5b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637d94dfc9116100a2578063d072007d11610071578063d072007d14610260578063e3bfe61b14610273578063ea6866ad14610286578063f2fde38b14610299578063f414c97d146102ac57600080fd5b80637d94dfc9146101ff5780638da5cb5b146102125780639dfbfa761461022d578063c4d66de81461024d57600080fd5b80633d107d4d116100e95780633d107d4d1461019e57806343b521bd146101b157806352c5fb8a146101c4578063540e3199146101d7578063715018a6146101f757600080fd5b806325b98c081461011b5780632d34e2241461014857806331962cdc14610169578063319d684e1461017e575b600080fd5b61012e610129366004610cf8565b6102bf565b604080519283526020830191909152015b60405180910390f35b61015b610156366004610d1a565b6102e5565b60405190815260200161013f565b61017c610177366004610d33565b610302565b005b61015b61018c366004610d1a565b60009081526067602052604090205490565b61015b6101ac366004610d1a565b610353565b61012e6101bf366004610cf8565b61036a565b61017c6101d2366004610cf8565b610384565b61015b6101e5366004610d1a565b60009081526066602052604090205490565b61017c6103d6565b61017c61020d366004610d5c565b6103ea565b6033546040516001600160a01b03909116815260200161013f565b61015b61023b366004610d1a565b60009081526068602052604090205490565b61017c61025b366004610d33565b610563565b61017c61026e366004610d5c565b610676565b61017c610281366004610cf8565b610804565b61015b610294366004610d1a565b6108f2565b61017c6102a7366004610d33565b610916565b61017c6102ba366004610d33565b61098f565b600082815260696020526040812081906102d990846109c7565b915091505b9250929050565b6000818152606a602052604081206102fc906109e3565b92915050565b61030a6109ee565b6001600160a01b038116610331576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526069602052604081206102fc906109e3565b6000828152606a6020526040812081906102d990846109c7565b6065546001600160a01b031633146103af576040516313bd2e8360e31b815260040160405180910390fd5b600082815260666020526040812080548392906103cd908490610d9e565b90915550505050565b6103de6109ee565b6103e86000610a48565b565b6065546001600160a01b03163314610415576040516313bd2e8360e31b815260040160405180910390fd5b8282036104695760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206769766520656e6572677920746f20796f757273656c66000060448201526064015b60405180910390fd5b610472836108f2565b8111156104b75760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e7420656e6572677960681b6044820152606401610460565b600083815260676020526040812080548392906104d5908490610d9e565b909155505060008381526069602052604081206104f29084610a9a565b9150600090506105028383610d9e565b600086815260696020526040902090915061051e908583610aa9565b506000848152606a60205260409020610538908683610aa9565b5060008481526068602052604081208054859290610557908490610d9e565b90915550505050505050565b600054610100900460ff16158080156105835750600054600160ff909116105b8061059d5750303b15801561059d575060005460ff166001145b6106005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610460565b6000805460ff191660011790558015610623576000805461ff0019166101001790555b61062c8261098f565b8015610672576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6065546001600160a01b031633146106a1576040516313bd2e8360e31b815260040160405180910390fd5b60008281526069602052604090206106b99084610abe565b6106fe5760405162461bcd60e51b8152602060048201526016602482015275141c9bd99a5b19481b9bdd081c9959995c995b98d95960521b6044820152606401610460565b60008281526069602052604090206107169084610ad1565b81111561075d5760405162461bcd60e51b8152602060048201526015602482015274457863656564656420676976656e20656e6572677960581b6044820152606401610460565b6000838152606860205260408120805483929061077b908490610db1565b90915550506000828152606960205260408120829061079a9086610ad1565b6107a49190610db1565b60008481526069602052604090209091506107c0908583610aa9565b506000848152606a602052604090206107da908483610aa9565b50600083815260676020526040812080548492906107f9908490610db1565b909155505050505050565b6065546001600160a01b0316331461082f576040516313bd2e8360e31b815260040160405180910390fd5b610838826108f2565b81111561087e5760405162461bcd60e51b81526020600482015260146024820152734578636565646564206672656520656e6572677960601b6044820152606401610460565b6000828152606660205260409020548111156108d45760405162461bcd60e51b8152602060048201526015602482015274457863656564656420746f74616c20656e6572677960581b6044820152606401610460565b600082815260666020526040812080548392906103cd908490610db1565b60008181526067602090815260408083205460669092528220546102fc9190610db1565b61091e6109ee565b6001600160a01b0381166109835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610460565b61098c81610a48565b50565b600054610100900460ff166109b65760405162461bcd60e51b815260040161046090610dc4565b6109be610add565b61098c81610302565b60008080806109d68686610b0c565b9097909650945050505050565b60006102fc82610b37565b6033546001600160a01b031633146103e85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610460565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806109d68686610b42565b6000610ab6848484610b7c565b949350505050565b6000610aca8383610b99565b9392505050565b6000610aca8383610ba5565b600054610100900460ff16610b045760405162461bcd60e51b815260040161046090610dc4565b6103e8610c15565b60008080610b1a8585610c45565b600081815260029690960160205260409095205494959350505050565b60006102fc82610c51565b6000818152600283016020526040812054819080610b7157610b648585610b99565b9250600091506102de9050565b6001925090506102de565b60008281526002840160205260408120829055610ab68484610c5b565b6000610aca8383610c67565b600081815260028301602052604081205480151580610bc95750610bc98484610b99565b610aca5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610460565b600054610100900460ff16610c3c5760405162461bcd60e51b815260040161046090610dc4565b6103e833610a48565b6000610aca8383610c7f565b60006102fc825490565b6000610aca8383610ca9565b60008181526001830160205260408120541515610aca565b6000826000018281548110610c9657610c96610e0f565b9060005260206000200154905092915050565b6000818152600183016020526040812054610cf0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60008060408385031215610d0b57600080fd5b50508035926020909101359150565b600060208284031215610d2c57600080fd5b5035919050565b600060208284031215610d4557600080fd5b81356001600160a01b0381168114610aca57600080fd5b600080600060608486031215610d7157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102fc576102fc610d88565b818103818111156102fc576102fc610d88565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122037edad9bf55b539a7311d903b5dd3ba43bf2cf2ae9c6da71dfcc76398d0359bd64736f6c63430008110033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c80637d94dfc9116100a2578063d072007d11610071578063d072007d14610260578063e3bfe61b14610273578063ea6866ad14610286578063f2fde38b14610299578063f414c97d146102ac57600080fd5b80637d94dfc9146101ff5780638da5cb5b146102125780639dfbfa761461022d578063c4d66de81461024d57600080fd5b80633d107d4d116100e95780633d107d4d1461019e57806343b521bd146101b157806352c5fb8a146101c4578063540e3199146101d7578063715018a6146101f757600080fd5b806325b98c081461011b5780632d34e2241461014857806331962cdc14610169578063319d684e1461017e575b600080fd5b61012e610129366004610cf8565b6102bf565b604080519283526020830191909152015b60405180910390f35b61015b610156366004610d1a565b6102e5565b60405190815260200161013f565b61017c610177366004610d33565b610302565b005b61015b61018c366004610d1a565b60009081526067602052604090205490565b61015b6101ac366004610d1a565b610353565b61012e6101bf366004610cf8565b61036a565b61017c6101d2366004610cf8565b610384565b61015b6101e5366004610d1a565b60009081526066602052604090205490565b61017c6103d6565b61017c61020d366004610d5c565b6103ea565b6033546040516001600160a01b03909116815260200161013f565b61015b61023b366004610d1a565b60009081526068602052604090205490565b61017c61025b366004610d33565b610563565b61017c61026e366004610d5c565b610676565b61017c610281366004610cf8565b610804565b61015b610294366004610d1a565b6108f2565b61017c6102a7366004610d33565b610916565b61017c6102ba366004610d33565b61098f565b600082815260696020526040812081906102d990846109c7565b915091505b9250929050565b6000818152606a602052604081206102fc906109e3565b92915050565b61030a6109ee565b6001600160a01b038116610331576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526069602052604081206102fc906109e3565b6000828152606a6020526040812081906102d990846109c7565b6065546001600160a01b031633146103af576040516313bd2e8360e31b815260040160405180910390fd5b600082815260666020526040812080548392906103cd908490610d9e565b90915550505050565b6103de6109ee565b6103e86000610a48565b565b6065546001600160a01b03163314610415576040516313bd2e8360e31b815260040160405180910390fd5b8282036104695760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206769766520656e6572677920746f20796f757273656c66000060448201526064015b60405180910390fd5b610472836108f2565b8111156104b75760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e7420656e6572677960681b6044820152606401610460565b600083815260676020526040812080548392906104d5908490610d9e565b909155505060008381526069602052604081206104f29084610a9a565b9150600090506105028383610d9e565b600086815260696020526040902090915061051e908583610aa9565b506000848152606a60205260409020610538908683610aa9565b5060008481526068602052604081208054859290610557908490610d9e565b90915550505050505050565b600054610100900460ff16158080156105835750600054600160ff909116105b8061059d5750303b15801561059d575060005460ff166001145b6106005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610460565b6000805460ff191660011790558015610623576000805461ff0019166101001790555b61062c8261098f565b8015610672576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6065546001600160a01b031633146106a1576040516313bd2e8360e31b815260040160405180910390fd5b60008281526069602052604090206106b99084610abe565b6106fe5760405162461bcd60e51b8152602060048201526016602482015275141c9bd99a5b19481b9bdd081c9959995c995b98d95960521b6044820152606401610460565b60008281526069602052604090206107169084610ad1565b81111561075d5760405162461bcd60e51b8152602060048201526015602482015274457863656564656420676976656e20656e6572677960581b6044820152606401610460565b6000838152606860205260408120805483929061077b908490610db1565b90915550506000828152606960205260408120829061079a9086610ad1565b6107a49190610db1565b60008481526069602052604090209091506107c0908583610aa9565b506000848152606a602052604090206107da908483610aa9565b50600083815260676020526040812080548492906107f9908490610db1565b909155505050505050565b6065546001600160a01b0316331461082f576040516313bd2e8360e31b815260040160405180910390fd5b610838826108f2565b81111561087e5760405162461bcd60e51b81526020600482015260146024820152734578636565646564206672656520656e6572677960601b6044820152606401610460565b6000828152606660205260409020548111156108d45760405162461bcd60e51b8152602060048201526015602482015274457863656564656420746f74616c20656e6572677960581b6044820152606401610460565b600082815260666020526040812080548392906103cd908490610db1565b60008181526067602090815260408083205460669092528220546102fc9190610db1565b61091e6109ee565b6001600160a01b0381166109835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610460565b61098c81610a48565b50565b600054610100900460ff166109b65760405162461bcd60e51b815260040161046090610dc4565b6109be610add565b61098c81610302565b60008080806109d68686610b0c565b9097909650945050505050565b60006102fc82610b37565b6033546001600160a01b031633146103e85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610460565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806109d68686610b42565b6000610ab6848484610b7c565b949350505050565b6000610aca8383610b99565b9392505050565b6000610aca8383610ba5565b600054610100900460ff16610b045760405162461bcd60e51b815260040161046090610dc4565b6103e8610c15565b60008080610b1a8585610c45565b600081815260029690960160205260409095205494959350505050565b60006102fc82610c51565b6000818152600283016020526040812054819080610b7157610b648585610b99565b9250600091506102de9050565b6001925090506102de565b60008281526002840160205260408120829055610ab68484610c5b565b6000610aca8383610c67565b600081815260028301602052604081205480151580610bc95750610bc98484610b99565b610aca5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610460565b600054610100900460ff16610c3c5760405162461bcd60e51b815260040161046090610dc4565b6103e833610a48565b6000610aca8383610c7f565b60006102fc825490565b6000610aca8383610ca9565b60008181526001830160205260408120541515610aca565b6000826000018281548110610c9657610c96610e0f565b9060005260206000200154905092915050565b6000818152600183016020526040812054610cf0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60008060408385031215610d0b57600080fd5b50508035926020909101359150565b600060208284031215610d2c57600080fd5b5035919050565b600060208284031215610d4557600080fd5b81356001600160a01b0381168114610aca57600080fd5b600080600060608486031215610d7157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102fc576102fc610d88565b818103818111156102fc576102fc610d88565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122037edad9bf55b539a7311d903b5dd3ba43bf2cf2ae9c6da71dfcc76398d0359bd64736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} }