tx · GcdJ5zchMWSKgLNiu1DA5b1evc2xZt8meCmSDG2AHAUv

3NAPpLoWcPZGvFcEFaBiaEAcWfNVZxQ2HYz:  -0.01500000 Waves

2019.06.24 20:53 [556499] smart account 3NAPpLoWcPZGvFcEFaBiaEAcWfNVZxQ2HYz > SELF 0.00000000 Waves

{ "type": 13, "id": "GcdJ5zchMWSKgLNiu1DA5b1evc2xZt8meCmSDG2AHAUv", "fee": 1500000, "feeAssetId": null, "timestamp": 1561398860873, "version": 1, "sender": "3NAPpLoWcPZGvFcEFaBiaEAcWfNVZxQ2HYz", "senderPublicKey": "34jj9Cv9tvYTgNDFXuGGZGQEVwnacZjXTgPdRaUtPifh", "proofs": [ "2B79gNF8PpC3kVfikKm1wPSXXiz1WTyo4XnxbZLGEbrz7VVxpGyW7FjdoQ8nRpJm2DQV1KicTmFpStmsU8gNYjwV" ], "script": "base64:AAIDAAAAAAAAAAAAAAAGAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcWxBaUFOU21CcERIWUtQOXNLZ2VOL2wxYkFiMjhnL3RHbGdEa3dUNUZpTU40WDNwd2R2ZHhFN212U1I4LzQxZFU5cng0akcrNnRacGIxVUxWRFBzNDMxdFIySVJhVFh3NUNqK0FjMnZoTCs1SmFtQ2VyR0QxVVcrYmgvRUdRdHhvOFczWUxEcm9mWEI1UUhKeDRQa3oyS2dmK29TL0M4aEh1Qi9VNGtyTzc2VTA1MDdHVGpaUFA5a1JRMHVMU01lcVFYdDh3WFMrbk1wNXdhanF4UHBETE1hU1JFZ3NLd3YvQUVrUDRkenBUWWJpa0xCWWw0cXRkSnNEODRITEZTa2l3ZDNCaGNPclBqb0lZbUx4UXVCRDVUSU1LVEtEM3NkWmdhWTlyc3lxeDNBMDBpbm55eEQ2enAzYjRnRnBVT1g4SnhLWmRFQzJteUVxbGVOZ2c3R3p3SURBUUFCAAAAAAZTRVJWRVIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05DaUcyOExtV3lUaWdXRzEzRTVRbnZkSEJzWkZZWFNTMmoBAAAACVJhbmRUb1N0cgAAAAEAAAABcgMDCQAAZwAAAAIFAAAAAXIAAAAAAAAAAAEJAABnAAAAAgAAAAAAAAAAZAUAAAABcgcJAAGkAAAAAQUAAAABcgkAAAIAAAABCQABLAAAAAICAAAAPFVuc3VwcG9ydGVkIHIgcGFyYW1ldGVyIHBhc3NlZDogZXhwZWN0ZWQ9WzEsLi4uLDEwMF0gYWN0dWFsPQkAAaQAAAABBQAAAAFyAQAAAANhYnMAAAABAAAAA3ZhbAMJAABmAAAAAgAAAAAAAAAAAAUAAAADdmFsCQEAAAABLQAAAAEFAAAAA3ZhbAUAAAADdmFsAQAAAAhOZXh0UmFuZAAAAAIAAAANY3VyclJhbmRzVmVjdAAAAA1yZW1haW5pbmdIYXNoBAAAAAtuZXh0UmFuZEludAkBAAAAA2FicwAAAAEJAASxAAAAAQUAAAANcmVtYWluaW5nSGFzaAQAAAAMbmV4dFJhbmRWZWN0CQABmgAAAAEFAAAAC25leHRSYW5kSW50BAAAAAFzCQAAaQAAAAIJAADIAAAAAQUAAAANY3VyclJhbmRzVmVjdAAAAAAAAAAACAMJAAAAAAAAAgAAAAAAAAAAAAUAAAABcwkABEwAAAACBQAAAAxuZXh0UmFuZFZlY3QJAARMAAAAAgkAAMoAAAACBQAAAA1yZW1haW5pbmdIYXNoAAAAAAAAAAABBQAAAANuaWwEAAAACWR1cGxpY2F0ZQMDAwMDAwMDAwMJAABnAAAAAgUAAAABcwAAAAAAAAAAAQkAAAAAAAACCQAAyQAAAAIFAAAADWN1cnJSYW5kc1ZlY3QAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAACCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAEAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAADCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAIAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAECQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAMAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAFCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAGCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAUAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAHCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAYAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAICQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAJCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcGAwkAAGcAAAACBQAAAAFzAAAAAAAAAAAKCQAAAAAAAAIJAADJAAAAAgkAAMoAAAACBQAAAA1jdXJyUmFuZHNWZWN0CQAAaAAAAAIAAAAAAAAAAAkAAAAAAAAAAAgAAAAAAAAAAAgFAAAADG5leHRSYW5kVmVjdAcDBQAAAAlkdXBsaWNhdGUJAARMAAAAAgUAAAANY3VyclJhbmRzVmVjdAkABEwAAAACCQAAygAAAAIFAAAADXJlbWFpbmluZ0hhc2gAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQAAywAAAAIFAAAADWN1cnJSYW5kc1ZlY3QFAAAADG5leHRSYW5kVmVjdAkABEwAAAACCQAAygAAAAIFAAAADXJlbWFpbmluZ0hhc2gAAAAAAAAAAAEFAAAAA25pbAEAAAASR2VuZXJhdGVSYW5kVmVjdG9yAAAAAwAAAAlzZXNzaW9uSWQAAAABcwAAAAdyc2FTaWduBAAAAAhlbXB0eVZlYwkAAZsAAAABAgAAAAAEAAAAC3JzYVNpZ1ZhbGlkCQAB+AAAAAQFAAAABlNIQTI1NgkAAZsAAAABBQAAAAlzZXNzaW9uSWQFAAAAB3JzYVNpZ24FAAAACVJTQVBVQkxJQwMFAAAAC3JzYVNpZ1ZhbGlkBAAAAAhyYW5kSGFzaAkAAfcAAAABBQAAAAdyc2FTaWduBAAAAAluZXh0SW5mbzEJAQAAAAhOZXh0UmFuZAAAAAIFAAAACGVtcHR5VmVjBQAAAAhyYW5kSGFzaAQAAAAJbmV4dEluZm8yCQEAAAAITmV4dFJhbmQAAAACCQABkQAAAAIFAAAACW5leHRJbmZvMQAAAAAAAAAAAAkAAZEAAAACBQAAAAluZXh0SW5mbzEAAAAAAAAAAAEEAAAACW5leHRJbmZvMwkBAAAACE5leHRSYW5kAAAAAgkAAZEAAAACBQAAAAluZXh0SW5mbzIAAAAAAAAAAAAJAAGRAAAAAgUAAAAJbmV4dEluZm8yAAAAAAAAAAABBAAAAAluZXh0SW5mbzQJAQAAAAhOZXh0UmFuZAAAAAIJAAGRAAAAAgUAAAAJbmV4dEluZm8zAAAAAAAAAAAACQABkQAAAAIFAAAACW5leHRJbmZvMwAAAAAAAAAAAQQAAAAJbmV4dEluZm81CQEAAAAITmV4dFJhbmQAAAACCQABkQAAAAIFAAAACW5leHRJbmZvNAAAAAAAAAAAAAkAAZEAAAACBQAAAAluZXh0SW5mbzQAAAAAAAAAAAEEAAAACW5leHRJbmZvNgkBAAAACE5leHRSYW5kAAAAAgkAAZEAAAACBQAAAAluZXh0SW5mbzUAAAAAAAAAAAAJAAGRAAAAAgUAAAAJbmV4dEluZm81AAAAAAAAAAABBAAAAAluZXh0SW5mbzcJAQAAAAhOZXh0UmFuZAAAAAIJAAGRAAAAAgUAAAAJbmV4dEluZm82AAAAAAAAAAAACQABkQAAAAIFAAAACW5leHRJbmZvNgAAAAAAAAAAAQQAAAAJbmV4dEluZm84CQEAAAAITmV4dFJhbmQAAAACCQABkQAAAAIFAAAACW5leHRJbmZvNwAAAAAAAAAAAAkAAZEAAAACBQAAAAluZXh0SW5mbzcAAAAAAAAAAAEEAAAACW5leHRJbmZvOQkBAAAACE5leHRSYW5kAAAAAgkAAZEAAAACBQAAAAluZXh0SW5mbzgAAAAAAAAAAAAJAAGRAAAAAgUAAAAJbmV4dEluZm84AAAAAAAAAAABCQABkQAAAAIJAQAAAAhOZXh0UmFuZAAAAAIJAAGRAAAAAgUAAAAJbmV4dEluZm85AAAAAAAAAAAACQABkQAAAAIFAAAACW5leHRJbmZvOQAAAAAAAAAAAQAAAAAAAAAAAAkAAAIAAAABAgAAABVJbnZhbGlkIFJTQSBzaWduYXR1cmUAAAABAAAAAWkBAAAABnJhbmRvbQAAAAIAAAAJc2Vzc2lvbklkAAAAB3JzYVNpZ24EAAAACGN1cnJWZWN0CQEAAAASR2VuZXJhdGVSYW5kVmVjdG9yAAAAAwUAAAAJc2Vzc2lvbklkAAAAAAAAAAAKBQAAAAdyc2FTaWduBAAAAAFzCQAAyAAAAAEFAAAACGN1cnJWZWN0BAAAAAVyYW5kMQMJAABnAAAAAgUAAAABcwAAAAAAAAAAAQkAAaQAAAABCQAEsQAAAAEJAADJAAAAAgkAAMoAAAACBQAAAAhjdXJyVmVjdAAAAAAAAAAAAAAAAAAAAAAACAIAAAAABAAAAAVyYW5kMgMJAABnAAAAAgUAAAABcwAAAAAAAAAAAgkAASwAAAACCQABLAAAAAIFAAAABXJhbmQxAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAEAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQxBAAAAAVyYW5kMwMJAABnAAAAAgUAAAABcwAAAAAAAAAAAwkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAIAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQyBAAAAAVyYW5kNAMJAABnAAAAAgUAAAABcwAAAAAAAAAABAkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAMAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQzBAAAAAVyYW5kNQMJAABnAAAAAgUAAAABcwAAAAAAAAAABQkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQ0BAAAAAVyYW5kNgMJAABnAAAAAgUAAAABcwAAAAAAAAAABgkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAUAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQ1BAAAAAVyYW5kNwMJAABnAAAAAgUAAAABcwAAAAAAAAAABwkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAYAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQ2BAAAAAVyYW5kOAMJAABnAAAAAgUAAAABcwAAAAAAAAAACAkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQ3BAAAAAVyYW5kOQMJAABnAAAAAgUAAAABcwAAAAAAAAAACQkAASwAAAACCQABLAAAAAIFAAAABXJhbmQyAgAAAAFfCQABpAAAAAEJAASxAAAAAQkAAMkAAAACCQAAygAAAAIFAAAACGN1cnJWZWN0CQAAaAAAAAIAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAAgFAAAABXJhbmQ4BAAAAAZyYW5kMTADCQAAZwAAAAIFAAAAAXMAAAAAAAAAAAoJAAEsAAAAAgkAASwAAAACBQAAAAVyYW5kMgIAAAABXwkAAaQAAAABCQAEsQAAAAEJAADJAAAAAgkAAMoAAAACBQAAAAhjdXJyVmVjdAkAAGgAAAACAAAAAAAAAAAJAAAAAAAAAAAIAAAAAAAAAAAIBQAAAAVyYW5kOQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAARR2VuZXJhdGVkX051bWJlcnMFAAAABnJhbmQxMAUAAAADbmlsAAAAAPgBaYs=", "chainId": 84, "height": 556499, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqlAiANSmBpDHYKP9sKgeN/l1bAb28g/tGlgDkwT5FiMN4X3pwdvdxE7mvSR8/41dU9rx4jG+6tZpb1ULVDPs431tR2IRaTXw5Cj+Ac2vhL+5JamCerGD1UW+bh/EGQtxo8W3YLDrofXB5QHJx4Pkz2Kgf+oS/C8hHuB/U4krO76U0507GTjZPP9kRQ0uLSMeqQXt8wXS+nMp5wajqxPpDLMaSREgsKwv/AEkP4dzpTYbikLBYl4qtdJsD84HLFSkiwd3BhcOrPjoIYmLxQuBD5TIMKTKD3sdZgaY9rsyqx3A00innyxD6zp3b4gFpUOX8JxKZdEC2myEqleNgg7GzwIDAQAB")
5+
6+let SERVER = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
7+
8+func RandToStr (r) = if (if ((r >= 1))
9+ then (100 >= r)
10+ else false)
11+ then toString(r)
12+ else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
13+
14+
15+func abs (val) = if ((0 > val))
16+ then -(val)
17+ else val
18+
19+
20+func NextRand (currRandsVect,remainingHash) = {
21+ let nextRandInt = abs(toInt(remainingHash))
22+ let nextRandVect = toBytes(nextRandInt)
23+ let s = (size(currRandsVect) / 8)
24+ if ((0 == s))
25+ then [nextRandVect, drop(remainingHash, 1)]
26+ else {
27+ let duplicate = if (if (if (if (if (if (if (if (if (if ((s >= 1))
28+ then (take(currRandsVect, 8) == nextRandVect)
29+ else false)
30+ then true
31+ else if ((s >= 2))
32+ then (take(drop(currRandsVect, (1 * 8)), 8) == nextRandVect)
33+ else false)
34+ then true
35+ else if ((s >= 3))
36+ then (take(drop(currRandsVect, (2 * 8)), 8) == nextRandVect)
37+ else false)
38+ then true
39+ else if ((s >= 4))
40+ then (take(drop(currRandsVect, (3 * 8)), 8) == nextRandVect)
41+ else false)
42+ then true
43+ else if ((s >= 5))
44+ then (take(drop(currRandsVect, (4 * 8)), 8) == nextRandVect)
45+ else false)
46+ then true
47+ else if ((s >= 6))
48+ then (take(drop(currRandsVect, (5 * 8)), 8) == nextRandVect)
49+ else false)
50+ then true
51+ else if ((s >= 7))
52+ then (take(drop(currRandsVect, (6 * 8)), 8) == nextRandVect)
53+ else false)
54+ then true
55+ else if ((s >= 8))
56+ then (take(drop(currRandsVect, (7 * 8)), 8) == nextRandVect)
57+ else false)
58+ then true
59+ else if ((s >= 9))
60+ then (take(drop(currRandsVect, (8 * 8)), 8) == nextRandVect)
61+ else false)
62+ then true
63+ else if ((s >= 10))
64+ then (take(drop(currRandsVect, (9 * 8)), 8) == nextRandVect)
65+ else false
66+ if (duplicate)
67+ then [currRandsVect, drop(remainingHash, 1)]
68+ else [(currRandsVect + nextRandVect), drop(remainingHash, 1)]
69+ }
70+ }
71+
72+
73+func GenerateRandVector (sessionId,s,rsaSign) = {
74+ let emptyVec = toBytes("")
75+ let rsaSigValid = rsaVerify(SHA256, toBytes(sessionId), rsaSign, RSAPUBLIC)
76+ if (rsaSigValid)
77+ then {
78+ let randHash = sha256(rsaSign)
79+ let nextInfo1 = NextRand(emptyVec, randHash)
80+ let nextInfo2 = NextRand(nextInfo1[0], nextInfo1[1])
81+ let nextInfo3 = NextRand(nextInfo2[0], nextInfo2[1])
82+ let nextInfo4 = NextRand(nextInfo3[0], nextInfo3[1])
83+ let nextInfo5 = NextRand(nextInfo4[0], nextInfo4[1])
84+ let nextInfo6 = NextRand(nextInfo5[0], nextInfo5[1])
85+ let nextInfo7 = NextRand(nextInfo6[0], nextInfo6[1])
86+ let nextInfo8 = NextRand(nextInfo7[0], nextInfo7[1])
87+ let nextInfo9 = NextRand(nextInfo8[0], nextInfo8[1])
88+NextRand(nextInfo9[0], nextInfo9[1])[0]
89+ }
90+ else throw("Invalid RSA signature")
91+ }
92+
93+
94+@Callable(i)
95+func random (sessionId,rsaSign) = {
96+ let currVect = GenerateRandVector(sessionId, 10, rsaSign)
97+ let s = size(currVect)
98+ let rand1 = if ((s >= 1))
99+ then toString(toInt(take(drop(currVect, 0), 8)))
100+ else ""
101+ let rand2 = if ((s >= 2))
102+ then ((rand1 + "_") + toString(toInt(take(drop(currVect, (1 * 8)), 8))))
103+ else rand1
104+ let rand3 = if ((s >= 3))
105+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (2 * 8)), 8))))
106+ else rand2
107+ let rand4 = if ((s >= 4))
108+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (3 * 8)), 8))))
109+ else rand3
110+ let rand5 = if ((s >= 5))
111+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (4 * 8)), 8))))
112+ else rand4
113+ let rand6 = if ((s >= 6))
114+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (5 * 8)), 8))))
115+ else rand5
116+ let rand7 = if ((s >= 7))
117+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (6 * 8)), 8))))
118+ else rand6
119+ let rand8 = if ((s >= 8))
120+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (7 * 8)), 8))))
121+ else rand7
122+ let rand9 = if ((s >= 9))
123+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (8 * 8)), 8))))
124+ else rand8
125+ let rand10 = if ((s >= 10))
126+ then ((rand2 + "_") + toString(toInt(take(drop(currVect, (9 * 8)), 8))))
127+ else rand9
128+ WriteSet([DataEntry("Generated_Numbers", rand10)])
129+ }
130+
131+

github/deemru/w8io/873ac7e 
15.54 ms