tx · FdfE1eQuLDvSVoZwZiguGXpbF3keqAaaYpxhcS4aABhs 3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ: -0.01400000 Waves 2021.10.09 10:33 [1738442] smart account 3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ > SELF 0.00000000 Waves
{ "type": 13, "id": "FdfE1eQuLDvSVoZwZiguGXpbF3keqAaaYpxhcS4aABhs", "fee": 1400000, "feeAssetId": null, "timestamp": 1633764890142, "version": 2, "chainId": 84, "sender": "3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ", "senderPublicKey": "BMLuSYJ8rvQD55waCoKpzCBhJAbY8s9pp4V5ZgxuzCBD", "proofs": [ "2UKSogssXJTrw5YFePnKT8GAmFtEKaF2PVD4t7kgEEr8MrtkHvSKWyto8hX2v4uNbuBmxBHZaEqkRqfbkKZHrgsP" ], "script": "base64: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", "height": 1738442, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3LcQCPaXbH4UAsGwo5K2TntCNYo63PUNYHmgipzPPYVw Next: AyLL2tNoi2hHT73M9BsUGTR5i1Pvattbwg6Nhv8ZqVFe Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g' | |
5 | 5 | ||
6 | - | let | |
6 | + | let Week0TS = 1628368200000 | |
7 | 7 | ||
8 | - | let | |
8 | + | let week = 604800000 | |
9 | 9 | ||
10 | - | let | |
10 | + | let pausetime = 14400000 | |
11 | 11 | ||
12 | - | let | |
12 | + | let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1) | |
13 | 13 | ||
14 | - | let | |
14 | + | let strweek = toString(currentweek) | |
15 | 15 | ||
16 | - | let | |
16 | + | let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week)) | |
17 | 17 | ||
18 | - | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
18 | + | let votingpausetime = (TSUptoPastWeek + pausetime) | |
19 | + | ||
20 | + | let msg = "<h1>You Voted Successfully!</h1><br>" | |
21 | + | ||
22 | + | let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]." | |
23 | + | ||
24 | + | let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address." | |
25 | + | ||
26 | + | let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.") | |
27 | + | ||
28 | + | let minamterr = "Please Attach Exact 0.0001 A4A To Vote." | |
29 | + | ||
30 | + | let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes") | |
31 | + | ||
32 | + | let FTTX = match getInteger(this, "Total_Txns") { | |
33 | + | case a: Int => | |
34 | + | a | |
35 | + | case _ => | |
36 | + | 0 | |
37 | + | } | |
38 | + | ||
39 | + | let totaltxns = (FTTX + 1) | |
40 | + | ||
41 | + | let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) { | |
42 | + | case a: Int => | |
43 | + | a | |
44 | + | case _ => | |
45 | + | 0 | |
46 | + | } | |
47 | + | ||
48 | + | let TTOW = (FTTXofweek + 1) | |
19 | 49 | ||
20 | 50 | @Callable(i) | |
21 | - | func Claim () = { | |
22 | - | let pmt = value(i.payments[0]) | |
23 | - | let currentKey = toBase58String(i.caller.bytes) | |
24 | - | let PricePerCODE = getIntegerValue(this, "CODE/TN") | |
25 | - | let CODEHardCap = getIntegerValue(this, "CODEHardCap") | |
26 | - | let NewCODEToUser = fraction(100000, pmt.amount, PricePerCODE) | |
27 | - | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
28 | - | let TotalIssuedCODE = (PreviousIssuedCODE + NewCODEToUser) | |
29 | - | let PendingMinting = (CODEHardCap - TotalIssuedCODE) | |
30 | - | let PreviousCODEReserveValue = getIntegerValue(this, "Total_CODE_Reserve_In_TN:") | |
31 | - | let CODEReserveValue = (PreviousCODEReserveValue + pmt.amount) | |
32 | - | let PreviousCODEBackupPrice = getIntegerValue(this, "CODE_Backup_Value_In_TN:") | |
33 | - | let CODEBackupPrice = fraction(100000, CODEReserveValue, TotalIssuedCODE) | |
34 | - | if (isDefined(pmt.assetId)) | |
35 | - | then throw("Incorrect asset attached, please attach TN.") | |
36 | - | else if ((5000000 > pmt.amount)) | |
37 | - | then throw("Please Attach minimum 0.05 TN To Issue CODE Asset.") | |
38 | - | else if ((TotalIssuedCODE > CODEHardCap)) | |
39 | - | then throw((((((("CODE Minting is about to reach the Hard Cap of " + toString(CODEHardCap)) + "/10^8 CODE. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((CODEHardCap - PreviousIssuedCODE))) + "/10^8")) | |
40 | - | else [IntegerEntry("Inflation", StartInflation)] | |
51 | + | func Chainlink () = { | |
52 | + | let VoteAst = "Chainlink" | |
53 | + | let pmt = if ((size(i.payments) == 1)) | |
54 | + | then i.payments[0] | |
55 | + | else throw(pymterror) | |
56 | + | let pubkey = toBase58String(i.caller.bytes) | |
57 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
58 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
59 | + | case a: Int => | |
60 | + | a | |
61 | + | case _ => | |
62 | + | 0 | |
63 | + | } | |
64 | + | let UTWVO = (FUWV + 1) | |
65 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
66 | + | case a: Int => | |
67 | + | a | |
68 | + | case _ => | |
69 | + | 0 | |
70 | + | } | |
71 | + | let UTWVFA = (UWVFA + 1) | |
72 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
73 | + | case a: Int => | |
74 | + | a | |
75 | + | case _ => | |
76 | + | 0 | |
77 | + | } | |
78 | + | let UTVO = (FUVO + 1) | |
79 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
80 | + | case a: Int => | |
81 | + | a | |
82 | + | case _ => | |
83 | + | 0 | |
84 | + | } | |
85 | + | let UTVFA = (FUVFA + 1) | |
86 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
87 | + | case a: Int => | |
88 | + | a | |
89 | + | case _ => | |
90 | + | 0 | |
91 | + | } | |
92 | + | let ATVO = (FTVO + 1) | |
93 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
94 | + | case a: Int => | |
95 | + | a | |
96 | + | case _ => | |
97 | + | 0 | |
98 | + | } | |
99 | + | let WATV = (WFTV + 1) | |
100 | + | if ((100000000 > assetbal)) | |
101 | + | then throw(minbalerror) | |
102 | + | else if ((pmt.assetId != A4A)) | |
103 | + | then throw(asseterr) | |
104 | + | else if ((pmt.amount != 10000)) | |
105 | + | then throw(minamterr) | |
106 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
107 | + | then throw(voteErr) | |
108 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
109 | + | } | |
110 | + | ||
111 | + | ||
112 | + | ||
113 | + | @Callable(i) | |
114 | + | func Dent () = { | |
115 | + | let VoteAst = "Dent" | |
116 | + | let pmt = if ((size(i.payments) == 1)) | |
117 | + | then i.payments[0] | |
118 | + | else throw(pymterror) | |
119 | + | let pubkey = toBase58String(i.caller.bytes) | |
120 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
121 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
122 | + | case a: Int => | |
123 | + | a | |
124 | + | case _ => | |
125 | + | 0 | |
126 | + | } | |
127 | + | let UTWVO = (FUWV + 1) | |
128 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
129 | + | case a: Int => | |
130 | + | a | |
131 | + | case _ => | |
132 | + | 0 | |
133 | + | } | |
134 | + | let UTWVFA = (UWVFA + 1) | |
135 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
136 | + | case a: Int => | |
137 | + | a | |
138 | + | case _ => | |
139 | + | 0 | |
140 | + | } | |
141 | + | let UTVO = (FUVO + 1) | |
142 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
143 | + | case a: Int => | |
144 | + | a | |
145 | + | case _ => | |
146 | + | 0 | |
147 | + | } | |
148 | + | let UTVFA = (FUVFA + 1) | |
149 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
150 | + | case a: Int => | |
151 | + | a | |
152 | + | case _ => | |
153 | + | 0 | |
154 | + | } | |
155 | + | let ATVO = (FTVO + 1) | |
156 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
157 | + | case a: Int => | |
158 | + | a | |
159 | + | case _ => | |
160 | + | 0 | |
161 | + | } | |
162 | + | let WATV = (WFTV + 1) | |
163 | + | if ((100000000 > assetbal)) | |
164 | + | then throw(minbalerror) | |
165 | + | else if ((pmt.assetId != A4A)) | |
166 | + | then throw(asseterr) | |
167 | + | else if ((pmt.amount != 10000)) | |
168 | + | then throw(minamterr) | |
169 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
170 | + | then throw(voteErr) | |
171 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
172 | + | } | |
173 | + | ||
174 | + | ||
175 | + | ||
176 | + | @Callable(i) | |
177 | + | func Sushi () = { | |
178 | + | let VoteAst = "Sushi" | |
179 | + | let pmt = if ((size(i.payments) == 1)) | |
180 | + | then i.payments[0] | |
181 | + | else throw(pymterror) | |
182 | + | let pubkey = toBase58String(i.caller.bytes) | |
183 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
184 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
185 | + | case a: Int => | |
186 | + | a | |
187 | + | case _ => | |
188 | + | 0 | |
189 | + | } | |
190 | + | let UTWVO = (FUWV + 1) | |
191 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
192 | + | case a: Int => | |
193 | + | a | |
194 | + | case _ => | |
195 | + | 0 | |
196 | + | } | |
197 | + | let UTWVFA = (UWVFA + 1) | |
198 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
199 | + | case a: Int => | |
200 | + | a | |
201 | + | case _ => | |
202 | + | 0 | |
203 | + | } | |
204 | + | let UTVO = (FUVO + 1) | |
205 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
206 | + | case a: Int => | |
207 | + | a | |
208 | + | case _ => | |
209 | + | 0 | |
210 | + | } | |
211 | + | let UTVFA = (FUVFA + 1) | |
212 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
213 | + | case a: Int => | |
214 | + | a | |
215 | + | case _ => | |
216 | + | 0 | |
217 | + | } | |
218 | + | let ATVO = (FTVO + 1) | |
219 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
220 | + | case a: Int => | |
221 | + | a | |
222 | + | case _ => | |
223 | + | 0 | |
224 | + | } | |
225 | + | let WATV = (WFTV + 1) | |
226 | + | if ((100000000 > assetbal)) | |
227 | + | then throw(minbalerror) | |
228 | + | else if ((pmt.assetId != A4A)) | |
229 | + | then throw(asseterr) | |
230 | + | else if ((pmt.amount != 10000)) | |
231 | + | then throw(minamterr) | |
232 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
233 | + | then throw(voteErr) | |
234 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
235 | + | } | |
236 | + | ||
237 | + | ||
238 | + | ||
239 | + | @Callable(i) | |
240 | + | func Compound () = { | |
241 | + | let VoteAst = "Compound" | |
242 | + | let pmt = if ((size(i.payments) == 1)) | |
243 | + | then i.payments[0] | |
244 | + | else throw(pymterror) | |
245 | + | let pubkey = toBase58String(i.caller.bytes) | |
246 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
247 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
248 | + | case a: Int => | |
249 | + | a | |
250 | + | case _ => | |
251 | + | 0 | |
252 | + | } | |
253 | + | let UTWVO = (FUWV + 1) | |
254 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
255 | + | case a: Int => | |
256 | + | a | |
257 | + | case _ => | |
258 | + | 0 | |
259 | + | } | |
260 | + | let UTWVFA = (UWVFA + 1) | |
261 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
262 | + | case a: Int => | |
263 | + | a | |
264 | + | case _ => | |
265 | + | 0 | |
266 | + | } | |
267 | + | let UTVO = (FUVO + 1) | |
268 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
269 | + | case a: Int => | |
270 | + | a | |
271 | + | case _ => | |
272 | + | 0 | |
273 | + | } | |
274 | + | let UTVFA = (FUVFA + 1) | |
275 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
276 | + | case a: Int => | |
277 | + | a | |
278 | + | case _ => | |
279 | + | 0 | |
280 | + | } | |
281 | + | let ATVO = (FTVO + 1) | |
282 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
283 | + | case a: Int => | |
284 | + | a | |
285 | + | case _ => | |
286 | + | 0 | |
287 | + | } | |
288 | + | let WATV = (WFTV + 1) | |
289 | + | if ((100000000 > assetbal)) | |
290 | + | then throw(minbalerror) | |
291 | + | else if ((pmt.assetId != A4A)) | |
292 | + | then throw(asseterr) | |
293 | + | else if ((pmt.amount != 10000)) | |
294 | + | then throw(minamterr) | |
295 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
296 | + | then throw(voteErr) | |
297 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
298 | + | } | |
299 | + | ||
300 | + | ||
301 | + | ||
302 | + | @Callable(i) | |
303 | + | func Haven () = { | |
304 | + | let VoteAst = "Haven" | |
305 | + | let pmt = if ((size(i.payments) == 1)) | |
306 | + | then i.payments[0] | |
307 | + | else throw(pymterror) | |
308 | + | let pubkey = toBase58String(i.caller.bytes) | |
309 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
310 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
311 | + | case a: Int => | |
312 | + | a | |
313 | + | case _ => | |
314 | + | 0 | |
315 | + | } | |
316 | + | let UTWVO = (FUWV + 1) | |
317 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
318 | + | case a: Int => | |
319 | + | a | |
320 | + | case _ => | |
321 | + | 0 | |
322 | + | } | |
323 | + | let UTWVFA = (UWVFA + 1) | |
324 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
325 | + | case a: Int => | |
326 | + | a | |
327 | + | case _ => | |
328 | + | 0 | |
329 | + | } | |
330 | + | let UTVO = (FUVO + 1) | |
331 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
332 | + | case a: Int => | |
333 | + | a | |
334 | + | case _ => | |
335 | + | 0 | |
336 | + | } | |
337 | + | let UTVFA = (FUVFA + 1) | |
338 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
339 | + | case a: Int => | |
340 | + | a | |
341 | + | case _ => | |
342 | + | 0 | |
343 | + | } | |
344 | + | let ATVO = (FTVO + 1) | |
345 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
346 | + | case a: Int => | |
347 | + | a | |
348 | + | case _ => | |
349 | + | 0 | |
350 | + | } | |
351 | + | let WATV = (WFTV + 1) | |
352 | + | if ((100000000 > assetbal)) | |
353 | + | then throw(minbalerror) | |
354 | + | else if ((pmt.assetId != A4A)) | |
355 | + | then throw(asseterr) | |
356 | + | else if ((pmt.amount != 10000)) | |
357 | + | then throw(minamterr) | |
358 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
359 | + | then throw(voteErr) | |
360 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
361 | + | } | |
362 | + | ||
363 | + | ||
364 | + | ||
365 | + | @Callable(i) | |
366 | + | func PirateChain () = { | |
367 | + | let VoteAst = "PirateChain" | |
368 | + | let pmt = if ((size(i.payments) == 1)) | |
369 | + | then i.payments[0] | |
370 | + | else throw(pymterror) | |
371 | + | let pubkey = toBase58String(i.caller.bytes) | |
372 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
373 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
374 | + | case a: Int => | |
375 | + | a | |
376 | + | case _ => | |
377 | + | 0 | |
378 | + | } | |
379 | + | let UTWVO = (FUWV + 1) | |
380 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
381 | + | case a: Int => | |
382 | + | a | |
383 | + | case _ => | |
384 | + | 0 | |
385 | + | } | |
386 | + | let UTWVFA = (UWVFA + 1) | |
387 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
388 | + | case a: Int => | |
389 | + | a | |
390 | + | case _ => | |
391 | + | 0 | |
392 | + | } | |
393 | + | let UTVO = (FUVO + 1) | |
394 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
395 | + | case a: Int => | |
396 | + | a | |
397 | + | case _ => | |
398 | + | 0 | |
399 | + | } | |
400 | + | let UTVFA = (FUVFA + 1) | |
401 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
402 | + | case a: Int => | |
403 | + | a | |
404 | + | case _ => | |
405 | + | 0 | |
406 | + | } | |
407 | + | let ATVO = (FTVO + 1) | |
408 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
409 | + | case a: Int => | |
410 | + | a | |
411 | + | case _ => | |
412 | + | 0 | |
413 | + | } | |
414 | + | let WATV = (WFTV + 1) | |
415 | + | if ((100000000 > assetbal)) | |
416 | + | then throw(minbalerror) | |
417 | + | else if ((pmt.assetId != A4A)) | |
418 | + | then throw(asseterr) | |
419 | + | else if ((pmt.amount != 10000)) | |
420 | + | then throw(minamterr) | |
421 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
422 | + | then throw(voteErr) | |
423 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
424 | + | } | |
425 | + | ||
426 | + | ||
427 | + | ||
428 | + | @Callable(i) | |
429 | + | func Monero () = { | |
430 | + | let VoteAst = "Monero" | |
431 | + | let pmt = if ((size(i.payments) == 1)) | |
432 | + | then i.payments[0] | |
433 | + | else throw(pymterror) | |
434 | + | let pubkey = toBase58String(i.caller.bytes) | |
435 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
436 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
437 | + | case a: Int => | |
438 | + | a | |
439 | + | case _ => | |
440 | + | 0 | |
441 | + | } | |
442 | + | let UTWVO = (FUWV + 1) | |
443 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
444 | + | case a: Int => | |
445 | + | a | |
446 | + | case _ => | |
447 | + | 0 | |
448 | + | } | |
449 | + | let UTWVFA = (UWVFA + 1) | |
450 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
451 | + | case a: Int => | |
452 | + | a | |
453 | + | case _ => | |
454 | + | 0 | |
455 | + | } | |
456 | + | let UTVO = (FUVO + 1) | |
457 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
458 | + | case a: Int => | |
459 | + | a | |
460 | + | case _ => | |
461 | + | 0 | |
462 | + | } | |
463 | + | let UTVFA = (FUVFA + 1) | |
464 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
465 | + | case a: Int => | |
466 | + | a | |
467 | + | case _ => | |
468 | + | 0 | |
469 | + | } | |
470 | + | let ATVO = (FTVO + 1) | |
471 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
472 | + | case a: Int => | |
473 | + | a | |
474 | + | case _ => | |
475 | + | 0 | |
476 | + | } | |
477 | + | let WATV = (WFTV + 1) | |
478 | + | if ((100000000 > assetbal)) | |
479 | + | then throw(minbalerror) | |
480 | + | else if ((pmt.assetId != A4A)) | |
481 | + | then throw(asseterr) | |
482 | + | else if ((pmt.amount != 10000)) | |
483 | + | then throw(minamterr) | |
484 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
485 | + | then throw(voteErr) | |
486 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
487 | + | } | |
488 | + | ||
489 | + | ||
490 | + | ||
491 | + | @Callable(i) | |
492 | + | func PRCY () = { | |
493 | + | let VoteAst = "Privacy" | |
494 | + | let pmt = if ((size(i.payments) == 1)) | |
495 | + | then i.payments[0] | |
496 | + | else throw(pymterror) | |
497 | + | let pubkey = toBase58String(i.caller.bytes) | |
498 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
499 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
500 | + | case a: Int => | |
501 | + | a | |
502 | + | case _ => | |
503 | + | 0 | |
504 | + | } | |
505 | + | let UTWVO = (FUWV + 1) | |
506 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
507 | + | case a: Int => | |
508 | + | a | |
509 | + | case _ => | |
510 | + | 0 | |
511 | + | } | |
512 | + | let UTWVFA = (UWVFA + 1) | |
513 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
514 | + | case a: Int => | |
515 | + | a | |
516 | + | case _ => | |
517 | + | 0 | |
518 | + | } | |
519 | + | let UTVO = (FUVO + 1) | |
520 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
521 | + | case a: Int => | |
522 | + | a | |
523 | + | case _ => | |
524 | + | 0 | |
525 | + | } | |
526 | + | let UTVFA = (FUVFA + 1) | |
527 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
528 | + | case a: Int => | |
529 | + | a | |
530 | + | case _ => | |
531 | + | 0 | |
532 | + | } | |
533 | + | let ATVO = (FTVO + 1) | |
534 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
535 | + | case a: Int => | |
536 | + | a | |
537 | + | case _ => | |
538 | + | 0 | |
539 | + | } | |
540 | + | let WATV = (WFTV + 1) | |
541 | + | if ((100000000 > assetbal)) | |
542 | + | then throw(minbalerror) | |
543 | + | else if ((pmt.assetId != A4A)) | |
544 | + | then throw(asseterr) | |
545 | + | else if ((pmt.amount != 10000)) | |
546 | + | then throw(minamterr) | |
547 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
548 | + | then throw(voteErr) | |
549 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
550 | + | } | |
551 | + | ||
552 | + | ||
553 | + | ||
554 | + | @Callable(i) | |
555 | + | func BTC () = { | |
556 | + | let VoteAst = "Bitcoin" | |
557 | + | let pmt = if ((size(i.payments) == 1)) | |
558 | + | then i.payments[0] | |
559 | + | else throw(pymterror) | |
560 | + | let pubkey = toBase58String(i.caller.bytes) | |
561 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
562 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
563 | + | case a: Int => | |
564 | + | a | |
565 | + | case _ => | |
566 | + | 0 | |
567 | + | } | |
568 | + | let UTWVO = (FUWV + 1) | |
569 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
570 | + | case a: Int => | |
571 | + | a | |
572 | + | case _ => | |
573 | + | 0 | |
574 | + | } | |
575 | + | let UTWVFA = (UWVFA + 1) | |
576 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
577 | + | case a: Int => | |
578 | + | a | |
579 | + | case _ => | |
580 | + | 0 | |
581 | + | } | |
582 | + | let UTVO = (FUVO + 1) | |
583 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
584 | + | case a: Int => | |
585 | + | a | |
586 | + | case _ => | |
587 | + | 0 | |
588 | + | } | |
589 | + | let UTVFA = (FUVFA + 1) | |
590 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
591 | + | case a: Int => | |
592 | + | a | |
593 | + | case _ => | |
594 | + | 0 | |
595 | + | } | |
596 | + | let ATVO = (FTVO + 1) | |
597 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
598 | + | case a: Int => | |
599 | + | a | |
600 | + | case _ => | |
601 | + | 0 | |
602 | + | } | |
603 | + | let WATV = (WFTV + 1) | |
604 | + | if ((100000000 > assetbal)) | |
605 | + | then throw(minbalerror) | |
606 | + | else if ((pmt.assetId != A4A)) | |
607 | + | then throw(asseterr) | |
608 | + | else if ((pmt.amount != 10000)) | |
609 | + | then throw(minamterr) | |
610 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
611 | + | then throw(voteErr) | |
612 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
613 | + | } | |
614 | + | ||
615 | + | ||
616 | + | ||
617 | + | @Callable(i) | |
618 | + | func LTC () = { | |
619 | + | let VoteAst = "Litecoin" | |
620 | + | let pmt = if ((size(i.payments) == 1)) | |
621 | + | then i.payments[0] | |
622 | + | else throw(pymterror) | |
623 | + | let pubkey = toBase58String(i.caller.bytes) | |
624 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
625 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
626 | + | case a: Int => | |
627 | + | a | |
628 | + | case _ => | |
629 | + | 0 | |
630 | + | } | |
631 | + | let UTWVO = (FUWV + 1) | |
632 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
633 | + | case a: Int => | |
634 | + | a | |
635 | + | case _ => | |
636 | + | 0 | |
637 | + | } | |
638 | + | let UTWVFA = (UWVFA + 1) | |
639 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
640 | + | case a: Int => | |
641 | + | a | |
642 | + | case _ => | |
643 | + | 0 | |
644 | + | } | |
645 | + | let UTVO = (FUVO + 1) | |
646 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
647 | + | case a: Int => | |
648 | + | a | |
649 | + | case _ => | |
650 | + | 0 | |
651 | + | } | |
652 | + | let UTVFA = (FUVFA + 1) | |
653 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
654 | + | case a: Int => | |
655 | + | a | |
656 | + | case _ => | |
657 | + | 0 | |
658 | + | } | |
659 | + | let ATVO = (FTVO + 1) | |
660 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
661 | + | case a: Int => | |
662 | + | a | |
663 | + | case _ => | |
664 | + | 0 | |
665 | + | } | |
666 | + | let WATV = (WFTV + 1) | |
667 | + | if ((100000000 > assetbal)) | |
668 | + | then throw(minbalerror) | |
669 | + | else if ((pmt.assetId != A4A)) | |
670 | + | then throw(asseterr) | |
671 | + | else if ((pmt.amount != 10000)) | |
672 | + | then throw(minamterr) | |
673 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
674 | + | then throw(voteErr) | |
675 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
676 | + | } | |
677 | + | ||
678 | + | ||
679 | + | ||
680 | + | @Callable(i) | |
681 | + | func DASH () = { | |
682 | + | let VoteAst = "Dash" | |
683 | + | let pmt = if ((size(i.payments) == 1)) | |
684 | + | then i.payments[0] | |
685 | + | else throw(pymterror) | |
686 | + | let pubkey = toBase58String(i.caller.bytes) | |
687 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
688 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
689 | + | case a: Int => | |
690 | + | a | |
691 | + | case _ => | |
692 | + | 0 | |
693 | + | } | |
694 | + | let UTWVO = (FUWV + 1) | |
695 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
696 | + | case a: Int => | |
697 | + | a | |
698 | + | case _ => | |
699 | + | 0 | |
700 | + | } | |
701 | + | let UTWVFA = (UWVFA + 1) | |
702 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
703 | + | case a: Int => | |
704 | + | a | |
705 | + | case _ => | |
706 | + | 0 | |
707 | + | } | |
708 | + | let UTVO = (FUVO + 1) | |
709 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
710 | + | case a: Int => | |
711 | + | a | |
712 | + | case _ => | |
713 | + | 0 | |
714 | + | } | |
715 | + | let UTVFA = (FUVFA + 1) | |
716 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
717 | + | case a: Int => | |
718 | + | a | |
719 | + | case _ => | |
720 | + | 0 | |
721 | + | } | |
722 | + | let ATVO = (FTVO + 1) | |
723 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
724 | + | case a: Int => | |
725 | + | a | |
726 | + | case _ => | |
727 | + | 0 | |
728 | + | } | |
729 | + | let WATV = (WFTV + 1) | |
730 | + | if ((100000000 > assetbal)) | |
731 | + | then throw(minbalerror) | |
732 | + | else if ((pmt.assetId != A4A)) | |
733 | + | then throw(asseterr) | |
734 | + | else if ((pmt.amount != 10000)) | |
735 | + | then throw(minamterr) | |
736 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
737 | + | then throw(voteErr) | |
738 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
739 | + | } | |
740 | + | ||
741 | + | ||
742 | + | ||
743 | + | @Callable(i) | |
744 | + | func BCH () = { | |
745 | + | let VoteAst = "BitcoinCash" | |
746 | + | let pmt = if ((size(i.payments) == 1)) | |
747 | + | then i.payments[0] | |
748 | + | else throw(pymterror) | |
749 | + | let pubkey = toBase58String(i.caller.bytes) | |
750 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
751 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
752 | + | case a: Int => | |
753 | + | a | |
754 | + | case _ => | |
755 | + | 0 | |
756 | + | } | |
757 | + | let UTWVO = (FUWV + 1) | |
758 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
759 | + | case a: Int => | |
760 | + | a | |
761 | + | case _ => | |
762 | + | 0 | |
763 | + | } | |
764 | + | let UTWVFA = (UWVFA + 1) | |
765 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
766 | + | case a: Int => | |
767 | + | a | |
768 | + | case _ => | |
769 | + | 0 | |
770 | + | } | |
771 | + | let UTVO = (FUVO + 1) | |
772 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
773 | + | case a: Int => | |
774 | + | a | |
775 | + | case _ => | |
776 | + | 0 | |
777 | + | } | |
778 | + | let UTVFA = (FUVFA + 1) | |
779 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
780 | + | case a: Int => | |
781 | + | a | |
782 | + | case _ => | |
783 | + | 0 | |
784 | + | } | |
785 | + | let ATVO = (FTVO + 1) | |
786 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
787 | + | case a: Int => | |
788 | + | a | |
789 | + | case _ => | |
790 | + | 0 | |
791 | + | } | |
792 | + | let WATV = (WFTV + 1) | |
793 | + | if ((100000000 > assetbal)) | |
794 | + | then throw(minbalerror) | |
795 | + | else if ((pmt.assetId != A4A)) | |
796 | + | then throw(asseterr) | |
797 | + | else if ((pmt.amount != 10000)) | |
798 | + | then throw(minamterr) | |
799 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
800 | + | then throw(voteErr) | |
801 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
41 | 802 | } | |
42 | 803 | ||
43 | 804 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g' | |
5 | 5 | ||
6 | - | let | |
6 | + | let Week0TS = 1628368200000 | |
7 | 7 | ||
8 | - | let | |
8 | + | let week = 604800000 | |
9 | 9 | ||
10 | - | let | |
10 | + | let pausetime = 14400000 | |
11 | 11 | ||
12 | - | let | |
12 | + | let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1) | |
13 | 13 | ||
14 | - | let | |
14 | + | let strweek = toString(currentweek) | |
15 | 15 | ||
16 | - | let | |
16 | + | let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week)) | |
17 | 17 | ||
18 | - | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
18 | + | let votingpausetime = (TSUptoPastWeek + pausetime) | |
19 | + | ||
20 | + | let msg = "<h1>You Voted Successfully!</h1><br>" | |
21 | + | ||
22 | + | let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]." | |
23 | + | ||
24 | + | let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address." | |
25 | + | ||
26 | + | let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.") | |
27 | + | ||
28 | + | let minamterr = "Please Attach Exact 0.0001 A4A To Vote." | |
29 | + | ||
30 | + | let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes") | |
31 | + | ||
32 | + | let FTTX = match getInteger(this, "Total_Txns") { | |
33 | + | case a: Int => | |
34 | + | a | |
35 | + | case _ => | |
36 | + | 0 | |
37 | + | } | |
38 | + | ||
39 | + | let totaltxns = (FTTX + 1) | |
40 | + | ||
41 | + | let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) { | |
42 | + | case a: Int => | |
43 | + | a | |
44 | + | case _ => | |
45 | + | 0 | |
46 | + | } | |
47 | + | ||
48 | + | let TTOW = (FTTXofweek + 1) | |
19 | 49 | ||
20 | 50 | @Callable(i) | |
21 | - | func Claim () = { | |
22 | - | let pmt = value(i.payments[0]) | |
23 | - | let currentKey = toBase58String(i.caller.bytes) | |
24 | - | let PricePerCODE = getIntegerValue(this, "CODE/TN") | |
25 | - | let CODEHardCap = getIntegerValue(this, "CODEHardCap") | |
26 | - | let NewCODEToUser = fraction(100000, pmt.amount, PricePerCODE) | |
27 | - | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
28 | - | let TotalIssuedCODE = (PreviousIssuedCODE + NewCODEToUser) | |
29 | - | let PendingMinting = (CODEHardCap - TotalIssuedCODE) | |
30 | - | let PreviousCODEReserveValue = getIntegerValue(this, "Total_CODE_Reserve_In_TN:") | |
31 | - | let CODEReserveValue = (PreviousCODEReserveValue + pmt.amount) | |
32 | - | let PreviousCODEBackupPrice = getIntegerValue(this, "CODE_Backup_Value_In_TN:") | |
33 | - | let CODEBackupPrice = fraction(100000, CODEReserveValue, TotalIssuedCODE) | |
34 | - | if (isDefined(pmt.assetId)) | |
35 | - | then throw("Incorrect asset attached, please attach TN.") | |
36 | - | else if ((5000000 > pmt.amount)) | |
37 | - | then throw("Please Attach minimum 0.05 TN To Issue CODE Asset.") | |
38 | - | else if ((TotalIssuedCODE > CODEHardCap)) | |
39 | - | then throw((((((("CODE Minting is about to reach the Hard Cap of " + toString(CODEHardCap)) + "/10^8 CODE. Please Reduce your Minting Order by ") + toString(PendingMinting)) + " or put ") + toString((CODEHardCap - PreviousIssuedCODE))) + "/10^8")) | |
40 | - | else [IntegerEntry("Inflation", StartInflation)] | |
51 | + | func Chainlink () = { | |
52 | + | let VoteAst = "Chainlink" | |
53 | + | let pmt = if ((size(i.payments) == 1)) | |
54 | + | then i.payments[0] | |
55 | + | else throw(pymterror) | |
56 | + | let pubkey = toBase58String(i.caller.bytes) | |
57 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
58 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
59 | + | case a: Int => | |
60 | + | a | |
61 | + | case _ => | |
62 | + | 0 | |
63 | + | } | |
64 | + | let UTWVO = (FUWV + 1) | |
65 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
66 | + | case a: Int => | |
67 | + | a | |
68 | + | case _ => | |
69 | + | 0 | |
70 | + | } | |
71 | + | let UTWVFA = (UWVFA + 1) | |
72 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
73 | + | case a: Int => | |
74 | + | a | |
75 | + | case _ => | |
76 | + | 0 | |
77 | + | } | |
78 | + | let UTVO = (FUVO + 1) | |
79 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
80 | + | case a: Int => | |
81 | + | a | |
82 | + | case _ => | |
83 | + | 0 | |
84 | + | } | |
85 | + | let UTVFA = (FUVFA + 1) | |
86 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
87 | + | case a: Int => | |
88 | + | a | |
89 | + | case _ => | |
90 | + | 0 | |
91 | + | } | |
92 | + | let ATVO = (FTVO + 1) | |
93 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
94 | + | case a: Int => | |
95 | + | a | |
96 | + | case _ => | |
97 | + | 0 | |
98 | + | } | |
99 | + | let WATV = (WFTV + 1) | |
100 | + | if ((100000000 > assetbal)) | |
101 | + | then throw(minbalerror) | |
102 | + | else if ((pmt.assetId != A4A)) | |
103 | + | then throw(asseterr) | |
104 | + | else if ((pmt.amount != 10000)) | |
105 | + | then throw(minamterr) | |
106 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
107 | + | then throw(voteErr) | |
108 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
109 | + | } | |
110 | + | ||
111 | + | ||
112 | + | ||
113 | + | @Callable(i) | |
114 | + | func Dent () = { | |
115 | + | let VoteAst = "Dent" | |
116 | + | let pmt = if ((size(i.payments) == 1)) | |
117 | + | then i.payments[0] | |
118 | + | else throw(pymterror) | |
119 | + | let pubkey = toBase58String(i.caller.bytes) | |
120 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
121 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
122 | + | case a: Int => | |
123 | + | a | |
124 | + | case _ => | |
125 | + | 0 | |
126 | + | } | |
127 | + | let UTWVO = (FUWV + 1) | |
128 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
129 | + | case a: Int => | |
130 | + | a | |
131 | + | case _ => | |
132 | + | 0 | |
133 | + | } | |
134 | + | let UTWVFA = (UWVFA + 1) | |
135 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
136 | + | case a: Int => | |
137 | + | a | |
138 | + | case _ => | |
139 | + | 0 | |
140 | + | } | |
141 | + | let UTVO = (FUVO + 1) | |
142 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
143 | + | case a: Int => | |
144 | + | a | |
145 | + | case _ => | |
146 | + | 0 | |
147 | + | } | |
148 | + | let UTVFA = (FUVFA + 1) | |
149 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
150 | + | case a: Int => | |
151 | + | a | |
152 | + | case _ => | |
153 | + | 0 | |
154 | + | } | |
155 | + | let ATVO = (FTVO + 1) | |
156 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
157 | + | case a: Int => | |
158 | + | a | |
159 | + | case _ => | |
160 | + | 0 | |
161 | + | } | |
162 | + | let WATV = (WFTV + 1) | |
163 | + | if ((100000000 > assetbal)) | |
164 | + | then throw(minbalerror) | |
165 | + | else if ((pmt.assetId != A4A)) | |
166 | + | then throw(asseterr) | |
167 | + | else if ((pmt.amount != 10000)) | |
168 | + | then throw(minamterr) | |
169 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
170 | + | then throw(voteErr) | |
171 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
172 | + | } | |
173 | + | ||
174 | + | ||
175 | + | ||
176 | + | @Callable(i) | |
177 | + | func Sushi () = { | |
178 | + | let VoteAst = "Sushi" | |
179 | + | let pmt = if ((size(i.payments) == 1)) | |
180 | + | then i.payments[0] | |
181 | + | else throw(pymterror) | |
182 | + | let pubkey = toBase58String(i.caller.bytes) | |
183 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
184 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
185 | + | case a: Int => | |
186 | + | a | |
187 | + | case _ => | |
188 | + | 0 | |
189 | + | } | |
190 | + | let UTWVO = (FUWV + 1) | |
191 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
192 | + | case a: Int => | |
193 | + | a | |
194 | + | case _ => | |
195 | + | 0 | |
196 | + | } | |
197 | + | let UTWVFA = (UWVFA + 1) | |
198 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
199 | + | case a: Int => | |
200 | + | a | |
201 | + | case _ => | |
202 | + | 0 | |
203 | + | } | |
204 | + | let UTVO = (FUVO + 1) | |
205 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
206 | + | case a: Int => | |
207 | + | a | |
208 | + | case _ => | |
209 | + | 0 | |
210 | + | } | |
211 | + | let UTVFA = (FUVFA + 1) | |
212 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
213 | + | case a: Int => | |
214 | + | a | |
215 | + | case _ => | |
216 | + | 0 | |
217 | + | } | |
218 | + | let ATVO = (FTVO + 1) | |
219 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
220 | + | case a: Int => | |
221 | + | a | |
222 | + | case _ => | |
223 | + | 0 | |
224 | + | } | |
225 | + | let WATV = (WFTV + 1) | |
226 | + | if ((100000000 > assetbal)) | |
227 | + | then throw(minbalerror) | |
228 | + | else if ((pmt.assetId != A4A)) | |
229 | + | then throw(asseterr) | |
230 | + | else if ((pmt.amount != 10000)) | |
231 | + | then throw(minamterr) | |
232 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
233 | + | then throw(voteErr) | |
234 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
235 | + | } | |
236 | + | ||
237 | + | ||
238 | + | ||
239 | + | @Callable(i) | |
240 | + | func Compound () = { | |
241 | + | let VoteAst = "Compound" | |
242 | + | let pmt = if ((size(i.payments) == 1)) | |
243 | + | then i.payments[0] | |
244 | + | else throw(pymterror) | |
245 | + | let pubkey = toBase58String(i.caller.bytes) | |
246 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
247 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
248 | + | case a: Int => | |
249 | + | a | |
250 | + | case _ => | |
251 | + | 0 | |
252 | + | } | |
253 | + | let UTWVO = (FUWV + 1) | |
254 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
255 | + | case a: Int => | |
256 | + | a | |
257 | + | case _ => | |
258 | + | 0 | |
259 | + | } | |
260 | + | let UTWVFA = (UWVFA + 1) | |
261 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
262 | + | case a: Int => | |
263 | + | a | |
264 | + | case _ => | |
265 | + | 0 | |
266 | + | } | |
267 | + | let UTVO = (FUVO + 1) | |
268 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
269 | + | case a: Int => | |
270 | + | a | |
271 | + | case _ => | |
272 | + | 0 | |
273 | + | } | |
274 | + | let UTVFA = (FUVFA + 1) | |
275 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
276 | + | case a: Int => | |
277 | + | a | |
278 | + | case _ => | |
279 | + | 0 | |
280 | + | } | |
281 | + | let ATVO = (FTVO + 1) | |
282 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
283 | + | case a: Int => | |
284 | + | a | |
285 | + | case _ => | |
286 | + | 0 | |
287 | + | } | |
288 | + | let WATV = (WFTV + 1) | |
289 | + | if ((100000000 > assetbal)) | |
290 | + | then throw(minbalerror) | |
291 | + | else if ((pmt.assetId != A4A)) | |
292 | + | then throw(asseterr) | |
293 | + | else if ((pmt.amount != 10000)) | |
294 | + | then throw(minamterr) | |
295 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
296 | + | then throw(voteErr) | |
297 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
298 | + | } | |
299 | + | ||
300 | + | ||
301 | + | ||
302 | + | @Callable(i) | |
303 | + | func Haven () = { | |
304 | + | let VoteAst = "Haven" | |
305 | + | let pmt = if ((size(i.payments) == 1)) | |
306 | + | then i.payments[0] | |
307 | + | else throw(pymterror) | |
308 | + | let pubkey = toBase58String(i.caller.bytes) | |
309 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
310 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
311 | + | case a: Int => | |
312 | + | a | |
313 | + | case _ => | |
314 | + | 0 | |
315 | + | } | |
316 | + | let UTWVO = (FUWV + 1) | |
317 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
318 | + | case a: Int => | |
319 | + | a | |
320 | + | case _ => | |
321 | + | 0 | |
322 | + | } | |
323 | + | let UTWVFA = (UWVFA + 1) | |
324 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
325 | + | case a: Int => | |
326 | + | a | |
327 | + | case _ => | |
328 | + | 0 | |
329 | + | } | |
330 | + | let UTVO = (FUVO + 1) | |
331 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
332 | + | case a: Int => | |
333 | + | a | |
334 | + | case _ => | |
335 | + | 0 | |
336 | + | } | |
337 | + | let UTVFA = (FUVFA + 1) | |
338 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
339 | + | case a: Int => | |
340 | + | a | |
341 | + | case _ => | |
342 | + | 0 | |
343 | + | } | |
344 | + | let ATVO = (FTVO + 1) | |
345 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
346 | + | case a: Int => | |
347 | + | a | |
348 | + | case _ => | |
349 | + | 0 | |
350 | + | } | |
351 | + | let WATV = (WFTV + 1) | |
352 | + | if ((100000000 > assetbal)) | |
353 | + | then throw(minbalerror) | |
354 | + | else if ((pmt.assetId != A4A)) | |
355 | + | then throw(asseterr) | |
356 | + | else if ((pmt.amount != 10000)) | |
357 | + | then throw(minamterr) | |
358 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
359 | + | then throw(voteErr) | |
360 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
361 | + | } | |
362 | + | ||
363 | + | ||
364 | + | ||
365 | + | @Callable(i) | |
366 | + | func PirateChain () = { | |
367 | + | let VoteAst = "PirateChain" | |
368 | + | let pmt = if ((size(i.payments) == 1)) | |
369 | + | then i.payments[0] | |
370 | + | else throw(pymterror) | |
371 | + | let pubkey = toBase58String(i.caller.bytes) | |
372 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
373 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
374 | + | case a: Int => | |
375 | + | a | |
376 | + | case _ => | |
377 | + | 0 | |
378 | + | } | |
379 | + | let UTWVO = (FUWV + 1) | |
380 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
381 | + | case a: Int => | |
382 | + | a | |
383 | + | case _ => | |
384 | + | 0 | |
385 | + | } | |
386 | + | let UTWVFA = (UWVFA + 1) | |
387 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
388 | + | case a: Int => | |
389 | + | a | |
390 | + | case _ => | |
391 | + | 0 | |
392 | + | } | |
393 | + | let UTVO = (FUVO + 1) | |
394 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
395 | + | case a: Int => | |
396 | + | a | |
397 | + | case _ => | |
398 | + | 0 | |
399 | + | } | |
400 | + | let UTVFA = (FUVFA + 1) | |
401 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
402 | + | case a: Int => | |
403 | + | a | |
404 | + | case _ => | |
405 | + | 0 | |
406 | + | } | |
407 | + | let ATVO = (FTVO + 1) | |
408 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
409 | + | case a: Int => | |
410 | + | a | |
411 | + | case _ => | |
412 | + | 0 | |
413 | + | } | |
414 | + | let WATV = (WFTV + 1) | |
415 | + | if ((100000000 > assetbal)) | |
416 | + | then throw(minbalerror) | |
417 | + | else if ((pmt.assetId != A4A)) | |
418 | + | then throw(asseterr) | |
419 | + | else if ((pmt.amount != 10000)) | |
420 | + | then throw(minamterr) | |
421 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
422 | + | then throw(voteErr) | |
423 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
424 | + | } | |
425 | + | ||
426 | + | ||
427 | + | ||
428 | + | @Callable(i) | |
429 | + | func Monero () = { | |
430 | + | let VoteAst = "Monero" | |
431 | + | let pmt = if ((size(i.payments) == 1)) | |
432 | + | then i.payments[0] | |
433 | + | else throw(pymterror) | |
434 | + | let pubkey = toBase58String(i.caller.bytes) | |
435 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
436 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
437 | + | case a: Int => | |
438 | + | a | |
439 | + | case _ => | |
440 | + | 0 | |
441 | + | } | |
442 | + | let UTWVO = (FUWV + 1) | |
443 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
444 | + | case a: Int => | |
445 | + | a | |
446 | + | case _ => | |
447 | + | 0 | |
448 | + | } | |
449 | + | let UTWVFA = (UWVFA + 1) | |
450 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
451 | + | case a: Int => | |
452 | + | a | |
453 | + | case _ => | |
454 | + | 0 | |
455 | + | } | |
456 | + | let UTVO = (FUVO + 1) | |
457 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
458 | + | case a: Int => | |
459 | + | a | |
460 | + | case _ => | |
461 | + | 0 | |
462 | + | } | |
463 | + | let UTVFA = (FUVFA + 1) | |
464 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
465 | + | case a: Int => | |
466 | + | a | |
467 | + | case _ => | |
468 | + | 0 | |
469 | + | } | |
470 | + | let ATVO = (FTVO + 1) | |
471 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
472 | + | case a: Int => | |
473 | + | a | |
474 | + | case _ => | |
475 | + | 0 | |
476 | + | } | |
477 | + | let WATV = (WFTV + 1) | |
478 | + | if ((100000000 > assetbal)) | |
479 | + | then throw(minbalerror) | |
480 | + | else if ((pmt.assetId != A4A)) | |
481 | + | then throw(asseterr) | |
482 | + | else if ((pmt.amount != 10000)) | |
483 | + | then throw(minamterr) | |
484 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
485 | + | then throw(voteErr) | |
486 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
487 | + | } | |
488 | + | ||
489 | + | ||
490 | + | ||
491 | + | @Callable(i) | |
492 | + | func PRCY () = { | |
493 | + | let VoteAst = "Privacy" | |
494 | + | let pmt = if ((size(i.payments) == 1)) | |
495 | + | then i.payments[0] | |
496 | + | else throw(pymterror) | |
497 | + | let pubkey = toBase58String(i.caller.bytes) | |
498 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
499 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
500 | + | case a: Int => | |
501 | + | a | |
502 | + | case _ => | |
503 | + | 0 | |
504 | + | } | |
505 | + | let UTWVO = (FUWV + 1) | |
506 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
507 | + | case a: Int => | |
508 | + | a | |
509 | + | case _ => | |
510 | + | 0 | |
511 | + | } | |
512 | + | let UTWVFA = (UWVFA + 1) | |
513 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
514 | + | case a: Int => | |
515 | + | a | |
516 | + | case _ => | |
517 | + | 0 | |
518 | + | } | |
519 | + | let UTVO = (FUVO + 1) | |
520 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
521 | + | case a: Int => | |
522 | + | a | |
523 | + | case _ => | |
524 | + | 0 | |
525 | + | } | |
526 | + | let UTVFA = (FUVFA + 1) | |
527 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
528 | + | case a: Int => | |
529 | + | a | |
530 | + | case _ => | |
531 | + | 0 | |
532 | + | } | |
533 | + | let ATVO = (FTVO + 1) | |
534 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
535 | + | case a: Int => | |
536 | + | a | |
537 | + | case _ => | |
538 | + | 0 | |
539 | + | } | |
540 | + | let WATV = (WFTV + 1) | |
541 | + | if ((100000000 > assetbal)) | |
542 | + | then throw(minbalerror) | |
543 | + | else if ((pmt.assetId != A4A)) | |
544 | + | then throw(asseterr) | |
545 | + | else if ((pmt.amount != 10000)) | |
546 | + | then throw(minamterr) | |
547 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
548 | + | then throw(voteErr) | |
549 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
550 | + | } | |
551 | + | ||
552 | + | ||
553 | + | ||
554 | + | @Callable(i) | |
555 | + | func BTC () = { | |
556 | + | let VoteAst = "Bitcoin" | |
557 | + | let pmt = if ((size(i.payments) == 1)) | |
558 | + | then i.payments[0] | |
559 | + | else throw(pymterror) | |
560 | + | let pubkey = toBase58String(i.caller.bytes) | |
561 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
562 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
563 | + | case a: Int => | |
564 | + | a | |
565 | + | case _ => | |
566 | + | 0 | |
567 | + | } | |
568 | + | let UTWVO = (FUWV + 1) | |
569 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
570 | + | case a: Int => | |
571 | + | a | |
572 | + | case _ => | |
573 | + | 0 | |
574 | + | } | |
575 | + | let UTWVFA = (UWVFA + 1) | |
576 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
577 | + | case a: Int => | |
578 | + | a | |
579 | + | case _ => | |
580 | + | 0 | |
581 | + | } | |
582 | + | let UTVO = (FUVO + 1) | |
583 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
584 | + | case a: Int => | |
585 | + | a | |
586 | + | case _ => | |
587 | + | 0 | |
588 | + | } | |
589 | + | let UTVFA = (FUVFA + 1) | |
590 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
591 | + | case a: Int => | |
592 | + | a | |
593 | + | case _ => | |
594 | + | 0 | |
595 | + | } | |
596 | + | let ATVO = (FTVO + 1) | |
597 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
598 | + | case a: Int => | |
599 | + | a | |
600 | + | case _ => | |
601 | + | 0 | |
602 | + | } | |
603 | + | let WATV = (WFTV + 1) | |
604 | + | if ((100000000 > assetbal)) | |
605 | + | then throw(minbalerror) | |
606 | + | else if ((pmt.assetId != A4A)) | |
607 | + | then throw(asseterr) | |
608 | + | else if ((pmt.amount != 10000)) | |
609 | + | then throw(minamterr) | |
610 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
611 | + | then throw(voteErr) | |
612 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
613 | + | } | |
614 | + | ||
615 | + | ||
616 | + | ||
617 | + | @Callable(i) | |
618 | + | func LTC () = { | |
619 | + | let VoteAst = "Litecoin" | |
620 | + | let pmt = if ((size(i.payments) == 1)) | |
621 | + | then i.payments[0] | |
622 | + | else throw(pymterror) | |
623 | + | let pubkey = toBase58String(i.caller.bytes) | |
624 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
625 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
626 | + | case a: Int => | |
627 | + | a | |
628 | + | case _ => | |
629 | + | 0 | |
630 | + | } | |
631 | + | let UTWVO = (FUWV + 1) | |
632 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
633 | + | case a: Int => | |
634 | + | a | |
635 | + | case _ => | |
636 | + | 0 | |
637 | + | } | |
638 | + | let UTWVFA = (UWVFA + 1) | |
639 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
640 | + | case a: Int => | |
641 | + | a | |
642 | + | case _ => | |
643 | + | 0 | |
644 | + | } | |
645 | + | let UTVO = (FUVO + 1) | |
646 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
647 | + | case a: Int => | |
648 | + | a | |
649 | + | case _ => | |
650 | + | 0 | |
651 | + | } | |
652 | + | let UTVFA = (FUVFA + 1) | |
653 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
654 | + | case a: Int => | |
655 | + | a | |
656 | + | case _ => | |
657 | + | 0 | |
658 | + | } | |
659 | + | let ATVO = (FTVO + 1) | |
660 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
661 | + | case a: Int => | |
662 | + | a | |
663 | + | case _ => | |
664 | + | 0 | |
665 | + | } | |
666 | + | let WATV = (WFTV + 1) | |
667 | + | if ((100000000 > assetbal)) | |
668 | + | then throw(minbalerror) | |
669 | + | else if ((pmt.assetId != A4A)) | |
670 | + | then throw(asseterr) | |
671 | + | else if ((pmt.amount != 10000)) | |
672 | + | then throw(minamterr) | |
673 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
674 | + | then throw(voteErr) | |
675 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
676 | + | } | |
677 | + | ||
678 | + | ||
679 | + | ||
680 | + | @Callable(i) | |
681 | + | func DASH () = { | |
682 | + | let VoteAst = "Dash" | |
683 | + | let pmt = if ((size(i.payments) == 1)) | |
684 | + | then i.payments[0] | |
685 | + | else throw(pymterror) | |
686 | + | let pubkey = toBase58String(i.caller.bytes) | |
687 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
688 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
689 | + | case a: Int => | |
690 | + | a | |
691 | + | case _ => | |
692 | + | 0 | |
693 | + | } | |
694 | + | let UTWVO = (FUWV + 1) | |
695 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
696 | + | case a: Int => | |
697 | + | a | |
698 | + | case _ => | |
699 | + | 0 | |
700 | + | } | |
701 | + | let UTWVFA = (UWVFA + 1) | |
702 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
703 | + | case a: Int => | |
704 | + | a | |
705 | + | case _ => | |
706 | + | 0 | |
707 | + | } | |
708 | + | let UTVO = (FUVO + 1) | |
709 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
710 | + | case a: Int => | |
711 | + | a | |
712 | + | case _ => | |
713 | + | 0 | |
714 | + | } | |
715 | + | let UTVFA = (FUVFA + 1) | |
716 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
717 | + | case a: Int => | |
718 | + | a | |
719 | + | case _ => | |
720 | + | 0 | |
721 | + | } | |
722 | + | let ATVO = (FTVO + 1) | |
723 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
724 | + | case a: Int => | |
725 | + | a | |
726 | + | case _ => | |
727 | + | 0 | |
728 | + | } | |
729 | + | let WATV = (WFTV + 1) | |
730 | + | if ((100000000 > assetbal)) | |
731 | + | then throw(minbalerror) | |
732 | + | else if ((pmt.assetId != A4A)) | |
733 | + | then throw(asseterr) | |
734 | + | else if ((pmt.amount != 10000)) | |
735 | + | then throw(minamterr) | |
736 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
737 | + | then throw(voteErr) | |
738 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
739 | + | } | |
740 | + | ||
741 | + | ||
742 | + | ||
743 | + | @Callable(i) | |
744 | + | func BCH () = { | |
745 | + | let VoteAst = "BitcoinCash" | |
746 | + | let pmt = if ((size(i.payments) == 1)) | |
747 | + | then i.payments[0] | |
748 | + | else throw(pymterror) | |
749 | + | let pubkey = toBase58String(i.caller.bytes) | |
750 | + | let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A) | |
751 | + | let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) { | |
752 | + | case a: Int => | |
753 | + | a | |
754 | + | case _ => | |
755 | + | 0 | |
756 | + | } | |
757 | + | let UTWVO = (FUWV + 1) | |
758 | + | let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) { | |
759 | + | case a: Int => | |
760 | + | a | |
761 | + | case _ => | |
762 | + | 0 | |
763 | + | } | |
764 | + | let UTWVFA = (UWVFA + 1) | |
765 | + | let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) { | |
766 | + | case a: Int => | |
767 | + | a | |
768 | + | case _ => | |
769 | + | 0 | |
770 | + | } | |
771 | + | let UTVO = (FUVO + 1) | |
772 | + | let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) { | |
773 | + | case a: Int => | |
774 | + | a | |
775 | + | case _ => | |
776 | + | 0 | |
777 | + | } | |
778 | + | let UTVFA = (FUVFA + 1) | |
779 | + | let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) { | |
780 | + | case a: Int => | |
781 | + | a | |
782 | + | case _ => | |
783 | + | 0 | |
784 | + | } | |
785 | + | let ATVO = (FTVO + 1) | |
786 | + | let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) { | |
787 | + | case a: Int => | |
788 | + | a | |
789 | + | case _ => | |
790 | + | 0 | |
791 | + | } | |
792 | + | let WATV = (WFTV + 1) | |
793 | + | if ((100000000 > assetbal)) | |
794 | + | then throw(minbalerror) | |
795 | + | else if ((pmt.assetId != A4A)) | |
796 | + | then throw(asseterr) | |
797 | + | else if ((pmt.amount != 10000)) | |
798 | + | then throw(minamterr) | |
799 | + | else if ((votingpausetime > lastBlock.timestamp)) | |
800 | + | then throw(voteErr) | |
801 | + | else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)] | |
41 | 802 | } | |
42 | 803 | ||
43 | 804 | ||
44 | 805 | @Verifier(tx) | |
45 | 806 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
46 | 807 |
github/deemru/w8io/c3f4982 51.70 ms ◑