tx · E7kdGeKUvaWAQXHi33iKFajNzK6eyfsMWGXEjtUoJGi3 3MqtTwie8XKCcUcntgFAFYnfLEnffezju4Y: -0.01500000 Waves 2019.07.25 18:23 [601739] smart account 3MqtTwie8XKCcUcntgFAFYnfLEnffezju4Y > SELF 0.00000000 Waves
{ "type": 13, "id": "E7kdGeKUvaWAQXHi33iKFajNzK6eyfsMWGXEjtUoJGi3", "fee": 1500000, "feeAssetId": null, "timestamp": 1564068184731, "version": 1, "sender": "3MqtTwie8XKCcUcntgFAFYnfLEnffezju4Y", "senderPublicKey": "Gf4eU8JJaQziR7AfnST6tmzhUgFmeKavkwyoceen3PK1", "proofs": [ "3YnHpi56XCjALg57KGtpGG9Y5iJyv3Eh7EPUp1KE2Ar1n51vcpWpQp74NnBtvvvnhUj6uGihMiLj8WuX6C19gMni" ], "script": "base64:AAIDAAAAAAAAAAAAAAAYAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcWxBaUFOU21CcERIWUtQOXNLZ2VOL2wxYkFiMjhnL3RHbGdEa3dUNUZpTU40WDNwd2R2ZHhFN212U1I4LzQxZFU5cng0akcrNnRacGIxVUxWRFBzNDMxdFIySVJhVFh3NUNqK0FjMnZoTCs1SmFtQ2VyR0QxVVcrYmgvRUdRdHhvOFczWUxEcm9mWEI1UUhKeDRQa3oyS2dmK29TL0M4aEh1Qi9VNGtyTzc2VTA1MDdHVGpaUFA5a1JRMHVMU01lcVFYdDh3WFMrbk1wNXdhanF4UHBETE1hU1JFZ3NLd3YvQUVrUDRkenBUWWJpa0xCWWw0cXRkSnNEODRITEZTa2l3ZDNCaGNPclBqb0lZbUx4UXVCRDVUSU1LVEtEM3NkWmdhWTlyc3lxeDNBMDBpbm55eEQ2enAzYjRnRnBVT1g4SnhLWmRFQzJteUVxbGVOZ2c3R3p3SURBUUFCAAAAAAZTRVJWRVIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05DaUcyOExtV3lUaWdXRzEzRTVRbnZkSEJzWkZZWFNTMmoAAAAAB1dBVkVMRVQJAABoAAAAAgkAAGgAAAACAAAAAAAAAABkAAAAAAAAAAPoAAAAAAAAAAPoAAAAABBTRVNTSU9OSURGSVhTSVpFAAAAAAAAAAAsAAAAAA5SQU5EQ1lDTEVQUklDRQkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAUFAAAAB1dBVkVMRVQAAAAAAAAAA+gAAAAAEE1BWFJBTkRTUEVSQ1lDTEUAAAAAAAAAAA4AAAAACVNUQVRFSU5JVAIAAAAESU5JVAAAAAAIREFUQURPTkUCAAAABVJFQURZAAAAAA1TVEFURUZJTklTSEVEAgAAAAhGSU5JU0hFRAAAAAAISWR4U3RhdGUAAAAAAAAAAAAAAAAAD0lkeE9yZ2FuaXplclB1YgAAAAAAAAAAAQAAAAALSWR4UmFuZEZyb20AAAAAAAAAAAIAAAAACUlkeFJhbmRUbwAAAAAAAAAAAwAAAAANSWR4UmFuZHND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bnRyeQAAAAIFAAAACXNlc3Npb25JZAUAAAAJaW5pdFN0YXRlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAGU0VSVkVSAAAAAAAAAAPoBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAFcmVhZHkAAAABAAAACXNlc3Npb25JZAQAAAAOZHJhd1BhcmFtc0xpc3QJAQAAABNleHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAJc2Vzc2lvbklkBAAAAAlkcmF3U3RhdGUJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QFAAAACElkeFN0YXRlBAAAABFvcmdhbml6ZXJQdWJLZXk1OAkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAUAAAAPSWR4T3JnYW5pemVyUHViBAAAAA1yYW5kc0NvdW50U3RyCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAAA1JZHhSYW5kc0NvdW50BAAAABNyZW1haW5SYW5kc0NvdW50U3RyCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAABNJZHhSZW1haW5SYW5kc0NvdW50BAAAAAdmcm9tU3RyCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAAAtJZHhSYW5kRnJvbQQAAAAFdG9TdHIJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QFAAAACUlkeFJhbmRUbwQAAAAPb3JnYW5pemVyUHViS2V5CQACWQAAAAEFAAAAEW9yZ2FuaXplclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZHJhd1N0YXRlBQAAAAlTVEFURUlOSVQJAAACAAAAAQkAASwAAAACBQAAAAlzZXNzaW9uSWQCAAAAPiBkcmF3OiBtb3ZpbmcgaW50byBSRUFEWSBzdGF0ZSBpcyBhbGxvd2VkIG9ubHkgZnJvbSBJTklUIHN0YXRlAwkBAAAAAiE9AAAAAgUAAAAPb3JnYW5pemVyUHViS2V5CAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQkAASwAAAACBQAAAAlzZXNzaW9uSWQCAAAAO2RyYXc6IG1vdmluZyBpbnRvIFJFQURZIHN0YXRlIGlzIGFsbG93ZWQgZm9yIG9yZ2FuaXplciBvbmx5BAAAAApyZWFkeVN0YXRlCQEAAAASZm9ybWF0U3RhdGVEYXRhU3RyAAAACQUAAAAIREFUQURPTkUFAAAAEW9yZ2FuaXplclB1YktleTU4BQAAAAdmcm9tU3RyBQAAAAV0b1N0cgUAAAANcmFuZHNDb3VudFN0cgUAAAATcmVtYWluUmFuZHNDb3VudFN0cgkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAgAAAAEwAgAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACXNlc3Npb25JZAUAAAAKcmVhZHlTdGF0ZQUAAAADbmlsAAAAAWkBAAAABnJhbmRvbQAAAAIAAAAJc2Vzc2lvbklkAAAAB3JzYVNpZ24EAAAADmRyYXdQYXJhbXNMaXN0CQEAAAATZXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAACXNlc3Npb25JZAQAAAAJZHJhd1N0YXRlCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAAAhJZHhTdGF0ZQQAAAARb3JnYW5pemVyUHViS2V5NTgJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QFAAAAD0lkeE9yZ2FuaXplclB1YgQAAAANcmFuZHNDb3VudFN0cgkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAUAAAANSWR4UmFuZHNDb3VudAQAAAAQcmVtYWluUmFuZHNDb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAABNJZHhSZW1haW5SYW5kc0NvdW50BAAAAA9sYXN0T2Zmc2V0Qnl0ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAUAAAANSWR4TGFzdE9mZnNldAQAAAAMY3VyclJhbmRzU3RyCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0BQAAAAxJZHhDdXJyUmFuZHMEAAAAB2Zyb21TdHIJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QFAAAAC0lkeFJhbmRGcm9tBAAAAAV0b1N0cgkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAUAAAAJSWR4UmFuZFRvBAAAAAxkYXRhRG9uZVR4SWQJAAGRAAAAAgUAAAAOZHJhd1BhcmFtc0xpc3QFAAAAD0lkeERhdGFEb25lVHhJZAQAAAAEZnJvbQkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAAdmcm9tU3RyBAAAAAJ0bwkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAAV0b1N0cgQAAAAPb3JnYW5pemVyUHViS2V5CQACWQAAAAEFAAAAEW9yZ2FuaXplclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZHJhd1N0YXRlBQAAAAhEQVRBRE9ORQkAAAIAAAABCQABLAAAAAIFAAAACXNlc3Npb25JZAIAAAA7IGRyYXc6IGl0IG11c3QgYmUgaW4gUkVBRFkgc3RhdGUgdG8gZ2VuZXJhdGUgcmFuZG9tIG51bWJlcnMDCQEAAAABIQAAAAEJAAH4AAAABAUAAAAGU0hBMjU2CQAAywAAAAIJAAGbAAAAAQUAAAAJc2Vzc2lvbklkCQABmwAAAAEFAAAADGRhdGFEb25lVHhJZAUAAAAHcnNhU2lnbgUAAAAJUlNBUFVCTElDCQAAAgAAAAECAAAAFUludmFsaWQgUlNBIHNpZ25hdHVyZQQAAAALcmFuZEdlbkluZm8JAQAAAAxnZW5lcmF0ZVJhbmQAAAAHBQAAAAlzZXNzaW9uSWQFAAAABGZyb20FAAAAAnRvBQAAAAdyc2FTaWduBQAAAAxjdXJyUmFuZHNTdHIFAAAAEHJlbWFpblJhbmRzQ291bnQFAAAAD2xhc3RPZmZzZXRCeXRlcwQAAAALbmV3UmFuZHNTdHIJAAGRAAAAAgUAAAALcmFuZEdlbkluZm8AAAAAAAAAAAAEAAAAFm5ld1JlbWFpblJhbmRzQ291bnRTdHIJAAGRAAAAAgUAAAALcmFuZEdlbkluZm8AAAAAAAAAAAEEAAAADm5ld09mZnNldEJ5dGVzCQABkQAAAAIFAAAAC3JhbmRHZW5JbmZvAAAAAAAAAAACBAAAAAhuZXdTdGF0ZQMJAAAAAAAAAgUAAAAWbmV3UmVtYWluUmFuZHNDb3VudFN0cgIAAAABMAUAAAANU1RBVEVGSU5JU0hFRAUAAAAIREFUQURPTkUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACXNlc3Npb25JZAkBAAAAEmZvcm1hdFN0YXRlRGF0YVN0cgAAAAkFAAAACG5ld1N0YXRlBQAAABFvcmdhbml6ZXJQdWJLZXk1OAUAAAAHZnJvbVN0cgUAAAAFdG9TdHIFAAAADXJhbmRzQ291bnRTdHIFAAAAFm5ld1JlbWFpblJhbmRzQ291bnRTdHIFAAAADGRhdGFEb25lVHhJZAUAAAAObmV3T2Zmc2V0Qnl0ZXMFAAAAC25ld1JhbmRzU3RyBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAANkdHgFAAAAByRtYXRjaDAEAAAABWRhdGEwCQABkQAAAAIIBQAAAANkdHgAAAAEZGF0YQAAAAAAAAAAAAQAAAAJc2Vzc2lvbklkCQABLwAAAAIIBQAAAAVkYXRhMAAAAANrZXkFAAAAEFNFU1NJT05JREZJWFNJWkUEAAAADmRyYXdQYXJhbXNMaXN0CQEAAAATZXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAACXNlc3Npb25JZAQAAAAJZHJhd1N0YXRlCQABkQAAAAIFAAAADmRyYXdQYXJhbXNMaXN0AAAAAAAAAAAABAAAABFvcmdhbml6ZXJQdWJLZXk1OAkAAZEAAAACBQAAAA5kcmF3UGFyYW1zTGlzdAAAAAAAAAAAAQQAAAAPb3JnYW5pemVyUHViS2V5CQACWQAAAAEFAAAAEW9yZ2FuaXplclB1YktleTU4BAAAABBkYXRhRW50cmllc0NvdW50CQABkAAAAAEIBQAAAANkdHgAAAAEZGF0YQQAAAAIc2lnVmFsaWQJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA9vcmdhbml6ZXJQdWJLZXkEAAAADWRhdGFTaXplVmFsaWQDCQAAZgAAAAIFAAAAEGRhdGFFbnRyaWVzQ291bnQAAAAAAAAAAAAJAABnAAAAAgAAAAAAAAAABQUAAAAQZGF0YUVudHJpZXNDb3VudAcEAAAACWtleXNWYWxpZAMDAwMDCQEAAAAOdmFsaWRhdGVEdHhLZXkAAAACBQAAAAlzZXNzaW9uSWQFAAAABWRhdGEwAwkAAGcAAAACAAAAAAAAAAABBQAAABBkYXRhRW50cmllc0NvdW50BgkBAAAADnZhbGlkYXRlRHR4S2V5AAAAAgUAAAAJc2Vzc2lvbklkCQABkQAAAAIIBQAAAANkdHgAAAAEZGF0YQAAAAAAAAAAAQcDCQAAZwAAAAIAAAAAAAAAAAIFAAAAEGRhdGFFbnRyaWVzQ291bnQGCQEAAAAOdmFsaWRhdGVEdHhLZXkAAAACBQAAAAlzZXNzaW9uSWQJAAGRAAAAAggFAAAAA2R0eAAAAARkYXRhAAAAAAAAAAACBwMJAABnAAAAAgAAAAAAAAAAAwUAAAAQZGF0YUVudHJpZXNDb3VudAYJAQAAAA52YWxpZGF0ZUR0eEtleQAAAAIFAAAACXNlc3Npb25JZAkAAZEAAAACCAUAAAADZHR4AAAABGRhdGEAAAAAAAAAAAMHAwkAAGcAAAACAAAAAAAAAAAEBQAAABBkYXRhRW50cmllc0NvdW50BgkBAAAADnZhbGlkYXRlRHR4S2V5AAAAAgUAAAAJc2Vzc2lvbklkCQABkQAAAAIIBQAAAANkdHgAAAAEZGF0YQAAAAAAAAAABAcDCQAAZwAAAAIAAAAAAAAAAAUFAAAAEGRhdGFFbnRyaWVzQ291bnQGCQEAAAAOdmFsaWRhdGVEdHhLZXkAAAACBQAAAAlzZXNzaW9uSWQJAAGRAAAAAggFAAAAA2R0eAAAAARkYXRhAAAAAAAAAAAFBwMDAwkAAAAAAAACBQAAAAlkcmF3U3RhdGUFAAAACVNUQVRFSU5JVAUAAAAIc2lnVmFsaWQHBQAAAA1kYXRhU2l6ZVZhbGlkBwUAAAAJa2V5c1ZhbGlkBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAABHNzdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAGBxZse/o=", "chainId": 84, "height": 601739, "spentComplexity": 0 } View: original | compacted Prev: 3chMsDrQGEvRvykVyLoePhgRc5ua6qNa5FH6RaHwSpQL Next: F6RpxQT5HqcMhmoYwPTaxvfC5AdZ9JNwsdsAU6tCBuGR Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | ||
8 | 8 | let c = ((100 * 1000) * 1000) | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 44 | |
11 | 11 | ||
12 | 12 | let e = ((5 * c) / 1000) | |
13 | 13 | ||
133 | 133 | } | |
134 | 134 | ||
135 | 135 | ||
136 | - | func ay (G,az,aA,aB) = { | |
137 | - | let aC = take(az.key, d) | |
138 | - | if ((aB >= aA)) | |
139 | - | then true | |
140 | - | else if (if (if ((G == aC)) | |
141 | - | then (size(az.key) > d) | |
142 | - | else false) | |
143 | - | then !(isDefined(getString(this, az.key))) | |
144 | - | else false) | |
136 | + | func ay (G,az) = if (if (if ((G == take(az.key, d))) | |
137 | + | then (size(az.key) > d) | |
138 | + | else false) | |
139 | + | then !(isDefined(getString(this, az.key))) | |
140 | + | else false) | |
141 | + | then { | |
142 | + | let aA = az.value | |
143 | + | if ($isInstanceOf(aA, "String")) | |
145 | 144 | then { | |
146 | - | let aD = az.value | |
147 | - | if ($isInstanceOf(aD, "String")) | |
148 | - | then { | |
149 | - | let aE = aD | |
150 | - | true | |
151 | - | } | |
152 | - | else throw((G + " draw: only String type is accepted for data transactions")) | |
145 | + | let aB = aA | |
146 | + | true | |
153 | 147 | } | |
154 | - | else false | |
155 | - | } | |
148 | + | else throw((G + " draw: only String type is accepted for data transactions")) | |
149 | + | } | |
150 | + | else false | |
156 | 151 | ||
157 | 152 | ||
158 | - | @Callable( | |
153 | + | @Callable(aC) | |
159 | 154 | func initDraw (x,y,z) = { | |
160 | - | let G = toBase58String( | |
155 | + | let G = toBase58String(aC.transactionId) | |
161 | 156 | if (if ((0 >= x)) | |
162 | 157 | then true | |
163 | 158 | else (0 >= y)) | |
167 | 162 | else if ((z > ((y - x) + 1))) | |
168 | 163 | then throw(((((("Impossible to generate " + toString(z)) + " for provided random range - from ") + toString(x)) + " to ") + toString(y))) | |
169 | 164 | else { | |
170 | - | let w = toBase58String( | |
171 | - | let | |
172 | - | let | |
173 | - | ScriptResult(WriteSet([DataEntry(G, | |
165 | + | let w = toBase58String(aC.callerPublicKey) | |
166 | + | let aD = toString(z) | |
167 | + | let aE = u(g, w, toString(x), toString(y), aD, aD, "null", "0", "") | |
168 | + | ScriptResult(WriteSet([DataEntry(G, aE)]), TransferSet([ScriptTransfer(b, 1000, unit)])) | |
174 | 169 | } | |
175 | 170 | } | |
176 | 171 | ||
177 | 172 | ||
178 | 173 | ||
179 | - | @Callable( | |
174 | + | @Callable(aC) | |
180 | 175 | func ready (G) = { | |
181 | - | let | |
182 | - | let v = | |
183 | - | let w = | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | let | |
176 | + | let aF = F(G) | |
177 | + | let v = aF[j] | |
178 | + | let w = aF[k] | |
179 | + | let aD = aF[n] | |
180 | + | let aG = aF[o] | |
181 | + | let aH = aF[l] | |
182 | + | let aI = aF[m] | |
183 | + | let aJ = fromBase58String(w) | |
189 | 184 | if ((v != g)) | |
190 | 185 | then throw((G + " draw: moving into READY state is allowed only from INIT state")) | |
191 | - | else if (( | |
186 | + | else if ((aJ != aC.callerPublicKey)) | |
192 | 187 | then throw((G + "draw: moving into READY state is allowed for organizer only")) | |
193 | 188 | else { | |
194 | - | let | |
195 | - | WriteSet([DataEntry(G, | |
189 | + | let aK = u(h, w, aH, aI, aD, aG, toBase58String(aC.transactionId), "0", "") | |
190 | + | WriteSet([DataEntry(G, aK)]) | |
196 | 191 | } | |
197 | 192 | } | |
198 | 193 | ||
199 | 194 | ||
200 | 195 | ||
201 | - | @Callable( | |
196 | + | @Callable(aC) | |
202 | 197 | func random (G,T) = { | |
203 | - | let | |
204 | - | let v = | |
205 | - | let w = | |
206 | - | let | |
207 | - | let | |
208 | - | let U = parseIntValue( | |
209 | - | let L = | |
210 | - | let | |
211 | - | let | |
212 | - | let B = | |
213 | - | let R = parseIntValue( | |
214 | - | let S = parseIntValue( | |
215 | - | let | |
198 | + | let aF = F(G) | |
199 | + | let v = aF[j] | |
200 | + | let w = aF[k] | |
201 | + | let aD = aF[n] | |
202 | + | let aL = parseIntValue(aF[o]) | |
203 | + | let U = parseIntValue(aF[q]) | |
204 | + | let L = aF[r] | |
205 | + | let aH = aF[l] | |
206 | + | let aI = aF[m] | |
207 | + | let B = aF[p] | |
208 | + | let R = parseIntValue(aH) | |
209 | + | let S = parseIntValue(aI) | |
210 | + | let aJ = fromBase58String(w) | |
216 | 211 | if ((v != h)) | |
217 | 212 | then throw((G + " draw: it must be in READY state to generate random numbers")) | |
218 | 213 | else if (!(rsaVerify(SHA256, (toBytes(G) + toBytes(B)), T, a))) | |
219 | 214 | then throw("Invalid RSA signature") | |
220 | 215 | else { | |
221 | - | let | |
222 | - | let | |
223 | - | let | |
224 | - | let | |
225 | - | let | |
216 | + | let aM = Q(G, R, S, T, L, aL, U) | |
217 | + | let aN = aM[0] | |
218 | + | let aO = aM[1] | |
219 | + | let aP = aM[2] | |
220 | + | let aQ = if ((aO == "0")) | |
226 | 221 | then i | |
227 | 222 | else h | |
228 | - | WriteSet([DataEntry(G, u( | |
223 | + | WriteSet([DataEntry(G, u(aQ, w, aH, aI, aD, aO, B, aP, aN))]) | |
229 | 224 | } | |
230 | 225 | } | |
231 | 226 | ||
232 | 227 | ||
233 | - | @Verifier( | |
234 | - | func | |
235 | - | let | |
236 | - | if ($isInstanceOf( | |
228 | + | @Verifier(aR) | |
229 | + | func aS () = { | |
230 | + | let aA = aR | |
231 | + | if ($isInstanceOf(aA, "DataTransaction")) | |
237 | 232 | then { | |
238 | - | let aW = aD | |
239 | - | let aX = aW.data[0] | |
240 | - | let G = take(aX.key, d) | |
241 | - | let aI = F(G) | |
242 | - | let v = aI[0] | |
243 | - | let w = aI[1] | |
244 | - | let aM = fromBase58String(w) | |
245 | - | let aA = size(aW.data) | |
246 | - | if (if (if (if (if (if (if (if (if ((v == g)) | |
247 | - | then sigVerify(aU.bodyBytes, aU.proofs[0], aM) | |
233 | + | let aT = aA | |
234 | + | let aU = aT.data[0] | |
235 | + | let G = take(aU.key, d) | |
236 | + | let aF = F(G) | |
237 | + | let v = aF[0] | |
238 | + | let w = aF[1] | |
239 | + | let aJ = fromBase58String(w) | |
240 | + | let aV = size(aT.data) | |
241 | + | let aW = sigVerify(aR.bodyBytes, aR.proofs[0], aJ) | |
242 | + | let aX = if ((aV > 0)) | |
243 | + | then (5 >= aV) | |
244 | + | else false | |
245 | + | let aY = if (if (if (if (if (ay(G, aU)) | |
246 | + | then if ((1 >= aV)) | |
247 | + | then true | |
248 | + | else ay(G, aT.data[1]) | |
248 | 249 | else false) | |
249 | - | then (aA > 0) | |
250 | + | then if ((2 >= aV)) | |
251 | + | then true | |
252 | + | else ay(G, aT.data[2]) | |
250 | 253 | else false) | |
251 | - | then (5 >= aA) | |
254 | + | then if ((3 >= aV)) | |
255 | + | then true | |
256 | + | else ay(G, aT.data[3]) | |
252 | 257 | else false) | |
253 | - | then ay(G, aX, aA, 0) | |
258 | + | then if ((4 >= aV)) | |
259 | + | then true | |
260 | + | else ay(G, aT.data[4]) | |
254 | 261 | else false) | |
255 | - | then ay(G, aW.data[1], aA, 1) | |
262 | + | then if ((5 >= aV)) | |
263 | + | then true | |
264 | + | else ay(G, aT.data[5]) | |
265 | + | else false | |
266 | + | if (if (if ((v == g)) | |
267 | + | then aW | |
256 | 268 | else false) | |
257 | - | then | |
269 | + | then aX | |
258 | 270 | else false) | |
259 | - | then ay(G, aW.data[3], aA, 3) | |
260 | - | else false) | |
261 | - | then ay(G, aW.data[4], aA, 4) | |
262 | - | else false) | |
263 | - | then ay(G, aW.data[5], aA, 5) | |
271 | + | then aY | |
264 | 272 | else false | |
265 | 273 | } | |
266 | - | else if ($isInstanceOf( | |
274 | + | else if ($isInstanceOf(aA, "SetScriptTransaction")) | |
267 | 275 | then { | |
268 | - | let | |
276 | + | let aZ = aA | |
269 | 277 | true | |
270 | 278 | } | |
271 | - | else if ($isInstanceOf( | |
279 | + | else if ($isInstanceOf(aA, "TransferTransaction")) | |
272 | 280 | then { | |
273 | - | let | |
281 | + | let ba = aA | |
274 | 282 | true | |
275 | 283 | } | |
276 | 284 | else false |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqlAiANSmBpDHYKP9sKgeN/l1bAb28g/tGlgDkwT5FiMN4X3pwdvdxE7mvSR8/41dU9rx4jG+6tZpb1ULVDPs431tR2IRaTXw5Cj+Ac2vhL+5JamCerGD1UW+bh/EGQtxo8W3YLDrofXB5QHJx4Pkz2Kgf+oS/C8hHuB/U4krO76U0507GTjZPP9kRQ0uLSMeqQXt8wXS+nMp5wajqxPpDLMaSREgsKwv/AEkP4dzpTYbikLBYl4qtdJsD84HLFSkiwd3BhcOrPjoIYmLxQuBD5TIMKTKD3sdZgaY9rsyqx3A00innyxD6zp3b4gFpUOX8JxKZdEC2myEqleNgg7GzwIDAQAB") | |
5 | 5 | ||
6 | 6 | let b = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j") | |
7 | 7 | ||
8 | 8 | let c = ((100 * 1000) * 1000) | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 44 | |
11 | 11 | ||
12 | 12 | let e = ((5 * c) / 1000) | |
13 | 13 | ||
14 | 14 | let f = 14 | |
15 | 15 | ||
16 | 16 | let g = "INIT" | |
17 | 17 | ||
18 | 18 | let h = "READY" | |
19 | 19 | ||
20 | 20 | let i = "FINISHED" | |
21 | 21 | ||
22 | 22 | let j = 0 | |
23 | 23 | ||
24 | 24 | let k = 1 | |
25 | 25 | ||
26 | 26 | let l = 2 | |
27 | 27 | ||
28 | 28 | let m = 3 | |
29 | 29 | ||
30 | 30 | let n = 4 | |
31 | 31 | ||
32 | 32 | let o = 5 | |
33 | 33 | ||
34 | 34 | let p = 6 | |
35 | 35 | ||
36 | 36 | let q = 7 | |
37 | 37 | ||
38 | 38 | let r = 8 | |
39 | 39 | ||
40 | 40 | func s (t) = if ((0 > t)) | |
41 | 41 | then -(t) | |
42 | 42 | else t | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | func u (v,w,x,y,z,A,B,C,D) = { | |
46 | 46 | let E = ((((((((((((((v + "_") + w) + "_") + x) + "_") + y) + "_") + z) + "_") + A) + "_") + B) + "_") + C) | |
47 | 47 | if ((D == "")) | |
48 | 48 | then ((E + "_") + "-") | |
49 | 49 | else ((E + "_") + D) | |
50 | 50 | } | |
51 | 51 | ||
52 | 52 | ||
53 | 53 | func F (G) = { | |
54 | 54 | let H = getStringValue(this, G) | |
55 | 55 | split(H, "_") | |
56 | 56 | } | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | func I (J,K,L,A,M) = { | |
60 | 60 | let N = ((s(toInt(M)) % J) + K) | |
61 | 61 | let O = toString(N) | |
62 | 62 | let P = isDefined(indexOf(L, O)) | |
63 | 63 | if (if (!(P)) | |
64 | 64 | then (A > 0) | |
65 | 65 | else false) | |
66 | 66 | then [((L + "-") + O), "yes"] | |
67 | 67 | else [L, ""] | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | func Q (G,R,S,T,L,A,U) = { | |
72 | 72 | let V = T | |
73 | 73 | let J = ((S - R) + 1) | |
74 | 74 | let W = I(J, R, L, A, drop(V, (U + 1))) | |
75 | 75 | let X = if ((W[1] != "")) | |
76 | 76 | then (A - 1) | |
77 | 77 | else A | |
78 | 78 | let Y = I(J, R, W[0], X, drop(V, (U + 2))) | |
79 | 79 | let Z = if ((Y[1] != "")) | |
80 | 80 | then (X - 1) | |
81 | 81 | else X | |
82 | 82 | let aa = I(J, R, Y[0], Z, drop(V, (U + 3))) | |
83 | 83 | let ab = if ((aa[1] != "")) | |
84 | 84 | then (Z - 1) | |
85 | 85 | else Z | |
86 | 86 | let ac = I(J, R, aa[0], ab, drop(V, (U + 4))) | |
87 | 87 | let ad = if ((ac[1] != "")) | |
88 | 88 | then (ab - 1) | |
89 | 89 | else ab | |
90 | 90 | let ae = I(J, R, ac[0], ad, drop(V, (U + 5))) | |
91 | 91 | let af = if ((ae[1] != "")) | |
92 | 92 | then (ad - 1) | |
93 | 93 | else ad | |
94 | 94 | let ag = I(J, R, ae[0], af, drop(V, (U + 6))) | |
95 | 95 | let ah = if ((ag[1] != "")) | |
96 | 96 | then (af - 1) | |
97 | 97 | else af | |
98 | 98 | let ai = I(J, R, ag[0], ah, drop(V, (U + 7))) | |
99 | 99 | let aj = if ((ai[1] != "")) | |
100 | 100 | then (ah - 1) | |
101 | 101 | else ah | |
102 | 102 | let ak = I(J, R, ai[0], aj, drop(V, (U + 8))) | |
103 | 103 | let al = if ((ak[1] != "")) | |
104 | 104 | then (aj - 1) | |
105 | 105 | else aj | |
106 | 106 | let am = I(J, R, ak[0], al, drop(V, (U + 9))) | |
107 | 107 | let an = if ((am[1] != "")) | |
108 | 108 | then (al - 1) | |
109 | 109 | else al | |
110 | 110 | let ao = I(J, R, am[0], an, drop(V, (U + 10))) | |
111 | 111 | let ap = if ((ao[1] != "")) | |
112 | 112 | then (an - 1) | |
113 | 113 | else an | |
114 | 114 | let aq = I(J, R, ao[0], ap, drop(V, (U + 11))) | |
115 | 115 | let ar = if ((aq[1] != "")) | |
116 | 116 | then (ap - 1) | |
117 | 117 | else ap | |
118 | 118 | let as = I(J, R, aq[0], ar, drop(V, (U + 12))) | |
119 | 119 | let at = if ((as[1] != "")) | |
120 | 120 | then (ar - 1) | |
121 | 121 | else ar | |
122 | 122 | let au = I(J, R, as[0], at, drop(V, (U + 13))) | |
123 | 123 | let av = if ((au[1] != "")) | |
124 | 124 | then (at - 1) | |
125 | 125 | else at | |
126 | 126 | let aw = I(J, R, au[0], av, drop(V, (U + 14))) | |
127 | 127 | let ax = if ((aw[1] != "")) | |
128 | 128 | then (av - 1) | |
129 | 129 | else av | |
130 | 130 | [aw[0], if ((ax == 0)) | |
131 | 131 | then "0" | |
132 | 132 | else toString(ax), toString((U + 14))] | |
133 | 133 | } | |
134 | 134 | ||
135 | 135 | ||
136 | - | func ay (G,az,aA,aB) = { | |
137 | - | let aC = take(az.key, d) | |
138 | - | if ((aB >= aA)) | |
139 | - | then true | |
140 | - | else if (if (if ((G == aC)) | |
141 | - | then (size(az.key) > d) | |
142 | - | else false) | |
143 | - | then !(isDefined(getString(this, az.key))) | |
144 | - | else false) | |
136 | + | func ay (G,az) = if (if (if ((G == take(az.key, d))) | |
137 | + | then (size(az.key) > d) | |
138 | + | else false) | |
139 | + | then !(isDefined(getString(this, az.key))) | |
140 | + | else false) | |
141 | + | then { | |
142 | + | let aA = az.value | |
143 | + | if ($isInstanceOf(aA, "String")) | |
145 | 144 | then { | |
146 | - | let aD = az.value | |
147 | - | if ($isInstanceOf(aD, "String")) | |
148 | - | then { | |
149 | - | let aE = aD | |
150 | - | true | |
151 | - | } | |
152 | - | else throw((G + " draw: only String type is accepted for data transactions")) | |
145 | + | let aB = aA | |
146 | + | true | |
153 | 147 | } | |
154 | - | else false | |
155 | - | } | |
148 | + | else throw((G + " draw: only String type is accepted for data transactions")) | |
149 | + | } | |
150 | + | else false | |
156 | 151 | ||
157 | 152 | ||
158 | - | @Callable( | |
153 | + | @Callable(aC) | |
159 | 154 | func initDraw (x,y,z) = { | |
160 | - | let G = toBase58String( | |
155 | + | let G = toBase58String(aC.transactionId) | |
161 | 156 | if (if ((0 >= x)) | |
162 | 157 | then true | |
163 | 158 | else (0 >= y)) | |
164 | 159 | then throw("randFrom and randTo must be greater than 0") | |
165 | 160 | else if ((x >= y)) | |
166 | 161 | then throw("randFrom must be strict less then randTo") | |
167 | 162 | else if ((z > ((y - x) + 1))) | |
168 | 163 | then throw(((((("Impossible to generate " + toString(z)) + " for provided random range - from ") + toString(x)) + " to ") + toString(y))) | |
169 | 164 | else { | |
170 | - | let w = toBase58String( | |
171 | - | let | |
172 | - | let | |
173 | - | ScriptResult(WriteSet([DataEntry(G, | |
165 | + | let w = toBase58String(aC.callerPublicKey) | |
166 | + | let aD = toString(z) | |
167 | + | let aE = u(g, w, toString(x), toString(y), aD, aD, "null", "0", "") | |
168 | + | ScriptResult(WriteSet([DataEntry(G, aE)]), TransferSet([ScriptTransfer(b, 1000, unit)])) | |
174 | 169 | } | |
175 | 170 | } | |
176 | 171 | ||
177 | 172 | ||
178 | 173 | ||
179 | - | @Callable( | |
174 | + | @Callable(aC) | |
180 | 175 | func ready (G) = { | |
181 | - | let | |
182 | - | let v = | |
183 | - | let w = | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | let | |
176 | + | let aF = F(G) | |
177 | + | let v = aF[j] | |
178 | + | let w = aF[k] | |
179 | + | let aD = aF[n] | |
180 | + | let aG = aF[o] | |
181 | + | let aH = aF[l] | |
182 | + | let aI = aF[m] | |
183 | + | let aJ = fromBase58String(w) | |
189 | 184 | if ((v != g)) | |
190 | 185 | then throw((G + " draw: moving into READY state is allowed only from INIT state")) | |
191 | - | else if (( | |
186 | + | else if ((aJ != aC.callerPublicKey)) | |
192 | 187 | then throw((G + "draw: moving into READY state is allowed for organizer only")) | |
193 | 188 | else { | |
194 | - | let | |
195 | - | WriteSet([DataEntry(G, | |
189 | + | let aK = u(h, w, aH, aI, aD, aG, toBase58String(aC.transactionId), "0", "") | |
190 | + | WriteSet([DataEntry(G, aK)]) | |
196 | 191 | } | |
197 | 192 | } | |
198 | 193 | ||
199 | 194 | ||
200 | 195 | ||
201 | - | @Callable( | |
196 | + | @Callable(aC) | |
202 | 197 | func random (G,T) = { | |
203 | - | let | |
204 | - | let v = | |
205 | - | let w = | |
206 | - | let | |
207 | - | let | |
208 | - | let U = parseIntValue( | |
209 | - | let L = | |
210 | - | let | |
211 | - | let | |
212 | - | let B = | |
213 | - | let R = parseIntValue( | |
214 | - | let S = parseIntValue( | |
215 | - | let | |
198 | + | let aF = F(G) | |
199 | + | let v = aF[j] | |
200 | + | let w = aF[k] | |
201 | + | let aD = aF[n] | |
202 | + | let aL = parseIntValue(aF[o]) | |
203 | + | let U = parseIntValue(aF[q]) | |
204 | + | let L = aF[r] | |
205 | + | let aH = aF[l] | |
206 | + | let aI = aF[m] | |
207 | + | let B = aF[p] | |
208 | + | let R = parseIntValue(aH) | |
209 | + | let S = parseIntValue(aI) | |
210 | + | let aJ = fromBase58String(w) | |
216 | 211 | if ((v != h)) | |
217 | 212 | then throw((G + " draw: it must be in READY state to generate random numbers")) | |
218 | 213 | else if (!(rsaVerify(SHA256, (toBytes(G) + toBytes(B)), T, a))) | |
219 | 214 | then throw("Invalid RSA signature") | |
220 | 215 | else { | |
221 | - | let | |
222 | - | let | |
223 | - | let | |
224 | - | let | |
225 | - | let | |
216 | + | let aM = Q(G, R, S, T, L, aL, U) | |
217 | + | let aN = aM[0] | |
218 | + | let aO = aM[1] | |
219 | + | let aP = aM[2] | |
220 | + | let aQ = if ((aO == "0")) | |
226 | 221 | then i | |
227 | 222 | else h | |
228 | - | WriteSet([DataEntry(G, u( | |
223 | + | WriteSet([DataEntry(G, u(aQ, w, aH, aI, aD, aO, B, aP, aN))]) | |
229 | 224 | } | |
230 | 225 | } | |
231 | 226 | ||
232 | 227 | ||
233 | - | @Verifier( | |
234 | - | func | |
235 | - | let | |
236 | - | if ($isInstanceOf( | |
228 | + | @Verifier(aR) | |
229 | + | func aS () = { | |
230 | + | let aA = aR | |
231 | + | if ($isInstanceOf(aA, "DataTransaction")) | |
237 | 232 | then { | |
238 | - | let aW = aD | |
239 | - | let aX = aW.data[0] | |
240 | - | let G = take(aX.key, d) | |
241 | - | let aI = F(G) | |
242 | - | let v = aI[0] | |
243 | - | let w = aI[1] | |
244 | - | let aM = fromBase58String(w) | |
245 | - | let aA = size(aW.data) | |
246 | - | if (if (if (if (if (if (if (if (if ((v == g)) | |
247 | - | then sigVerify(aU.bodyBytes, aU.proofs[0], aM) | |
233 | + | let aT = aA | |
234 | + | let aU = aT.data[0] | |
235 | + | let G = take(aU.key, d) | |
236 | + | let aF = F(G) | |
237 | + | let v = aF[0] | |
238 | + | let w = aF[1] | |
239 | + | let aJ = fromBase58String(w) | |
240 | + | let aV = size(aT.data) | |
241 | + | let aW = sigVerify(aR.bodyBytes, aR.proofs[0], aJ) | |
242 | + | let aX = if ((aV > 0)) | |
243 | + | then (5 >= aV) | |
244 | + | else false | |
245 | + | let aY = if (if (if (if (if (ay(G, aU)) | |
246 | + | then if ((1 >= aV)) | |
247 | + | then true | |
248 | + | else ay(G, aT.data[1]) | |
248 | 249 | else false) | |
249 | - | then (aA > 0) | |
250 | + | then if ((2 >= aV)) | |
251 | + | then true | |
252 | + | else ay(G, aT.data[2]) | |
250 | 253 | else false) | |
251 | - | then (5 >= aA) | |
254 | + | then if ((3 >= aV)) | |
255 | + | then true | |
256 | + | else ay(G, aT.data[3]) | |
252 | 257 | else false) | |
253 | - | then ay(G, aX, aA, 0) | |
258 | + | then if ((4 >= aV)) | |
259 | + | then true | |
260 | + | else ay(G, aT.data[4]) | |
254 | 261 | else false) | |
255 | - | then ay(G, aW.data[1], aA, 1) | |
262 | + | then if ((5 >= aV)) | |
263 | + | then true | |
264 | + | else ay(G, aT.data[5]) | |
265 | + | else false | |
266 | + | if (if (if ((v == g)) | |
267 | + | then aW | |
256 | 268 | else false) | |
257 | - | then | |
269 | + | then aX | |
258 | 270 | else false) | |
259 | - | then ay(G, aW.data[3], aA, 3) | |
260 | - | else false) | |
261 | - | then ay(G, aW.data[4], aA, 4) | |
262 | - | else false) | |
263 | - | then ay(G, aW.data[5], aA, 5) | |
271 | + | then aY | |
264 | 272 | else false | |
265 | 273 | } | |
266 | - | else if ($isInstanceOf( | |
274 | + | else if ($isInstanceOf(aA, "SetScriptTransaction")) | |
267 | 275 | then { | |
268 | - | let | |
276 | + | let aZ = aA | |
269 | 277 | true | |
270 | 278 | } | |
271 | - | else if ($isInstanceOf( | |
279 | + | else if ($isInstanceOf(aA, "TransferTransaction")) | |
272 | 280 | then { | |
273 | - | let | |
281 | + | let ba = aA | |
274 | 282 | true | |
275 | 283 | } | |
276 | 284 | else false | |
277 | 285 | } | |
278 | 286 |
github/deemru/w8io/026f985 54.12 ms ◑