{
  "contractName": "StakingPoolFactoryImpl",
  "sourceName": "contracts/StakingPoolFactoryImpl.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_gasOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_priceOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_pos",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_feeRaiseTimeout",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxGasRaise",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxFeePercentageRaise",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "fee",
          "type": "address"
        }
      ],
      "name": "NewFlatRateCommissionStakingPool",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "fee",
          "type": "address"
        }
      ],
      "name": "NewGasTaxCommissionStakingPool",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pos",
          "type": "address"
        }
      ],
      "name": "PoSAddressChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "name": "ReferencePoolChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "commission",
          "type": "uint256"
        }
      ],
      "name": "createFlatRateCommission",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gas",
          "type": "uint256"
        }
      ],
      "name": "createGasTaxCommission",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "feeRaiseTimeout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gasOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPoS",
      "outputs": [
        {
          "internalType": "address",
          "name": "_pos",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxFeePercentageRaise",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxGasRaise",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pos",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "priceOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "referencePool",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_pos",
          "type": "address"
        }
      ],
      "name": "setPoSAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_referencePool",
          "type": "address"
        }
      ],
      "name": "setReferencePool",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6101206040523480156200001257600080fd5b506040516200234e3803806200234e8339810160408190526200003591620001eb565b62000040336200017e565b6000805460ff60a01b191690556001600160a01b038616620000be5760405162461bcd60e51b815260206004820152603a60248201526000805160206200232e83398151915260448201527f722063616e206e6f74206265207a65726f20616464726573732e00000000000060648201526084015b60405180910390fd5b6001600160a01b0385166200012b5760405162461bcd60e51b815260206004820152603a60248201526000805160206200232e83398151915260448201527f722063616e206e6f74206265207a65726f20616464726573732e0000000000006064820152608401620000b5565b606095861b6001600160601b03199081166080529490951b90931660a05260c05260e09190915261010091909152600280546001600160a01b0319166001600160a01b0390921691909117905562000251565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001e657600080fd5b919050565b60008060008060008060c087890312156200020557600080fd5b6200021087620001ce565b95506200022060208801620001ce565b94506200023060408801620001ce565b9350606087015192506080870151915060a087015190509295509295509295565b60805160601c60a05160601c60c05160e05161010051612068620002c66000396000818161027101526105470152600081816102e201526108d701526000818161012b0152818161052601526108b6015260008181610172015261089401526000818161023d015261087301526120686000f3fe60806040526004361061010d5760003560e01c80638456cb591161009557806395994ef71161006457806395994ef714610322578063964658b614610342578063c56551b614610355578063df6efe1514610375578063f2fde38b1461039557600080fd5b80638456cb59146102a857806386f1a717146102bd578063896c5107146102d05780638da5cb5b1461030457600080fd5b8063533135b6116100dc578063533135b6146101e15780635c975abb146102015780635d62a8dd1461022b5780636c678ff11461025f578063715018a61461029357600080fd5b8063112cde6a146101195780632630c12f146101605780632686e29d146101ac5780633f4ba83a146101ca57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561016c57600080fd5b506101947f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b3480156101b857600080fd5b506002546001600160a01b0316610194565b3480156101d657600080fd5b506101df6103b5565b005b3480156101ed57600080fd5b50600154610194906001600160a01b031681565b34801561020d57600080fd5b50600054600160a01b900460ff166040519015158152602001610157565b34801561023757600080fd5b506101947f000000000000000000000000000000000000000000000000000000000000000081565b34801561026b57600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561029f57600080fd5b506101df61043e565b3480156102b457600080fd5b506101df610472565b6101946102cb366004610e87565b6104ce565b3480156102dc57600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031057600080fd5b506000546001600160a01b0316610194565b34801561032e57600080fd5b506101df61033d366004610e57565b6107a8565b610194610350366004610e87565b61081c565b34801561036157600080fd5b50600254610194906001600160a01b031681565b34801561038157600080fd5b506101df610390366004610e57565b610b42565b3480156103a157600080fd5b506101df6103b0366004610e57565b610bb6565b600054600160a01b900460ff1661040a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064015b60405180910390fd5b6000546001600160a01b031633146104345760405162461bcd60e51b815260040161040190610eca565b61043c610c51565b565b6000546001600160a01b031633146104685760405162461bcd60e51b815260040161040190610eca565b61043c6000610cee565b600054600160a01b900460ff161561049c5760405162461bcd60e51b815260040161040190610ea0565b6000546001600160a01b031633146104c65760405162461bcd60e51b815260040161040190610eca565b61043c610d3e565b60008054600160a01b900460ff16156104f95760405162461bcd60e51b815260040161040190610ea0565b6001546001600160a01b03166105215760405162461bcd60e51b815260040161040190610eff565b6000827f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405161057290610e3b565b92835260208301919091526040820152606001604051809103906000f0801580156105a1573d6000803e3d6000fd5b506001549091506000906105bd906001600160a01b0316610da3565b60025460405163485cc95560e01b81526001600160a01b038581166004830152918216602482015291925082919082169063485cc95590604401600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038616925063f2fde38b9150602401600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050806001600160a01b0316636ff46a6c346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561071657600080fd5b505af115801561072a573d6000803e3d6000fd5b50506040513393503480156108fc02935091506000818181858888f1935050505015801561075c573d6000803e3d6000fd5b506040516001600160a01b0384811682528216907fdca0276ad17c3c65434ae45a0754677f87ae465de69763ebe79ceaeff2805bc7906020015b60405180910390a2925050505b919050565b6000546001600160a01b031633146107d25760405162461bcd60e51b815260040161040190610eca565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5e3b1dda0e29fe5d32248c3be6ac8f07890d4bc593a7810238b65d512197042490600090a250565b60008054600160a01b900460ff16156108475760405162461bcd60e51b815260040161040190610ea0565b6001546001600160a01b031661086f5760405162461bcd60e51b815260040161040190610eff565b60007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405161090290610e49565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f080158015610949573d6000803e3d6000fd5b50600154909150600090610965906001600160a01b0316610da3565b60025460405163485cc95560e01b81526001600160a01b038581166004830152918216602482015291925082919082169063485cc95590604401600060405180830381600087803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b158015610a1257600080fd5b505af1158015610a26573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038616925063f2fde38b9150602401600060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b50505050806001600160a01b0316636ff46a6c346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610abe57600080fd5b505af1158015610ad2573d6000803e3d6000fd5b50506040513393503480156108fc02935091506000818181858888f19350505050158015610b04573d6000803e3d6000fd5b506040516001600160a01b0384811682528216907f93b9326c0865b177ab4a6131c8e6806a0edc9f3585dbaeb773542d3582d0457190602001610796565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161040190610eca565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f961b87fd32dc3f26edfd7988b7e4b99084f44baeee37421669be170af4e3e61e90600090a250565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161040190610eca565b6001600160a01b038116610c455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610401565b610c4e81610cee565b50565b600054600160a01b900460ff16610ca15760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610401565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615610d685760405162461bcd60e51b815260040161040190610ea0565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cd13390565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b0381166107a35760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610401565b61074f8062000f5083390190565b610994806200169f83390190565b600060208284031215610e6957600080fd5b81356001600160a01b0381168114610e8057600080fd5b9392505050565b600060208284031215610e9957600080fd5b5035919050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526030908201527f5374616b696e67506f6f6c466163746f7279496d706c3a20756e646566696e6560408201526f19081c9959995c995b98d9481c1bdbdb60821b60608201526080019056fe60c060405234801561001057600080fd5b5060405161074f38038061074f83398101604081905261002f916100dc565b6100383361008c565b6001839055608082905260a08190526002546040805185815260208101929092527f8a36c5a730a168f010484976acd9da00019dde58dcdaa557ec1035ade3805c92910160405180910390a150505061010a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156100f157600080fd5b8351925060208401519150604084015190509250925092565b60805160a05161061361013c60003960008181610108015261023401526000818160a801526102f101526106136000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461012a578063b1fc8ad414610145578063c2ce5e8614610158578063ec342ad014610161578063f2fde38b1461016a57600080fd5b8063112cde6a146100a35780632c4e722e146100dd57806334fcf437146100e6578063715018a6146100fb578063719ec6b114610103575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100ca60015481565b6100f96100f43660046104e7565b61017d565b005b6100f961035f565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546040516001600160a01b0390911681526020016100d4565b6100ca610153366004610500565b610395565b6100ca60025481565b6100ca61271081565b6100f96101783660046104b7565b6103cc565b6000546001600160a01b031633146101b05760405162461bcd60e51b81526004016101a790610522565b60405180910390fd5b60015481111561031a574260025411156102325760405162461bcd60e51b815260206004820152603c60248201527f466c617452617465436f6d6d697373696f6e3a2074686520666565207261697360448201527f652074696d656f7574206973206e6f742065787069726564207965740000000060648201526084016101a7565b7f00000000000000000000000000000000000000000000000000000000000000006001548261026191906105b0565b11156102ec5760405162461bcd60e51b815260206004820152604e60248201527f466c617452617465436f6d6d697373696f6e3a2074686520666565207261697360448201527f65206973206f76657220746865206d6178696d756d20616c6c6f77656420706560648201526d7263656e746167652076616c756560901b608482015260a4016101a7565b6103167f000000000000000000000000000000000000000000000000000000000000000042610557565b6002555b60018190556002546040805183815260208101929092527f8a36c5a730a168f010484976acd9da00019dde58dcdaa557ec1035ade3805c92910160405180910390a150565b6000546001600160a01b031633146103895760405162461bcd60e51b81526004016101a790610522565b6103936000610467565b565b600080612710600154846103a99190610591565b6103b3919061056f565b90508281116103c257806103c4565b825b949350505050565b6000546001600160a01b031633146103f65760405162461bcd60e51b81526004016101a790610522565b6001600160a01b03811661045b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a7565b61046481610467565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104c957600080fd5b81356001600160a01b03811681146104e057600080fd5b9392505050565b6000602082840312156104f957600080fd5b5035919050565b6000806040838503121561051357600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561056a5761056a6105c7565b500190565b60008261058c57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156105ab576105ab6105c7565b500290565b6000828210156105c2576105c26105c7565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122085d5e30b0c1c3dd32e67b134dcbea33c284a9d2d18b3b24dc7185d78620b356664736f6c6343000807003361010060405234801561001157600080fd5b506040516109943803806109948339810160408190526100309161011d565b610039336100b1565b6001600160601b0319606086811b821660c05285901b1660e0526002839055608082905260a08190526001546040517fefb1b20d1d12d754c2da7fe3a7f0b7ea7f1d320144c1a2f873d1eeed95e5c54a9161009f91869190918252602082015260400190565b60405180910390a1505050505061016b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461011857600080fd5b919050565b600080600080600060a0868803121561013557600080fd5b61013e86610101565b945061014c60208701610101565b6040870151606088015160809098015196999198509695945092505050565b60805160a05160c05160601c60e05160601c6107d06101c46000396000818160ed01526102c601526000818161012c015261021f015260008181610166015261044e01526000818160b3015261050201526107d06000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063719ec6b111610071578063719ec6b1146101615780638da5cb5b14610188578063b1fc8ad414610199578063c2ce5e86146101ac578063dd51faa2146101b5578063f2fde38b146101c857600080fd5b8063112cde6a146100ae5780632630c12f146100e85780635d62a8dd146101275780636ca7c2161461014e578063715018a614610157575b600080fd5b6100d57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100df565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6100d560025481565b61015f6101db565b005b6100d57f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661010f565b6100d56101a73660046106bd565b61021a565b6100d560015481565b61015f6101c336600461068b565b6103a0565b61015f6101d636600461065b565b610570565b6000546001600160a01b0316331461020e5760405162461bcd60e51b8152600401610205906106df565b60405180910390fd5b610218600061060b565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561027657600080fd5b505afa15801561028a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ae91906106a4565b90506000600254826102c0919061074e565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031d57600080fd5b505afa158015610331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035591906106a4565b90506000808211610367576000610384565b8161037a84670de0b6b3a764000061074e565b610384919061072c565b90508581116103935780610395565b855b979650505050505050565b6000546001600160a01b031633146103ca5760405162461bcd60e51b8152600401610205906106df565b60025481111561052b5742600154111561044c5760405162461bcd60e51b815260206004820152603a60248201527f476173546178436f6d6d697373696f6e3a20746865206665652072616973652060448201527f74696d656f7574206973206e6f742065787069726564207965740000000000006064820152608401610205565b7f00000000000000000000000000000000000000000000000000000000000000006002548261047b919061076d565b11156104fd5760405162461bcd60e51b815260206004820152604560248201527f476173546178436f6d6d697373696f6e3a20746865206665652072616973652060448201527f6973206f76657220746865206d6178696d756d20616c6c6f776564206761732060648201526476616c756560d81b608482015260a401610205565b6105277f000000000000000000000000000000000000000000000000000000000000000042610714565b6001555b60028190556001546040805183815260208101929092527fefb1b20d1d12d754c2da7fe3a7f0b7ea7f1d320144c1a2f873d1eeed95e5c54a910160405180910390a150565b6000546001600160a01b0316331461059a5760405162461bcd60e51b8152600401610205906106df565b6001600160a01b0381166105ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610205565b6106088161060b565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561066d57600080fd5b81356001600160a01b038116811461068457600080fd5b9392505050565b60006020828403121561069d57600080fd5b5035919050565b6000602082840312156106b657600080fd5b5051919050565b600080604083850312156106d057600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561072757610727610784565b500190565b60008261074957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561076857610768610784565b500290565b60008282101561077f5761077f610784565b500390565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202a34e654068e336e0a34dcb92a0711e3100f288563a3cd159b7e93312093ab8f64736f6c63430008070033a26469706673582212204e8fdf47fa57242741f4072fecfebd30263ff375e9c3e1c1b79ab3add346eaf164736f6c634300080700335374616b696e67506f6f6c466163746f7279496d706c3a20706172616d657465",
  "deployedBytecode": "0x60806040526004361061010d5760003560e01c80638456cb591161009557806395994ef71161006457806395994ef714610322578063964658b614610342578063c56551b614610355578063df6efe1514610375578063f2fde38b1461039557600080fd5b80638456cb59146102a857806386f1a717146102bd578063896c5107146102d05780638da5cb5b1461030457600080fd5b8063533135b6116100dc578063533135b6146101e15780635c975abb146102015780635d62a8dd1461022b5780636c678ff11461025f578063715018a61461029357600080fd5b8063112cde6a146101195780632630c12f146101605780632686e29d146101ac5780633f4ba83a146101ca57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561016c57600080fd5b506101947f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610157565b3480156101b857600080fd5b506002546001600160a01b0316610194565b3480156101d657600080fd5b506101df6103b5565b005b3480156101ed57600080fd5b50600154610194906001600160a01b031681565b34801561020d57600080fd5b50600054600160a01b900460ff166040519015158152602001610157565b34801561023757600080fd5b506101947f000000000000000000000000000000000000000000000000000000000000000081565b34801561026b57600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561029f57600080fd5b506101df61043e565b3480156102b457600080fd5b506101df610472565b6101946102cb366004610e87565b6104ce565b3480156102dc57600080fd5b5061014d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031057600080fd5b506000546001600160a01b0316610194565b34801561032e57600080fd5b506101df61033d366004610e57565b6107a8565b610194610350366004610e87565b61081c565b34801561036157600080fd5b50600254610194906001600160a01b031681565b34801561038157600080fd5b506101df610390366004610e57565b610b42565b3480156103a157600080fd5b506101df6103b0366004610e57565b610bb6565b600054600160a01b900460ff1661040a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064015b60405180910390fd5b6000546001600160a01b031633146104345760405162461bcd60e51b815260040161040190610eca565b61043c610c51565b565b6000546001600160a01b031633146104685760405162461bcd60e51b815260040161040190610eca565b61043c6000610cee565b600054600160a01b900460ff161561049c5760405162461bcd60e51b815260040161040190610ea0565b6000546001600160a01b031633146104c65760405162461bcd60e51b815260040161040190610eca565b61043c610d3e565b60008054600160a01b900460ff16156104f95760405162461bcd60e51b815260040161040190610ea0565b6001546001600160a01b03166105215760405162461bcd60e51b815260040161040190610eff565b6000827f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405161057290610e3b565b92835260208301919091526040820152606001604051809103906000f0801580156105a1573d6000803e3d6000fd5b506001549091506000906105bd906001600160a01b0316610da3565b60025460405163485cc95560e01b81526001600160a01b038581166004830152918216602482015291925082919082169063485cc95590604401600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038616925063f2fde38b9150602401600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050806001600160a01b0316636ff46a6c346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561071657600080fd5b505af115801561072a573d6000803e3d6000fd5b50506040513393503480156108fc02935091506000818181858888f1935050505015801561075c573d6000803e3d6000fd5b506040516001600160a01b0384811682528216907fdca0276ad17c3c65434ae45a0754677f87ae465de69763ebe79ceaeff2805bc7906020015b60405180910390a2925050505b919050565b6000546001600160a01b031633146107d25760405162461bcd60e51b815260040161040190610eca565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5e3b1dda0e29fe5d32248c3be6ac8f07890d4bc593a7810238b65d512197042490600090a250565b60008054600160a01b900460ff16156108475760405162461bcd60e51b815260040161040190610ea0565b6001546001600160a01b031661086f5760405162461bcd60e51b815260040161040190610eff565b60007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405161090290610e49565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f080158015610949573d6000803e3d6000fd5b50600154909150600090610965906001600160a01b0316610da3565b60025460405163485cc95560e01b81526001600160a01b038581166004830152918216602482015291925082919082169063485cc95590604401600060405180830381600087803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b158015610a1257600080fd5b505af1158015610a26573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038616925063f2fde38b9150602401600060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b50505050806001600160a01b0316636ff46a6c346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610abe57600080fd5b505af1158015610ad2573d6000803e3d6000fd5b50506040513393503480156108fc02935091506000818181858888f19350505050158015610b04573d6000803e3d6000fd5b506040516001600160a01b0384811682528216907f93b9326c0865b177ab4a6131c8e6806a0edc9f3585dbaeb773542d3582d0457190602001610796565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161040190610eca565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f961b87fd32dc3f26edfd7988b7e4b99084f44baeee37421669be170af4e3e61e90600090a250565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161040190610eca565b6001600160a01b038116610c455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610401565b610c4e81610cee565b50565b600054600160a01b900460ff16610ca15760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610401565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615610d685760405162461bcd60e51b815260040161040190610ea0565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cd13390565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b0381166107a35760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610401565b61074f8062000f5083390190565b610994806200169f83390190565b600060208284031215610e6957600080fd5b81356001600160a01b0381168114610e8057600080fd5b9392505050565b600060208284031215610e9957600080fd5b5035919050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526030908201527f5374616b696e67506f6f6c466163746f7279496d706c3a20756e646566696e6560408201526f19081c9959995c995b98d9481c1bdbdb60821b60608201526080019056fe60c060405234801561001057600080fd5b5060405161074f38038061074f83398101604081905261002f916100dc565b6100383361008c565b6001839055608082905260a08190526002546040805185815260208101929092527f8a36c5a730a168f010484976acd9da00019dde58dcdaa557ec1035ade3805c92910160405180910390a150505061010a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156100f157600080fd5b8351925060208401519150604084015190509250925092565b60805160a05161061361013c60003960008181610108015261023401526000818160a801526102f101526106136000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b1461012a578063b1fc8ad414610145578063c2ce5e8614610158578063ec342ad014610161578063f2fde38b1461016a57600080fd5b8063112cde6a146100a35780632c4e722e146100dd57806334fcf437146100e6578063715018a6146100fb578063719ec6b114610103575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100ca60015481565b6100f96100f43660046104e7565b61017d565b005b6100f961035f565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000546040516001600160a01b0390911681526020016100d4565b6100ca610153366004610500565b610395565b6100ca60025481565b6100ca61271081565b6100f96101783660046104b7565b6103cc565b6000546001600160a01b031633146101b05760405162461bcd60e51b81526004016101a790610522565b60405180910390fd5b60015481111561031a574260025411156102325760405162461bcd60e51b815260206004820152603c60248201527f466c617452617465436f6d6d697373696f6e3a2074686520666565207261697360448201527f652074696d656f7574206973206e6f742065787069726564207965740000000060648201526084016101a7565b7f00000000000000000000000000000000000000000000000000000000000000006001548261026191906105b0565b11156102ec5760405162461bcd60e51b815260206004820152604e60248201527f466c617452617465436f6d6d697373696f6e3a2074686520666565207261697360448201527f65206973206f76657220746865206d6178696d756d20616c6c6f77656420706560648201526d7263656e746167652076616c756560901b608482015260a4016101a7565b6103167f000000000000000000000000000000000000000000000000000000000000000042610557565b6002555b60018190556002546040805183815260208101929092527f8a36c5a730a168f010484976acd9da00019dde58dcdaa557ec1035ade3805c92910160405180910390a150565b6000546001600160a01b031633146103895760405162461bcd60e51b81526004016101a790610522565b6103936000610467565b565b600080612710600154846103a99190610591565b6103b3919061056f565b90508281116103c257806103c4565b825b949350505050565b6000546001600160a01b031633146103f65760405162461bcd60e51b81526004016101a790610522565b6001600160a01b03811661045b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a7565b61046481610467565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104c957600080fd5b81356001600160a01b03811681146104e057600080fd5b9392505050565b6000602082840312156104f957600080fd5b5035919050565b6000806040838503121561051357600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561056a5761056a6105c7565b500190565b60008261058c57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156105ab576105ab6105c7565b500290565b6000828210156105c2576105c26105c7565b500390565b634e487b7160e01b600052601160045260246000fdfea264697066735822122085d5e30b0c1c3dd32e67b134dcbea33c284a9d2d18b3b24dc7185d78620b356664736f6c6343000807003361010060405234801561001157600080fd5b506040516109943803806109948339810160408190526100309161011d565b610039336100b1565b6001600160601b0319606086811b821660c05285901b1660e0526002839055608082905260a08190526001546040517fefb1b20d1d12d754c2da7fe3a7f0b7ea7f1d320144c1a2f873d1eeed95e5c54a9161009f91869190918252602082015260400190565b60405180910390a1505050505061016b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461011857600080fd5b919050565b600080600080600060a0868803121561013557600080fd5b61013e86610101565b945061014c60208701610101565b6040870151606088015160809098015196999198509695945092505050565b60805160a05160c05160601c60e05160601c6107d06101c46000396000818160ed01526102c601526000818161012c015261021f015260008181610166015261044e01526000818160b3015261050201526107d06000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063719ec6b111610071578063719ec6b1146101615780638da5cb5b14610188578063b1fc8ad414610199578063c2ce5e86146101ac578063dd51faa2146101b5578063f2fde38b146101c857600080fd5b8063112cde6a146100ae5780632630c12f146100e85780635d62a8dd146101275780636ca7c2161461014e578063715018a614610157575b600080fd5b6100d57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100df565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6100d560025481565b61015f6101db565b005b6100d57f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031661010f565b6100d56101a73660046106bd565b61021a565b6100d560015481565b61015f6101c336600461068b565b6103a0565b61015f6101d636600461065b565b610570565b6000546001600160a01b0316331461020e5760405162461bcd60e51b8152600401610205906106df565b60405180910390fd5b610218600061060b565b565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561027657600080fd5b505afa15801561028a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ae91906106a4565b90506000600254826102c0919061074e565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166398d5fdca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031d57600080fd5b505afa158015610331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035591906106a4565b90506000808211610367576000610384565b8161037a84670de0b6b3a764000061074e565b610384919061072c565b90508581116103935780610395565b855b979650505050505050565b6000546001600160a01b031633146103ca5760405162461bcd60e51b8152600401610205906106df565b60025481111561052b5742600154111561044c5760405162461bcd60e51b815260206004820152603a60248201527f476173546178436f6d6d697373696f6e3a20746865206665652072616973652060448201527f74696d656f7574206973206e6f742065787069726564207965740000000000006064820152608401610205565b7f00000000000000000000000000000000000000000000000000000000000000006002548261047b919061076d565b11156104fd5760405162461bcd60e51b815260206004820152604560248201527f476173546178436f6d6d697373696f6e3a20746865206665652072616973652060448201527f6973206f76657220746865206d6178696d756d20616c6c6f776564206761732060648201526476616c756560d81b608482015260a401610205565b6105277f000000000000000000000000000000000000000000000000000000000000000042610714565b6001555b60028190556001546040805183815260208101929092527fefb1b20d1d12d754c2da7fe3a7f0b7ea7f1d320144c1a2f873d1eeed95e5c54a910160405180910390a150565b6000546001600160a01b0316331461059a5760405162461bcd60e51b8152600401610205906106df565b6001600160a01b0381166105ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610205565b6106088161060b565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561066d57600080fd5b81356001600160a01b038116811461068457600080fd5b9392505050565b60006020828403121561069d57600080fd5b5035919050565b6000602082840312156106b657600080fd5b5051919050565b600080604083850312156106d057600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561072757610727610784565b500190565b60008261074957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561076857610768610784565b500290565b60008282101561077f5761077f610784565b500390565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202a34e654068e336e0a34dcb92a0711e3100f288563a3cd159b7e93312093ab8f64736f6c63430008070033a26469706673582212204e8fdf47fa57242741f4072fecfebd30263ff375e9c3e1c1b79ab3add346eaf164736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "devdoc": {
    "kind": "dev",
    "methods": {
      "createFlatRateCommission(uint256)": {
        "returns": {
          "_0": "new pool address"
        }
      },
      "createGasTaxCommission(uint256)": {
        "returns": {
          "_0": "new pool address"
        }
      },
      "getPoS()": {
        "returns": {
          "_pos": "address for the PoS contract"
        }
      },
      "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."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "NewFlatRateCommissionStakingPool(address,address)": {
        "notice": "Event emmited when a pool is created"
      },
      "NewGasTaxCommissionStakingPool(address,address)": {
        "notice": "Event emmited when a pool is created"
      }
    },
    "kind": "user",
    "methods": {
      "createFlatRateCommission(uint256)": {
        "notice": "Creates a new staking pool emits NewStakingPool with the parameters of the new pool"
      },
      "createGasTaxCommission(uint256)": {
        "notice": "Creates a new staking pool using a gas tax commission model emits NewGasTaxCommissionStakingPool with the parameters of the new pool"
      },
      "getPoS()": {
        "notice": "Returns configuration for the working pools of the current version"
      },
      "setPoSAddress(address)": {
        "notice": "Change the pos address"
      },
      "setReferencePool(address)": {
        "notice": "Change the pool reference implementation"
      }
    },
    "version": 1
  },
  "evm": {
    "gasEstimates": {
      "creation": {
        "codeDepositCost": "1659200",
        "executionCost": "infinite",
        "totalCost": "infinite"
      },
      "external": {
        "createFlatRateCommission(uint256)": "infinite",
        "createGasTaxCommission(uint256)": "infinite",
        "feeRaiseTimeout()": "infinite",
        "gasOracle()": "infinite",
        "getPoS()": "2399",
        "maxFeePercentageRaise()": "infinite",
        "maxGasRaise()": "infinite",
        "owner()": "2420",
        "pause()": "31945",
        "paused()": "2354",
        "pos()": "2403",
        "priceOracle()": "infinite",
        "referencePool()": "2360",
        "renounceOwnership()": "28225",
        "setPoSAddress(address)": "27903",
        "setReferencePool(address)": "27837",
        "transferOwnership(address)": "28384",
        "unpause()": "31980"
      }
    },
    "methodIdentifiers": {
      "createFlatRateCommission(uint256)": "86f1a717",
      "createGasTaxCommission(uint256)": "964658b6",
      "feeRaiseTimeout()": "112cde6a",
      "gasOracle()": "5d62a8dd",
      "getPoS()": "2686e29d",
      "maxFeePercentageRaise()": "6c678ff1",
      "maxGasRaise()": "896c5107",
      "owner()": "8da5cb5b",
      "pause()": "8456cb59",
      "paused()": "5c975abb",
      "pos()": "c56551b6",
      "priceOracle()": "2630c12f",
      "referencePool()": "533135b6",
      "renounceOwnership()": "715018a6",
      "setPoSAddress(address)": "df6efe15",
      "setReferencePool(address)": "95994ef7",
      "transferOwnership(address)": "f2fde38b",
      "unpause()": "3f4ba83a"
    }
  }
}