tx · 2kHe9rNnzhNLtYNYoNb97TuAFzsPdDynoVQwaiMENWLB

3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7:  -0.01000000 Waves

2022.03.16 22:05 [1966901] smart account 3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7 > SELF 0.00000000 Waves

{ "type": 13, "id": "2kHe9rNnzhNLtYNYoNb97TuAFzsPdDynoVQwaiMENWLB", "fee": 1000000, "feeAssetId": null, "timestamp": 1647457290377, "version": 2, "chainId": 84, "sender": "3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7", "senderPublicKey": "J283pC8bzRfJ3j1oxPrgDH8hjUVhFZS2CiRcPTmzQukz", "proofs": [ "2ARAc8KwBRuBA87zR9rHig3ZQygJRtPpLqpgQ2mz5vsEyu1tag2d5WUE8Q7p7Q45EgGpWFrRubpnvGPVqVemUXfc" ], "script": "base64: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DGtleVJpc3VsdGF0bwIAAAACOiAFAAAAAXQHAwkBAAAAASEAAAABBQAAAAppc0VzdHJhdHRvBAAAABVoZWlnaHRCbG9jY29DYW5kaWRhdG8JAQAAAAhteUdldEludAAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAAZZmllbGROYW1lSGVpZ2h0RXh0cmFjdGlvbgIAAAAnRXJyb3JlIGdlbmVyaWNvIHN1IGRhdGkgZGVsbGEgcmljaGllc3RhAwkAAGYAAAACBQAAABVoZWlnaHRCbG9jY29DYW5kaWRhdG8FAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABlEZXZpIGFzcGV0dGFyZSBpbCBibG9jY28gCQABpAAAAAEFAAAAFWhlaWdodEJsb2Njb0NhbmRpZGF0bwIAAAASLiBzaWFtbyBhbCBibG9jY28gCQABpAAAAAEFAAAABmhlaWdodAQAAAAHa2V5U2VtZQkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAAA1maWVsZE5hbWVTZWVkBAAAAARzZWVkBAAAAAckbWF0Y2gwCQAEHAAAAAIFAAAABHRoaXMFAAAAB2tleVNlbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQJAAACAAAAAQIAAAAsU2VtZSBub24gdHJvdmF0by4gUXVhbGNvc2Egw6ggYW5kYXRhIHN0b3J0YSEEAAAAD2Jsb2Njb0NhbmRpZGF0bwQAAAAHJG1hdGNoMAkAA+0AAAABBQAAABVoZWlnaHRCbG9jY29DYW5kaWRhdG8DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACUJsb2NrSW5mbwQAAAAFYmxvY2sFAAAAByRtYXRjaDAFAAAABWJsb2NrCQAAAgAAAAECAAAAKkVycm9yZTogSWwgYmxvY2NvIGRpIGVzdHJhemlvbmUgbm9uIGVzaXN0ZQQAAAAIdnJmVmFsdWUEAAAAByRtYXRjaDAIBQAAAA9ibG9jY29DYW5kaWRhdG8AAAADdnJmAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAF0BQAAAAckbWF0Y2gwBQAAAAF0CQAAAgAAAAECAAAAIUJsb2NjbyBub24gaW4gdmVyc2lvbmUgNSByaXRlbnRhLgQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAEc2VlZAgFAAAAD2Jsb2Njb0NhbmRpZGF0bwAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCAUAAAAPYmxvY2NvQ2FuZGlkYXRvAAAAEmdlbmVyYXRvclB1YmxpY0tleQkBAAAABmdldFZyZgAAAAEFAAAAD2Jsb2Njb0NhbmRpZGF0bwQAAAADc2hhCQACXAAAAAEJAAtUAAAAAQkAC1QAAAABBQAAAARyYW5kBAAAAA5zdHJDYXJkaW5hbGl0YQkAAaQAAAABCQEAAAAIbXlHZXRJbnQAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAFGZpZWxkTmFtZUNhcmRpbmFsaXRhAgAAABtFcnJvcmUgbGV0dHVyYSBjYXJkaW5hbGl0w6AEAAAAEHN0ckRhdGFSaWNoaWVzdGEJAAGkAAAAAQkBAAAACG15R2V0SW50AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABZmaWVsZE5hbWVEYXRhUmljaGllc3RhAgAAABxFcnJvcmUgbGV0dHVyYSBEYXRhUmljaGllc3RhBAAAAA1zdHJFc3RyYXppb25pCQABpAAAAAEJAQAAAAhteUdldEludAAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAATZmllbGROYW1lRXN0cmF6aW9uaQIAAAAZRXJyb3JlIGxldHR1cmEgRXN0cmF6aW9uaQQAAAAEanNvbgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAQAAAAhvcGVuSnNvbgAAAAIFAAAAEmZpZWxkTmFtZUlkQ291bnRlcgkAAaQAAAABBQAAAA9udW1lcm9SaWNoaWVzdGEJAQAAAAdhZGRKc29uAAAAAgUAAAAQZmllbGROYW1lQ291bnRlcgkAAaQAAAABBQAAAAxtYXhSaWNoaWVzdGEJAQAAAAdhZGRKc29uAAAAAgUAAAASZmllbGROYW1lUmljaGllc3RhBQAAAAlyaWNoaWVzdGEJAQAAAAdhZGRKc29uAAAAAgUAAAAUZmllbGROYW1lQ2FyZGluYWxpdGEFAAAADnN0ckNhcmRpbmFsaXRhCQEAAAAHYWRkSnNvbgAAAAIFAAAAE2ZpZWxkTmFtZUVzdHJhemlvbmkFAAAADXN0ckVzdHJhemlvbmkJAQAAAAdhZGRKc29uAAAAAgUAAAAWZmllbGROYW1lRGF0YVJpY2hpZXN0YQUAAAAQc3RyRGF0YVJpY2hpZXN0YQkBAAAAB2FkZEpzb24AAAACBQAAABBmaWVsZE5hbWVTZWVkQjE2CQACXAAAAAEFAAAABHNlZWQJAQAAAAdhZGRKc29uAAAAAgUAAAAZZmllbGROYW1lSGVpZ2h0RXh0cmFjdGlvbgkAAaQAAAABBQAAABVoZWlnaHRCbG9jY29DYW5kaWRhdG8JAQAAAAljbG9zZUpzb24AAAACBQAAABJmaWVsZE5hbWVSaXN1bHRhdG8FAAAAA3NoYQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAADWZpZWxkTmFtZUpzb24FAAAABGpzb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMa2V5UmlzdWx0YXRvBQAAAANzaGEFAAAAA25pbAkAAAIAAAABAgAAACRFcnJvcmU6IG5vbiBkb3ZyZXN0aSBwYXNzYXJlIGRhIHF1w6wAAAABaQEAAAAIcmVnaXN0cmEAAAADAAAACXJpY2hpZXN0YQAAAAtjYXJkaW5hbGl0YQAAAAplc3RyYXppb25pBAAAAAlrZXlQcmVmaXgJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfBQAAAAlyaWNoaWVzdGECAAAAAV8EAAAACmtleUNvdW50ZXIJAAEsAAAAAgUAAAAJa2V5UHJlZml4BQAAABBmaWVsZE5hbWVDb3VudGVyBAAAAApuUmljaGllc3RhBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmtleUNvdW50ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYwUAAAAHJG1hdGNoMAkAAGQAAAACBQAAAAFjAAAAAAAAAAABAAAAAAAAAAABBAAAAAprZXlQcmVmaXhOCQABLAAAAAIJAAEsAAAAAgUAAAAJa2V5UHJlZml4CQABpAAAAAEFAAAACm5SaWNoaWVzdGECAAAAAV8EAAAABHNlZWQJAQAAAApyYW5kb21pemVyAAAAAQUAAAABaQQAAAAIY3VyckRhdGUJAQAAAAxnZXRUaW1lc3RhbXAAAAAABAAAABBoZWlnaHRFeHRyYWN0aW9uCQAAZAAAAAIFAAAABmhlaWdodAUAAAAKZGVsYXlCbG9jawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKa2V5Q291bnRlcgUAAAAKblJpY2hpZXN0YQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABlmaWVsZE5hbWVIZWlnaHRFeHRyYWN0aW9uBQAAABBoZWlnaHRFeHRyYWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAFGZpZWxkTmFtZUNhcmRpbmFsaXRhBQAAAAtjYXJkaW5hbGl0YQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABNmaWVsZE5hbWVFc3RyYXppb25pBQAAAAplc3RyYXppb25pCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAFmZpZWxkTmFtZURhdGFSaWNoaWVzdGEFAAAACGN1cnJEYXRlCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAANZmllbGROYW1lU2VlZAUAAAAEc2VlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAEGZpZWxkTmFtZVNlZWRCMTYJAAJcAAAAAQUAAAAEc2VlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAEmZpZWxkTmFtZVJpY2hpZXN0YQUAAAAJcmljaGllc3RhBQAAAANuaWwAAAAAtiGkqw==", "height": 1966901, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BoaeGAyH5JDHXHUH7Q5jXH9yiHSmtiUMMd7HuuLswh5g Next: J9gineEv4ZkEpDa7dp6kEXigdsVUsiNbSWRh4CtqCxPA Diff:
OldNewDifferences
107107 then {
108108 let heightBloccoCandidato = myGetInt((keyPrefixN + fieldNameHeightExtraction), "Errore generico su dati della richiesta")
109109 if ((heightBloccoCandidato > height))
110- then throw(("Devi aspettare il blocco " + toString(heightBloccoCandidato)))
110+ then throw(((("Devi aspettare il blocco " + toString(heightBloccoCandidato)) + ". siamo al blocco ") + toString(height)))
111111 else {
112112 let keySeme = (keyPrefixN + fieldNameSeed)
113113 let seed = match getBinary(this, keySeme) {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let delayBlock = 1
55
66 let fieldNameRisultato = "seme_estratto"
77
88 let fieldNameSeed = "seed"
99
1010 let fieldNameSeedB16 = "seed_b16"
1111
1212 let fieldNameHeightExtraction = "height_extraction"
1313
1414 let fieldNameJson = "json"
1515
1616 let fieldNameCardinalita = "cardinalita"
1717
1818 let fieldNameDataRichiesta = "data_richiesta"
1919
2020 let fieldNameEstrazioni = "estrazioni"
2121
2222 let fieldNameRichiesta = "richiesta"
2323
2424 let fieldNameCounter = "counter"
2525
2626 let fieldNameIdCounter = "id_richiesta"
2727
2828 func openJson (key,value) = ((("{\"" + key) + "\":\"") + value)
2929
3030
3131 func addJson (key,value) = ((("\", \"" + key) + "\":\" ") + value)
3232
3333
3434 func closeJson (key,value) = (((("\", \"" + key) + "\":\" ") + value) + "\"}")
3535
3636
3737 func myGetInt (key,msg) = {
3838 let myInt = match getInteger(this, key) {
3939 case t: Int =>
4040 t
4141 case _ =>
4242 throw(msg)
4343 }
4444 myInt
4545 }
4646
4747
4848 func getCurrentBlock () = {
4949 let block = match blockInfoByHeight(height) {
5050 case x: BlockInfo =>
5151 x
5252 case _ =>
5353 throw("Alla ricerca del blocco corrente: Blocco non trovato!")
5454 }
5555 block
5656 }
5757
5858
5959 func getTimestamp () = {
6060 let block = match blockInfoByHeight(height) {
6161 case x: BlockInfo =>
6262 x.timestamp
6363 case _ =>
6464 throw("Alla ricerca del `timestamp`: Blocco non trovato!")
6565 }
6666 block
6767 }
6868
6969
7070 func getVrf (thisBlock) = {
7171 let vrf = match thisBlock.vrf {
7272 case t: ByteVector =>
7373 t
7474 case _ =>
7575 throw("Alla ricerca del `vrf`: Blocco non trovato o blocco non in versione 5 ritenta.")
7676 }
7777 vrf
7878 }
7979
8080
8181 func randomizer (inv) = {
8282 let currentBlock = getCurrentBlock()
8383 let rand = (((((inv.transactionId + inv.callerPublicKey) + getVrf(currentBlock)) + currentBlock.generationSignature) + toBytes(currentBlock.timestamp)) + toBytes(currentBlock.height))
8484 sha256_16Kb(sha256_16Kb(rand))
8585 }
8686
8787
8888 @Callable(i)
8989 func estrai (richiesta,numero) = {
9090 let keyPrefix = (((toString(i.caller) + "_") + richiesta) + "_")
9191 let keyCounter = (keyPrefix + fieldNameCounter)
9292 let maxRichiesta = myGetInt(keyCounter, "La richiesta fatta non è stata ancora registrata")
9393 let numeroRichiesta = if ((0 >= numero))
9494 then maxRichiesta
9595 else if ((maxRichiesta >= numero))
9696 then numero
9797 else throw("Non esiste una richiesta con questo numero")
9898 let keyPrefixN = ((keyPrefix + toString(numeroRichiesta)) + "_")
9999 let keyRisultato = (keyPrefixN + fieldNameRisultato)
100100 let isEstratto = match getString(this, keyRisultato) {
101101 case t: String =>
102102 throw(((("Risultato già presente in blockchain: " + keyRisultato) + ": ") + t))
103103 case _ =>
104104 false
105105 }
106106 if (!(isEstratto))
107107 then {
108108 let heightBloccoCandidato = myGetInt((keyPrefixN + fieldNameHeightExtraction), "Errore generico su dati della richiesta")
109109 if ((heightBloccoCandidato > height))
110- then throw(("Devi aspettare il blocco " + toString(heightBloccoCandidato)))
110+ then throw(((("Devi aspettare il blocco " + toString(heightBloccoCandidato)) + ". siamo al blocco ") + toString(height)))
111111 else {
112112 let keySeme = (keyPrefixN + fieldNameSeed)
113113 let seed = match getBinary(this, keySeme) {
114114 case t: ByteVector =>
115115 t
116116 case _ =>
117117 throw("Seme non trovato. Qualcosa è andata storta!")
118118 }
119119 let bloccoCandidato = match blockInfoByHeight(heightBloccoCandidato) {
120120 case block: BlockInfo =>
121121 block
122122 case _ =>
123123 throw("Errore: Il blocco di estrazione non esiste")
124124 }
125125 let vrfValue = match bloccoCandidato.vrf {
126126 case t: ByteVector =>
127127 t
128128 case _ =>
129129 throw("Blocco non in versione 5 ritenta.")
130130 }
131131 let rand = (((seed + bloccoCandidato.generationSignature) + bloccoCandidato.generatorPublicKey) + getVrf(bloccoCandidato))
132132 let sha = toBase16String(sha256_16Kb(sha256_16Kb(rand)))
133133 let strCardinalita = toString(myGetInt((keyPrefixN + fieldNameCardinalita), "Errore lettura cardinalità"))
134134 let strDataRichiesta = toString(myGetInt((keyPrefixN + fieldNameDataRichiesta), "Errore lettura DataRichiesta"))
135135 let strEstrazioni = toString(myGetInt((keyPrefixN + fieldNameEstrazioni), "Errore lettura Estrazioni"))
136136 let json = ((((((((openJson(fieldNameIdCounter, toString(numeroRichiesta)) + addJson(fieldNameCounter, toString(maxRichiesta))) + addJson(fieldNameRichiesta, richiesta)) + addJson(fieldNameCardinalita, strCardinalita)) + addJson(fieldNameEstrazioni, strEstrazioni)) + addJson(fieldNameDataRichiesta, strDataRichiesta)) + addJson(fieldNameSeedB16, toBase16String(seed))) + addJson(fieldNameHeightExtraction, toString(heightBloccoCandidato))) + closeJson(fieldNameRisultato, sha))
137137 [StringEntry((keyPrefixN + fieldNameJson), json), StringEntry(keyRisultato, sha)]
138138 }
139139 }
140140 else throw("Errore: non dovresti passare da quì")
141141 }
142142
143143
144144
145145 @Callable(i)
146146 func registra (richiesta,cardinalita,estrazioni) = {
147147 let keyPrefix = (((toString(i.caller) + "_") + richiesta) + "_")
148148 let keyCounter = (keyPrefix + fieldNameCounter)
149149 let nRichiesta = match getInteger(this, keyCounter) {
150150 case c: Int =>
151151 (c + 1)
152152 case _ =>
153153 1
154154 }
155155 let keyPrefixN = ((keyPrefix + toString(nRichiesta)) + "_")
156156 let seed = randomizer(i)
157157 let currDate = getTimestamp()
158158 let heightExtraction = (height + delayBlock)
159159 [IntegerEntry(keyCounter, nRichiesta), IntegerEntry((keyPrefixN + fieldNameHeightExtraction), heightExtraction), IntegerEntry((keyPrefixN + fieldNameCardinalita), cardinalita), IntegerEntry((keyPrefixN + fieldNameEstrazioni), estrazioni), IntegerEntry((keyPrefixN + fieldNameDataRichiesta), currDate), BinaryEntry((keyPrefixN + fieldNameSeed), seed), StringEntry((keyPrefixN + fieldNameSeedB16), toBase16String(seed)), StringEntry((keyPrefixN + fieldNameRichiesta), richiesta)]
160160 }
161161
162162

github/deemru/w8io/873ac7e 
31.64 ms