UNPKG

@cartesi/staking-pool

Version:
379 lines 20.2 kB
{ "contractName": "StakingPoolWorkerImpl", "sourceName": "contracts/StakingPoolWorkerImpl.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_workerManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "amount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "amountToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "workerAddress", "type": "address" } ], "name": "cancelHire", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "workerAddress", "type": "address" } ], "name": "hire", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pos", "outputs": [ { "internalType": "contract IPoS", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "requiredLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "workerAddress", "type": "address" } ], "name": "retire", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "selfhire", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "shares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "sharesToAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userBalance", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "depositTimestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x60a060405234801561001057600080fd5b50604051610ba2380380610ba283398101604081905261002f916100a8565b6001600160a01b0381166100935760405162461bcd60e51b815260206004820152602160248201527f706172616d657465722063616e206e6f74206265207a65726f206164647265736044820152607360f81b606482015260840160405180910390fd5b60601b6001600160601b0319166080526100d8565b6000602082840312156100ba57600080fd5b81516001600160a01b03811681146100d157600080fd5b9392505050565b60805160601c610a826101206000396000818161033d015281816103c80152818161042c01528181610555015281816105fe015281816106ad01526107320152610a826000f3fe6080604052600436106100ec5760003560e01c80639e6371ba1161008a578063c56551b611610059578063c56551b614610282578063d9d6bd86146102a2578063e366b7bb146102b5578063f2fde38b146102cb57600080fd5b80639e6371ba1461020c578063aa8c217c1461022c578063b64b3bed14610242578063b811540e1461026257600080fd5b80635c975abb116100c65780635c975abb146101985780636ff46a6c146101bb578063715018a6146101c55780638da5cb5b146101da57600080fd5b80630103c92b146100f857806303314efa14610154578063555d8ebb1461017857600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061013461011336600461095d565b609b6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b34801561016057600080fd5b5061016a60975481565b60405190815260200161014b565b34801561018457600080fd5b5061016a61019336600461097a565b6102eb565b3480156101a457600080fd5b5060335460ff16604051901515815260200161014b565b6101c3610328565b005b3480156101d157600080fd5b506101c36104cd565b3480156101e657600080fd5b506065546001600160a01b03165b6040516001600160a01b03909116815260200161014b565b34801561021857600080fd5b506101c361022736600461095d565b61050c565b34801561023857600080fd5b5061016a60985481565b34801561024e57600080fd5b506101c361025d36600461095d565b6105b5565b34801561026e57600080fd5b5061016a61027d36600461097a565b61062d565b34801561028e57600080fd5b50609a546101f4906001600160a01b031681565b6101c36102b036600461095d565b610664565b3480156102c157600080fd5b5061016a60995481565b3480156102d757600080fd5b506101c36102e636600461095d565b610767565b60006097546000141561030757610301826107ff565b92915050565b6103016097546103226098548561083390919063ffffffff16565b9061086d565b604051636ceb5ec360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d9d6bd869034906024016000604051808303818588803b15801561038a57600080fd5b505af115801561039e573d6000803e3d6000fd5b5050609a54604051632bef459560e01b81523060048201526001600160a01b0391821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169350632bef459592506044019050600060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b789b7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048557600080fd5b505af1158015610499573d6000803e3d6000fd5b50506040513392503480156108fc029250906000818181858888f193505050501580156104ca573d6000803e3d6000fd5b50565b6065546001600160a01b031633146105005760405162461bcd60e51b81526004016104f790610993565b60405180910390fd5b61050a60006108b0565b565b6065546001600160a01b031633146105365760405162461bcd60e51b81526004016104f790610993565b604051634f31b8dd60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639e6371ba906024015b600060405180830381600087803b15801561059a57600080fd5b505af11580156105ae573d6000803e3d6000fd5b5050505050565b6065546001600160a01b031633146105df5760405162461bcd60e51b81526004016104f790610993565b60405163b64b3bed60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063b64b3bed90602401610580565b6000609854600014156106435761030182610902565b61030160985461065e6097548561091290919063ffffffff16565b9061093a565b6065546001600160a01b0316331461068e5760405162461bcd60e51b81526004016104f790610993565b604051636ceb5ec360e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063d9d6bd869034906024016000604051808303818588803b1580156106f257600080fd5b505af1158015610706573d6000803e3d6000fd5b5050609a54604051632bef459560e01b81526001600160a01b03868116600483015291821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169350632bef459592506044019050610580565b6065546001600160a01b031633146107915760405162461bcd60e51b81526004016104f790610993565b6001600160a01b0381166107f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f7565b6104ca816108b0565b6000806108116002633b9aca006109e0565b9050633b9aca0061082284836109c8565b61082c91906109e0565b9392505050565b60006b033b2e3c9fd0803ce800000061084c8385610a02565b61086360026b033b2e3c9fd0803ce80000006109e0565b61082291906109c8565b60008061087b6002846109e0565b9050826108946b033b2e3c9fd0803ce800000086610a02565b61089e90836109c8565b6108a891906109e0565b949350505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000610301633b9aca0083610a02565b6000670de0b6b3a76400006109278385610a02565b6108636002670de0b6b3a76400006109e0565b6000806109486002846109e0565b905082610894670de0b6b3a764000086610a02565b60006020828403121561096f57600080fd5b813561082c81610a37565b60006020828403121561098c57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109db576109db610a21565b500190565b6000826109fd57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610a1c57610a1c610a21565b500290565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146104ca57600080fdfea26469706673582212204d826897b62c22b62f36b32216dafe5cb91d8bd35227c0b8ebfe7b8ed108cd2764736f6c63430008070033", "deployedBytecode": "0x6080604052600436106100ec5760003560e01c80639e6371ba1161008a578063c56551b611610059578063c56551b614610282578063d9d6bd86146102a2578063e366b7bb146102b5578063f2fde38b146102cb57600080fd5b80639e6371ba1461020c578063aa8c217c1461022c578063b64b3bed14610242578063b811540e1461026257600080fd5b80635c975abb116100c65780635c975abb146101985780636ff46a6c146101bb578063715018a6146101c55780638da5cb5b146101da57600080fd5b80630103c92b146100f857806303314efa14610154578063555d8ebb1461017857600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061013461011336600461095d565b609b6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060015b60405180910390f35b34801561016057600080fd5b5061016a60975481565b60405190815260200161014b565b34801561018457600080fd5b5061016a61019336600461097a565b6102eb565b3480156101a457600080fd5b5060335460ff16604051901515815260200161014b565b6101c3610328565b005b3480156101d157600080fd5b506101c36104cd565b3480156101e657600080fd5b506065546001600160a01b03165b6040516001600160a01b03909116815260200161014b565b34801561021857600080fd5b506101c361022736600461095d565b61050c565b34801561023857600080fd5b5061016a60985481565b34801561024e57600080fd5b506101c361025d36600461095d565b6105b5565b34801561026e57600080fd5b5061016a61027d36600461097a565b61062d565b34801561028e57600080fd5b50609a546101f4906001600160a01b031681565b6101c36102b036600461095d565b610664565b3480156102c157600080fd5b5061016a60995481565b3480156102d757600080fd5b506101c36102e636600461095d565b610767565b60006097546000141561030757610301826107ff565b92915050565b6103016097546103226098548561083390919063ffffffff16565b9061086d565b604051636ceb5ec360e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d9d6bd869034906024016000604051808303818588803b15801561038a57600080fd5b505af115801561039e573d6000803e3d6000fd5b5050609a54604051632bef459560e01b81523060048201526001600160a01b0391821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169350632bef459592506044019050600060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b789b7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561048557600080fd5b505af1158015610499573d6000803e3d6000fd5b50506040513392503480156108fc029250906000818181858888f193505050501580156104ca573d6000803e3d6000fd5b50565b6065546001600160a01b031633146105005760405162461bcd60e51b81526004016104f790610993565b60405180910390fd5b61050a60006108b0565b565b6065546001600160a01b031633146105365760405162461bcd60e51b81526004016104f790610993565b604051634f31b8dd60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690639e6371ba906024015b600060405180830381600087803b15801561059a57600080fd5b505af11580156105ae573d6000803e3d6000fd5b5050505050565b6065546001600160a01b031633146105df5760405162461bcd60e51b81526004016104f790610993565b60405163b64b3bed60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063b64b3bed90602401610580565b6000609854600014156106435761030182610902565b61030160985461065e6097548561091290919063ffffffff16565b9061093a565b6065546001600160a01b0316331461068e5760405162461bcd60e51b81526004016104f790610993565b604051636ceb5ec360e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063d9d6bd869034906024016000604051808303818588803b1580156106f257600080fd5b505af1158015610706573d6000803e3d6000fd5b5050609a54604051632bef459560e01b81526001600160a01b03868116600483015291821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169350632bef459592506044019050610580565b6065546001600160a01b031633146107915760405162461bcd60e51b81526004016104f790610993565b6001600160a01b0381166107f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f7565b6104ca816108b0565b6000806108116002633b9aca006109e0565b9050633b9aca0061082284836109c8565b61082c91906109e0565b9392505050565b60006b033b2e3c9fd0803ce800000061084c8385610a02565b61086360026b033b2e3c9fd0803ce80000006109e0565b61082291906109c8565b60008061087b6002846109e0565b9050826108946b033b2e3c9fd0803ce800000086610a02565b61089e90836109c8565b6108a891906109e0565b949350505050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000610301633b9aca0083610a02565b6000670de0b6b3a76400006109278385610a02565b6108636002670de0b6b3a76400006109e0565b6000806109486002846109e0565b905082610894670de0b6b3a764000086610a02565b60006020828403121561096f57600080fd5b813561082c81610a37565b60006020828403121561098c57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109db576109db610a21565b500190565b6000826109fd57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610a1c57610a1c610a21565b500290565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146104ca57600080fdfea26469706673582212204d826897b62c22b62f36b32216dafe5cb91d8bd35227c0b8ebfe7b8ed108cd2764736f6c63430008070033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "kind": "dev", "methods": { "cancelHire(address)": { "params": { "workerAddress": "address of the worker node" } }, "hire(address)": { "params": { "workerAddress": "address of the worker" } }, "owner()": { "details": "Returns the address of the current owner." }, "paused()": { "details": "Returns true if the contract is paused, and false otherwise." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." }, "retire(address)": { "details": "this also removes all authorizations in place", "params": { "workerAddress": "address of the worker to be retired" } }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "cancelHire(address)": { "notice": "Called by the user to cancel a job offer" }, "hire(address)": { "notice": "Asks the worker to work for the sender. Sender needs to pay something." }, "retire(address)": { "notice": "Called by the user to retire his worker." }, "selfhire()": { "notice": "allows for the pool to act on its own behalf when producing blocks." } }, "version": 1 }, "evm": { "gasEstimates": { "creation": { "codeDepositCost": "538000", "executionCost": "infinite", "totalCost": "infinite" }, "external": { "amount()": "2340", "amountToShares(uint256)": "infinite", "cancelHire(address)": "infinite", "hire(address)": "infinite", "owner()": "2409", "paused()": "2315", "pos()": "2359", "renounceOwnership()": "28184", "requiredLiquidity()": "2361", "retire(address)": "infinite", "selfhire()": "infinite", "shares()": "2341", "sharesToAmount(uint256)": "infinite", "transferOwnership(address)": "infinite", "userBalance(address)": "6801" }, "internal": { "__StakingPoolWorkerImpl_update(address)": "infinite" } }, "methodIdentifiers": { "amount()": "aa8c217c", "amountToShares(uint256)": "b811540e", "cancelHire(address)": "b64b3bed", "hire(address)": "d9d6bd86", "owner()": "8da5cb5b", "paused()": "5c975abb", "pos()": "c56551b6", "renounceOwnership()": "715018a6", "requiredLiquidity()": "e366b7bb", "retire(address)": "9e6371ba", "selfhire()": "6ff46a6c", "shares()": "03314efa", "sharesToAmount(uint256)": "555d8ebb", "transferOwnership(address)": "f2fde38b", "userBalance(address)": "0103c92b" } } }