tx · 8ntyo1Atr13Zy9Gy9whfL36bwjYJLmXqM5Dwb6j1R7vM 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL: -0.01400000 Waves 2022.11.14 15:27 [2316801] smart account 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL > SELF 0.00000000 Waves
{ "type": 13, "id": "8ntyo1Atr13Zy9Gy9whfL36bwjYJLmXqM5Dwb6j1R7vM", "fee": 1400000, "feeAssetId": null, "timestamp": 1668428844022, "version": 2, "chainId": 84, "sender": "3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL", "senderPublicKey": "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb", "proofs": [ "QfenxihbDaMBLCxDaaz1Ld9xnmhoAZwRPWtDpRXVxzhJeiKVjCcdyGsykJXkHHMmkRtfzXNiaS9hs7wHYV7zGDh" ], "script": "base64:AAIFAAAAAAAAABsIAhIDCgEBEgMKAQESCAoGCAgICAgIEgMKAQgAAAAOAAAAAAVhZG1pbgIAAAAsN1R0NzRyOFI3YXVUQlRkNnJKTUE0cVlyOVdEV2pjMlNVSEhTclJNdzlCcnMAAAAADnJlc3VsdENvbnRyYWN0AgAAAAAAAAAADGJldEFtb3VudEtleQIAAAAQZ2xvYmFsX2JldEFtb3VudAAAAAALZGVhZGxpbmVLZXkCAAAAEWdsb2JhbF9kZWFkbGluZV9oAAAAAAVzY2FsZQAAAAAABfXhAAEAAAAOZ2V0QXNzZXRTdHJpbmcAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAWIFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABYgIAAAAFV0FWRVMBAAAADWdldEFzc2V0Qnl0ZXMAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAAB2Fzc2V0SWQBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAANdHJ5R2V0Qm9vbGVhbgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzAgAAAAABAAAABWFsbG93AAAAAQAAAAljYWxsZXJQQksJAAAAAAAAAgkAAlgAAAABBQAAAAljYWxsZXJQQksFAAAABWFkbWluAQAAAAVpc0JldAAAAAEAAAAHYWRkcmVzcwkBAAAADXRyeUdldEJvb2xlYW4AAAABCQABLAAAAAIFAAAAB2FkZHJlc3MCAAAAB19iZXR0ZWQBAAAADGdldEJldEFtb3VudAAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAMYmV0QW1vdW50S2V5AQAAAAtnZXREZWFkTGluZQAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAALZGVhZGxpbmVLZXkAAAAEAAAAAWkBAAAADHNldEJldEFtb3VudAAAAAEAAAAGYW1vdW50AwkBAAAABWFsbG93AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxiZXRBbW91bnRLZXkFAAAABmFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAACk9ubHkgYWRtaW4AAAABaQEAAAALc2V0RGVhZExpbmUAAAABAAAADmRlYWRsaW5lSGVpZ2h0AwkBAAAABWFsbG93AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtkZWFkbGluZUtleQUAAAAOZGVhZGxpbmVIZWlnaHQFAAAAA25pbAkAAAIAAAABAgAAAApPbmx5IGFkbWluAAAAAWkBAAAAB21ha2VCZXQAAAAGAAAADWdyb3VwX3dpbm5lcnMAAAAMZ3JvdXBfc2Vjb25kAAAADG9jdG9fd2lubmVycwAAAA9xdWFydGVyX3dpbm5lcnMAAAAMc2VtaV93aW5uZXJzAAAABndpbm5lcgQAAAADcG10CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAlwbXRfYXNzZXQIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAKcG10X2Ftb3VudAkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAZhbW91bnQEAAAACmNhbGxlckFkZHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAZiZXR0ZWQJAQAAAAVpc0JldAAAAAEFAAAACmNhbGxlckFkZHIEAAAACGRlYWRsaW5lCQEAAAALZ2V0RGVhZExpbmUA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", "height": 2316801, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FHcrCeifdNQHGHBbiFcwBeEmZ1nxCSfjWnw1eAwfdcZ8 Next: 7byW7gatPQLCkXJQpvwkAk53Lkf8aeRJrDbht8tftoGt Diff:
Old | New | Differences | |
---|---|---|---|
104 | 104 | else false) | |
105 | 105 | then (size(semiWinners) == 2) | |
106 | 106 | else false) | |
107 | - | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)] | |
107 | + | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "_Final-winner"), winner)] | |
108 | 108 | else throw("Incorrect data arrived in arguments") | |
109 | 109 | } | |
110 | 110 | else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment")) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let admin = "7Tt74r8R7auTBTd6rJMA4qYr9WDWjc2SUHHSrRMw9Brs" | |
5 | 5 | ||
6 | 6 | let resultContract = "" | |
7 | 7 | ||
8 | 8 | let betAmountKey = "global_betAmount" | |
9 | 9 | ||
10 | 10 | let deadlineKey = "global_deadline_h" | |
11 | 11 | ||
12 | 12 | let scale = 100000000 | |
13 | 13 | ||
14 | 14 | func getAssetString (assetId) = match assetId { | |
15 | 15 | case b: ByteVector => | |
16 | 16 | toBase58String(b) | |
17 | 17 | case _ => | |
18 | 18 | "WAVES" | |
19 | 19 | } | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func getAssetBytes (assetId) = if ((assetId == "WAVES")) | |
23 | 23 | then unit | |
24 | 24 | else fromBase58String(assetId) | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | func tryGetInteger (key) = match getInteger(this, key) { | |
28 | 28 | case i: Int => | |
29 | 29 | i | |
30 | 30 | case _ => | |
31 | 31 | 0 | |
32 | 32 | } | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | func tryGetBoolean (key) = match getBoolean(this, key) { | |
36 | 36 | case b: Boolean => | |
37 | 37 | b | |
38 | 38 | case _ => | |
39 | 39 | false | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func tryGetString (key) = match getString(this, key) { | |
44 | 44 | case s: String => | |
45 | 45 | s | |
46 | 46 | case _ => | |
47 | 47 | "" | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func allow (callerPBK) = (toBase58String(callerPBK) == admin) | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | func isBet (address) = tryGetBoolean((address + "_betted")) | |
55 | 55 | ||
56 | 56 | ||
57 | 57 | func getBetAmount () = tryGetInteger(betAmountKey) | |
58 | 58 | ||
59 | 59 | ||
60 | 60 | func getDeadLine () = tryGetInteger(deadlineKey) | |
61 | 61 | ||
62 | 62 | ||
63 | 63 | @Callable(i) | |
64 | 64 | func setBetAmount (amount) = if (allow(i.callerPublicKey)) | |
65 | 65 | then [IntegerEntry(betAmountKey, amount)] | |
66 | 66 | else throw("Only admin") | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | ||
70 | 70 | @Callable(i) | |
71 | 71 | func setDeadLine (deadlineHeight) = if (allow(i.callerPublicKey)) | |
72 | 72 | then [IntegerEntry(deadlineKey, deadlineHeight)] | |
73 | 73 | else throw("Only admin") | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | ||
77 | 77 | @Callable(i) | |
78 | 78 | func makeBet (group_winners,group_second,octo_winners,quarter_winners,semi_winners,winner) = { | |
79 | 79 | let pmt = i.payments[0] | |
80 | 80 | let pmt_asset = pmt.assetId | |
81 | 81 | let pmt_amount = value(pmt.amount) | |
82 | 82 | let callerAddr = toString(i.caller) | |
83 | 83 | let betted = isBet(callerAddr) | |
84 | 84 | let deadline = getDeadLine() | |
85 | 85 | if ((deadline > height)) | |
86 | 86 | then if (!(betted)) | |
87 | 87 | then if ((getAssetString(pmt_asset) == "WAVES")) | |
88 | 88 | then { | |
89 | 89 | let betAmount = getBetAmount() | |
90 | 90 | if ((betAmount != 0)) | |
91 | 91 | then if ((pmt_amount == betAmount)) | |
92 | 92 | then { | |
93 | 93 | let groupWinners = split(group_winners, "_") | |
94 | 94 | let groupSecond = split(group_second, "_") | |
95 | 95 | let octoWinners = split(octo_winners, "_") | |
96 | 96 | let quarterWinners = split(quarter_winners, "_") | |
97 | 97 | let semiWinners = split(semi_winners, "_") | |
98 | 98 | if (if (if (if (if ((size(groupWinners) == 8)) | |
99 | 99 | then (size(groupSecond) == 8) | |
100 | 100 | else false) | |
101 | 101 | then (size(octoWinners) == 8) | |
102 | 102 | else false) | |
103 | 103 | then (size(quarterWinners) == 4) | |
104 | 104 | else false) | |
105 | 105 | then (size(semiWinners) == 2) | |
106 | 106 | else false) | |
107 | - | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "Final-winner"), winner)] | |
107 | + | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "_Final-winner"), winner)] | |
108 | 108 | else throw("Incorrect data arrived in arguments") | |
109 | 109 | } | |
110 | 110 | else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment")) | |
111 | 111 | else throw("Zero betAmount from contract storage") | |
112 | 112 | } | |
113 | 113 | else throw("Only Waves is allowed as payment asset to bet") | |
114 | 114 | else throw("Bet already made") | |
115 | 115 | else throw("Betting closed") | |
116 | 116 | } | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | ||
120 | 120 | @Callable(i) | |
121 | 121 | func deleteAddress (address) = { | |
122 | 122 | let callerAddr = address | |
123 | 123 | if (allow(i.callerPublicKey)) | |
124 | 124 | then [DeleteEntry((callerAddr + "_betted")), DeleteEntry((callerAddr + "_height")), DeleteEntry((callerAddr + "_GroupA-1st")), DeleteEntry((callerAddr + "_GroupA-2nd")), DeleteEntry((callerAddr + "_GroupB-1st")), DeleteEntry((callerAddr + "_GroupB-2nd")), DeleteEntry((callerAddr + "_GroupC-1st")), DeleteEntry((callerAddr + "_GroupC-2nd")), DeleteEntry((callerAddr + "_GroupD-1st")), DeleteEntry((callerAddr + "_GroupD-2nd")), DeleteEntry((callerAddr + "_GroupE-1st")), DeleteEntry((callerAddr + "_GroupE-2nd")), DeleteEntry((callerAddr + "_GroupF-1st")), DeleteEntry((callerAddr + "_GroupF-2nd")), DeleteEntry((callerAddr + "_GroupG-1st")), DeleteEntry((callerAddr + "_GroupG-2nd")), DeleteEntry((callerAddr + "_GroupH-1st")), DeleteEntry((callerAddr + "_GroupH-2nd")), DeleteEntry((callerAddr + "_Octo1-winner")), DeleteEntry((callerAddr + "_Octo2-winner")), DeleteEntry((callerAddr + "_Octo3-winner")), DeleteEntry((callerAddr + "_Octo4-winner")), DeleteEntry((callerAddr + "_Octo5-winner")), DeleteEntry((callerAddr + "_Octo6-winner")), DeleteEntry((callerAddr + "_Octo7-winner")), DeleteEntry((callerAddr + "_Octo8-winner")), DeleteEntry((callerAddr + "_Quarter1-winner")), DeleteEntry((callerAddr + "_Quarter2-winner")), DeleteEntry((callerAddr + "_Quarter3-winner")), DeleteEntry((callerAddr + "_Quarter4-winner")), DeleteEntry((callerAddr + "_Semi1-winner")), DeleteEntry((callerAddr + "_Semi2-winner")), DeleteEntry((callerAddr + "Final-winner"))] | |
125 | 125 | else throw("Only admin") | |
126 | 126 | } | |
127 | 127 | ||
128 | 128 | ||
129 | 129 | @Verifier(tx) | |
130 | 130 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
131 | 131 |
github/deemru/w8io/169f3d6 56.42 ms ◑