tx · FatyWDzPd2qMCMinBxzhepp789WFCHHS9Xe2GFTAofPH

3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7:  -0.01000000 Waves

2022.03.17 01:53 [1967134] smart account 3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7 > SELF 0.00000000 Waves

{ "type": 13, "id": "FatyWDzPd2qMCMinBxzhepp789WFCHHS9Xe2GFTAofPH", "fee": 1000000, "feeAssetId": null, "timestamp": 1647471061411, "version": 2, "chainId": 84, "sender": "3MvebeGZYw4DzztAuqcdxyT22s6rB3yMNj7", "senderPublicKey": "J283pC8bzRfJ3j1oxPrgDH8hjUVhFZS2CiRcPTmzQukz", "proofs": [ "4dBzEAd95KgE1s3ZPciqcqNZTz1BHt4PZsJZEo1uaNHu5VELEEwF5dMX5sKuG1R8MoaqdEPWHmSGoWX9wVMc7Viu" ], "script": "base64:AAIFAAAAAAAAAA8IAhIECgIIARIFCgMIAQEAAAAbAAAAAApkZWxheUJsb2NrAAAAAAAAAAABAAAAAAptaW5QYXltZW50AAAAAAAF9eEAAAAAABFhY2NlcHRhYmxlQXNzZXRJZAEAAAAg5PpGdWo9J1HbfiCa7IUj8tNs55tRKSuPgPaCoKWt9soAAAAADG1zZ1BhZ2FtZW50bwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAgRGV2aSBlZmZldHR1YXJlIHVuIHBhZ2FtZW50byBpbiAJAAJYAAAAAQUAAAARYWNjZXB0YWJsZUFzc2V0SWQCAAAACyBkaSBhbG1lbm8gCQABpAAAAAEFAAAACm1pblBheW1lbnQAAAAAEmZpZWxkTmFtZVJpc3VsdGF0bwIAAAANc2VtZV9lc3RyYXR0bwAAAAANZmllbGROYW1lU2VlZAIAAAAEc2VlZAAAAAAQZmllbGROYW1lU2VlZEIxNgIAAAAIc2VlZF9iMTYAAAAAGWZpZWxkTmFtZUhlaWdodEV4dHJhY3Rpb24CAAAAEWhlaWdodF9leHRyYWN0aW9uAAAAAA1maWVsZE5hbWVKc29uAgAAAARqc29uAAAAABRmaWVsZE5hbWVDYXJkaW5hbGl0YQIAAAALY2FyZGluYWxpdGEAAAAAFmZpZWxkTmFtZURhdGFSaWNoaWVzdGECAAAADmRhdGFfcmljaGllc3RhAAAAABNmaWVsZE5hbWVFc3RyYXppb25pAgAAAAplc3RyYXppb25pAAAAABJmaWVsZE5hbWVSaWNoaWVzdGECAAAACXJpY2hpZXN0YQAAAAAQZmllbGROYW1lQ291bnRlcgIAAAAHY291bnRlcgAAAAASZmllbGROYW1lSWRDb3VudGVyAgAAAAxpZF9yaWNoaWVzdGEAAAAAEWZpZWxkTmFtZVByb3ZpZGVyAgAAAAhwcm92aWRlcgEAAAALaXNQYXltZW50T2sAAAABAAAAAWkDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAMbXNnUGFnYW1lbnRvBAAAAAFwCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAckbWF0Y2gwCAUAAAABcAAAAAdhc3Nl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DG1heFJpY2hpZXN0YQkBAAAACG15R2V0SW50AAAAAgUAAAAKa2V5Q291bnRlcgIAAAAxTGEgcmljaGllc3RhIGZhdHRhIG5vbiDDqCBzdGF0YSBhbmNvcmEgcmVnaXN0cmF0YQQAAAAPbnVtZXJvUmljaGllc3RhAwkAAGcAAAACAAAAAAAAAAAABQAAAAZudW1lcm8FAAAADG1heFJpY2hpZXN0YQMJAABnAAAAAgUAAAAMbWF4UmljaGllc3RhBQAAAAZudW1lcm8FAAAABm51bWVybwkAAAIAAAABAgAAACpOb24gZXNpc3RlIHVuYSByaWNoaWVzdGEgY29uIHF1ZXN0byBudW1lcm8EAAAACmtleVByZWZpeE4JAAEsAAAAAgkAASwAAAACBQAAAAlrZXlQcmVmaXgJAAGkAAAAAQUAAAAPbnVtZXJvUmljaGllc3RhAgAAAAFfBAAAAAxrZXlSaXN1bHRhdG8JAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAASZmllbGROYW1lUmlzdWx0YXRvBAAAAAppc0VzdHJhdHRvBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAADGtleVJpc3VsdGF0bwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAF0BQAAAAckbWF0Y2gwCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJ1Jpc3VsdGF0byBnacOgIHByZXNlbnRlIGluIGJsb2NrY2hhaW46IAUAAAAMa2V5UmlzdWx0YXRvAgAAAAI6IAUAAAABdAcDCQEAAAABIQAAAAEFAAAACmlzRXN0cmF0dG8EAAAAFWhlaWdodEJsb2Njb0NhbmRpZGF0bwkBAAAACG15R2V0SW50AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABlmaWVsZE5hbWVIZWlnaHRFeHRyYWN0aW9uAgAAACdFcnJvcmUgZ2VuZXJpY28gc3UgZGF0aSBkZWxsYSByaWNoaWVzdGEDCQAAZgAAAAIFAAAAFWhlaWdodEJsb2Njb0NhbmRpZGF0bwUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAGURldmkgYXNwZXR0YXJlIGlsIGJsb2NjbyAJAAGkAAAAAQUAAAAVaGVpZ2h0QmxvY2NvQ2FuZGlkYXRvAgAAABIuIHNpYW1vIGFsIGJsb2NjbyAJAAGkAAAAAQUAAAAGaGVpZ2h0BAAAAAdrZXlTZW1lCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAADWZpZWxkTmFtZVNlZWQEAAAABHNlZWQEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAAHa2V5U2VtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAkAAAIAAAABAgAAACxTZW1lIG5vbiB0cm92YXRvLiBRdWFsY29zYSDDqCBhbmRhdGEgc3RvcnRhIQQAAAAPYmxvY2NvQ2FuZGlkYXRvBAAAAAckbWF0Y2gwCQAD7QAAAAEFAAAAFWhlaWdodEJsb2Njb0NhbmRpZGF0bwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAJQmxvY2tJbmZvBAAAAAVibG9jawUAAAAHJG1hdGNoMAUAAAAFYmxvY2sJAAACAAAAAQIAAAAqRXJyb3JlOiBJbCBibG9jY28gZGkgZXN0cmF6aW9uZSBub24gZXNpc3RlBAAAAAh2cmZWYWx1ZQQAAAAHJG1hdGNoMAgFAAAAD2Jsb2Njb0NhbmRpZGF0bwAAAAN2cmYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQJAAACAAAAAQIAAAAhQmxvY2NvIG5vbiBpbiB2ZXJzaW9uZSA1IHJpdGVudGEuBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACBQAAAARzZWVkCAUAAAAPYmxvY2NvQ2FuZGlkYXRvAAAAE2dlbmVyYXRpb25TaWduYXR1cmUIBQAAAA9ibG9jY29DYW5kaWRhdG8AAAASZ2VuZXJhdG9yUHVibGljS2V5CQEAAAAGZ2V0VnJmAAAAAQUAAAAPYmxvY2NvQ2FuZGlkYXRvBAAAAANzaGEJAAJcAAAAAQkAC1QAAAABCQALVAAAAAEFAAAABHJhbmQEAAAADnN0ckNhcmRpbmFsaXRhCQABpAAAAAEJAQAAAAhteUdldEludAAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAAUZmllbGROYW1lQ2FyZGluYWxpdGECAAAAG0Vycm9yZSBsZXR0dXJhIGNhcmRpbmFsaXTDoAQAAAAQc3RyRGF0YVJpY2hpZXN0YQkAAaQAAAABCQEAAAAIbXlHZXRJbnQAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAAFmZpZWxkTmFtZURhdGFSaWNoaWVzdGECAAAAHEVycm9yZSBsZXR0dXJhIERhdGFSaWNoaWVzdGEEAAAADXN0ckVzdHJhemlvbmkJAAGkAAAAAQkBAAAACG15R2V0SW50AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABNmaWVsZE5hbWVFc3RyYXppb25pAgAAABlFcnJvcmUgbGV0dHVyYSBFc3RyYXppb25pBAAAAARqc29uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQEAAAAIb3Blbkpzb24AAAACBQAAABJmaWVsZE5hbWVJZENvdW50ZXIJAAGkAAAAAQUAAAAPbnVtZXJvUmljaGllc3RhCQEAAAAHYWRkSnNvbgAAAAIFAAAAEGZpZWxkTmFtZUNvdW50ZXIJAAGkAAAAAQUAAAAMbWF4UmljaGllc3RhCQEAAAAHYWRkSnNvbgAAAAIFAAAAEWZpZWxkTmFtZVByb3ZpZGVyBQAAAA9zdHJPd25lckFkZHJlc3MJAQAAAAdhZGRKc29uAAAAAgUAAAASZmllbGROYW1lUmljaGllc3RhBQAAAAlyaWNoaWVzdGEJAQAAAAdhZGRKc29uAAAAAgUAAAAUZmllbGROYW1lQ2FyZGluYWxpdGEFAAAADnN0ckNhcmRpbmFsaXRhCQEAAAAHYWRkSnNvbgAAAAIFAAAAE2ZpZWxkTmFtZUVzdHJhemlvbmkFAAAADXN0ckVzdHJhemlvbmkJAQAAAAdhZGRKc29uAAAAAgUAAAAWZmllbGROYW1lRGF0YVJpY2hpZXN0YQUAAAAQc3RyRGF0YVJpY2hpZXN0YQkBAAAAB2FkZEpzb24AAAACBQAAABBmaWVsZE5hbWVTZWVkQjE2CQACXAAAAAEFAAAABHNlZWQJAQAAAAdhZGRKc29uAAAAAgUAAAAZZmllbGROYW1lSGVpZ2h0RXh0cmFjdGlvbgkAAaQAAAABBQAAABVoZWlnaHRCbG9jY29DYW5kaWRhdG8JAQAAAAljbG9zZUpzb24AAAACBQAAABJmaWVsZE5hbWVSaXN1bHRhdG8FAAAAA3NoYQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAADWZpZWxkTmFtZUpzb24FAAAABGpzb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMa2V5UmlzdWx0YXRvBQAAAANzaGEFAAAAA25pbAkAAAIAAAABAgAAACRFcnJvcmU6IG5vbiBkb3ZyZXN0aSBwYXNzYXJlIGRhIHF1w6wBAAAACXJlZ2lzdHJhMQAAAAQAAAAJcmljaGllc3RhAAAAC2NhcmRpbmFsaXRhAAAACmVzdHJhemlvbmkAAAABaQQAAAAJa2V5UHJlZml4CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwUAAAAJcmljaGllc3RhAgAAAAFfBAAAAAprZXlDb3VudGVyCQABLAAAAAIFAAAACWtleVByZWZpeAUAAAAQZmllbGROYW1lQ291bnRlcgQAAAAKblJpY2hpZXN0YQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAAprZXlDb3VudGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWMFAAAAByRtYXRjaDAJAABkAAAAAgUAAAABYwAAAAAAAAAAAQAAAAAAAAAAAQQAAAAKa2V5UHJlZml4TgkAASwAAAACCQABLAAAAAIFAAAACWtleVByZWZpeAkAAaQAAAABBQAAAApuUmljaGllc3RhAgAAAAFfBAAAAARzZWVkCQEAAAAKcmFuZG9taXplcgAAAAEFAAAAAWkEAAAACGN1cnJEYXRlCQEAAAAMZ2V0VGltZXN0YW1wAAAAAAQAAAAQaGVpZ2h0RXh0cmFjdGlvbgkAAGQAAAACBQAAAAZoZWlnaHQFAAAACmRlbGF5QmxvY2sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACmtleUNvdW50ZXIFAAAACm5SaWNoaWVzdGEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAAZZmllbGROYW1lSGVpZ2h0RXh0cmFjdGlvbgUAAAAQaGVpZ2h0RXh0cmFjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABRmaWVsZE5hbWVDYXJkaW5hbGl0YQUAAAALY2FyZGluYWxpdGEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAKa2V5UHJlZml4TgUAAAATZmllbGROYW1lRXN0cmF6aW9uaQUAAAAKZXN0cmF6aW9uaQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABZmaWVsZE5hbWVEYXRhUmljaGllc3RhBQAAAAhjdXJyRGF0ZQkABEwAAAACCQEAAAALQmluYXJ5RW50cnkAAAACCQABLAAAAAIFAAAACmtleVByZWZpeE4FAAAADWZpZWxkTmFtZVNlZWQFAAAABHNlZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABBmaWVsZE5hbWVTZWVkQjE2CQACXAAAAAEFAAAABHNlZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAprZXlQcmVmaXhOBQAAABJmaWVsZE5hbWVSaWNoaWVzdGEFAAAACXJpY2hpZXN0YQUAAAADbmlsAAAAAgAAAAFpAQAAAAZlc3RyYWkAAAACAAAACXJpY2hpZXN0YQAAAAZudW1lcm8JAQAAAAdlc3RyYWkxAAAAAwUAAAAJcmljaGllc3RhBQAAAAZudW1lcm8FAAAAAWkAAAABaQEAAAAIcmVnaXN0cmEAAAADAAAACXJpY2hpZXN0YQAAAAtjYXJkaW5hbGl0YQAAAAplc3RyYXppb25pAwkBAAAAC2lzUGF5bWVudE9rAAAAAQUAAAABaQkBAAAACXJlZ2lzdHJhMQAAAAQFAAAACXJpY2hpZXN0YQUAAAALY2FyZGluYWxpdGEFAAAACmVzdHJhemlvbmkFAAAAAWkJAAACAAAAAQUAAAAMbXNnUGFnYW1lbnRvAAAAAKghYNY=", "height": 1967134, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8gwAVCQHrmC8bwBmBWXBzSvSc4GT8b1K392r6DUxkygQ Next: Dvf51PW6mkNaHTtXSpRgUTmqLE2HYQy9zyakZXzpTntz Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let delayBlock = 1
55
6-let minPayment = 500000000
6+let minPayment = 100000000
77
88 let acceptableAssetId = base58'GQqJPRuXvxoyz22DeLqquGcx3cdbYpWi6QdqfQUMbLuf'
9+
10+let msgPagamento = ((("Devi effettuare un pagamento in " + toBase58String(acceptableAssetId)) + " di almeno ") + toString(minPayment))
911
1012 let fieldNameRisultato = "seme_estratto"
1113
3234 let fieldNameProvider = "provider"
3335
3436 func isPaymentOk (i) = if ((size(i.payments) == 0))
35- then throw(((("Devi effettuare un pagamento in " + toBase58String(acceptableAssetId)) + " di almeno ") + toString(minPayment)))
37+ then throw(msgPagamento)
3638 else {
3739 let p = i.payments[0]
3840 match p.assetId {
187189 @Callable(i)
188190 func registra (richiesta,cardinalita,estrazioni) = if (isPaymentOk(i))
189191 then registra1(richiesta, cardinalita, estrazioni, i)
190- else throw("Devi inserire un pagamento")
192+ else throw(msgPagamento)
191193
192194
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let delayBlock = 1
55
6-let minPayment = 500000000
6+let minPayment = 100000000
77
88 let acceptableAssetId = base58'GQqJPRuXvxoyz22DeLqquGcx3cdbYpWi6QdqfQUMbLuf'
9+
10+let msgPagamento = ((("Devi effettuare un pagamento in " + toBase58String(acceptableAssetId)) + " di almeno ") + toString(minPayment))
911
1012 let fieldNameRisultato = "seme_estratto"
1113
1214 let fieldNameSeed = "seed"
1315
1416 let fieldNameSeedB16 = "seed_b16"
1517
1618 let fieldNameHeightExtraction = "height_extraction"
1719
1820 let fieldNameJson = "json"
1921
2022 let fieldNameCardinalita = "cardinalita"
2123
2224 let fieldNameDataRichiesta = "data_richiesta"
2325
2426 let fieldNameEstrazioni = "estrazioni"
2527
2628 let fieldNameRichiesta = "richiesta"
2729
2830 let fieldNameCounter = "counter"
2931
3032 let fieldNameIdCounter = "id_richiesta"
3133
3234 let fieldNameProvider = "provider"
3335
3436 func isPaymentOk (i) = if ((size(i.payments) == 0))
35- then throw(((("Devi effettuare un pagamento in " + toBase58String(acceptableAssetId)) + " di almeno ") + toString(minPayment)))
37+ then throw(msgPagamento)
3638 else {
3739 let p = i.payments[0]
3840 match p.assetId {
3941 case a: ByteVector =>
4042 if ((a == acceptableAssetId))
4143 then (p.amount >= minPayment)
4244 else false
4345 case _ =>
4446 false
4547 }
4648 }
4749
4850
4951 func openJson (key,value) = ((("{\"" + key) + "\":\"") + value)
5052
5153
5254 func addJson (key,value) = ((("\", \"" + key) + "\":\" ") + value)
5355
5456
5557 func closeJson (key,value) = (((("\", \"" + key) + "\":\" ") + value) + "\"}")
5658
5759
5860 func myGetInt (key,msg) = {
5961 let myInt = match getInteger(this, key) {
6062 case t: Int =>
6163 t
6264 case _ =>
6365 throw(msg)
6466 }
6567 myInt
6668 }
6769
6870
6971 func getCurrentBlock () = {
7072 let block = match blockInfoByHeight(height) {
7173 case x: BlockInfo =>
7274 x
7375 case _ =>
7476 throw("Alla ricerca del blocco corrente: Blocco non trovato!")
7577 }
7678 block
7779 }
7880
7981
8082 func getTimestamp () = {
8183 let block = match blockInfoByHeight(height) {
8284 case x: BlockInfo =>
8385 x.timestamp
8486 case _ =>
8587 throw("Alla ricerca del `timestamp`: Blocco non trovato!")
8688 }
8789 block
8890 }
8991
9092
9193 func getVrf (thisBlock) = {
9294 let vrf = match thisBlock.vrf {
9395 case t: ByteVector =>
9496 t
9597 case _ =>
9698 throw("Alla ricerca del `vrf`: Blocco non trovato o blocco non in versione 5 ritenta.")
9799 }
98100 vrf
99101 }
100102
101103
102104 func randomizer (inv) = {
103105 let currentBlock = getCurrentBlock()
104106 let rand = (((((inv.transactionId + inv.callerPublicKey) + getVrf(currentBlock)) + currentBlock.generationSignature) + toBytes(currentBlock.timestamp)) + toBytes(currentBlock.height))
105107 sha256_16Kb(sha256_16Kb(rand))
106108 }
107109
108110
109111 func estrai1 (richiesta,numero,i) = {
110112 let strOwnerAddress = toString(i.caller)
111113 let keyPrefix = (((strOwnerAddress + "_") + richiesta) + "_")
112114 let keyCounter = (keyPrefix + fieldNameCounter)
113115 let maxRichiesta = myGetInt(keyCounter, "La richiesta fatta non è stata ancora registrata")
114116 let numeroRichiesta = if ((0 >= numero))
115117 then maxRichiesta
116118 else if ((maxRichiesta >= numero))
117119 then numero
118120 else throw("Non esiste una richiesta con questo numero")
119121 let keyPrefixN = ((keyPrefix + toString(numeroRichiesta)) + "_")
120122 let keyRisultato = (keyPrefixN + fieldNameRisultato)
121123 let isEstratto = match getString(this, keyRisultato) {
122124 case t: String =>
123125 throw(((("Risultato già presente in blockchain: " + keyRisultato) + ": ") + t))
124126 case _ =>
125127 false
126128 }
127129 if (!(isEstratto))
128130 then {
129131 let heightBloccoCandidato = myGetInt((keyPrefixN + fieldNameHeightExtraction), "Errore generico su dati della richiesta")
130132 if ((heightBloccoCandidato > height))
131133 then throw(((("Devi aspettare il blocco " + toString(heightBloccoCandidato)) + ". siamo al blocco ") + toString(height)))
132134 else {
133135 let keySeme = (keyPrefixN + fieldNameSeed)
134136 let seed = match getBinary(this, keySeme) {
135137 case t: ByteVector =>
136138 t
137139 case _ =>
138140 throw("Seme non trovato. Qualcosa è andata storta!")
139141 }
140142 let bloccoCandidato = match blockInfoByHeight(heightBloccoCandidato) {
141143 case block: BlockInfo =>
142144 block
143145 case _ =>
144146 throw("Errore: Il blocco di estrazione non esiste")
145147 }
146148 let vrfValue = match bloccoCandidato.vrf {
147149 case t: ByteVector =>
148150 t
149151 case _ =>
150152 throw("Blocco non in versione 5 ritenta.")
151153 }
152154 let rand = (((seed + bloccoCandidato.generationSignature) + bloccoCandidato.generatorPublicKey) + getVrf(bloccoCandidato))
153155 let sha = toBase16String(sha256_16Kb(sha256_16Kb(rand)))
154156 let strCardinalita = toString(myGetInt((keyPrefixN + fieldNameCardinalita), "Errore lettura cardinalità"))
155157 let strDataRichiesta = toString(myGetInt((keyPrefixN + fieldNameDataRichiesta), "Errore lettura DataRichiesta"))
156158 let strEstrazioni = toString(myGetInt((keyPrefixN + fieldNameEstrazioni), "Errore lettura Estrazioni"))
157159 let json = (((((((((openJson(fieldNameIdCounter, toString(numeroRichiesta)) + addJson(fieldNameCounter, toString(maxRichiesta))) + addJson(fieldNameProvider, strOwnerAddress)) + addJson(fieldNameRichiesta, richiesta)) + addJson(fieldNameCardinalita, strCardinalita)) + addJson(fieldNameEstrazioni, strEstrazioni)) + addJson(fieldNameDataRichiesta, strDataRichiesta)) + addJson(fieldNameSeedB16, toBase16String(seed))) + addJson(fieldNameHeightExtraction, toString(heightBloccoCandidato))) + closeJson(fieldNameRisultato, sha))
158160 [StringEntry((keyPrefixN + fieldNameJson), json), StringEntry(keyRisultato, sha)]
159161 }
160162 }
161163 else throw("Errore: non dovresti passare da quì")
162164 }
163165
164166
165167 func registra1 (richiesta,cardinalita,estrazioni,i) = {
166168 let keyPrefix = (((toString(i.caller) + "_") + richiesta) + "_")
167169 let keyCounter = (keyPrefix + fieldNameCounter)
168170 let nRichiesta = match getInteger(this, keyCounter) {
169171 case c: Int =>
170172 (c + 1)
171173 case _ =>
172174 1
173175 }
174176 let keyPrefixN = ((keyPrefix + toString(nRichiesta)) + "_")
175177 let seed = randomizer(i)
176178 let currDate = getTimestamp()
177179 let heightExtraction = (height + delayBlock)
178180 [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)]
179181 }
180182
181183
182184 @Callable(i)
183185 func estrai (richiesta,numero) = estrai1(richiesta, numero, i)
184186
185187
186188
187189 @Callable(i)
188190 func registra (richiesta,cardinalita,estrazioni) = if (isPaymentOk(i))
189191 then registra1(richiesta, cardinalita, estrazioni, i)
190- else throw("Devi inserire un pagamento")
192+ else throw(msgPagamento)
191193
192194

github/deemru/w8io/3ef1775 
55.26 ms