0 txs
0 calls
constructor
No constructor.
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
findUpperBound
viewfunction findUpperBound(uint256 element) view returns (uint256)
getInitializedVersion
viewfunction getInitializedVersion() view returns (uint8)
getRandom
viewfunction getRandom() view returns (uint256)
getResultsLength
viewfunction getResultsLength() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getTicketsLength
viewfunction getTicketsLength() view returns (uint256)
getUserTotalTickets
viewfunction getUserTotalTickets(address user) view returns (uint256)
getVersion
viewfunction getVersion() view returns (uint256, uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lotteryId
viewfunction lotteryId() view returns (uint256)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
randomAddress
viewfunction randomAddress() view returns (address)
results
viewfunction results(uint256) view returns (uint256 lotteryId, address winner, uint256 winnerTicket, uint256 winnerTotalTickets, uint256 totalTickets, uint256 amount, uint256 tsSec)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tickets
viewfunction tickets(uint256) view returns (address user, uint256 startIndex, uint256 size)
ticketsLength
viewfunction ticketsLength() view returns (uint256)
token
viewfunction token() view returns (address)
totalSize
viewfunction totalSize() view returns (uint256)
addTickets
nonpayablefunction addTickets(address user, uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address token_, address _fira)
initializeV1u1
nonpayablefunction initializeV1u1()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
restore_result
nonpayablefunction restore_result(uint256 index, uint256 lotteryId_, address user, uint256 winnerTicket, uint256 winnerTotalTickets, uint256 totalTickets, uint256 amount, uint256 tsSec)
restore_ticket
nonpayablefunction restore_ticket(uint256 lotteryId_, uint256 index, address user, uint256 startIndex, uint256 amount)
restore_ticketsLength
nonpayablefunction restore_ticketsLength(uint256 value)
restore_totalSize
nonpayablefunction restore_totalSize(uint256 value)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
runLottery
nonpayablefunction runLottery() returns (tuple)
setRandomAddress
nonpayablefunction setRandomAddress(address randomAddress_)
transfer
nonpayablefunction transfer(address to, uint256 amount)
events
Initialized
event Initialized(uint8 version)
LotteryResult
event LotteryResult(uint256 lotteryId, address winner, uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061217c806100206000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c8063a217fddf1161011a578063d4235984116100ad578063dd39550a1161007c578063dd39550a146104f0578063e2f585bf146104f8578063e580f47b1461050b578063ec87621c14610514578063fc0c546a1461052957600080fd5b8063d4235984146104a4578063d547741f146104b7578063d5bee9f5146104ca578063db42d3a4146104dd57600080fd5b8063b8cfc412116100e9578063b8cfc41214610462578063bca75e9c1461046b578063ca15c8731461047e578063cc726e361461049157600080fd5b8063a217fddf1461042a578063a9059cbb14610432578063aacc5a1714610445578063b3c650151461044d57600080fd5b806336568abe1161019d5780635d9ac28e1161016c5780635d9ac28e146103c85780638b7ca0d8146103db5780639010d07c146103e457806391d148541461040f578063983d7f451461042257600080fd5b806336568abe14610308578063485cc9551461031b57806350b447121461032e5780635674a3ed1461036657600080fd5b8063212d2f69116101d9578063212d2f69146102aa578063248a9ca3146102bf5780632f2ff15d146102e257806333e3a58a146102f557600080fd5b806301ffc9a71461020b5780630d8e6e2c1461023357806319615328146102485780631b0c27da1461025a575b600080fd5b61021e610219366004611da2565b61053c565b60405190151581526020015b60405180910390f35b6040805160018152600260208201520161022a565b60d0545b60405190815260200161022a565b61026d610268366004611d44565b610567565b604080519788526001600160a01b039096166020880152948601939093526060850191909152608084015260a083015260c082015260e00161022a565b6102bd6102b8366004611e2c565b6105c0565b005b61024c6102cd366004611d44565b60009081526065602052604090206001015490565b6102bd6102f0366004611d5d565b6107a1565b61024c610303366004611d44565b6107cb565b6102bd610316366004611d5d565b6109a4565b6102bd610329366004611cc5565b610a22565b61034161033c366004611d44565b610b55565b604080516001600160a01b03909416845260208401929092529082015260600161022a565b61036e610b92565b60405161022a9190815181526020808301516001600160a01b03169082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0918201519181019190915260e00190565b61024c6103d6366004611caa565b610f24565b61024c60cc5481565b6103f76103f2366004611d80565b610f6b565b6040516001600160a01b03909116815260200161022a565b61021e61041d366004611d5d565b610f8a565b60d15461024c565b61024c600081565b6102bd610440366004611cf8565b610fb5565b61024c611052565b60005460405160ff909116815260200161022a565b61024c60d15481565b6102bd610479366004611d44565b611061565b61024c61048c366004611d44565b611070565b6102bd61049f366004611de5565b611087565b6102bd6104b2366004611caa565b611263565b6102bd6104c5366004611d5d565b61128f565b60ca546103f7906001600160a01b031681565b6102bd6104eb366004611d44565b6112b4565b6102bd6112c3565b6102bd610506366004611cf8565b611359565b61024c60cd5481565b61024c60008051602061212783398151915281565b60c9546103f7906001600160a01b031681565b60006001600160e01b03198216635a05180f60e01b1480610561575061056182611583565b92915050565b60d0818154811061057757600080fd5b600091825260209091206007909102018054600182015460028301546003840154600485015460058601546006909601549496506001600160a01b039093169491939092919087565b6105ca60006115b8565b60d0548811156105d9896115c5565b60d0546105e5906115c5565b6040516020016105f6929190611e8f565b6040516020818303038152906040529061062c5760405162461bcd60e51b81526004016106239190611f5f565b60405180910390fd5b506040805160e0810182529788526001600160a01b0396871660208901908152908801958652606088019485526080880193845260a0880192835260c0880191825260d0805460018101825560009190915297517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb600790990298890155517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcc880180546001600160a01b031916919097161790955592517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcd86015590517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbce850155517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcf840155517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbd0830155517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbd19091015550565b6000828152606560205260409020600101546107bc816115b8565b6107c68383611662565b505050565b60008060d1541161080b5760405162461bcd60e51b815260206004820152600a6024820152694e6f207469636b65747360b01b6044820152606401610623565b60cc5482106108535760405162461bcd60e51b8152602060048201526014602482015273456c656d656e74206f7574206f662072616e676560601b6044820152606401610623565b60d1546000905b808210156108f657600061086e8383611684565b9050600060cb8281548110610885576108856120fa565b600091825260209182902060408051606081018252600390930290910180546001600160a01b0316835260018101549383018490526002015490820181905290925087916108d39190611fe0565b11156108e1578192506108ef565b6108ec826001611fe0565b93505b505061085a565b811561099d57600060cb61090b60018561202b565b8154811061091b5761091b6120fa565b600091825260209182902060408051606081018252600390930290910180546001600160a01b03168352600181015493830184905260020154908201529150851180159061097b575084816040015182602001516109799190611fe0565b105b156109945761098b60018461202b565b95945050505050565b50909392505050565b5092915050565b6001600160a01b0381163314610a145760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610623565b610a1e828261169f565b5050565b600054610100900460ff1615808015610a425750600054600160ff909116105b80610a5c5750303b158015610a5c575060005460ff166001145b610a785760405162461bcd60e51b815260040161062390611f92565b6000805460ff191660011790558015610a9b576000805461ff0019166101001790555b610aa66000336116c1565b610abe600080516020612127833981519152336116c1565b610ad6600080516020612127833981519152836116c1565b60c980546001600160a01b0385166001600160a01b031991821617909155600060cc81905560cd5560ca805490911661100017905580156107c6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60cb8181548110610b6557600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b610bdb6040518060e001604052806000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b610bf26000805160206121278339815191526115b8565b600060d15411610c315760405162461bcd60e51b815260206004820152600a6024820152694e6f207469636b65747360b01b6044820152606401610623565b600060cc54610c3e6116cb565b610c4891906120a4565b90506000610c55826107cb565b9050600060cb8281548110610c6c57610c6c6120fa565b600091825260208083206040805160608101825260039490940290910180546001600160a01b039081168552600182015493850193909352600201548382015260c95490516370a0823160e01b815230600482015292945016906370a082319060240160206040518083038186803b158015610ce757600080fd5b505afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f9190611dcc565b6040805160e08101825260cd8054825285516001600160a01b0390811660208085019182528486018b815289518416600090815260ce909252958120546060860190815260cc80546080880190815260a088018a81524260c08a0190815260d080546001810182559087528a517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb60079092029182015596517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcc880180546001600160a01b031916919099161790975598517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcd86015591517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbce85015590517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcf84015595517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbd083015591517fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbd1909101559283905560d18390558054939450909291610ec883612089565b909155505060cd548351604080519283526001600160a01b03909116602083015281018390527f952e95748786714b56ec3305d24f16bc5876e76b35c200d5e6f311dfc8fdd73b9060600160405180910390a194505050505090565b60cd546001600160a01b038216600090815260cf6020526040812054909114610f4f57506000919050565b506001600160a01b0316600090815260ce602052604090205490565b6000828152609760205260408120610f839083611716565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610fcc6000805160206121278339815191526115b8565b60c95460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561101a57600080fd5b505af115801561102e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c69190611d22565b600061105c6116cb565b905090565b61106b60006115b8565b60d155565b600081815260976020526040812061056190611722565b61109160006115b8565b60cd8590555b60cb54841061117b57604080516060810182526001600160a01b03858116825260cc546020830190815292820184815260cb8054600181018255600091825284517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb600390920291820180546001600160a01b031916919095161790935593517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fc830155517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fd9091015560d18054919261117083612089565b919050555050611097565b600060cb8581548110611190576111906120fa565b6000918252602082206003919091020180546001600160a01b0319166001600160a01b038716178155600181018590556002810184905560cc8054919350849290916111dd908490611fe0565b909155505060cd546001600160a01b038516600090815260cf60205260409020541461122e5760cd546001600160a01b038516600090815260cf602090815260408083209390935560ce9052908120555b6001600160a01b038416600090815260ce602052604081208054849290611256908490611fe0565b9091555050505050505050565b61126d60006115b8565b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152606560205260409020600101546112aa816115b8565b6107c6838361169f565b6112be60006115b8565b60cc55565b600054600290610100900460ff161580156112e5575060005460ff8083169116105b6113015760405162461bcd60e51b815260040161062390611f92565b6000805460cb5460d15561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6113706000805160206121278339815191526115b8565b600081116113b65760405162461bcd60e51b815260206004820152601360248201527243616e2774206275792030207469636b65747360681b6044820152606401610623565b60d15460cb54111561141657600060cb60d154815481106113d9576113d96120fa565b6000918252602090912060039091020180546001600160a01b0319166001600160a01b03851617815560cc546001820155600201829055506114da565b604080516060810182526001600160a01b03848116825260cc546020830190815292820184815260cb805460018101825560009190915292517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb600390940293840180546001600160a01b031916919093161790915591517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fc82015590517fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fd909101555b8060cc60008282546114ec9190611fe0565b909155505060d1805490600061150183612089565b909155505060cd546001600160a01b038316600090815260cf6020526040902054146115525760cd546001600160a01b038316600090815260cf602090815260408083209390935560ce9052908120555b6001600160a01b038216600090815260ce60205260408120805483929061157a908490611fe0565b90915550505050565b60006001600160e01b03198216637965db0b60e01b148061056157506301ffc9a760e01b6001600160e01b0319831614610561565b6115c2813361172c565b50565b606060006115d283611785565b600101905060008167ffffffffffffffff8111156115f2576115f2612110565b6040519080825280601f01601f19166020018201604052801561161c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846116555761165a565b611626565b509392505050565b61166c828261185d565b60008281526097602052604090206107c690826118e3565b60006116936002848418611ff8565b610f8390848416611fe0565b6116a982826118f8565b60008281526097602052604090206107c6908261195f565b610a1e8282611662565b60ca54604080514460208083019190915242828401524360608301526001600160a01b03909316316080808301919091528251808303909101815260a0909101909152805191012090565b6000610f838383611974565b6000610561825490565b6117368282610f8a565b610a1e576117438161199e565b61174e8360206119b0565b60405160200161175f929190611eea565b60408051601f198184030181529082905262461bcd60e51b825261062391600401611f5f565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106117c45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106117f0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061180e57662386f26fc10000830492506010015b6305f5e1008310611826576305f5e100830492506008015b612710831061183a57612710830492506004015b6064831061184c576064830492506002015b600a83106105615760010192915050565b6118678282610f8a565b610a1e5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561189f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f83836001600160a01b038416611b4c565b6119028282610f8a565b15610a1e5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f83836001600160a01b038416611b9b565b600082600001828154811061198b5761198b6120fa565b9060005260206000200154905092915050565b60606105616001600160a01b03831660145b606060006119bf83600261200c565b6119ca906002611fe0565b67ffffffffffffffff8111156119e2576119e2612110565b6040519080825280601f01601f191660200182016040528015611a0c576020820181803683370190505b509050600360fc1b81600081518110611a2757611a276120fa565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611a5657611a566120fa565b60200101906001600160f81b031916908160001a9053506000611a7a84600261200c565b611a85906001611fe0565b90505b6001811115611afd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611ab957611ab96120fa565b1a60f81b828281518110611acf57611acf6120fa565b60200101906001600160f81b031916908160001a90535060049490941c93611af681612072565b9050611a88565b508315610f835760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610623565b6000818152600183016020526040812054611b9357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610561565b506000610561565b60008181526001830160205260408120548015611c84576000611bbf60018361202b565b8554909150600090611bd39060019061202b565b9050818114611c38576000866000018281548110611bf357611bf36120fa565b9060005260206000200154905080876000018481548110611c1657611c166120fa565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611c4957611c496120e4565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610561565b6000915050610561565b80356001600160a01b0381168114611ca557600080fd5b919050565b600060208284031215611cbc57600080fd5b610f8382611c8e565b60008060408385031215611cd857600080fd5b611ce183611c8e565b9150611cef60208401611c8e565b90509250929050565b60008060408385031215611d0b57600080fd5b611d1483611c8e565b946020939093013593505050565b600060208284031215611d3457600080fd5b81518015158114610f8357600080fd5b600060208284031215611d5657600080fd5b5035919050565b60008060408385031215611d7057600080fd5b82359150611cef60208401611c8e565b60008060408385031215611d9357600080fd5b50508035926020909101359150565b600060208284031215611db457600080fd5b81356001600160e01b031981168114610f8357600080fd5b600060208284031215611dde57600080fd5b5051919050565b600080600080600060a08688031215611dfd57600080fd5b8535945060208601359350611e1460408701611c8e565b94979396509394606081013594506080013592915050565b600080600080600080600080610100898b031215611e4957600080fd5b8835975060208901359650611e6060408a01611c8e565b979a96995096976060810135975060808101359660a0820135965060c0820135955060e0909101359350915050565b71024b73232bc1034b9903a37b7903134b39d160751b815260008351611ebc816012850160208801612042565b61016160f51b6012918401918201528351611ede816014840160208801612042565b01601401949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611f22816017850160208801612042565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611f53816028840160208801612042565b01602801949350505050565b6020815260008251806020840152611f7e816040850160208701612042565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611ff357611ff36120b8565b500190565b600082612007576120076120ce565b500490565b6000816000190483118215151615612026576120266120b8565b500290565b60008282101561203d5761203d6120b8565b500390565b60005b8381101561205d578181015183820152602001612045565b8381111561206c576000848401525b50505050565b600081612081576120816120b8565b506000190190565b600060001982141561209d5761209d6120b8565b5060010190565b6000826120b3576120b36120ce565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08a2646970667358221220228bb322225b27d97adfc8b8b7f6fd60f414545d2e8efc33ba76c013c681047964736f6c63430008060033