tx · 88ckdeaqFa3zj3SwqadQMEa6nLddFG6W17ENub9asiHY 3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ: -0.01400000 Waves 2021.11.26 18:05 [2873101] smart account 3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ > SELF 0.00000000 Waves
{ "type": 13, "id": "88ckdeaqFa3zj3SwqadQMEa6nLddFG6W17ENub9asiHY", "fee": 1400000, "feeAssetId": null, "timestamp": 1637939148333, "version": 2, "chainId": 87, "sender": "3PCC6fVHNa6289DTDmcUo3RuLaFmteZZsmQ", "senderPublicKey": "HobXgEQL44LfeEEq2G69uiciuAuiUBfG33UF4ubYmNMd", "proofs": [ "4WYP7WV2AR8CXtK6GLHm4mnscgzJSwg3QoX3Suq3vfVZQBrk9thYkT45BzuD5YxQtckY3E1Y7zouRrCFX6hDJxYP" ], "script": "base64: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", "height": 2873101, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2qvaxj3te9aAUE2crYwSLdD8cBs6neYsoMtMrSXnQVoN Next: HZbbLJAQKk4rszfjBE5bQePTcixhXP7PW6Pc4VpjsKPR Diff:
Old | New | Differences | |
---|---|---|---|
96 | 96 | else (accumulated + 0) | |
97 | 97 | ||
98 | 98 | ||
99 | + | func isSymbolI (accumulated,sym) = if ((sym == "I")) | |
100 | + | then (accumulated + 1) | |
101 | + | else (accumulated + 0) | |
102 | + | ||
103 | + | ||
99 | 104 | func getAmountOrClear (amount) = if (contains(amount, "0")) | |
100 | 105 | then "" | |
101 | 106 | else amount | |
103 | 108 | ||
104 | 109 | func getGen (assetName) = { | |
105 | 110 | let genotype = split(dropRight(drop(assetName, 5), 3), "") | |
106 | - | (((((((getAmountOrClear((toString({ | |
111 | + | ((((((((getAmountOrClear((toString({ | |
107 | 112 | let $l = genotype | |
108 | 113 | let $s = size($l) | |
109 | 114 | let $acc0 = 0 | |
207 | 212 | else throw("List size exceeds 8") | |
208 | 213 | ||
209 | 214 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
210 | - | }) + "H"))) | |
215 | + | }) + "H"))) + getAmountOrClear((toString({ | |
216 | + | let $l = genotype | |
217 | + | let $s = size($l) | |
218 | + | let $acc0 = 0 | |
219 | + | func 1 ($a,$i) = if (($i >= $s)) | |
220 | + | then $a | |
221 | + | else isSymbolI($a, $l[$i]) | |
222 | + | ||
223 | + | func 2 ($a,$i) = if (($i >= $s)) | |
224 | + | then $a | |
225 | + | else throw("List size exceeds 8") | |
226 | + | ||
227 | + | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
228 | + | }) + "I"))) | |
211 | 229 | } | |
212 | 230 | ||
213 | 231 | ||
312 | 330 | else if ((userFeeAmount > feePayment.amount)) | |
313 | 331 | then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(userFeeAmount))) | |
314 | 332 | else { | |
315 | - | let $ | |
316 | - | let gen = $ | |
317 | - | let rarity = $ | |
333 | + | let $t061446193 = getAssetFarmingPower(assetId) | |
334 | + | let gen = $t061446193._1 | |
335 | + | let rarity = $t061446193._2 | |
318 | 336 | let call = invoke(Address(getOrigin(assetId)), "reduceRarity", [toBase58String(assetId), gen], nil) | |
319 | 337 | if ((call == call)) | |
320 | 338 | then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let eggsAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
5 | 5 | ||
6 | 6 | let promoFeeAmount = (10 * 1000000) | |
7 | 7 | ||
8 | 8 | let delayForHatching = 2 | |
9 | 9 | ||
10 | 10 | let promoAddress = base58'3PQVodJ91e32iii4TkKPeuHmPFBNbjtNmfn' | |
11 | 11 | ||
12 | 12 | let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv' | |
13 | 13 | ||
14 | 14 | let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb' | |
15 | 15 | ||
16 | 16 | let farmingAddress = base58'3PAETTtuW7aSiyKtn9GuML3RgtV1xdq1mQW' | |
17 | 17 | ||
18 | 18 | let ducklingAddress = base58'3PKmLiGEfqLWMC1H9xhzqvAZKUXfFm8uoeg' | |
19 | 19 | ||
20 | 20 | let PHOENIXBASEOPTIONS = 1000 | |
21 | 21 | ||
22 | 22 | func isLocked () = { | |
23 | 23 | let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU') | |
24 | 24 | match getInteger(masterAddress, "egglock") { | |
25 | 25 | case b: Int => | |
26 | 26 | b | |
27 | 27 | case _ => | |
28 | 28 | 0 | |
29 | 29 | } | |
30 | 30 | } | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | func tryGetInteger (key) = match getInteger(this, key) { | |
34 | 34 | case b: Int => | |
35 | 35 | b | |
36 | 36 | case _ => | |
37 | 37 | 0 | |
38 | 38 | } | |
39 | 39 | ||
40 | 40 | ||
41 | 41 | let feeAmount = tryGetInteger("currentPrice") | |
42 | 42 | ||
43 | 43 | func asString (value) = match value { | |
44 | 44 | case s: String => | |
45 | 45 | s | |
46 | 46 | case _ => | |
47 | 47 | throw("wrong type, expected: String") | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func tryGetString (key) = match getString(this, key) { | |
52 | 52 | case a: String => | |
53 | 53 | a | |
54 | 54 | case _ => | |
55 | 55 | "" | |
56 | 56 | } | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | func isSymbolA (accumulated,sym) = if ((sym == "A")) | |
60 | 60 | then (accumulated + 1) | |
61 | 61 | else (accumulated + 0) | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func isSymbolB (accumulated,sym) = if ((sym == "B")) | |
65 | 65 | then (accumulated + 1) | |
66 | 66 | else (accumulated + 0) | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func isSymbolC (accumulated,sym) = if ((sym == "C")) | |
70 | 70 | then (accumulated + 1) | |
71 | 71 | else (accumulated + 0) | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | func isSymbolD (accumulated,sym) = if ((sym == "D")) | |
75 | 75 | then (accumulated + 1) | |
76 | 76 | else (accumulated + 0) | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func isSymbolE (accumulated,sym) = if ((sym == "E")) | |
80 | 80 | then (accumulated + 1) | |
81 | 81 | else (accumulated + 0) | |
82 | 82 | ||
83 | 83 | ||
84 | 84 | func isSymbolF (accumulated,sym) = if ((sym == "F")) | |
85 | 85 | then (accumulated + 1) | |
86 | 86 | else (accumulated + 0) | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func isSymbolG (accumulated,sym) = if ((sym == "G")) | |
90 | 90 | then (accumulated + 1) | |
91 | 91 | else (accumulated + 0) | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func isSymbolH (accumulated,sym) = if ((sym == "H")) | |
95 | 95 | then (accumulated + 1) | |
96 | 96 | else (accumulated + 0) | |
97 | 97 | ||
98 | 98 | ||
99 | + | func isSymbolI (accumulated,sym) = if ((sym == "I")) | |
100 | + | then (accumulated + 1) | |
101 | + | else (accumulated + 0) | |
102 | + | ||
103 | + | ||
99 | 104 | func getAmountOrClear (amount) = if (contains(amount, "0")) | |
100 | 105 | then "" | |
101 | 106 | else amount | |
102 | 107 | ||
103 | 108 | ||
104 | 109 | func getGen (assetName) = { | |
105 | 110 | let genotype = split(dropRight(drop(assetName, 5), 3), "") | |
106 | - | (((((((getAmountOrClear((toString({ | |
111 | + | ((((((((getAmountOrClear((toString({ | |
107 | 112 | let $l = genotype | |
108 | 113 | let $s = size($l) | |
109 | 114 | let $acc0 = 0 | |
110 | 115 | func 1 ($a,$i) = if (($i >= $s)) | |
111 | 116 | then $a | |
112 | 117 | else isSymbolA($a, $l[$i]) | |
113 | 118 | ||
114 | 119 | func 2 ($a,$i) = if (($i >= $s)) | |
115 | 120 | then $a | |
116 | 121 | else throw("List size exceeds 8") | |
117 | 122 | ||
118 | 123 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
119 | 124 | }) + "A")) + getAmountOrClear((toString({ | |
120 | 125 | let $l = genotype | |
121 | 126 | let $s = size($l) | |
122 | 127 | let $acc0 = 0 | |
123 | 128 | func 1 ($a,$i) = if (($i >= $s)) | |
124 | 129 | then $a | |
125 | 130 | else isSymbolB($a, $l[$i]) | |
126 | 131 | ||
127 | 132 | func 2 ($a,$i) = if (($i >= $s)) | |
128 | 133 | then $a | |
129 | 134 | else throw("List size exceeds 8") | |
130 | 135 | ||
131 | 136 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
132 | 137 | }) + "B"))) + getAmountOrClear((toString({ | |
133 | 138 | let $l = genotype | |
134 | 139 | let $s = size($l) | |
135 | 140 | let $acc0 = 0 | |
136 | 141 | func 1 ($a,$i) = if (($i >= $s)) | |
137 | 142 | then $a | |
138 | 143 | else isSymbolC($a, $l[$i]) | |
139 | 144 | ||
140 | 145 | func 2 ($a,$i) = if (($i >= $s)) | |
141 | 146 | then $a | |
142 | 147 | else throw("List size exceeds 8") | |
143 | 148 | ||
144 | 149 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
145 | 150 | }) + "C"))) + getAmountOrClear((toString({ | |
146 | 151 | let $l = genotype | |
147 | 152 | let $s = size($l) | |
148 | 153 | let $acc0 = 0 | |
149 | 154 | func 1 ($a,$i) = if (($i >= $s)) | |
150 | 155 | then $a | |
151 | 156 | else isSymbolD($a, $l[$i]) | |
152 | 157 | ||
153 | 158 | func 2 ($a,$i) = if (($i >= $s)) | |
154 | 159 | then $a | |
155 | 160 | else throw("List size exceeds 8") | |
156 | 161 | ||
157 | 162 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
158 | 163 | }) + "D"))) + getAmountOrClear((toString({ | |
159 | 164 | let $l = genotype | |
160 | 165 | let $s = size($l) | |
161 | 166 | let $acc0 = 0 | |
162 | 167 | func 1 ($a,$i) = if (($i >= $s)) | |
163 | 168 | then $a | |
164 | 169 | else isSymbolE($a, $l[$i]) | |
165 | 170 | ||
166 | 171 | func 2 ($a,$i) = if (($i >= $s)) | |
167 | 172 | then $a | |
168 | 173 | else throw("List size exceeds 8") | |
169 | 174 | ||
170 | 175 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
171 | 176 | }) + "E"))) + getAmountOrClear((toString({ | |
172 | 177 | let $l = genotype | |
173 | 178 | let $s = size($l) | |
174 | 179 | let $acc0 = 0 | |
175 | 180 | func 1 ($a,$i) = if (($i >= $s)) | |
176 | 181 | then $a | |
177 | 182 | else isSymbolF($a, $l[$i]) | |
178 | 183 | ||
179 | 184 | func 2 ($a,$i) = if (($i >= $s)) | |
180 | 185 | then $a | |
181 | 186 | else throw("List size exceeds 8") | |
182 | 187 | ||
183 | 188 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
184 | 189 | }) + "F"))) + getAmountOrClear((toString({ | |
185 | 190 | let $l = genotype | |
186 | 191 | let $s = size($l) | |
187 | 192 | let $acc0 = 0 | |
188 | 193 | func 1 ($a,$i) = if (($i >= $s)) | |
189 | 194 | then $a | |
190 | 195 | else isSymbolG($a, $l[$i]) | |
191 | 196 | ||
192 | 197 | func 2 ($a,$i) = if (($i >= $s)) | |
193 | 198 | then $a | |
194 | 199 | else throw("List size exceeds 8") | |
195 | 200 | ||
196 | 201 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
197 | 202 | }) + "G"))) + getAmountOrClear((toString({ | |
198 | 203 | let $l = genotype | |
199 | 204 | let $s = size($l) | |
200 | 205 | let $acc0 = 0 | |
201 | 206 | func 1 ($a,$i) = if (($i >= $s)) | |
202 | 207 | then $a | |
203 | 208 | else isSymbolH($a, $l[$i]) | |
204 | 209 | ||
205 | 210 | func 2 ($a,$i) = if (($i >= $s)) | |
206 | 211 | then $a | |
207 | 212 | else throw("List size exceeds 8") | |
208 | 213 | ||
209 | 214 | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
210 | - | }) + "H"))) | |
215 | + | }) + "H"))) + getAmountOrClear((toString({ | |
216 | + | let $l = genotype | |
217 | + | let $s = size($l) | |
218 | + | let $acc0 = 0 | |
219 | + | func 1 ($a,$i) = if (($i >= $s)) | |
220 | + | then $a | |
221 | + | else isSymbolI($a, $l[$i]) | |
222 | + | ||
223 | + | func 2 ($a,$i) = if (($i >= $s)) | |
224 | + | then $a | |
225 | + | else throw("List size exceeds 8") | |
226 | + | ||
227 | + | 2(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
228 | + | }) + "I"))) | |
211 | 229 | } | |
212 | 230 | ||
213 | 231 | ||
214 | 232 | func getAssetOrigin (generation) = if ((generation == "G")) | |
215 | 233 | then incubatorAddress | |
216 | 234 | else breederAddress | |
217 | 235 | ||
218 | 236 | ||
219 | 237 | func getAssetRarity (genotype,generation) = { | |
220 | 238 | let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity")) | |
221 | 239 | let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR) | |
222 | 240 | if ((power > 0)) | |
223 | 241 | then power | |
224 | 242 | else 2 | |
225 | 243 | } | |
226 | 244 | ||
227 | 245 | ||
228 | 246 | func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress))) | |
229 | 247 | then true | |
230 | 248 | else (value(assetInfo(assetId)).issuer == Address(incubatorAddress))) | |
231 | 249 | then { | |
232 | 250 | let assetName = value(assetInfo(assetId)).name | |
233 | 251 | let generation = take(takeRight(assetName, 2), 1) | |
234 | 252 | let gen = ((getGen(assetName) + "-") + generation) | |
235 | 253 | $Tuple2(gen, getAssetRarity(gen, generation)) | |
236 | 254 | } | |
237 | 255 | else throw("not valid NFT") | |
238 | 256 | ||
239 | 257 | ||
240 | 258 | func getRandomNumber (options,txId,hatchingFinishHeight,offset) = { | |
241 | 259 | let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1))) | |
242 | 260 | let randomHash = sha256((txId + value(randomSeedBlock.vrf))) | |
243 | 261 | (toInt(randomHash, (offset * 8)) % options) | |
244 | 262 | } | |
245 | 263 | ||
246 | 264 | ||
247 | 265 | func getRandomWin (tx,finishHeight,assetRarity) = { | |
248 | 266 | let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100)) | |
249 | 267 | let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1) | |
250 | 268 | if ((phoenixRandom == 1)) | |
251 | 269 | then "phoenix" | |
252 | 270 | else { | |
253 | 271 | let n = getRandomNumber(10, tx, finishHeight, 0) | |
254 | 272 | if ((3 > n)) | |
255 | 273 | then "gone" | |
256 | 274 | else if ((5 > n)) | |
257 | 275 | then "duckling" | |
258 | 276 | else if ((n == 5)) | |
259 | 277 | then "perch_Y" | |
260 | 278 | else if ((n == 6)) | |
261 | 279 | then "perch_G" | |
262 | 280 | else if ((n == 7)) | |
263 | 281 | then "perch_B" | |
264 | 282 | else if ((n == 8)) | |
265 | 283 | then "perch_R" | |
266 | 284 | else "incubator" | |
267 | 285 | } | |
268 | 286 | } | |
269 | 287 | ||
270 | 288 | ||
271 | 289 | func getOrigin (assetId) = { | |
272 | 290 | let assetName = value(assetInfo(assetId)).name | |
273 | 291 | let generation = take(takeRight(assetName, 2), 1) | |
274 | 292 | if (if ((generation == "G")) | |
275 | 293 | then true | |
276 | 294 | else (generation == "J")) | |
277 | 295 | then incubatorAddress | |
278 | 296 | else breederAddress | |
279 | 297 | } | |
280 | 298 | ||
281 | 299 | ||
282 | 300 | @Callable(i) | |
283 | 301 | func setPrice (val) = if ((i.caller != this)) | |
284 | 302 | then throw("admin_only") | |
285 | 303 | else [IntegerEntry("currentPrice", val)] | |
286 | 304 | ||
287 | 305 | ||
288 | 306 | ||
289 | 307 | @Callable(i) | |
290 | 308 | func initRebirth () = if ((isLocked() > 0)) | |
291 | 309 | then throw("EGG operations are temporarily locked") | |
292 | 310 | else { | |
293 | 311 | let assetId = value(i.payments[0].assetId) | |
294 | 312 | let initTx = toBase58String(i.transactionId) | |
295 | 313 | let address = toString(i.caller) | |
296 | 314 | let feePayment = value(i.payments[1]) | |
297 | 315 | let userFeeAmount = match getInteger(Address(promoAddress), (toString(i.caller) + "_hasPromo")) { | |
298 | 316 | case x: Int => | |
299 | 317 | if ((x == 1)) | |
300 | 318 | then { | |
301 | 319 | let call = invoke(Address(promoAddress), "setPromoUsed", nil, nil) | |
302 | 320 | if ((call == call)) | |
303 | 321 | then promoFeeAmount | |
304 | 322 | else throw("Strict value is not equal to itself.") | |
305 | 323 | } | |
306 | 324 | else feeAmount | |
307 | 325 | case _ => | |
308 | 326 | feeAmount | |
309 | 327 | } | |
310 | 328 | if ((feePayment.assetId != eggsAssetId)) | |
311 | 329 | then throw("You need to attach EGG tokens as fee") | |
312 | 330 | else if ((userFeeAmount > feePayment.amount)) | |
313 | 331 | then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(userFeeAmount))) | |
314 | 332 | else { | |
315 | - | let $ | |
316 | - | let gen = $ | |
317 | - | let rarity = $ | |
333 | + | let $t061446193 = getAssetFarmingPower(assetId) | |
334 | + | let gen = $t061446193._1 | |
335 | + | let rarity = $t061446193._2 | |
318 | 336 | let call = invoke(Address(getOrigin(assetId)), "reduceRarity", [toBase58String(assetId), gen], nil) | |
319 | 337 | if ((call == call)) | |
320 | 338 | then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))] | |
321 | 339 | else throw("Strict value is not equal to itself.") | |
322 | 340 | } | |
323 | 341 | } | |
324 | 342 | ||
325 | 343 | ||
326 | 344 | ||
327 | 345 | @Callable(i) | |
328 | 346 | func finishRebirth (initTx) = { | |
329 | 347 | let address = toString(i.caller) | |
330 | 348 | let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock")) | |
331 | 349 | let assetRarity = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity")) | |
332 | 350 | let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status")) | |
333 | 351 | if ((status != "open")) | |
334 | 352 | then throw("rebirth is finished or not open") | |
335 | 353 | else if ((finishBlock > height)) | |
336 | 354 | then throw("you cannot finish rebirth, yet") | |
337 | 355 | else { | |
338 | 356 | let win = getRandomWin(fromBase58String(initTx), finishBlock, assetRarity) | |
339 | 357 | let txId = initTx | |
340 | 358 | let result = if ((indexOf(win, "perch") != unit)) | |
341 | 359 | then { | |
342 | 360 | let color = takeRight(win, 1) | |
343 | 361 | let call = invoke(Address(farmingAddress), "addFreePerch", [address, color], nil) | |
344 | 362 | if ((call == call)) | |
345 | 363 | then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))] | |
346 | 364 | else throw("Strict value is not equal to itself.") | |
347 | 365 | } | |
348 | 366 | else if ((win == "incubator")) | |
349 | 367 | then { | |
350 | 368 | let call = invoke(Address(incubatorAddress), "issueFreeDuck", [address, txId], nil) | |
351 | 369 | if ((call == call)) | |
352 | 370 | then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))] | |
353 | 371 | else throw("Strict value is not equal to itself.") | |
354 | 372 | } | |
355 | 373 | else if ((win == "phoenix")) | |
356 | 374 | then { | |
357 | 375 | let call = invoke(Address(incubatorAddress), "issueJackpot", [address, txId, "WWWWWWWP"], nil) | |
358 | 376 | if ((call == call)) | |
359 | 377 | then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))] | |
360 | 378 | else throw("Strict value is not equal to itself.") | |
361 | 379 | } | |
362 | 380 | else if ((win == "duckling")) | |
363 | 381 | then { | |
364 | 382 | let call = invoke(Address(ducklingAddress), "issueFreeDuckling", [address, txId], nil) | |
365 | 383 | if ((call == call)) | |
366 | 384 | then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))] | |
367 | 385 | else throw("Strict value is not equal to itself.") | |
368 | 386 | } | |
369 | 387 | else [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), "")] | |
370 | 388 | (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")]) | |
371 | 389 | } | |
372 | 390 | } | |
373 | 391 | ||
374 | 392 | ||
375 | 393 | @Verifier(tx) | |
376 | 394 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
377 | 395 |
github/deemru/w8io/3ef1775 52.57 ms ◑