SC Arguments: [Name:CEO Type:string Value:'a2916dc466951716622d6aa50b4bde53b26fc9e3e7ea6945c8006cf606e9c496' Name:NAME Type:string Value:'DIRTY NFT LOTTO' Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'Function Initialize(CEO String, NAME String, SEAT_0 String) Uint64
10 IF EXISTS("CEO") THEN GOTO 100
20 STORE("CEO",CEO)
25 STORE("SEAT_0",SEAT_O)
30 STORE("QUORUM",0)
40 STORE("TREASURY_DERO",0)
50 STORE("APPROVE", 0)
60 STORE("ALLOWANCE_DERO",0)
70 STORE("OAO_VERSION","OAO")
80 STORE("NAME",NAME)
90 STORE("TICKETS",0)
99 RETURN 0
100 RETURN 1
End Function
Function Propose(k String, u Uint64, s String, t Uint64, seat Uint64) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("CEO"))) != 1 THEN GOTO 13
11 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
12 GOTO 15
13 IF ASSETVALUE(HEXDECODE(LOAD("SEAT_"+seat))) !=1 THEN GOTO 100
14 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("SEAT_"+seat)))
15 STORE("APPROVE", 0)
40 STORE("k",k)
49 STORE("t",t)
50 IF t == 1 THEN GOTO 80
60 STORE("s", s)
70 RETURN 0
80 STORE("u",u)
90 RETURN 0
100 RETURN 1
End Function
Function Approve(seat Uint64) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("SEAT_"+seat)))!=1 THEN GOTO 100
20 STORE("APPROVE",LOAD("APPROVE")+1)
30 STORE("SEAT_"+seat+"_OWNER",ADDRESS_STRING(SIGNER()))
99 RETURN 0
100 RETURN 1
End Function
Function ClaimSeat(seat Uint64) Uint64
10 IF ADDRESS_STRING(SIGNER())!= LOAD("SEAT_"+seat+"_OWNER") THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("SEAT_"+seat)))
30 IF LOAD("APPROVE") == 0 THEN GOTO 99
40 STORE("APPROVE",LOAD("APPROVE")-1)
99 RETURN 0
100 RETURN 1
End Function
Function Store() Uint64
10 IF LOAD("APPROVE") < LOAD("QUORUM") THEN GOTO 100
20 STORE("APPROVE",0)
30 IF LOAD("t") == 1 THEN GOTO 60
40 STORE(LOAD("k"), LOAD("s"))
45 STORE("k","")
50 RETURN 0
60 STORE(LOAD("k"),LOAD("u"))
65 STORE("k","")
99 RETURN 0
100 RETURN 1
End Function
Function Withdraw(amount Uint64, token String) Uint64
5 IF ASSETVALUE(HEXDECODE(LOAD("CEO"))) != 1 THEN GOTO 100
10 IF token != "" THEN GOTO 21
11 IF amount > LOAD("ALLOWANCE_DERO") THEN GOTO 100
12 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
13 STORE("ALLOWANCE_DERO",LOAD("ALLOWANCE_DERO") - amount)
14 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
15 STORE("TREASURY_DERO",LOAD("TREASURY_DERO")-amount)
19 RETURN 0
21 IF amount > LOAD("ALLOWANCE_"+token) THEN GOTO 100
22 SEND_ASSET_TO_ADDRESS(SIGNER(),amount,HEXDECODE(LOAD(token)))
23 STORE("ALLOWANCE_"+token,LOAD("ALLOWANCE_"+token) - amount)
24 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
25 STORE("TREASURY_"+token,LOAD("TREASURY_"+token)-amount)
29 RETURN 0
100 RETURN 1
End Function
Function Deposit(token String) Uint64
10 STORE("TREASURY_DERO",LOAD("TREASURY_DERO")+DEROVALUE())
20 IF token != "" THEN GOTO 30
25 RETURN 0
30 STORE("TREASURY_"+token,LOAD("TREASURY_"+token)+ASSETVALUE(HEXDECODE(LOAD(token))))
99 RETURN 0
End Function
Function Draw() Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("CEO"))) != 1 THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
30 dim winner as Uint64
40 LET winner = RANDOM(LOAD("TICKETS")) + 1
50 STORE("WINNER",winner)
99 RETURN 0
100 RETURN 1
End Function
Function AddTicket(scid String) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("CEO"))) != 1 THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("CEO")))
30 STORE("TICKETS",LOAD("TICKETS")+1)
40 STORE("TICKET_"+LOAD("TICKETS"),scid)
99 RETURN 0
100 RETURN 1
End Function
Function Claim(asset String) Uint64
10 IF ASSETVALUE(HEXDECODE(LOAD("TICKET_"+LOAD("WINNER")))) != 1 THEN GOTO 100
20 SEND_ASSET_TO_ADDRESS(SIGNER(),1,HEXDECODE(LOAD("TICKET_"+LOAD("WINNER"))))
21 DELETE("WINNER")
25 IF asset !="" THEN GOTO 45
30 SEND_DERO_TO_ADDRESS(SIGNER(),LOAD("TREASURY_DERO"))
40 STORE("TREASURY_DERO",0)
41 RETURN 0
45 SEND_ASSET_TO_ADDRESS(SIGNER(),LOAD("TREASURY_"+asset),HEXDECODE(LOAD(asset)))
50 STORE("TREASURY_"+asset,0)
99 RETURN 0
100 RETURN 1
End Function' Name:SEAT_0 Type:string Value:'888b86627f8477851b3ce80d331aa6ce5eaa461eb5c143de5d89dad8fa2ccee7' Name:entrypoint Type:string Value:'Initialize'] |