@luckyfinance/core
Version:
Core contracts for the LuckySwap protocol
552 lines (551 loc) • 41.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "GoldMiner",
"sourceName": "contracts/GoldMiner.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract GoldNugget",
"name": "_goldnugget",
"type": "address"
},
{
"internalType": "address",
"name": "_devaddr",
"type": "address"
},
{
"internalType": "uint256",
"name": "_goldnuggetPerBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_bonusEndBlock",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "pid",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "pid",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyWithdraw",
"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": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "pid",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [],
"name": "BONUS_MULTIPLIER",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_allocPoint",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "_lpToken",
"type": "address"
},
{
"internalType": "bool",
"name": "_withUpdate",
"type": "bool"
}
],
"name": "add",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "bonusEndBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_devaddr",
"type": "address"
}
],
"name": "dev",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "devaddr",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
}
],
"name": "emergencyWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_from",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_to",
"type": "uint256"
}
],
"name": "getMultiplier",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "goldnugget",
"outputs": [
{
"internalType": "contract GoldNugget",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "goldnuggetPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "massUpdatePools",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
}
],
"name": "migrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "migrator",
"outputs": [
{
"internalType": "contract IMigratorMiner",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
},
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "pendingGoldNugget",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "poolInfo",
"outputs": [
{
"internalType": "contract IERC20",
"name": "lpToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "allocPoint",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastRewardBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "accGoldNuggetPerShare",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "poolLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_allocPoint",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_withUpdate",
"type": "bool"
}
],
"name": "set",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IMigratorMiner",
"name": "_migrator",
"type": "address"
}
],
"name": "setMigrator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "startBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalAllocPoint",
"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": "uint256",
"name": "_pid",
"type": "uint256"
}
],
"name": "updatePool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userInfo",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardDebt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_pid",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052600060085534801561001557600080fd5b50604051611d56380380611d56833981810160405260a081101561003857600080fd5b5080516020820151604083015160608401516080909401519293919290919060006100616100e9565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039687166001600160a01b03199182161790915560028054959096169416939093179093556004556003556009556100ed565b3390565b611c5a806100fc6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063630b5ba1116100de5780638da5cb5b11610097578063d49e77cd11610071578063d49e77cd146103f5578063e2bbb158146103fd578063f2fde38b14610420578063ffb6c9ec146104465761018e565b80638da5cb5b146103855780638dbb1e3a1461038d57806393f1a40b146103b05761018e565b8063630b5ba11461031457806364482f791461031c578063715018a6146103475780637cd07e471461034f5780638aa28550146103575780638d88a90e1461035f5761018e565b806323cf31181161014b578063454b060811610125578063454b0608146102b557806348cd4cb1146102d257806351eb05a6146102da5780635312ea8e146102f75761018e565b806323cf3118146102645780633550db2d1461028a578063441a3e70146102925761018e565b8063049dba8714610193578063081e3eda146101b75780631526fe27146101d157806317caf6f11461021e5780631aed6553146102265780631eaaa0451461022e575b600080fd5b61019b610472565b604080516001600160a01b039092168252519081900360200190f35b6101bf610481565b60408051918252519081900360200190f35b6101ee600480360360208110156101e757600080fd5b5035610487565b604080516001600160a01b0390951685526020850193909352838301919091526060830152519081900360800190f35b6101bf6104c8565b6101bf6104ce565b6102626004803603606081101561024457600080fd5b508035906001600160a01b03602082013516906040013515156104d4565b005b6102626004803603602081101561027a57600080fd5b50356001600160a01b0316610659565b6101bf6106dd565b610262600480360360408110156102a857600080fd5b50803590602001356106e3565b610262600480360360208110156102cb57600080fd5b5035610836565b6101bf610a92565b610262600480360360208110156102f057600080fd5b5035610a98565b6102626004803603602081101561030d57600080fd5b5035610cbf565b610262610d5a565b6102626004803603606081101561033257600080fd5b50803590602081013590604001351515610d7d565b610262610e58565b61019b610f04565b6101bf610f13565b6102626004803603602081101561037557600080fd5b50356001600160a01b0316610f18565b61019b610f85565b6101bf600480360360408110156103a357600080fd5b5080359060200135610f94565b6103dc600480360360408110156103c657600080fd5b50803590602001356001600160a01b0316611000565b6040805192835260208301919091528051918290030190f35b61019b611024565b6102626004803603604081101561041357600080fd5b5080359060200135611033565b6102626004803603602081101561043657600080fd5b50356001600160a01b0316611138565b6101bf6004803603604081101561045c57600080fd5b50803590602001356001600160a01b031661123a565b6001546001600160a01b031681565b60065490565b6006818154811061049457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b60085481565b60035481565b6104dc61139c565b6001600160a01b03166104ed610f85565b6001600160a01b031614610536576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b801561054457610544610d5a565b6000600954431161055757600954610559565b435b60085490915061056990856113a0565b600855604080516080810182526001600160a01b0394851681526020810195865290810191825260006060820181815260068054600181018255925291517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600490920291820180546001600160a01b031916919096161790945593517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40840155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418301555090517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4290910155565b61066161139c565b6001600160a01b0316610672610f85565b6001600160a01b0316146106bb576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60045481565b6000600683815481106106f257fe5b600091825260208083208684526007825260408085203386529092529220805460049092029092019250831115610765576040805162461bcd60e51b81526020600482015260126024820152711dda5d1a191c985dce881b9bdd0819dbdbd960721b604482015290519081900360640190fd5b61076e84610a98565b60006107a882600101546107a264e8d4a5100061079c8760030154876000015461140190919063ffffffff16565b9061145a565b906114c1565b90506107b4338261151e565b81546107c090856114c1565b80835560038401546107dd9164e8d4a510009161079c9190611401565b600183015582546107f8906001600160a01b031633866116af565b604080518581529051869133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050505050565b6005546001600160a01b031661088a576040805162461bcd60e51b815260206004820152601460248201527336b4b3b930ba329d1037379036b4b3b930ba37b960611b604482015290519081900360640190fd5b60006006828154811061089957fe5b600091825260208083206004928302018054604080516370a0823160e01b81523095810195909552519195506001600160a01b0316939284926370a0823192602480840193829003018186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d602081101561091c57600080fd5b505160055490915061093b906001600160a01b03848116911683611701565b6005546040805163ce5494bb60e01b81526001600160a01b0385811660048301529151600093929092169163ce5494bb9160248082019260209290919082900301818787803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d60208110156109b757600080fd5b5051604080516370a0823160e01b815230600482015290519192506001600160a01b038316916370a0823191602480820192602092909190829003018186803b158015610a0357600080fd5b505afa158015610a17573d6000803e3d6000fd5b505050506040513d6020811015610a2d57600080fd5b50518214610a71576040805162461bcd60e51b815260206004820152600c60248201526b1b5a59dc985d194e8818985960a21b604482015290519081900360640190fd5b83546001600160a01b0319166001600160a01b039190911617909255505050565b60095481565b600060068281548110610aa757fe5b9060005260206000209060040201905080600201544311610ac85750610cbc565b8054604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610b1257600080fd5b505afa158015610b26573d6000803e3d6000fd5b505050506040513d6020811015610b3c57600080fd5b5051905080610b52575043600290910155610cbc565b6000610b62836002015443610f94565b90506000610b8f60085461079c8660010154610b896004548761140190919063ffffffff16565b90611401565b6001546002549192506001600160a01b03908116916340c10f199116610bb684600a61145a565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b5050600154604080516340c10f1960e01b81523060048201526024810186905290516001600160a01b0390921693506340c10f19925060448082019260009290919082900301818387803b158015610c6757600080fd5b505af1158015610c7b573d6000803e3d6000fd5b50505050610ca9610c9e8461079c64e8d4a510008561140190919063ffffffff16565b6003860154906113a0565b6003850155505043600290920191909155505b50565b600060068281548110610cce57fe5b60009182526020808320858452600782526040808520338087529352909320805460049093029093018054909450610d13926001600160a01b039190911691906116af565b80546040805191825251849133917fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959181900360200190a360008082556001909101555050565b60065460005b81811015610d7957610d7181610a98565b600101610d60565b5050565b610d8561139c565b6001600160a01b0316610d96610f85565b6001600160a01b031614610ddf576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b8015610ded57610ded610d5a565b610e2a82610e2460068681548110610e0157fe5b9060005260206000209060040201600101546008546114c190919063ffffffff16565b906113a0565b6008819055508160068481548110610e3e57fe5b906000526020600020906004020160010181905550505050565b610e6061139c565b6001600160a01b0316610e71610f85565b6001600160a01b031614610eba576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6005546001600160a01b031681565b600a81565b6002546001600160a01b03163314610f63576040805162461bcd60e51b81526020600482015260096024820152686465763a207775743f60b81b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b60006003548211610fb557610fae600a610b8984866114c1565b9050610ffa565b6003548310610fc857610fae82846114c1565b610fae610fe0600354846114c190919063ffffffff16565b610e24600a610b89876003546114c190919063ffffffff16565b92915050565b60076020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b60006006838154811061104257fe5b6000918252602080832086845260078252604080852033865290925292206004909102909101915061107384610a98565b8054156110b65760006110a882600101546107a264e8d4a5100061079c8760030154876000015461140190919063ffffffff16565b90506110b4338261151e565b505b81546110cd906001600160a01b0316333086611814565b80546110d990846113a0565b80825560038301546110f69164e8d4a510009161079c9190611401565b6001820155604080518481529051859133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a350505050565b61114061139c565b6001600160a01b0316611151610f85565b6001600160a01b03161461119a576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b6001600160a01b0381166111df5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b386026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806006848154811061124a57fe5b600091825260208083208784526007825260408085206001600160a01b03898116875290845281862060049586029093016003810154815484516370a0823160e01b81523098810198909852935191985093969395939492909116926370a08231926024808301939192829003018186803b1580156112c857600080fd5b505afa1580156112dc573d6000803e3d6000fd5b505050506040513d60208110156112f257600080fd5b505160028501549091504311801561130957508015155b1561136957600061131e856002015443610f94565b9050600061134560085461079c8860010154610b896004548761140190919063ffffffff16565b905061136461135d8461079c8464e8d4a51000611401565b85906113a0565b935050505b61139183600101546107a264e8d4a5100061079c86886000015461140190919063ffffffff16565b979650505050505050565b3390565b6000828201838110156113fa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261141057506000610ffa565b8282028284828161141d57fe5b04146113fa5760405162461bcd60e51b8152600401808060200182810382526021815260200180611b846021913960400191505060405180910390fd5b60008082116114b0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114b957fe5b049392505050565b600082821115611518576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b5051905080821115611627576001546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050506040513d602081101561161f57600080fd5b506116aa9050565b6001546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561167d57600080fd5b505af1158015611691573d6000803e3d6000fd5b505050506040513d60208110156116a757600080fd5b50505b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116aa908490611874565b801580611787575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561175957600080fd5b505afa15801561176d573d6000803e3d6000fd5b505050506040513d602081101561178357600080fd5b5051155b6117c25760405162461bcd60e51b8152600401808060200182810382526036815260200180611bef6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526116aa908490611874565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261186e908590611874565b50505050565b60606118c9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119259092919063ffffffff16565b8051909150156116aa578080602001905160208110156118e857600080fd5b50516116aa5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc5602a913960400191505060405180910390fd5b6060611934848460008561193c565b949350505050565b60608247101561197d5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b5e6026913960400191505060405180910390fd5b61198685611a8d565b6119d7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310611a165780518252601f1990920191602091820191016119f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611a78576040519150601f19603f3d011682016040523d82523d6000602084013e611a7d565b606091505b5091509150611391828286611a93565b3b151590565b60608315611aa25750816113fa565b825115611ab25782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611afc578181015183820152602001611ae4565b50505050905090810190601f168015611b295780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212200254b7624142dc33354557a197a6fef82814123a8079b12fd3f03ce99de1f26664736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063630b5ba1116100de5780638da5cb5b11610097578063d49e77cd11610071578063d49e77cd146103f5578063e2bbb158146103fd578063f2fde38b14610420578063ffb6c9ec146104465761018e565b80638da5cb5b146103855780638dbb1e3a1461038d57806393f1a40b146103b05761018e565b8063630b5ba11461031457806364482f791461031c578063715018a6146103475780637cd07e471461034f5780638aa28550146103575780638d88a90e1461035f5761018e565b806323cf31181161014b578063454b060811610125578063454b0608146102b557806348cd4cb1146102d257806351eb05a6146102da5780635312ea8e146102f75761018e565b806323cf3118146102645780633550db2d1461028a578063441a3e70146102925761018e565b8063049dba8714610193578063081e3eda146101b75780631526fe27146101d157806317caf6f11461021e5780631aed6553146102265780631eaaa0451461022e575b600080fd5b61019b610472565b604080516001600160a01b039092168252519081900360200190f35b6101bf610481565b60408051918252519081900360200190f35b6101ee600480360360208110156101e757600080fd5b5035610487565b604080516001600160a01b0390951685526020850193909352838301919091526060830152519081900360800190f35b6101bf6104c8565b6101bf6104ce565b6102626004803603606081101561024457600080fd5b508035906001600160a01b03602082013516906040013515156104d4565b005b6102626004803603602081101561027a57600080fd5b50356001600160a01b0316610659565b6101bf6106dd565b610262600480360360408110156102a857600080fd5b50803590602001356106e3565b610262600480360360208110156102cb57600080fd5b5035610836565b6101bf610a92565b610262600480360360208110156102f057600080fd5b5035610a98565b6102626004803603602081101561030d57600080fd5b5035610cbf565b610262610d5a565b6102626004803603606081101561033257600080fd5b50803590602081013590604001351515610d7d565b610262610e58565b61019b610f04565b6101bf610f13565b6102626004803603602081101561037557600080fd5b50356001600160a01b0316610f18565b61019b610f85565b6101bf600480360360408110156103a357600080fd5b5080359060200135610f94565b6103dc600480360360408110156103c657600080fd5b50803590602001356001600160a01b0316611000565b6040805192835260208301919091528051918290030190f35b61019b611024565b6102626004803603604081101561041357600080fd5b5080359060200135611033565b6102626004803603602081101561043657600080fd5b50356001600160a01b0316611138565b6101bf6004803603604081101561045c57600080fd5b50803590602001356001600160a01b031661123a565b6001546001600160a01b031681565b60065490565b6006818154811061049457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b60085481565b60035481565b6104dc61139c565b6001600160a01b03166104ed610f85565b6001600160a01b031614610536576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b801561054457610544610d5a565b6000600954431161055757600954610559565b435b60085490915061056990856113a0565b600855604080516080810182526001600160a01b0394851681526020810195865290810191825260006060820181815260068054600181018255925291517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600490920291820180546001600160a01b031916919096161790945593517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40840155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418301555090517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4290910155565b61066161139c565b6001600160a01b0316610672610f85565b6001600160a01b0316146106bb576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60045481565b6000600683815481106106f257fe5b600091825260208083208684526007825260408085203386529092529220805460049092029092019250831115610765576040805162461bcd60e51b81526020600482015260126024820152711dda5d1a191c985dce881b9bdd0819dbdbd960721b604482015290519081900360640190fd5b61076e84610a98565b60006107a882600101546107a264e8d4a5100061079c8760030154876000015461140190919063ffffffff16565b9061145a565b906114c1565b90506107b4338261151e565b81546107c090856114c1565b80835560038401546107dd9164e8d4a510009161079c9190611401565b600183015582546107f8906001600160a01b031633866116af565b604080518581529051869133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050505050565b6005546001600160a01b031661088a576040805162461bcd60e51b815260206004820152601460248201527336b4b3b930ba329d1037379036b4b3b930ba37b960611b604482015290519081900360640190fd5b60006006828154811061089957fe5b600091825260208083206004928302018054604080516370a0823160e01b81523095810195909552519195506001600160a01b0316939284926370a0823192602480840193829003018186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d602081101561091c57600080fd5b505160055490915061093b906001600160a01b03848116911683611701565b6005546040805163ce5494bb60e01b81526001600160a01b0385811660048301529151600093929092169163ce5494bb9160248082019260209290919082900301818787803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d60208110156109b757600080fd5b5051604080516370a0823160e01b815230600482015290519192506001600160a01b038316916370a0823191602480820192602092909190829003018186803b158015610a0357600080fd5b505afa158015610a17573d6000803e3d6000fd5b505050506040513d6020811015610a2d57600080fd5b50518214610a71576040805162461bcd60e51b815260206004820152600c60248201526b1b5a59dc985d194e8818985960a21b604482015290519081900360640190fd5b83546001600160a01b0319166001600160a01b039190911617909255505050565b60095481565b600060068281548110610aa757fe5b9060005260206000209060040201905080600201544311610ac85750610cbc565b8054604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610b1257600080fd5b505afa158015610b26573d6000803e3d6000fd5b505050506040513d6020811015610b3c57600080fd5b5051905080610b52575043600290910155610cbc565b6000610b62836002015443610f94565b90506000610b8f60085461079c8660010154610b896004548761140190919063ffffffff16565b90611401565b6001546002549192506001600160a01b03908116916340c10f199116610bb684600a61145a565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b5050600154604080516340c10f1960e01b81523060048201526024810186905290516001600160a01b0390921693506340c10f19925060448082019260009290919082900301818387803b158015610c6757600080fd5b505af1158015610c7b573d6000803e3d6000fd5b50505050610ca9610c9e8461079c64e8d4a510008561140190919063ffffffff16565b6003860154906113a0565b6003850155505043600290920191909155505b50565b600060068281548110610cce57fe5b60009182526020808320858452600782526040808520338087529352909320805460049093029093018054909450610d13926001600160a01b039190911691906116af565b80546040805191825251849133917fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959181900360200190a360008082556001909101555050565b60065460005b81811015610d7957610d7181610a98565b600101610d60565b5050565b610d8561139c565b6001600160a01b0316610d96610f85565b6001600160a01b031614610ddf576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b8015610ded57610ded610d5a565b610e2a82610e2460068681548110610e0157fe5b9060005260206000209060040201600101546008546114c190919063ffffffff16565b906113a0565b6008819055508160068481548110610e3e57fe5b906000526020600020906004020160010181905550505050565b610e6061139c565b6001600160a01b0316610e71610f85565b6001600160a01b031614610eba576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6005546001600160a01b031681565b600a81565b6002546001600160a01b03163314610f63576040805162461bcd60e51b81526020600482015260096024820152686465763a207775743f60b81b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b60006003548211610fb557610fae600a610b8984866114c1565b9050610ffa565b6003548310610fc857610fae82846114c1565b610fae610fe0600354846114c190919063ffffffff16565b610e24600a610b89876003546114c190919063ffffffff16565b92915050565b60076020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b60006006838154811061104257fe5b6000918252602080832086845260078252604080852033865290925292206004909102909101915061107384610a98565b8054156110b65760006110a882600101546107a264e8d4a5100061079c8760030154876000015461140190919063ffffffff16565b90506110b4338261151e565b505b81546110cd906001600160a01b0316333086611814565b80546110d990846113a0565b80825560038301546110f69164e8d4a510009161079c9190611401565b6001820155604080518481529051859133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a350505050565b61114061139c565b6001600160a01b0316611151610f85565b6001600160a01b03161461119a576040805162461bcd60e51b81526020600482018190526024820152600080516020611ba5833981519152604482015290519081900360640190fd5b6001600160a01b0381166111df5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b386026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806006848154811061124a57fe5b600091825260208083208784526007825260408085206001600160a01b03898116875290845281862060049586029093016003810154815484516370a0823160e01b81523098810198909852935191985093969395939492909116926370a08231926024808301939192829003018186803b1580156112c857600080fd5b505afa1580156112dc573d6000803e3d6000fd5b505050506040513d60208110156112f257600080fd5b505160028501549091504311801561130957508015155b1561136957600061131e856002015443610f94565b9050600061134560085461079c8860010154610b896004548761140190919063ffffffff16565b905061136461135d8461079c8464e8d4a51000611401565b85906113a0565b935050505b61139183600101546107a264e8d4a5100061079c86886000015461140190919063ffffffff16565b979650505050505050565b3390565b6000828201838110156113fa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261141057506000610ffa565b8282028284828161141d57fe5b04146113fa5760405162461bcd60e51b8152600401808060200182810382526021815260200180611b846021913960400191505060405180910390fd5b60008082116114b0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816114b957fe5b049392505050565b600082821115611518576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b5051905080821115611627576001546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050506040513d602081101561161f57600080fd5b506116aa9050565b6001546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561167d57600080fd5b505af1158015611691573d6000803e3d6000fd5b505050506040513d60208110156116a757600080fd5b50505b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116aa908490611874565b801580611787575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561175957600080fd5b505afa15801561176d573d6000803e3d6000fd5b505050506040513d602081101561178357600080fd5b5051155b6117c25760405162461bcd60e51b8152600401808060200182810382526036815260200180611bef6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526116aa908490611874565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261186e908590611874565b50505050565b60606118c9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119259092919063ffffffff16565b8051909150156116aa578080602001905160208110156118e857600080fd5b50516116aa5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc5602a913960400191505060405180910390fd5b6060611934848460008561193c565b949350505050565b60608247101561197d5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b5e6026913960400191505060405180910390fd5b61198685611a8d565b6119d7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310611a165780518252601f1990920191602091820191016119f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611a78576040519150601f19603f3d011682016040523d82523d6000602084013e611a7d565b606091505b5091509150611391828286611a93565b3b151590565b60608315611aa25750816113fa565b825115611ab25782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611afc578181015183820152602001611ae4565b50505050905090810190601f168015611b295780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212200254b7624142dc33354557a197a6fef82814123a8079b12fd3f03ce99de1f26664736f6c634300060c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}