0 txs
0 calls
constructor
constructor(uint256 _scale, uint256 _max)
functions
calculate
viewfunction calculate(uint256 score, address token) view returns (uint256 amount)
calculateMultiple
viewfunction calculateMultiple(uint256 score, address[] tokens) view returns (uint256[] outputAmounts)
claimed
viewfunction claimed(bytes32, address) view returns (bool)
max
viewfunction max() view returns (uint256)
owner
viewfunction owner() view returns (address)
roots
viewfunction roots(bytes32) view returns (bool)
scale
viewfunction scale() view returns (uint256)
verify
viewfunction verify(address participant, bytes32 root, uint256 score, bytes32[] proof) view returns (bool valid)
drainTo
nonpayablefunction drainTo(address[] tokens, address dest)
enable
nonpayablefunction enable(bytes32 root)
renounceOwnership
nonpayablefunction renounceOwnership()
setMax
nonpayablefunction setMax(uint256 _max)
setScale
nonpayablefunction setScale(uint256 _scale)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(tuple[] claims, address token)
events
DrainTo
event DrainTo(address[] tokens, address dest)
Enable
event Enable(bytes32 root)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetMax
event SetMax(uint256 max)
SetScale
event SetScale(uint256 scale)
Withdraw
event Withdraw(bytes32[] roots, address account, address token, uint256 amount)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001d5a38038062001d5a8339810160408190526200003491620000ee565b600062000040620000ea565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506064811115620000b75760405162461bcd60e51b8152600401620000ae906200013a565b60405180910390fd5b604d821115620000db5760405162461bcd60e51b8152600401620000ae9062000112565b60019190915560025562000160565b3390565b6000806040838503121562000101578182fd5b505080516020909101519092909150565b6020808252600e908201526d0a68682988abea89e9ebe90928e960931b604082015260600190565b6020808252600c908201526b09a82b0bea89e9ebe90928e960a31b604082015260600190565b611bea80620001706000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063b09013a211610066578063b09013a2146101e9578063dfcae622146101fc578063f2fde38b1461020f578063f51e181a14610222576100f5565b8063715018a6146101a65780638da5cb5b146101ae578063a1533808146101c3578063ae6dead7146101d6576100f5565b8063249da605116100d3578063249da6051461014b5780633edc35191461016b5780635a1d249d1461017e5780636ac5db191461019e576100f5565b80631059171e146100fa5780631fe9eabc1461010f578063227abf3b14610122575b600080fd5b61010d6101083660046114a0565b61022a565b005b61010d61011d3660046114a0565b61034a565b6101356101303660046114ff565b610416565b60405161014291906116d7565b60405180910390f35b61015e61015936600461132d565b6104b9565b604051610142919061171b565b61010d6101793660046114a0565b6104fc565b61019161018c3660046114b8565b6105c8565b6040516101429190611726565b6101916106ab565b61010d6106b1565b6101b661077c565b60405161014291906115a8565b61010d6101d13660046113e3565b610798565b61015e6101e43660046114a0565b610a2a565b61010d6101f736600461138e565b610a3f565b61015e61020a3660046114b8565b610be0565b61010d61021d366004611311565b610c00565b610191610d36565b610232610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461028f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b60405180910390fd5b60008181526003602052604090205460ff16156102d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611780565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fcdd1cc409c793230ef04810ec632004067886415b590b182c07b885f5ece98629061033f908390611726565b60405180910390a150565b610352610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146103a6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b60648111156103e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869061194d565b60028190556040517fc2c862cda8964d16d060904e01f55bf7e4ea5e59759ca1c20db551079e0d5eed9061033f908390611726565b60608167ffffffffffffffff8111801561042f57600080fd5b50604051908082528060200260200182016040528015610459578160200160208202803683370190505b50905060005b828110156104b157600061048e8686868581811061047957fe5b905060200201602081019061018c9190611311565b90508083838151811061049d57fe5b60209081029190910101525060010161045f565b509392505050565b60008085846040516020016104cf929190611549565b6040516020818303038152906040528051906020012090506104f2838683610d40565b9695505050505050565b610504610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610558576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b604d811115610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611916565b60018190556040517fb7f1dd786998967316283c7e129a0bbeaf046b77f2f51afe39bb89a10f29a00e9061033f908390611726565b6000808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161060491906115a8565b60206040518083038186803b15801561061c57600080fd5b505afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065491906114e7565b9050600061067085600154600a0a610ddf90919063ffffffff16565b90506106a0606461069a8361069a866106948b600254610e1e90919063ffffffff16565b90610e1e565b90610e72565b925050505b92915050565b60025481565b6106b9610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161461070d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60008251116107d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611882565b60006060835167ffffffffffffffff811180156107ef57600080fd5b50604051908082528060200260200182016040528015610819578160200160208202803683370190505b5090506108246111d3565b60005b85518110156109b55785818151811061083c57fe5b60209081029190910181015180516000908152600390925260409091205490925060ff16610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611a16565b8151600090815260046020908152604080832033845290915290205460ff16156108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102869061184b565b610904338360000151846020015185604001516104b9565b61093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611ae1565b602082015161094a908590610ddf565b82516000908152600460209081526040808320338452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905582518451919550908490839081106109a257fe5b6020908102919091010152600101610827565b5060006109c284866105c8565b90506109e573ffffffffffffffffffffffffffffffffffffffff86163383610eb4565b7fb070fac757fb531d419321caeefc5021bec452da381c12e16c67fbd8ee46a58383338784604051610a1a94939291906115ef565b60405180910390a1505050505050565b60036020526000908152604090205460ff1681565b610a47610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b60005b82811015610b9f576000848483818110610ab457fe5b9050602002016020810190610ac99190611311565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b0191906115a8565b60206040518083038186803b158015610b1957600080fd5b505afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5191906114e7565b9050610b968382878786818110610b6457fe5b9050602002016020810190610b799190611311565b73ffffffffffffffffffffffffffffffffffffffff169190610eb4565b50600101610a9e565b507f4b713dd63c7c270b811762a754d42e5d79ea1ba9d3a0899d73eab3e38b50cd6f838383604051610bd39392919061165d565b60405180910390a1505050565b600460209081526000928352604080842090915290825290205460ff1681565b610c08610d3c565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906119e1565b73ffffffffffffffffffffffffffffffffffffffff8116610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906117b7565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015481565b3390565b600081815b8551811015610dd2576000868281518110610d5c57fe5b60200260200101519050808311610d9d578281604051602001610d8092919061157e565b604051602081830303815290604052805190602001209250610dc9565b8083604051602001610db092919061157e565b6040516020818303038152906040528051906020012092505b50600101610d45565b50831490505b9392505050565b600082820183811015610dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611814565b600082610e2d575060006106a5565b82820282848281610e3a57fe5b0414610dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611984565b6000610dd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f5a565b610f558363a9059cbb60e01b8484604051602401610ed39291906115c9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610fab565b505050565b60008183610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286919061172f565b506000838581610fa157fe5b0495945050505050565b606061100d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166110619092919063ffffffff16565b805190915015610f55578080602001905181019061102b9190611480565b610f55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611a84565b60606110708484600085611078565b949350505050565b6060824710156110b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286906118b9565b6110bd8561117a565b6110f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028690611a4d565b600060608673ffffffffffffffffffffffffffffffffffffffff16858760405161111d919061158c565b60006040518083038185875af1925050503d806000811461115a576040519150601f19603f3d011682016040523d82523d6000602084013e61115f565b606091505b509150915061116f828286611180565b979650505050505050565b3b151590565b6060831561118f575081610dd8565b82511561119f5782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610286919061172f565b6040805160608082018352600080835260208301529181019190915290565b600082601f830112611202578081fd5b813561121561121082611b3f565b611b18565b81815291506020808301908481018184028601820187101561123657600080fd5b60005b8481101561125557813584529282019290820190600101611239565b505050505092915050565b60008083601f840112611271578081fd5b50813567ffffffffffffffff811115611288578182fd5b60208301915083602080830285010111156112a257600080fd5b9250929050565b80356106a581611b8f565b6000606082840312156112c5578081fd5b6112cf6060611b18565b90508135815260208201356020820152604082013567ffffffffffffffff8111156112f957600080fd5b611305848285016111f2565b60408301525092915050565b600060208284031215611322578081fd5b8135610dd881611b8f565b60008060008060808587031215611342578283fd5b843561134d81611b8f565b93506020850135925060408501359150606085013567ffffffffffffffff811115611376578182fd5b611382878288016111f2565b91505092959194509250565b6000806000604084860312156113a2578283fd5b833567ffffffffffffffff8111156113b8578384fd5b6113c486828701611260565b90945092505060208401356113d881611b8f565b809150509250925092565b600080604083850312156113f5578182fd5b823567ffffffffffffffff81111561140b578283fd5b8301601f8101851361141b578283fd5b803561142961121082611b3f565b81815260208082019190848101875b858110156114615761144f8b8484358a01016112b4565b85529382019390820190600101611438565b505081965061147289828a016112a9565b955050505050509250929050565b600060208284031215611491578081fd5b81518015158114610dd8578182fd5b6000602082840312156114b1578081fd5b5035919050565b600080604083850312156114ca578182fd5b8235915060208301356114dc81611b8f565b809150509250929050565b6000602082840312156114f8578081fd5b5051919050565b600080600060408486031215611513578283fd5b83359250602084013567ffffffffffffffff811115611530578283fd5b61153c86828701611260565b9497909650939450505050565b60609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252601482015260340190565b918252602082015260400190565b6000825161159e818460208701611b5f565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6080808252855190820181905260009060209060a0840190828901845b828110156116285781518452928401929084019060010161160c565b50505073ffffffffffffffffffffffffffffffffffffffff968716918401919091529390941660408201526060015292915050565b6040808252810183905260008460608301825b868110156116ad576020833561168581611b8f565b73ffffffffffffffffffffffffffffffffffffffff1683529283019290910190600101611670565b50809250505073ffffffffffffffffffffffffffffffffffffffff83166020830152949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561170f578351835292840192918401916001016116f3565b50909695505050505050565b901515815260200190565b90815260200190565b600060208252825180602084015261174e816040850160208701611b5f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252600b908201527f524f4f545f455849535453000000000000000000000000000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526012908201527f434c41494d5f414c52454144595f4d4144450000000000000000000000000000604082015260600190565b60208082526017908201527f434c41494d535f4d5553545f42455f50524f5649444544000000000000000000604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60408201527f722063616c6c0000000000000000000000000000000000000000000000000000606082015260800190565b6020808252600e908201527f5343414c455f544f4f5f48494748000000000000000000000000000000000000604082015260600190565b6020808252600c908201527f4d41585f544f4f5f484947480000000000000000000000000000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526010908201527f524f4f545f4e4f545f454e41424c454400000000000000000000000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b6020808252600d908201527f50524f4f465f494e56414c494400000000000000000000000000000000000000604082015260600190565b60405181810167ffffffffffffffff81118282101715611b3757600080fd5b604052919050565b600067ffffffffffffffff821115611b55578081fd5b5060209081020190565b60005b83811015611b7a578181015183820152602001611b62565b83811115611b89576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611bb157600080fd5b5056fea2646970667358221220b409ec9e87c0e06fd606f82ccaf03fea776ffe2a8ca5c48d5fc70f22d337923a64736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000032