UNPKG

@defi-wonderland/keep3r-v2

Version:

The Keep3r Network is a decentralized network for projects that need external devops, and for external teams to find keeper jobs

1,218 lines (1,217 loc) 47.2 kB
{ "_format": "hh-sol-artifact-1", "contractName": "Keep3rJobManagerForTest", "sourceName": "solidity/for-test/peripherals/jobs/Keep3rJobManagerForTest.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_keep3rHelper", "type": "address" }, { "internalType": "address", "name": "_keep3rV1", "type": "address" }, { "internalType": "address", "name": "_keep3rV1Proxy", "type": "address" }, { "internalType": "address", "name": "_kp3rWethPool", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyAKeeper", "type": "error" }, { "inputs": [], "name": "BondsLocked", "type": "error" }, { "inputs": [], "name": "BondsUnexistent", "type": "error" }, { "inputs": [], "name": "Disputed", "type": "error" }, { "inputs": [], "name": "DisputerExistent", "type": "error" }, { "inputs": [], "name": "DisputerUnexistent", "type": "error" }, { "inputs": [], "name": "JobAlreadyAdded", "type": "error" }, { "inputs": [], "name": "JobDisputed", "type": "error" }, { "inputs": [], "name": "JobUnavailable", "type": "error" }, { "inputs": [], "name": "MinRewardPeriod", "type": "error" }, { "inputs": [], "name": "NoGovernanceZeroAddress", "type": "error" }, { "inputs": [], "name": "OnlyDisputer", "type": "error" }, { "inputs": [], "name": "OnlyGovernance", "type": "error" }, { "inputs": [], "name": "OnlyJobOwner", "type": "error" }, { "inputs": [], "name": "OnlyPendingGovernance", "type": "error" }, { "inputs": [], "name": "OnlyPendingJobOwner", "type": "error" }, { "inputs": [], "name": "OnlySlasher", "type": "error" }, { "inputs": [], "name": "SlasherExistent", "type": "error" }, { "inputs": [], "name": "SlasherUnexistent", "type": "error" }, { "inputs": [], "name": "UnbondsLocked", "type": "error" }, { "inputs": [], "name": "UnbondsUnexistent", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_bondTime", "type": "uint256" } ], "name": "BondTimeChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_keeper", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_bonding", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Bonding", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_disputer", "type": "address" } ], "name": "DisputerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_disputer", "type": "address" } ], "name": "DisputerRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "FeeChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_pendingGovernance", "type": "address" } ], "name": "GovernanceProposal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_governance", "type": "address" } ], "name": "GovernanceSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_inflationPeriod", "type": "uint256" } ], "name": "InflationPeriodChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_job", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_jobOwner", "type": "address" } ], "name": "JobAddition", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_job", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "JobOwnershipAssent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_job", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_pendingOwner", "type": "address" } ], "name": "JobOwnershipChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_keep3rHelper", "type": "address" } ], "name": "Keep3rHelperChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_keep3rV1", "type": "address" } ], "name": "Keep3rV1Change", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_keep3rV1Proxy", "type": "address" } ], "name": "Keep3rV1ProxyChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_kp3rWethPool", "type": "address" } ], "name": "Kp3rWethPoolChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_liquidityMinimum", "type": "uint256" } ], "name": "LiquidityMinimumChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_rewardPeriodTime", "type": "uint256" } ], "name": "RewardPeriodTimeChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_slasher", "type": "address" } ], "name": "SlasherAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_slasher", "type": "address" } ], "name": "SlasherRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_unbondTime", "type": "uint256" } ], "name": "UnbondTimeChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_keeperOrJob", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_unbonding", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Unbonding", "type": "event" }, { "inputs": [], "name": "acceptGovernance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_job", "type": "address" } ], "name": "acceptJobOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_disputer", "type": "address" } ], "name": "addDisputer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_job", "type": "address" } ], "name": "addJob", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_slasher", "type": "address" } ], "name": "addSlasher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "bondTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "bonds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "canActivateAfter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "canWithdrawAfter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_job", "type": "address" }, { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "changeJobOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "disputers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "disputes", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "firstSeen", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "governance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "hasBonded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inflationPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_job", "type": "address" } ], "name": "isJob", "outputs": [ { "internalType": "bool", "name": "_isJob", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "jobOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "jobPendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "jobTokenCredits", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "jobs", "outputs": [ { "internalType": "address[]", "name": "_list", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keep3rHelper", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keep3rV1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keep3rV1Proxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "keepers", "outputs": [ { "internalType": "address[]", "name": "_list", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "kp3rWethPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityMinimum", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "pendingBonds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingGovernance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "pendingUnbonds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_disputer", "type": "address" } ], "name": "removeDisputer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_slasher", "type": "address" } ], "name": "removeSlasher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardPeriodTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_bondTime", "type": "uint256" } ], "name": "setBondTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_governance", "type": "address" } ], "name": "setGovernance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_inflationPeriod", "type": "uint256" } ], "name": "setInflationPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_keep3rHelper", "type": "address" } ], "name": "setKeep3rHelper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_keep3rV1", "type": "address" } ], "name": "setKeep3rV1", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_keep3rV1Proxy", "type": "address" } ], "name": "setKeep3rV1Proxy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_kp3rWethPool", "type": "address" } ], "name": "setKp3rWethPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityMinimum", "type": "uint256" } ], "name": "setLiquidityMinimum", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rewardPeriodTime", "type": "uint256" } ], "name": "setRewardPeriodTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_unbondTime", "type": "uint256" } ], "name": "setUnbondTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "slashers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unbondTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "workCompleted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60806040526203f480601e5562127500601f556729a2241af62c000060205562069780602155622cd300602255601e6023553480156200003e57600080fd5b5060405162001734380380620017348339810160408190526200006191620001bf565b83838383338080620000855760405162b293ed60e81b815260040160405180910390fd5b601680546001600160a01b03199081166001600160a01b0393841617909155601c80548216888416178155601a80548316888516179055601b80548316878516179055601d8054831686851690811782556000818152600d602052604090819020805490951690911790935590549054915163696a437b60e01b81529183166004830152909116915063696a437b9060240160206040518083038186803b1580156200013057600080fd5b505afa15801562000145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016b91906200021c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055506200024795505050505050565b80516001600160a01b0381168114620001ba57600080fd5b919050565b60008060008060808587031215620001d657600080fd5b620001e185620001a2565b9350620001f160208601620001a2565b92506200020160408601620001a2565b91506200021160608601620001a2565b905092959194509250565b6000602082840312156200022f57600080fd5b815180151581146200024057600080fd5b9392505050565b6114dd80620002576000396000f3fe608060405234801561001057600080fd5b50600436106102605760003560e01c8063951dc22c11610147578063c7ae40d0116100be578063c7ae40d0146105f8578063cb4be2bb1461060b578063cb54694d1461061e578063cd22af1b14610631578063ddca3f431461065c578063e326ac4314610665578063ebbb619414610685578063ec00cdfc14610698578063f0f346b9146106ab578063f11a1d1a146106be578063f39c38a0146106d1578063fc253d2b146106e457600080fd5b8063951dc22c146104db57806398e90a0f146104e35780639d5c33d81461050c578063a39744b51461051f578063a7d2e7841461054a578063aac6aa9c14610553578063ab033ea914610566578063b0103b1a14610579578063b23922331461059c578063b7e77340146105af578063b87fcbff146105c2578063c5198abc146105e557600080fd5b80635aa6e675116101db5780635aa6e675146103ed5780635ebe23f014610400578063633fb68f1461040957806368a9f19c1461041257806369fe0e2d1461042557806372da828a14610438578063768b5d901461044b5780637b40c913146104545780637c8fce2314610467578063878c723e1461047c5780638cb22b76146104a55780638fe204dd146104c857600080fd5b806307b435c21461026557806315006b82146102a3578063160e1e31146102ce578063168f92e7146102e35780631b44555e1461030e5780631cd5c01f1461032e5780631ef94b911461035157806321040b0114610371578063238efcbc1461039c578063274a8db4146103a4578063594a3a93146103c757806359a2255e146103da575b600080fd5b6102906102733660046113d8565b601160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6102906102b13660046113d8565b600f60209081526000928352604080842090915290825290205481565b6102e16102dc3660046113bd565b6106ed565b005b6102906102f13660046113d8565b600860209081526000928352604080842090915290825290205481565b61029061031c3660046113bd565b60046020526000908152604090205481565b61034161033c3660046113bd565b610853565b604051901515815260200161029a565b601a54610364906001600160a01b031681565b60405161029a9190611446565b61029061037f3660046113d8565b601260209081526000928352604080842090915290825290205481565b6102e1610866565b6103416103b23660046113bd565b60196020526000908152604090205460ff1681565b6102e16103d53660046113d8565b6108f2565b6102e16103e83660046113bd565b610996565b601654610364906001600160a01b031681565b610290601e5481565b61029060205481565b6102e16104203660046113bd565b610a46565b6102e161043336600461142d565b610afe565b6102e16104463660046113bd565b610b5e565b61029060215481565b601d54610364906001600160a01b031681565b61046f610bfb565b60405161029a919061145a565b61036461048a3660046113bd565b6000602081905290815260409020546001600160a01b031681565b6103416104b33660046113bd565b60136020526000908152604090205460ff1681565b6102e16104d636600461142d565b610c0c565b61046f610c6c565b6103646104f13660046113bd565b6001602052600090815260409020546001600160a01b031681565b6102e161051a3660046113bd565b610c78565b61029061052d3660046113d8565b600760209081526000928352604080842090915290825290205481565b610290601f5481565b6102e16105613660046113bd565b610d30565b6102e16105743660046113bd565b610de4565b6103416105873660046113bd565b60066020526000908152604090205460ff1681565b6102e16105aa36600461142d565b610e5a565b6102e16105bd36600461142d565b610eba565b6103416105d03660046113bd565b60186020526000908152604090205460ff1681565b6102e16105f33660046113bd565b610f1a565b601b54610364906001600160a01b031681565b6102e16106193660046113bd565b610fdf565b6102e161062c36600461142d565b61107c565b61029061063f3660046113d8565b601060209081526000928352604080842090915290825290205481565b61029060235481565b6102906106733660046113bd565b60056020526000908152604090205481565b6102e161069336600461142d565b611100565b6102e16106a63660046113bd565b61115e565b6102e16106b93660046113bd565b6111fb565b601c54610364906001600160a01b031681565b601754610364906001600160a01b031681565b61029060225481565b6016546001600160a01b03163314610718576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811661073f5760405163d92e233d60e01b815260040160405180910390fd5b601d80546001600160a01b038084166001600160a01b031992831681179093556000838152600d6020526040908190208054909316909317909155601c54915163696a437b60e01b815291169063696a437b906107a0908490600401611446565b60206040518083038186803b1580156107b857600080fd5b505afa1580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f0919061140b565b6001600160a01b0382166000908152600e602052604090819020805460ff191692151592909217909155517f9bb1515b0fc2645a3f011162460a22fdd512e0bca265e7dc9ba6bceae8930afa90610848908390611446565b60405180910390a150565b60006108606014836112af565b92915050565b6017546001600160a01b0316331461089157604051637ef5703160e11b815260040160405180910390fd5b60178054601680546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b6916108e891611446565b60405180910390a1565b6001600160a01b03828116600090815260208190526040902054839116331461092e57604051636efb4f4160e11b815260040160405180910390fd5b6001600160a01b03838116600081815260016020908152604080832080546001600160a01b0319168887169081179091559183905280832054905191941692917fa8bad3f0b781e1d954af9945167d5f80bfe5e57930f17c93843187c77557a6b891a4505050565b6001600160a01b0381811660009081526001602052604090205482911633146109d25760405163cfe9663360e01b815260040160405180910390fd5b6001600160a01b0382811660008181526020818152604080832080546001909352818420805487166001600160a01b031980861691909117909255805490911690555193169283929133917fcf30c54296d5eee76168b564c59c50578d49c271733a470f32707c8cfbc88a8b9190a4505050565b6016546001600160a01b03163314610a71576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205460ff1615610aab5760405163546da66560e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090819020805460ff19166001179055517f049ccb28ab796d3225573a065712f6e7754487ced56056cda8889c337511807b90610848908390611446565b6016546001600160a01b03163314610b29576040516354348f0360e01b815260040160405180910390fd5b60238190556040518181527f4c10ca068ff7002cf5da78f2f697d1e91f6f0ac27f7344b28e8ef25263f87e5d90602001610848565b6016546001600160a01b03163314610b89576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b038116610bb05760405163d92e233d60e01b815260040160405180910390fd5b601c80546001600160a01b0319166001600160a01b0383161790556040517f71973fd672e51deb8f739b1f7e1eab991936645acd6f83e2bde6eeeaff5490b090610848908390611446565b6060610c0760146112d4565b905090565b6016546001600160a01b03163314610c37576040516354348f0360e01b815260040160405180910390fd5b601f8190556040518181527fc8d443472c9783cc36f8f5f5091f08ce9f37fc2f9e6d79cf1d9aaf40a433fee290602001610848565b6060610c0760026112d4565b6016546001600160a01b03163314610ca3576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090205460ff1615610cdd5760405163274e25dd60e11b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090819020805460ff19166001179055517f8addc69f897ecca0e41d70ed4ff9d75a9148a615a0fbda8597e53aea2684302f90610848908390611446565b6016546001600160a01b03163314610d5b576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205460ff16610d94576040516336fe17e760e21b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090819020805460ff19169055517f3ed8cbce8cab40e59282f1743e2b607effa08b5cbe0111bb4721134f2f80d02590610848908390611446565b6016546001600160a01b03163314610e0f576040516354348f0360e01b815260040160405180910390fd5b601780546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610848908390611446565b6016546001600160a01b03163314610e85576040516354348f0360e01b815260040160405180910390fd5b60228190556040518181527fbdcfd7b8482f31cff6a87c362d9e2e3887f4cdc2018c7c485d8e78a7b2fadb6990602001610848565b6016546001600160a01b03163314610ee5576040516354348f0360e01b815260040160405180910390fd5b601e8190556040518181527fd319ef78d2b690bb773fcccc2d096306bac7c9222dd0bb6b300f461e4a376b4390602001610848565b610f256014826112af565b15610f4357604051630809740d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526013602052604090205460ff1615610f7d57604051632f3d320560e01b815260040160405180910390fd5b610f886014826112e1565b506001600160a01b03811660008181526020819052604080822080546001600160a01b03191633908117909155905190917fed3faef50715743626cd57de74281a2b17cdbfc11c0486feda541fb911e0293d91a350565b6016546001600160a01b0316331461100a576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b0381166110315760405163d92e233d60e01b815260040160405180910390fd5b601b80546001600160a01b0319166001600160a01b0383161790556040517feb931b4b5a98d20a6b1e6693a7c59d8e337a06e2f1473bb776e19251db7ae25090610848908390611446565b6016546001600160a01b031633146110a7576040516354348f0360e01b815260040160405180910390fd5b620151808110156110cb57604051633f384aad60e21b815260040160405180910390fd5b60218190556040518181527f54aafa56429e22230b52f1495588ffc632277d74f3a85ec755e13ac50c1584d990602001610848565b6016546001600160a01b0316331461112b576040516354348f0360e01b815260040160405180910390fd5b60208181556040518281527f24d51b415694a791b1c77df7817c075ac82b83ce611bcd8627d2e66cf37aa3e79101610848565b6016546001600160a01b03163314611189576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b0381166111b05760405163d92e233d60e01b815260040160405180910390fd5b601a80546001600160a01b0319166001600160a01b0383161790556040517f1d1a3e7caf0717056e48dc8aefa54d806c7af86324fece4e5d49f8e1f01f84bf90610848908390611446565b6016546001600160a01b03163314611226576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090205460ff1661125f57604051633ca0d42760e11b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090819020805460ff19169055517f5e8bd21d0a98cb2caf33706e56139ff40ffbdca7ec5d9d412a0a2292496dc70e90610848908390611446565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b606060006112cd836112f6565b60006112cd836001600160a01b038416611352565b60608160000180548060200260200160405190810160405280929190818152602001828054801561134657602002820191906000526020600020905b815481526020019060010190808311611332575b50505050509050919050565b600081815260018301602052604081205461139957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610860565b506000610860565b80356001600160a01b03811681146113b857600080fd5b919050565b6000602082840312156113cf57600080fd5b6112cd826113a1565b600080604083850312156113eb57600080fd5b6113f4836113a1565b9150611402602084016113a1565b90509250929050565b60006020828403121561141d57600080fd5b815180151581146112cd57600080fd5b60006020828403121561143f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b8181101561149b5783516001600160a01b031683529284019291840191600101611476565b5090969550505050505056fea2646970667358221220ff92d4ad09156a00752678a79d94e2081a204b4efbb3f2b08535205a96c48a8864736f6c63430008070033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102605760003560e01c8063951dc22c11610147578063c7ae40d0116100be578063c7ae40d0146105f8578063cb4be2bb1461060b578063cb54694d1461061e578063cd22af1b14610631578063ddca3f431461065c578063e326ac4314610665578063ebbb619414610685578063ec00cdfc14610698578063f0f346b9146106ab578063f11a1d1a146106be578063f39c38a0146106d1578063fc253d2b146106e457600080fd5b8063951dc22c146104db57806398e90a0f146104e35780639d5c33d81461050c578063a39744b51461051f578063a7d2e7841461054a578063aac6aa9c14610553578063ab033ea914610566578063b0103b1a14610579578063b23922331461059c578063b7e77340146105af578063b87fcbff146105c2578063c5198abc146105e557600080fd5b80635aa6e675116101db5780635aa6e675146103ed5780635ebe23f014610400578063633fb68f1461040957806368a9f19c1461041257806369fe0e2d1461042557806372da828a14610438578063768b5d901461044b5780637b40c913146104545780637c8fce2314610467578063878c723e1461047c5780638cb22b76146104a55780638fe204dd146104c857600080fd5b806307b435c21461026557806315006b82146102a3578063160e1e31146102ce578063168f92e7146102e35780631b44555e1461030e5780631cd5c01f1461032e5780631ef94b911461035157806321040b0114610371578063238efcbc1461039c578063274a8db4146103a4578063594a3a93146103c757806359a2255e146103da575b600080fd5b6102906102733660046113d8565b601160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6102906102b13660046113d8565b600f60209081526000928352604080842090915290825290205481565b6102e16102dc3660046113bd565b6106ed565b005b6102906102f13660046113d8565b600860209081526000928352604080842090915290825290205481565b61029061031c3660046113bd565b60046020526000908152604090205481565b61034161033c3660046113bd565b610853565b604051901515815260200161029a565b601a54610364906001600160a01b031681565b60405161029a9190611446565b61029061037f3660046113d8565b601260209081526000928352604080842090915290825290205481565b6102e1610866565b6103416103b23660046113bd565b60196020526000908152604090205460ff1681565b6102e16103d53660046113d8565b6108f2565b6102e16103e83660046113bd565b610996565b601654610364906001600160a01b031681565b610290601e5481565b61029060205481565b6102e16104203660046113bd565b610a46565b6102e161043336600461142d565b610afe565b6102e16104463660046113bd565b610b5e565b61029060215481565b601d54610364906001600160a01b031681565b61046f610bfb565b60405161029a919061145a565b61036461048a3660046113bd565b6000602081905290815260409020546001600160a01b031681565b6103416104b33660046113bd565b60136020526000908152604090205460ff1681565b6102e16104d636600461142d565b610c0c565b61046f610c6c565b6103646104f13660046113bd565b6001602052600090815260409020546001600160a01b031681565b6102e161051a3660046113bd565b610c78565b61029061052d3660046113d8565b600760209081526000928352604080842090915290825290205481565b610290601f5481565b6102e16105613660046113bd565b610d30565b6102e16105743660046113bd565b610de4565b6103416105873660046113bd565b60066020526000908152604090205460ff1681565b6102e16105aa36600461142d565b610e5a565b6102e16105bd36600461142d565b610eba565b6103416105d03660046113bd565b60186020526000908152604090205460ff1681565b6102e16105f33660046113bd565b610f1a565b601b54610364906001600160a01b031681565b6102e16106193660046113bd565b610fdf565b6102e161062c36600461142d565b61107c565b61029061063f3660046113d8565b601060209081526000928352604080842090915290825290205481565b61029060235481565b6102906106733660046113bd565b60056020526000908152604090205481565b6102e161069336600461142d565b611100565b6102e16106a63660046113bd565b61115e565b6102e16106b93660046113bd565b6111fb565b601c54610364906001600160a01b031681565b601754610364906001600160a01b031681565b61029060225481565b6016546001600160a01b03163314610718576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811661073f5760405163d92e233d60e01b815260040160405180910390fd5b601d80546001600160a01b038084166001600160a01b031992831681179093556000838152600d6020526040908190208054909316909317909155601c54915163696a437b60e01b815291169063696a437b906107a0908490600401611446565b60206040518083038186803b1580156107b857600080fd5b505afa1580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f0919061140b565b6001600160a01b0382166000908152600e602052604090819020805460ff191692151592909217909155517f9bb1515b0fc2645a3f011162460a22fdd512e0bca265e7dc9ba6bceae8930afa90610848908390611446565b60405180910390a150565b60006108606014836112af565b92915050565b6017546001600160a01b0316331461089157604051637ef5703160e11b815260040160405180910390fd5b60178054601680546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b6916108e891611446565b60405180910390a1565b6001600160a01b03828116600090815260208190526040902054839116331461092e57604051636efb4f4160e11b815260040160405180910390fd5b6001600160a01b03838116600081815260016020908152604080832080546001600160a01b0319168887169081179091559183905280832054905191941692917fa8bad3f0b781e1d954af9945167d5f80bfe5e57930f17c93843187c77557a6b891a4505050565b6001600160a01b0381811660009081526001602052604090205482911633146109d25760405163cfe9663360e01b815260040160405180910390fd5b6001600160a01b0382811660008181526020818152604080832080546001909352818420805487166001600160a01b031980861691909117909255805490911690555193169283929133917fcf30c54296d5eee76168b564c59c50578d49c271733a470f32707c8cfbc88a8b9190a4505050565b6016546001600160a01b03163314610a71576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205460ff1615610aab5760405163546da66560e11b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090819020805460ff19166001179055517f049ccb28ab796d3225573a065712f6e7754487ced56056cda8889c337511807b90610848908390611446565b6016546001600160a01b03163314610b29576040516354348f0360e01b815260040160405180910390fd5b60238190556040518181527f4c10ca068ff7002cf5da78f2f697d1e91f6f0ac27f7344b28e8ef25263f87e5d90602001610848565b6016546001600160a01b03163314610b89576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b038116610bb05760405163d92e233d60e01b815260040160405180910390fd5b601c80546001600160a01b0319166001600160a01b0383161790556040517f71973fd672e51deb8f739b1f7e1eab991936645acd6f83e2bde6eeeaff5490b090610848908390611446565b6060610c0760146112d4565b905090565b6016546001600160a01b03163314610c37576040516354348f0360e01b815260040160405180910390fd5b601f8190556040518181527fc8d443472c9783cc36f8f5f5091f08ce9f37fc2f9e6d79cf1d9aaf40a433fee290602001610848565b6060610c0760026112d4565b6016546001600160a01b03163314610ca3576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090205460ff1615610cdd5760405163274e25dd60e11b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090819020805460ff19166001179055517f8addc69f897ecca0e41d70ed4ff9d75a9148a615a0fbda8597e53aea2684302f90610848908390611446565b6016546001600160a01b03163314610d5b576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090205460ff16610d94576040516336fe17e760e21b815260040160405180910390fd5b6001600160a01b03811660009081526018602052604090819020805460ff19169055517f3ed8cbce8cab40e59282f1743e2b607effa08b5cbe0111bb4721134f2f80d02590610848908390611446565b6016546001600160a01b03163314610e0f576040516354348f0360e01b815260040160405180910390fd5b601780546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610848908390611446565b6016546001600160a01b03163314610e85576040516354348f0360e01b815260040160405180910390fd5b60228190556040518181527fbdcfd7b8482f31cff6a87c362d9e2e3887f4cdc2018c7c485d8e78a7b2fadb6990602001610848565b6016546001600160a01b03163314610ee5576040516354348f0360e01b815260040160405180910390fd5b601e8190556040518181527fd319ef78d2b690bb773fcccc2d096306bac7c9222dd0bb6b300f461e4a376b4390602001610848565b610f256014826112af565b15610f4357604051630809740d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526013602052604090205460ff1615610f7d57604051632f3d320560e01b815260040160405180910390fd5b610f886014826112e1565b506001600160a01b03811660008181526020819052604080822080546001600160a01b03191633908117909155905190917fed3faef50715743626cd57de74281a2b17cdbfc11c0486feda541fb911e0293d91a350565b6016546001600160a01b0316331461100a576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b0381166110315760405163d92e233d60e01b815260040160405180910390fd5b601b80546001600160a01b0319166001600160a01b0383161790556040517feb931b4b5a98d20a6b1e6693a7c59d8e337a06e2f1473bb776e19251db7ae25090610848908390611446565b6016546001600160a01b031633146110a7576040516354348f0360e01b815260040160405180910390fd5b620151808110156110cb57604051633f384aad60e21b815260040160405180910390fd5b60218190556040518181527f54aafa56429e22230b52f1495588ffc632277d74f3a85ec755e13ac50c1584d990602001610848565b6016546001600160a01b0316331461112b576040516354348f0360e01b815260040160405180910390fd5b60208181556040518281527f24d51b415694a791b1c77df7817c075ac82b83ce611bcd8627d2e66cf37aa3e79101610848565b6016546001600160a01b03163314611189576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b0381166111b05760405163d92e233d60e01b815260040160405180910390fd5b601a80546001600160a01b0319166001600160a01b0383161790556040517f1d1a3e7caf0717056e48dc8aefa54d806c7af86324fece4e5d49f8e1f01f84bf90610848908390611446565b6016546001600160a01b03163314611226576040516354348f0360e01b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090205460ff1661125f57604051633ca0d42760e11b815260040160405180910390fd5b6001600160a01b03811660009081526019602052604090819020805460ff19169055517f5e8bd21d0a98cb2caf33706e56139ff40ffbdca7ec5d9d412a0a2292496dc70e90610848908390611446565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b606060006112cd836112f6565b60006112cd836001600160a01b038416611352565b60608160000180548060200260200160405190810160405280929190818152602001828054801561134657602002820191906000526020600020905b815481526020019060010190808311611332575b50505050509050919050565b600081815260018301602052604081205461139957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610860565b506000610860565b80356001600160a01b03811681146113b857600080fd5b919050565b6000602082840312156113cf57600080fd5b6112cd826113a1565b600080604083850312156113eb57600080fd5b6113f4836113a1565b9150611402602084016113a1565b90509250929050565b60006020828403121561141d57600080fd5b815180151581146112cd57600080fd5b60006020828403121561143f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b8181101561149b5783516001600160a01b031683529284019291840191600101611476565b5090969550505050505056fea2646970667358221220ff92d4ad09156a00752678a79d94e2081a204b4efbb3f2b08535205a96c48a8864736f6c63430008070033", "linkReferences": {}, "deployedLinkReferences": {} }