SC CODE: // Raffle
Function Raffle() Uint64
10 dim deposit_count,winner as Uint64
20 LET deposit_count = LOAD("deposit_count")+1
25 IF DEROVALUE() == 0 THEN GOTO 110
30 STORE("depositor_address" + (deposit_count-1), SIGNER())
40 STORE("deposit_total", LOAD("deposit_total") + DEROVALUE() )
50 STORE("deposit_count",deposit_count)
60 IF LOAD("raffleeveryXdeposit") > deposit_count THEN GOTO 110
70 LET winner = RANDOM() % deposit_count
80 SEND_DERO_TO_ADDRESS(LOAD("depositor_address" + winner) , LOAD("rafflegiveback")*LOAD("deposit_total")/10000)
90 STORE("deposit_count", 0)
100 STORE("deposit_total", 0)
110 RETURN 0
End Function
Function Initialize() Uint64
10 STORE("owner", SIGNER())
20 STORE("raffleeveryXdeposit", 3)
30 STORE("rafflegiveback", 9000)
40 STORE("note", "Welcome to the raffle")
50 STORE("deposit_count", 0)
60 STORE("deposit_total", 0)
70 RETURN 0
End Function
Function TuneRaffleParameters(input Uint64, raffleeveryXdeposit Uint64, rafflegiveback Uint64, note String) Uint64
10 dim key,stored_owner as String
20 dim value_uint64 as Uint64
30 IF LOAD("owner") == SIGNER() THEN GOTO 100
40 RETURN 1
100 STORE("raffleeveryXdeposit", raffleeveryXdeposit)
130 STORE("rafflegiveback", rafflegiveback)
135 STORE("note", note)
140 RETURN 0
End Function
Function TransferOwnership(newowner String) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("tmpowner",ADDRESS_RAW(newowner))
40 RETURN 0
End Function
Function ClaimOwnership() Uint64
10 IF LOAD("tmpowner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("owner",SIGNER()) // ownership claim successful
40 RETURN 0
End Function
Function Withdraw(amount Uint64) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
40 RETURN 0
End Function
Function UpdateCode( code String) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 UPDATE_SC_CODE(code)
40 RETURN 0
End Function |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'// Raffle
Function Raffle() Uint64
10 dim deposit_count,winner as Uint64
20 LET deposit_count = LOAD("deposit_count")+1
25 IF DEROVALUE() == 0 THEN GOTO 110
30 STORE("depositor_address" + (deposit_count-1), SIGNER())
40 STORE("deposit_total", LOAD("deposit_total") + DEROVALUE() )
50 STORE("deposit_count",deposit_count)
60 IF LOAD("raffleeveryXdeposit") > deposit_count THEN GOTO 110
70 LET winner = RANDOM() % deposit_count
80 SEND_DERO_TO_ADDRESS(LOAD("depositor_address" + winner) , LOAD("rafflegiveback")*LOAD("deposit_total")/10000)
90 STORE("deposit_count", 0)
100 STORE("deposit_total", 0)
110 RETURN 0
End Function
Function Initialize() Uint64
10 STORE("owner", SIGNER())
20 STORE("raffleeveryXdeposit", 3)
30 STORE("rafflegiveback", 9000)
40 STORE("note", "Welcome to the raffle")
50 STORE("deposit_count", 0)
60 STORE("deposit_total", 0)
70 RETURN 0
End Function
Function TuneRaffleParameters(input Uint64, raffleeveryXdeposit Uint64, rafflegiveback Uint64, note String) Uint64
10 dim key,stored_owner as String
20 dim value_uint64 as Uint64
30 IF LOAD("owner") == SIGNER() THEN GOTO 100
40 RETURN 1
100 STORE("raffleeveryXdeposit", raffleeveryXdeposit)
130 STORE("rafflegiveback", rafflegiveback)
135 STORE("note", note)
140 RETURN 0
End Function
Function TransferOwnership(newowner String) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("tmpowner",ADDRESS_RAW(newowner))
40 RETURN 0
End Function
Function ClaimOwnership() Uint64
10 IF LOAD("tmpowner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("owner",SIGNER()) // ownership claim successful
40 RETURN 0
End Function
Function Withdraw(amount Uint64) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
40 RETURN 0
End Function
Function UpdateCode( code String) Uint64
10 IF LOAD("owner") == SIGNER() THEN GOTO 30
20 RETURN 1
30 UPDATE_SC_CODE(code)
40 RETURN 0
End Function'] |