SC CODE: Function InitializePrivate() Uint64
10 DIM signer as String
20 LET signer=SIGNER()
30 STORE("Owner",signer)
40 STORE("OwnerAddress",ADDRESS_STRING(signer))
50 STORE("ContractType","Simple")
60 STORE("Name","Simple Dero")
70 STORE("UrlInfo","")
80 STORE("UrlLogo","")
90 STORE("HouseLimit",5000)
100 STORE("TotalBalance",0)
110 STORE("BlockedUntil",0)
120 STORE("OnlyOwner",0)
130 RETURN 0
End Function
Function Ow_ChangeInfo(name String,urlInfo String,urlLogo String) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("Name",name)
40 STORE("UrlInfo",urlInfo)
50 STORE("UrlLogo",urlLogo)
60 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 DIM signer as String
20 LET signer=SIGNER()
30 IF LOAD("tmpowner")==signer THEN GOTO 50
40 RETURN 1
50 STORE("Owner",signer)
60 STORE("OwnerAddress",ADDRESS_STRING(signer))
70 DELETE("tmpowner")
80 RETURN 0
End Function
Function getHouseLimit(totalBalance Uint64) Uint64
10 DIM houseLimit as Uint64
20 LET houseLimit=LOAD("HouseLimit")
30 IF houseLimit>100000 THEN GOTO 60
40 LET houseLimit=totalBalance*houseLimit/100000
50 GOTO 70
60 LET houseLimit=houseLimit-100001
70 IF houseLimit>totalBalance THEN GOTO 90
80 RETURN houseLimit
90 RETURN totalBalance
End Function
Function Play(mhl Uint64,Z0 Uint64,Z1 Uint64,Z2 Uint64,Z3 Uint64,Z4 Uint64,Z5 Uint64,Z6 Uint64,Z7 Uint64,Z8 Uint64,Z9 Uint64,Z10 Uint64,Z11 Uint64,S0 Uint64,S1 Uint64,S2 Uint64,S3 Uint64,S4 Uint64,S5 Uint64,S6 Uint64,S7 Uint64,S8 Uint64,S9 Uint64,S10 Uint64,S11 Uint64,S12 Uint64,S13 Uint64,S14 Uint64,S15 Uint64,S16 Uint64,S17 Uint64,S18 Uint64,S19 Uint64,S20 Uint64,S21 Uint64,S22 Uint64,S23 Uint64,S24 Uint64,S25 Uint64,S26 Uint64,S27 Uint64,S28 Uint64,S29 Uint64,S30 Uint64,S31 Uint64,S32 Uint64,S33 Uint64,S34 Uint64,S35 Uint64,S36 Uint64,B1X2 Uint64,B2X3 Uint64,B4X5 Uint64,B5X6 Uint64,B7X8 Uint64,B8X9 Uint64,B10X11 Uint64,B11X12 Uint64,B13X14 Uint64,B14X15 Uint64,B16X17 Uint64,B17X18 Uint64,B19X20 Uint64,B20X21 Uint64,B22X23 Uint64,B23X24 Uint64,B25X26 Uint64,B26X27 Uint64,B28X29 Uint64,B29X30 Uint64,B31X32 Uint64,B32X33 Uint64,B34X35 Uint64,B35X36 Uint64,B1X4 Uint64,B4X7 Uint64,B7X10 Uint64,B10X13 Uint64,B13X16 Uint64,B16X19 Uint64,B19X22 Uint64,B22X25 Uint64,B25X28 Uint64,B28X31 Uint64,B31X34 Uint64,B2X5 Uint64,B5X8 Uint64,B8X11 Uint64,B11X14 Uint64,B14X17 Uint64,B17X20 Uint64,B20X23 Uint64,B23X26 Uint64,B26X29 Uint64,B29X32 Uint64,B32X35 Uint64,B3X6 Uint64,B6X9 Uint64,B9X12 Uint64,B12X15 Uint64,B15X18 Uint64,B18X21 Uint64,B21X24 Uint64,B24X27 Uint64,B27X30 Uint64,B30X33 Uint64,B33X36 Uint64,R1 Uint64,R2 Uint64,R3 Uint64,R4 Uint64,R5 Uint64,R6 Uint64,R7 Uint64,R8 Uint64,R9 Uint64,R10 Uint64,R11 Uint64,R12 Uint64,D1 Uint64,D2 Uint64,D4 Uint64,D5 Uint64,D7 Uint64,D8 Uint64,D10 Uint64,D11 Uint64,D13 Uint64,D14 Uint64,D16 Uint64,D17 Uint64,D19 Uint64,D20 Uint64,D22 Uint64,D23 Uint64,D25 Uint64,D26 Uint64,D28 Uint64,D29 Uint64,D31 Uint64,D32 Uint64,C3 Uint64,C6 Uint64,C9 Uint64,C12 Uint64,C15 Uint64,C18 Uint64,C21 Uint64,C24 Uint64,C27 Uint64,C30 Uint64,C33 Uint64) Uint64
10 IF LOAD("OnlyOwner")==0 || LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 DIM houseLimit,totalBalance,s,w,maxW,total,commissions as Uint64
40 LET total=Z0+Z1+Z2+Z3+Z4+Z5+Z6+Z7+Z8+Z9+Z10+Z11+S0+S1+S2+S3+S4+S5+S6+S7+S8+S9+S10+S11+S12+S13+S14+S15+S16+S17+S18+S19+S20+S21+S22+S23+S24+S25+S26+S27+S28+S29+S30+S31+S32+S33+S34+S35+S36+B1X2+B2X3+B4X5+B5X6+B7X8+B8X9+B10X11+B11X12+B13X14+B14X15+B16X17+B17X18+B19X20+B20X21+B22X23+B23X24+B25X26+B26X27+B28X29+B29X30+B31X32+B32X33+B34X35+B35X36+B1X4+B4X7+B7X10+B10X13+B13X16+B16X19+B19X22+B22X25+B25X28+B28X31+B31X34+B2X5+B5X8+B8X11+B11X14+B14X17+B17X20+B20X23+B23X26+B26X29+B29X32+B32X35+B3X6+B6X9+B9X12+B12X15+B15X18+B18X21+B21X24+B24X27+B27X30+B30X33+B33X36+R1+R2+R3+R4+R5+R6+R7+R8+R9+R10+R11+R12+D1+D2+D4+D5+D7+D8+D10+D11+D13+D14+D16+D17+D19+D20+D22+D23+D25+D26+D28+D29+D31+D32+C3+C6+C9+C12+C15+C18+C21+C24+C27+C30+C33
50 LET totalBalance=LOAD("TotalBalance")+total
60 LET houseLimit=getHouseLimit(totalBalance-total)+total
70 IF houseLimit-total>=mhl && total==DEROVALUE() THEN GOTO 90
80 RETURN 1
90 LET s=RANDOM(37)
100 LET w=calc(s,Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32,S33,S34,S35,S36,B1X2,B2X3,B4X5,B5X6,B7X8,B8X9,B10X11,B11X12,B13X14,B14X15,B16X17,B17X18,B19X20,B20X21,B22X23,B23X24,B25X26,B26X27,B28X29,B29X30,B31X32,B32X33,B34X35,B35X36,B1X4,B4X7,B7X10,B10X13,B13X16,B16X19,B19X22,B22X25,B25X28,B28X31,B31X34,B2X5,B5X8,B8X11,B11X14,B14X17,B17X20,B20X23,B23X26,B26X29,B29X32,B32X35,B3X6,B6X9,B9X12,B12X15,B15X18,B18X21,B21X24,B24X27,B27X30,B30X33,B33X36,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,D1,D2,D4,D5,D7,D8,D10,D11,D13,D14,D16,D17,D19,D20,D22,D23,D25,D26,D28,D29,D31,D32,C3,C6,C9,C12,C15,C18,C21,C24,C27,C30,C33)
110 IF w<=houseLimit THEN GOTO 130
120 LET w=houseLimit
130 LET totalBalance=totalBalance-w
140 STORE("TotalBalance",totalBalance)
150 IF w==0 THEN GOTO 170
160 SEND_DERO_TO_ADDRESS(SIGNER(),w)
170 STORE("RES-"+HEX(TXID()),s)
180 RETURN 0
End Function
Function calc(s Uint64, Z0 Uint64,Z1 Uint64,Z2 Uint64,Z3 Uint64,Z4 Uint64,Z5 Uint64,Z6 Uint64,Z7 Uint64,Z8 Uint64,Z9 Uint64,Z10 Uint64,Z11 Uint64,S0 Uint64,S1 Uint64,S2 Uint64,S3 Uint64,S4 Uint64,S5 Uint64,S6 Uint64,S7 Uint64,S8 Uint64,S9 Uint64,S10 Uint64,S11 Uint64,S12 Uint64,S13 Uint64,S14 Uint64,S15 Uint64,S16 Uint64,S17 Uint64,S18 Uint64,S19 Uint64,S20 Uint64,S21 Uint64,S22 Uint64,S23 Uint64,S24 Uint64,S25 Uint64,S26 Uint64,S27 Uint64,S28 Uint64,S29 Uint64,S30 Uint64,S31 Uint64,S32 Uint64,S33 Uint64,S34 Uint64,S35 Uint64,S36 Uint64,B1X2 Uint64,B2X3 Uint64,B4X5 Uint64,B5X6 Uint64,B7X8 Uint64,B8X9 Uint64,B10X11 Uint64,B11X12 Uint64,B13X14 Uint64,B14X15 Uint64,B16X17 Uint64,B17X18 Uint64,B19X20 Uint64,B20X21 Uint64,B22X23 Uint64,B23X24 Uint64,B25X26 Uint64,B26X27 Uint64,B28X29 Uint64,B29X30 Uint64,B31X32 Uint64,B32X33 Uint64,B34X35 Uint64,B35X36 Uint64,B1X4 Uint64,B4X7 Uint64,B7X10 Uint64,B10X13 Uint64,B13X16 Uint64,B16X19 Uint64,B19X22 Uint64,B22X25 Uint64,B25X28 Uint64,B28X31 Uint64,B31X34 Uint64,B2X5 Uint64,B5X8 Uint64,B8X11 Uint64,B11X14 Uint64,B14X17 Uint64,B17X20 Uint64,B20X23 Uint64,B23X26 Uint64,B26X29 Uint64,B29X32 Uint64,B32X35 Uint64,B3X6 Uint64,B6X9 Uint64,B9X12 Uint64,B12X15 Uint64,B15X18 Uint64,B18X21 Uint64,B21X24 Uint64,B24X27 Uint64,B27X30 Uint64,B30X33 Uint64,B33X36 Uint64,R1 Uint64,R2 Uint64,R3 Uint64,R4 Uint64,R5 Uint64,R6 Uint64,R7 Uint64,R8 Uint64,R9 Uint64,R10 Uint64,R11 Uint64,R12 Uint64,D1 Uint64,D2 Uint64,D4 Uint64,D5 Uint64,D7 Uint64,D8 Uint64,D10 Uint64,D11 Uint64,D13 Uint64,D14 Uint64,D16 Uint64,D17 Uint64,D19 Uint64,D20 Uint64,D22 Uint64,D23 Uint64,D25 Uint64,D26 Uint64,D28 Uint64,D29 Uint64,D31 Uint64,D32 Uint64,C3 Uint64,C6 Uint64,C9 Uint64,C12 Uint64,C15 Uint64,C18 Uint64,C21 Uint64,C24 Uint64,C27 Uint64,C30 Uint64,C33 Uint64) Uint64
1 DIM w as Uint64
2 IF s!=1&&s!=3&&s!=5&&s!=7&&s!=9&&s!=12&&s!=14&&s!=16&&s!=18&&s!=21&&s!=23&&s!=25&&s!=27&&s!=28&&s!=30&&s!=32&&s!=34&&s!=36 THEN GOTO 5
3 LET w=w+Z0*2
4 GOTO 7
5 IF s==0 THEN GOTO 7
6 LET w=w+Z1*2
7 IF s%2==1 || s==0 THEN GOTO 9
8 LET w=w+Z2*2
9 IF s%2==0 THEN GOTO 11
10 LET w=w+Z3*2
11 IF s==0 || s>18 THEN GOTO 13
12 LET w=w+Z4*2
13 IF s<19 THEN GOTO 15
14 LET w=w+Z5*2
15 IF s==0 || s>12 THEN GOTO 17
16 LET w=w+Z6*3
17 IF s<13 || s>24 THEN GOTO 19
18 LET w=w+Z7*3
19 IF s<25 THEN GOTO 21
20 LET w=w+Z8*3
21 IF s%3!=1 THEN GOTO 23
22 LET w=w+Z9*3
23 IF s%3!=2 THEN GOTO 25
24 LET w=w+Z10*3
25 IF s%3!=0 || s==0 THEN GOTO 27
26 LET w=w+Z11*3
27 IF s!=0 THEN GOTO 29
28 LET w=w+S0*36
29 IF s!=1 THEN GOTO 31
30 LET w=w+S1*36+B1X2*18+B1X4*18
31 IF s!=2 THEN GOTO 33
32 LET w=w+S2*36+B1X2*18+B2X3*18+B2X5*18
33 IF s!=3 THEN GOTO 35
34 LET w=w+S3*36+B2X3*18+B3X6*18
35 IF s!=4 THEN GOTO 37
36 LET w=w+S4*36+B4X5*18+B1X4*18+B4X7*18
37 IF s!=5 THEN GOTO 39
38 LET w=w+S5*36+B4X5*18+B5X6*18+B2X5*18+B5X8*18
39 IF s!=6 THEN GOTO 41
40 LET w=w+S6*36+B5X6*18+B3X6*18+B6X9*18
41 IF s!=7 THEN GOTO 43
42 LET w=w+S7*36+B7X8*18+B4X7*18+B7X10*18
43 IF s!=8 THEN GOTO 45
44 LET w=w+S8*36+B7X8*18+B8X9*18+B5X8*18+B8X11*18
45 IF s!=9 THEN GOTO 47
46 LET w=w+S9*36+B8X9*18+B6X9*18+B9X12*18
47 IF s!=10 THEN GOTO 49
48 LET w=w+S10*36+B10X11*18+B7X10*18+B10X13*18
49 IF s!=11 THEN GOTO 51
50 LET w=w+S11*36+B10X11*18+B11X12*18+B8X11*18+B11X14*18
51 IF s!=12 THEN GOTO 53
52 LET w=w+S12*36+B11X12*18+B9X12*18+B12X15*18
53 IF s!=13 THEN GOTO 55
54 LET w=w+S13*36+B13X14*18+B10X13*18+B13X16*18
55 IF s!=14 THEN GOTO 57
56 LET w=w+S14*36+B13X14*18+B14X15*18+B11X14*18+B14X17*18
57 IF s!=15 THEN GOTO 59
58 LET w=w+S15*36+B14X15*18+B12X15*18+B15X18*18
59 IF s!=16 THEN GOTO 61
60 LET w=w+S16*36+B16X17*18+B13X16*18+B16X19*18
61 IF s!=17 THEN GOTO 63
62 LET w=w+S17*36+B16X17*18+B17X18*18+B14X17*18+B17X20*18
63 IF s!=18 THEN GOTO 65
64 LET w=w+S18*36+B17X18*18+B18X21*18+B15X18*18
65 IF s!=19 THEN GOTO 67
66 LET w=w+S19*36+B19X20*18+B16X19*18+B19X22*18
67 IF s!=20 THEN GOTO 69
68 LET w=w+S20*36+B19X20*18+B20X21*18+B17X20*18+B20X23*18
69 IF s!=21 THEN GOTO 71
70 LET w=w+S21*36+B20X21*18+B18X21*18+B21X24*18
71 IF s!=22 THEN GOTO 73
72 LET w=w+S22*36+B22X23*18+B19X22*18+B22X25*18
73 IF s!=23 THEN GOTO 75
74 LET w=w+S23*36+B22X23*18+B23X24*18+B20X23*18+B23X26*18
75 IF s!=24 THEN GOTO 77
76 LET w=w+S24*36+B23X24*18+B21X24*18+B24X27*18
77 IF s!=25 THEN GOTO 79
78 LET w=w+S25*36+B25X26*18+B22X25*18+B25X28*18
79 IF s!=26 THEN GOTO 81
80 LET w=w+S26*36+B25X26*18+B26X27*18+B23X26*18+B26X29*18
81 IF s!=27 THEN GOTO 83
82 LET w=w+S27*36+B26X27*18+B24X27*18+B27X30*18
83 IF s!=28 THEN GOTO 85
84 LET w=w+S28*36+B28X29*18+B25X28*18+B28X31*18
85 IF s!=29 THEN GOTO 87
86 LET w=w+S29*36+B28X29*18+B29X30*18+B26X29*18+B29X32*18
87 IF s!=30 THEN GOTO 89
88 LET w=w+S30*36+B29X30*18+B27X30*18+B30X33*18
89 IF s!=31 THEN GOTO 91
90 LET w=w+S31*36+B31X32*18+B28X31*18+B31X34*18
91 IF s!=32 THEN GOTO 93
92 LET w=w+S32*36+B31X32*18+B32X33*18+B29X32*18+B32X35*18
93 IF s!=33 THEN GOTO 95
94 LET w=w+S33*36+B32X33*18+B30X33*18+B33X36*18
95 IF s!=34 THEN GOTO 97
96 LET w=w+S34*36+B34X35*18+B31X34*18
97 IF s!=35 THEN GOTO 99
98 LET w=w+S35*36+B34X35*18+B35X36*18+B32X35*18
99 IF s!=36 THEN GOTO 101
100 LET w=w+S36*36+B35X36*18+B33X36*18
101 IF s<1 THEN GOTO 200
102 IF s>3 THEN GOTO 104
103 LET w=w+R1*12
104 IF s<4 || s>6 THEN GOTO 106
105 LET w=w+R2*12
106 IF s<7 || s>9 THEN GOTO 108
107 LET w=w+R3*12
108 IF s<10 || s>12 THEN GOTO 110
109 LET w=w+R4*12
110 IF s<13 || s>15 THEN GOTO 112
111 LET w=w+R5*12
112 IF s<16 || s>18 THEN GOTO 114
113 LET w=w+R6*12
114 IF s<19 || s>21 THEN GOTO 116
115 LET w=w+R7*12
116 IF s<22 || s>24 THEN GOTO 118
117 LET w=w+R8*12
118 IF s<25 || s>27 THEN GOTO 120
119 LET w=w+R9*12
120 IF s<28 || s>30 THEN GOTO 122
121 LET w=w+R10*12
122 IF s<31 || s>33 THEN GOTO 124
123 LET w=w+R11*12
124 IF s<34 THEN GOTO 126
125 LET w=w+R12*12
126 IF s!=1&&s!=2&&s!=4&&s!=5 THEN GOTO 128
127 LET w=w+D1*9
128 IF s!=2&&s!=3&&s!=5&&s!=6 THEN GOTO 130
129 LET w=w+D2*9
130 IF s!=4&&s!=5&&s!=7&&s!=8 THEN GOTO 132
131 LET w=w+D4*9
132 IF s!=5&&s!=6&&s!=8&&s!=9 THEN GOTO 134
133 LET w=w+D5*9
134 IF s!=7&&s!=8&&s!=10&&s!=11 THEN GOTO 136
135 LET w=w+D7*9
136 IF s!=8&&s!=9&&s!=11&&s!=12 THEN GOTO 138
137 LET w=w+D8*9
138 IF s!=10&&s!=11&&s!=13&&s!=14 THEN GOTO 140
139 LET w=w+D10*9
140 IF s!=11&&s!=12&&s!=14&&s!=15 THEN GOTO 142
141 LET w=w+D11*9
142 IF s!=13&&s!=14&&s!=16&&s!=17 THEN GOTO 144
143 LET w=w+D13*9
144 IF s!=14&&s!=15&&s!=17&&s!=18 THEN GOTO 146
145 LET w=w+D14*9
146 IF s!=16&&s!=17&&s!=19&&s!=20 THEN GOTO 148
147 LET w=w+D16*9
148 IF s!=17&&s!=18&&s!=20&&s!=21 THEN GOTO 150
149 LET w=w+D17*9
150 IF s!=19&&s!=20&&s!=22&&s!=23 THEN GOTO 152
151 LET w=w+D19*9
152 IF s!=20&&s!=21&&s!=23&&s!=24 THEN GOTO 154
153 LET w=w+D20*9
154 IF s!=22&&s!=23&&s!=25&&s!=26 THEN GOTO 156
155 LET w=w+D22*9
156 IF s!=23&&s!=24&&s!=26&&s!=27 THEN GOTO 158
157 LET w=w+D23*9
158 IF s!=25&&s!=26&&s!=28&&s!=29 THEN GOTO 160
159 LET w=w+D25*9
160 IF s!=26&&s!=27&&s!=29&&s!=30 THEN GOTO 162
161 LET w=w+D26*9
162 IF s!=28&&s!=29&&s!=31&&s!=32 THEN GOTO 164
163 LET w=w+D28*9
164 IF s!=29&&s!=30&&s!=32&&s!=33 THEN GOTO 166
165 LET w=w+D29*9
166 IF s!=31&&s!=32&&s!=34&&s!=35 THEN GOTO 168
167 LET w=w+D31*9
168 IF s!=32&&s!=33&&s!=35&&s!=36 THEN GOTO 170
169 LET w=w+D32*9
170 IF s>6 THEN GOTO 172
171 LET w=w+C3*6
172 IF s<4 || s>9 THEN GOTO 174
173 LET w=w+C6*6
174 IF s<7 || s>12 THEN GOTO 176
175 LET w=w+C9*6
176 IF s<10 || s>15 THEN GOTO 178
177 LET w=w+C12*6
178 IF s<13 || s>18 THEN GOTO 180
179 LET w=w+C15*6
180 IF s<16 || s>21 THEN GOTO 182
181 LET w=w+C18*6
182 IF s<19 || s>24 THEN GOTO 184
183 LET w=w+C21*6
184 IF s<22 || s>27 THEN GOTO 186
185 LET w=w+C24*6
186 IF s<25 || s>30 THEN GOTO 188
187 LET w=w+C27*6
188 IF s<28 || s>33 THEN GOTO 190
189 LET w=w+C30*6
190 IF s<31 THEN GOTO 200
191 LET w=w+C33*6
200 RETURN w
End Function
Function Deposit() Uint64
10 STORE("TotalBalance",LOAD("TotalBalance")+DEROVALUE())
20 RETURN 0
End Function
Function Ow_Withdraw(amount Uint64) Uint64
10 DIM owner as String
20 LET owner=LOAD("Owner")
30 IF owner==SIGNER() && LOAD("BlockedUntil")<BLOCK_HEIGHT() THEN GOTO 50
40 RETURN 1
50 SEND_DERO_TO_ADDRESS(owner,amount)
60 STORE("TotalBalance",LOAD("TotalBalance")-amount)
70 RETURN 0
End Function
Function Ow_SetHouseLimit(houseLimit Uint64) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("HouseLimit",houseLimit)
40 RETURN 0
End Function
Function Ow_SetOnlyOwner(only Uint64) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("OnlyOwner",only)
40 RETURN 0
End Function
Function Ow_SetBlockedUntil(blocks Uint64) Uint64
10 DIM blockedUntil as Uint64
20 LET blockedUntil=blocks+BLOCK_HEIGHT()
30 IF LOAD("Owner")==SIGNER() && LOAD("BlockedUntil")<blockedUntil THEN GOTO 50
40 RETURN 1
50 STORE("BlockedUntil",blockedUntil)
60 RETURN 0
End Function |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'Function InitializePrivate() Uint64
10 DIM signer as String
20 LET signer=SIGNER()
30 STORE("Owner",signer)
40 STORE("OwnerAddress",ADDRESS_STRING(signer))
50 STORE("ContractType","Simple")
60 STORE("Name","Simple Dero")
70 STORE("UrlInfo","")
80 STORE("UrlLogo","")
90 STORE("HouseLimit",5000)
100 STORE("TotalBalance",0)
110 STORE("BlockedUntil",0)
120 STORE("OnlyOwner",0)
130 RETURN 0
End Function
Function Ow_ChangeInfo(name String,urlInfo String,urlLogo String) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("Name",name)
40 STORE("UrlInfo",urlInfo)
50 STORE("UrlLogo",urlLogo)
60 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 DIM signer as String
20 LET signer=SIGNER()
30 IF LOAD("tmpowner")==signer THEN GOTO 50
40 RETURN 1
50 STORE("Owner",signer)
60 STORE("OwnerAddress",ADDRESS_STRING(signer))
70 DELETE("tmpowner")
80 RETURN 0
End Function
Function getHouseLimit(totalBalance Uint64) Uint64
10 DIM houseLimit as Uint64
20 LET houseLimit=LOAD("HouseLimit")
30 IF houseLimit>100000 THEN GOTO 60
40 LET houseLimit=totalBalance*houseLimit/100000
50 GOTO 70
60 LET houseLimit=houseLimit-100001
70 IF houseLimit>totalBalance THEN GOTO 90
80 RETURN houseLimit
90 RETURN totalBalance
End Function
Function Play(mhl Uint64,Z0 Uint64,Z1 Uint64,Z2 Uint64,Z3 Uint64,Z4 Uint64,Z5 Uint64,Z6 Uint64,Z7 Uint64,Z8 Uint64,Z9 Uint64,Z10 Uint64,Z11 Uint64,S0 Uint64,S1 Uint64,S2 Uint64,S3 Uint64,S4 Uint64,S5 Uint64,S6 Uint64,S7 Uint64,S8 Uint64,S9 Uint64,S10 Uint64,S11 Uint64,S12 Uint64,S13 Uint64,S14 Uint64,S15 Uint64,S16 Uint64,S17 Uint64,S18 Uint64,S19 Uint64,S20 Uint64,S21 Uint64,S22 Uint64,S23 Uint64,S24 Uint64,S25 Uint64,S26 Uint64,S27 Uint64,S28 Uint64,S29 Uint64,S30 Uint64,S31 Uint64,S32 Uint64,S33 Uint64,S34 Uint64,S35 Uint64,S36 Uint64,B1X2 Uint64,B2X3 Uint64,B4X5 Uint64,B5X6 Uint64,B7X8 Uint64,B8X9 Uint64,B10X11 Uint64,B11X12 Uint64,B13X14 Uint64,B14X15 Uint64,B16X17 Uint64,B17X18 Uint64,B19X20 Uint64,B20X21 Uint64,B22X23 Uint64,B23X24 Uint64,B25X26 Uint64,B26X27 Uint64,B28X29 Uint64,B29X30 Uint64,B31X32 Uint64,B32X33 Uint64,B34X35 Uint64,B35X36 Uint64,B1X4 Uint64,B4X7 Uint64,B7X10 Uint64,B10X13 Uint64,B13X16 Uint64,B16X19 Uint64,B19X22 Uint64,B22X25 Uint64,B25X28 Uint64,B28X31 Uint64,B31X34 Uint64,B2X5 Uint64,B5X8 Uint64,B8X11 Uint64,B11X14 Uint64,B14X17 Uint64,B17X20 Uint64,B20X23 Uint64,B23X26 Uint64,B26X29 Uint64,B29X32 Uint64,B32X35 Uint64,B3X6 Uint64,B6X9 Uint64,B9X12 Uint64,B12X15 Uint64,B15X18 Uint64,B18X21 Uint64,B21X24 Uint64,B24X27 Uint64,B27X30 Uint64,B30X33 Uint64,B33X36 Uint64,R1 Uint64,R2 Uint64,R3 Uint64,R4 Uint64,R5 Uint64,R6 Uint64,R7 Uint64,R8 Uint64,R9 Uint64,R10 Uint64,R11 Uint64,R12 Uint64,D1 Uint64,D2 Uint64,D4 Uint64,D5 Uint64,D7 Uint64,D8 Uint64,D10 Uint64,D11 Uint64,D13 Uint64,D14 Uint64,D16 Uint64,D17 Uint64,D19 Uint64,D20 Uint64,D22 Uint64,D23 Uint64,D25 Uint64,D26 Uint64,D28 Uint64,D29 Uint64,D31 Uint64,D32 Uint64,C3 Uint64,C6 Uint64,C9 Uint64,C12 Uint64,C15 Uint64,C18 Uint64,C21 Uint64,C24 Uint64,C27 Uint64,C30 Uint64,C33 Uint64) Uint64
10 IF LOAD("OnlyOwner")==0 || LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 DIM houseLimit,totalBalance,s,w,maxW,total,commissions as Uint64
40 LET total=Z0+Z1+Z2+Z3+Z4+Z5+Z6+Z7+Z8+Z9+Z10+Z11+S0+S1+S2+S3+S4+S5+S6+S7+S8+S9+S10+S11+S12+S13+S14+S15+S16+S17+S18+S19+S20+S21+S22+S23+S24+S25+S26+S27+S28+S29+S30+S31+S32+S33+S34+S35+S36+B1X2+B2X3+B4X5+B5X6+B7X8+B8X9+B10X11+B11X12+B13X14+B14X15+B16X17+B17X18+B19X20+B20X21+B22X23+B23X24+B25X26+B26X27+B28X29+B29X30+B31X32+B32X33+B34X35+B35X36+B1X4+B4X7+B7X10+B10X13+B13X16+B16X19+B19X22+B22X25+B25X28+B28X31+B31X34+B2X5+B5X8+B8X11+B11X14+B14X17+B17X20+B20X23+B23X26+B26X29+B29X32+B32X35+B3X6+B6X9+B9X12+B12X15+B15X18+B18X21+B21X24+B24X27+B27X30+B30X33+B33X36+R1+R2+R3+R4+R5+R6+R7+R8+R9+R10+R11+R12+D1+D2+D4+D5+D7+D8+D10+D11+D13+D14+D16+D17+D19+D20+D22+D23+D25+D26+D28+D29+D31+D32+C3+C6+C9+C12+C15+C18+C21+C24+C27+C30+C33
50 LET totalBalance=LOAD("TotalBalance")+total
60 LET houseLimit=getHouseLimit(totalBalance-total)+total
70 IF houseLimit-total>=mhl && total==DEROVALUE() THEN GOTO 90
80 RETURN 1
90 LET s=RANDOM(37)
100 LET w=calc(s,Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32,S33,S34,S35,S36,B1X2,B2X3,B4X5,B5X6,B7X8,B8X9,B10X11,B11X12,B13X14,B14X15,B16X17,B17X18,B19X20,B20X21,B22X23,B23X24,B25X26,B26X27,B28X29,B29X30,B31X32,B32X33,B34X35,B35X36,B1X4,B4X7,B7X10,B10X13,B13X16,B16X19,B19X22,B22X25,B25X28,B28X31,B31X34,B2X5,B5X8,B8X11,B11X14,B14X17,B17X20,B20X23,B23X26,B26X29,B29X32,B32X35,B3X6,B6X9,B9X12,B12X15,B15X18,B18X21,B21X24,B24X27,B27X30,B30X33,B33X36,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,D1,D2,D4,D5,D7,D8,D10,D11,D13,D14,D16,D17,D19,D20,D22,D23,D25,D26,D28,D29,D31,D32,C3,C6,C9,C12,C15,C18,C21,C24,C27,C30,C33)
110 IF w<=houseLimit THEN GOTO 130
120 LET w=houseLimit
130 LET totalBalance=totalBalance-w
140 STORE("TotalBalance",totalBalance)
150 IF w==0 THEN GOTO 170
160 SEND_DERO_TO_ADDRESS(SIGNER(),w)
170 STORE("RES-"+HEX(TXID()),s)
180 RETURN 0
End Function
Function calc(s Uint64, Z0 Uint64,Z1 Uint64,Z2 Uint64,Z3 Uint64,Z4 Uint64,Z5 Uint64,Z6 Uint64,Z7 Uint64,Z8 Uint64,Z9 Uint64,Z10 Uint64,Z11 Uint64,S0 Uint64,S1 Uint64,S2 Uint64,S3 Uint64,S4 Uint64,S5 Uint64,S6 Uint64,S7 Uint64,S8 Uint64,S9 Uint64,S10 Uint64,S11 Uint64,S12 Uint64,S13 Uint64,S14 Uint64,S15 Uint64,S16 Uint64,S17 Uint64,S18 Uint64,S19 Uint64,S20 Uint64,S21 Uint64,S22 Uint64,S23 Uint64,S24 Uint64,S25 Uint64,S26 Uint64,S27 Uint64,S28 Uint64,S29 Uint64,S30 Uint64,S31 Uint64,S32 Uint64,S33 Uint64,S34 Uint64,S35 Uint64,S36 Uint64,B1X2 Uint64,B2X3 Uint64,B4X5 Uint64,B5X6 Uint64,B7X8 Uint64,B8X9 Uint64,B10X11 Uint64,B11X12 Uint64,B13X14 Uint64,B14X15 Uint64,B16X17 Uint64,B17X18 Uint64,B19X20 Uint64,B20X21 Uint64,B22X23 Uint64,B23X24 Uint64,B25X26 Uint64,B26X27 Uint64,B28X29 Uint64,B29X30 Uint64,B31X32 Uint64,B32X33 Uint64,B34X35 Uint64,B35X36 Uint64,B1X4 Uint64,B4X7 Uint64,B7X10 Uint64,B10X13 Uint64,B13X16 Uint64,B16X19 Uint64,B19X22 Uint64,B22X25 Uint64,B25X28 Uint64,B28X31 Uint64,B31X34 Uint64,B2X5 Uint64,B5X8 Uint64,B8X11 Uint64,B11X14 Uint64,B14X17 Uint64,B17X20 Uint64,B20X23 Uint64,B23X26 Uint64,B26X29 Uint64,B29X32 Uint64,B32X35 Uint64,B3X6 Uint64,B6X9 Uint64,B9X12 Uint64,B12X15 Uint64,B15X18 Uint64,B18X21 Uint64,B21X24 Uint64,B24X27 Uint64,B27X30 Uint64,B30X33 Uint64,B33X36 Uint64,R1 Uint64,R2 Uint64,R3 Uint64,R4 Uint64,R5 Uint64,R6 Uint64,R7 Uint64,R8 Uint64,R9 Uint64,R10 Uint64,R11 Uint64,R12 Uint64,D1 Uint64,D2 Uint64,D4 Uint64,D5 Uint64,D7 Uint64,D8 Uint64,D10 Uint64,D11 Uint64,D13 Uint64,D14 Uint64,D16 Uint64,D17 Uint64,D19 Uint64,D20 Uint64,D22 Uint64,D23 Uint64,D25 Uint64,D26 Uint64,D28 Uint64,D29 Uint64,D31 Uint64,D32 Uint64,C3 Uint64,C6 Uint64,C9 Uint64,C12 Uint64,C15 Uint64,C18 Uint64,C21 Uint64,C24 Uint64,C27 Uint64,C30 Uint64,C33 Uint64) Uint64
1 DIM w as Uint64
2 IF s!=1&&s!=3&&s!=5&&s!=7&&s!=9&&s!=12&&s!=14&&s!=16&&s!=18&&s!=21&&s!=23&&s!=25&&s!=27&&s!=28&&s!=30&&s!=32&&s!=34&&s!=36 THEN GOTO 5
3 LET w=w+Z0*2
4 GOTO 7
5 IF s==0 THEN GOTO 7
6 LET w=w+Z1*2
7 IF s%2==1 || s==0 THEN GOTO 9
8 LET w=w+Z2*2
9 IF s%2==0 THEN GOTO 11
10 LET w=w+Z3*2
11 IF s==0 || s>18 THEN GOTO 13
12 LET w=w+Z4*2
13 IF s<19 THEN GOTO 15
14 LET w=w+Z5*2
15 IF s==0 || s>12 THEN GOTO 17
16 LET w=w+Z6*3
17 IF s<13 || s>24 THEN GOTO 19
18 LET w=w+Z7*3
19 IF s<25 THEN GOTO 21
20 LET w=w+Z8*3
21 IF s%3!=1 THEN GOTO 23
22 LET w=w+Z9*3
23 IF s%3!=2 THEN GOTO 25
24 LET w=w+Z10*3
25 IF s%3!=0 || s==0 THEN GOTO 27
26 LET w=w+Z11*3
27 IF s!=0 THEN GOTO 29
28 LET w=w+S0*36
29 IF s!=1 THEN GOTO 31
30 LET w=w+S1*36+B1X2*18+B1X4*18
31 IF s!=2 THEN GOTO 33
32 LET w=w+S2*36+B1X2*18+B2X3*18+B2X5*18
33 IF s!=3 THEN GOTO 35
34 LET w=w+S3*36+B2X3*18+B3X6*18
35 IF s!=4 THEN GOTO 37
36 LET w=w+S4*36+B4X5*18+B1X4*18+B4X7*18
37 IF s!=5 THEN GOTO 39
38 LET w=w+S5*36+B4X5*18+B5X6*18+B2X5*18+B5X8*18
39 IF s!=6 THEN GOTO 41
40 LET w=w+S6*36+B5X6*18+B3X6*18+B6X9*18
41 IF s!=7 THEN GOTO 43
42 LET w=w+S7*36+B7X8*18+B4X7*18+B7X10*18
43 IF s!=8 THEN GOTO 45
44 LET w=w+S8*36+B7X8*18+B8X9*18+B5X8*18+B8X11*18
45 IF s!=9 THEN GOTO 47
46 LET w=w+S9*36+B8X9*18+B6X9*18+B9X12*18
47 IF s!=10 THEN GOTO 49
48 LET w=w+S10*36+B10X11*18+B7X10*18+B10X13*18
49 IF s!=11 THEN GOTO 51
50 LET w=w+S11*36+B10X11*18+B11X12*18+B8X11*18+B11X14*18
51 IF s!=12 THEN GOTO 53
52 LET w=w+S12*36+B11X12*18+B9X12*18+B12X15*18
53 IF s!=13 THEN GOTO 55
54 LET w=w+S13*36+B13X14*18+B10X13*18+B13X16*18
55 IF s!=14 THEN GOTO 57
56 LET w=w+S14*36+B13X14*18+B14X15*18+B11X14*18+B14X17*18
57 IF s!=15 THEN GOTO 59
58 LET w=w+S15*36+B14X15*18+B12X15*18+B15X18*18
59 IF s!=16 THEN GOTO 61
60 LET w=w+S16*36+B16X17*18+B13X16*18+B16X19*18
61 IF s!=17 THEN GOTO 63
62 LET w=w+S17*36+B16X17*18+B17X18*18+B14X17*18+B17X20*18
63 IF s!=18 THEN GOTO 65
64 LET w=w+S18*36+B17X18*18+B18X21*18+B15X18*18
65 IF s!=19 THEN GOTO 67
66 LET w=w+S19*36+B19X20*18+B16X19*18+B19X22*18
67 IF s!=20 THEN GOTO 69
68 LET w=w+S20*36+B19X20*18+B20X21*18+B17X20*18+B20X23*18
69 IF s!=21 THEN GOTO 71
70 LET w=w+S21*36+B20X21*18+B18X21*18+B21X24*18
71 IF s!=22 THEN GOTO 73
72 LET w=w+S22*36+B22X23*18+B19X22*18+B22X25*18
73 IF s!=23 THEN GOTO 75
74 LET w=w+S23*36+B22X23*18+B23X24*18+B20X23*18+B23X26*18
75 IF s!=24 THEN GOTO 77
76 LET w=w+S24*36+B23X24*18+B21X24*18+B24X27*18
77 IF s!=25 THEN GOTO 79
78 LET w=w+S25*36+B25X26*18+B22X25*18+B25X28*18
79 IF s!=26 THEN GOTO 81
80 LET w=w+S26*36+B25X26*18+B26X27*18+B23X26*18+B26X29*18
81 IF s!=27 THEN GOTO 83
82 LET w=w+S27*36+B26X27*18+B24X27*18+B27X30*18
83 IF s!=28 THEN GOTO 85
84 LET w=w+S28*36+B28X29*18+B25X28*18+B28X31*18
85 IF s!=29 THEN GOTO 87
86 LET w=w+S29*36+B28X29*18+B29X30*18+B26X29*18+B29X32*18
87 IF s!=30 THEN GOTO 89
88 LET w=w+S30*36+B29X30*18+B27X30*18+B30X33*18
89 IF s!=31 THEN GOTO 91
90 LET w=w+S31*36+B31X32*18+B28X31*18+B31X34*18
91 IF s!=32 THEN GOTO 93
92 LET w=w+S32*36+B31X32*18+B32X33*18+B29X32*18+B32X35*18
93 IF s!=33 THEN GOTO 95
94 LET w=w+S33*36+B32X33*18+B30X33*18+B33X36*18
95 IF s!=34 THEN GOTO 97
96 LET w=w+S34*36+B34X35*18+B31X34*18
97 IF s!=35 THEN GOTO 99
98 LET w=w+S35*36+B34X35*18+B35X36*18+B32X35*18
99 IF s!=36 THEN GOTO 101
100 LET w=w+S36*36+B35X36*18+B33X36*18
101 IF s<1 THEN GOTO 200
102 IF s>3 THEN GOTO 104
103 LET w=w+R1*12
104 IF s<4 || s>6 THEN GOTO 106
105 LET w=w+R2*12
106 IF s<7 || s>9 THEN GOTO 108
107 LET w=w+R3*12
108 IF s<10 || s>12 THEN GOTO 110
109 LET w=w+R4*12
110 IF s<13 || s>15 THEN GOTO 112
111 LET w=w+R5*12
112 IF s<16 || s>18 THEN GOTO 114
113 LET w=w+R6*12
114 IF s<19 || s>21 THEN GOTO 116
115 LET w=w+R7*12
116 IF s<22 || s>24 THEN GOTO 118
117 LET w=w+R8*12
118 IF s<25 || s>27 THEN GOTO 120
119 LET w=w+R9*12
120 IF s<28 || s>30 THEN GOTO 122
121 LET w=w+R10*12
122 IF s<31 || s>33 THEN GOTO 124
123 LET w=w+R11*12
124 IF s<34 THEN GOTO 126
125 LET w=w+R12*12
126 IF s!=1&&s!=2&&s!=4&&s!=5 THEN GOTO 128
127 LET w=w+D1*9
128 IF s!=2&&s!=3&&s!=5&&s!=6 THEN GOTO 130
129 LET w=w+D2*9
130 IF s!=4&&s!=5&&s!=7&&s!=8 THEN GOTO 132
131 LET w=w+D4*9
132 IF s!=5&&s!=6&&s!=8&&s!=9 THEN GOTO 134
133 LET w=w+D5*9
134 IF s!=7&&s!=8&&s!=10&&s!=11 THEN GOTO 136
135 LET w=w+D7*9
136 IF s!=8&&s!=9&&s!=11&&s!=12 THEN GOTO 138
137 LET w=w+D8*9
138 IF s!=10&&s!=11&&s!=13&&s!=14 THEN GOTO 140
139 LET w=w+D10*9
140 IF s!=11&&s!=12&&s!=14&&s!=15 THEN GOTO 142
141 LET w=w+D11*9
142 IF s!=13&&s!=14&&s!=16&&s!=17 THEN GOTO 144
143 LET w=w+D13*9
144 IF s!=14&&s!=15&&s!=17&&s!=18 THEN GOTO 146
145 LET w=w+D14*9
146 IF s!=16&&s!=17&&s!=19&&s!=20 THEN GOTO 148
147 LET w=w+D16*9
148 IF s!=17&&s!=18&&s!=20&&s!=21 THEN GOTO 150
149 LET w=w+D17*9
150 IF s!=19&&s!=20&&s!=22&&s!=23 THEN GOTO 152
151 LET w=w+D19*9
152 IF s!=20&&s!=21&&s!=23&&s!=24 THEN GOTO 154
153 LET w=w+D20*9
154 IF s!=22&&s!=23&&s!=25&&s!=26 THEN GOTO 156
155 LET w=w+D22*9
156 IF s!=23&&s!=24&&s!=26&&s!=27 THEN GOTO 158
157 LET w=w+D23*9
158 IF s!=25&&s!=26&&s!=28&&s!=29 THEN GOTO 160
159 LET w=w+D25*9
160 IF s!=26&&s!=27&&s!=29&&s!=30 THEN GOTO 162
161 LET w=w+D26*9
162 IF s!=28&&s!=29&&s!=31&&s!=32 THEN GOTO 164
163 LET w=w+D28*9
164 IF s!=29&&s!=30&&s!=32&&s!=33 THEN GOTO 166
165 LET w=w+D29*9
166 IF s!=31&&s!=32&&s!=34&&s!=35 THEN GOTO 168
167 LET w=w+D31*9
168 IF s!=32&&s!=33&&s!=35&&s!=36 THEN GOTO 170
169 LET w=w+D32*9
170 IF s>6 THEN GOTO 172
171 LET w=w+C3*6
172 IF s<4 || s>9 THEN GOTO 174
173 LET w=w+C6*6
174 IF s<7 || s>12 THEN GOTO 176
175 LET w=w+C9*6
176 IF s<10 || s>15 THEN GOTO 178
177 LET w=w+C12*6
178 IF s<13 || s>18 THEN GOTO 180
179 LET w=w+C15*6
180 IF s<16 || s>21 THEN GOTO 182
181 LET w=w+C18*6
182 IF s<19 || s>24 THEN GOTO 184
183 LET w=w+C21*6
184 IF s<22 || s>27 THEN GOTO 186
185 LET w=w+C24*6
186 IF s<25 || s>30 THEN GOTO 188
187 LET w=w+C27*6
188 IF s<28 || s>33 THEN GOTO 190
189 LET w=w+C30*6
190 IF s<31 THEN GOTO 200
191 LET w=w+C33*6
200 RETURN w
End Function
Function Deposit() Uint64
10 STORE("TotalBalance",LOAD("TotalBalance")+DEROVALUE())
20 RETURN 0
End Function
Function Ow_Withdraw(amount Uint64) Uint64
10 DIM owner as String
20 LET owner=LOAD("Owner")
30 IF owner==SIGNER() && LOAD("BlockedUntil")<BLOCK_HEIGHT() THEN GOTO 50
40 RETURN 1
50 SEND_DERO_TO_ADDRESS(owner,amount)
60 STORE("TotalBalance",LOAD("TotalBalance")-amount)
70 RETURN 0
End Function
Function Ow_SetHouseLimit(houseLimit Uint64) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("HouseLimit",houseLimit)
40 RETURN 0
End Function
Function Ow_SetOnlyOwner(only Uint64) Uint64
10 IF LOAD("Owner")==SIGNER() THEN GOTO 30
20 RETURN 1
30 STORE("OnlyOwner",only)
40 RETURN 0
End Function
Function Ow_SetBlockedUntil(blocks Uint64) Uint64
10 DIM blockedUntil as Uint64
20 LET blockedUntil=blocks+BLOCK_HEIGHT()
30 IF LOAD("Owner")==SIGNER() && LOAD("BlockedUntil")<blockedUntil THEN GOTO 50
40 RETURN 1
50 STORE("BlockedUntil",blockedUntil)
60 RETURN 0
End Function'] |