tx · 2Jj5hdk7hUoZMw9uUH1oDwKHZkUm6oHi36GLvco1WF1p

3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba:  -0.02200000 Waves

2023.11.28 19:23 [3929347] smart account 3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba > SELF 0.00000000 Waves

{ "type": 13, "id": "2Jj5hdk7hUoZMw9uUH1oDwKHZkUm6oHi36GLvco1WF1p", "fee": 2200000, "feeAssetId": null, "timestamp": 1701188597351, "version": 2, "chainId": 87, "sender": "3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba", "senderPublicKey": "8yG34okaNeKtYZriaoqUQTinJjpk3pYKFTeGptmiWvTV", "proofs": [ "48ouXmiA2XdpwgntgVSGUCQ5G4wMYYkyVcARii1UHGnJrUaGqTT7bRb5yhAg3fN9qqpS5B7xjXiemf7bKn96cDNA" ], "script": "base64:AAIFAAAAAAAAABYIAhIDCgEIEgMKAQgSAwoBCBIDCgEIAAAAMAEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAEXRyeUdldEludEV4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABtSVEdJRTogU29tZXRoaW5nIHdlbnQgd3JvbmcBAAAACWFzQm9vbGVhbgAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAdib29sZWFuBQAAAAckbWF0Y2gwBQAAAAdib29sZWFuCQAAAgAAAAECAAAAIkZBQjogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEJvb2xlYW4BAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5CQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAEGRlbGF5Rm9ySGF0Y2hpbmcAAAAAAAAAAAIBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAFHN0YXRpY0tleV9lZ2dBc3NldElkAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAGnN0YXRpY0tleV9pbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAXc3RhdGljX2luY3ViYXRvckFkZHJlc3MBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAAYc3RhdGljS2V5X2Zhcm1pbmdBZGRyZXNzAAAAAAIAAAAVc3RhdGljX2Zhcm1pbmdBZGRyZXNzAQAAABlzdGF0aWNLZXlfYmFieUR1Y2tBZGRyZXNzAAAAAAIAAAAWc3RhdGljX2JhYnlEdWNrQWRkcmVzcwEAAAAZc3RhdGljS2V5X2dhbWVEYXBwQWRkcmVzcwAAAAACAAAAFnN0YXRpY19nYW1lRGFwcEFkZHJlc3MBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAgAAABNzdGF0aWNfaXRlbXNBZGRyZXNzAQAAABhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAAAAAgAAABVzdGF0aWNfY291cG9uc0FkZHJlc3MBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAACAAAAEnN0YXRpY19odW50QWRkcmVzcwEAAAAVc3RhdGljS2V5X2J1cm5BZGRyZXNzAAAAAAIAAAASc3RhdGljX2J1cm5BZGRyZXNzAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABNnZXRJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAABAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2Zhcm1pbmdBZGRyZXNzAAAAAAEAAAASZ2V0QmFieUR1Y2tBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAABAAAAEmdldEdhbWVEYXBwQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGXN0YXRpY0tleV9nYW1lRGFwcEFkZHJlc3MAAAAAAQAAAA9nZXRJdGVtc0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAEAAAARZ2V0Q291cG9uc0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAAAAAQAAAA5nZXRIdW50QWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAABAAAADmdldEJ1cm5BZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAVc3RhdGljS2V5X2J1cm5BZGRyZXNzAAAAAAEAAAAVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAABAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAABAAAAFmNoZWNrQWRkaXRpb25hbFBheW1lbnQAAAABAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAABlSQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAAAAAlmZWVBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAJZmVlQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABxSQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQABpAAAAAEFAAAACWZlZUFtb3VudAIAAAATIGFtb3VudCBvZiB3YXZlbGV0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAQZ2V0RmVlQWdncmVnYXRvcgAAAAAFAAAACWZlZUFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAABJQSE9FTklYQkFTRU9QVElPTlMAAAAAAAAAA+gB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", "height": 3929347, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4hqD5zzDgQKf1nuN5yUPo6GbjKbN9cd9hhyc5w7bZKVc Next: FPgu5tmwsP2fv5f9XjiMa9sE4jNrvTuzhY6TKAstQJWD Diff:
OldNewDifferences
219219 then "duckling_20"
220220 else if ((260 > at))
221221 then "duckling_40"
222- else if ((600 > at))
222+ else if ((300 > at))
223223 then "incubator"
224224 else if ((320 > at))
225225 then "item!ART-SNAKE"
226226 else if ((330 > at))
227227 then "item!ART-FREEGENE"
228- else if ((900 > at))
229- then "phoenix"
228+ else if ((460 > at))
229+ then "item!ART-KATANA"
230230 else if ((510 > at))
231231 then "item!ART-ROBODUCK"
232232 else if ((540 > at))
289289 func az () = ay("TESTENV")
290290
291291
292-@Callable(aA)
293-func configureOracle (aB) = if ((aA.caller != this))
292+func aA (aB,b,N,aC,aD) = {
293+ let aE = Q((((("address_" + b) + "_initTx_") + aB) + "_finishBlock"))
294+ let aq = Q((((("address_" + b) + "_initTx_") + aB) + "_assetRarity"))
295+ let aF = j((((("address_" + b) + "_initTx_") + aB) + "_status"))
296+ let aG = M(N)
297+ if ((aG == aG))
298+ then {
299+ let aH = invoke(H(), "recordAction", ["REBIRTH"], nil)
300+ if ((aH == aH))
301+ then {
302+ func aI (b) = fromBase58String(a(b, "static_accessItemAssetId"))
303+
304+ func aJ (b) = f(b, "static_accessItemPrice")
305+
306+ if ((aF != "open"))
307+ then throw("rebirth is finished or not open")
308+ else if ((aE > height))
309+ then throw("you cannot finish rebirth, yet")
310+ else {
311+ let aK = an(fromBase58String(aB), aE, aq)
312+ let ai = aB
313+ let aL = if ((indexOf(aK, "perch") != unit))
314+ then {
315+ let aM = takeRight(aK, 1)
316+ let aN = if (!(aC))
317+ then invoke(D(), "addFreePerch", [b, aM], nil)
318+ else {
319+ let aO = invoke(D(), "addFreePerch", [b, aM], nil)
320+ if ((aO == aO))
321+ then invoke(D(), "addFreePerch", [b, aM], nil)
322+ else throw("Strict value is not equal to itself.")
323+ }
324+ if ((aN == aN))
325+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
326+ else throw("Strict value is not equal to itself.")
327+ }
328+ else if ((aK == "incubator"))
329+ then {
330+ let aN = if (!(aC))
331+ then invoke(B(), "issueFreeDuck", [b, ai], nil)
332+ else {
333+ let aO = invoke(B(), "issueFreeDuck", [b, ai], nil)
334+ if ((aO == aO))
335+ then invoke(B(), "issueFreeDuck", [b, aD], nil)
336+ else throw("Strict value is not equal to itself.")
337+ }
338+ if ((aN == aN))
339+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
340+ else throw("Strict value is not equal to itself.")
341+ }
342+ else if ((aK == "ar"))
343+ then {
344+ let ad = aI(I())
345+ let aP = aJ(I())
346+ let aN = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aP)])
347+ if ((aN == aN))
348+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
349+ else throw("Strict value is not equal to itself.")
350+ }
351+ else if ((aK == "phoenix"))
352+ then {
353+ let aN = invoke(B(), "issueJackpot", [b, ai, valueOrElse(getString("JACKPOT_NAME"), "WWWWWWWP")], nil)
354+ if ((aN == aN))
355+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
356+ else throw("Strict value is not equal to itself.")
357+ }
358+ else if ((indexOf(aK, "duckling") != unit))
359+ then {
360+ let aQ = parseIntValue(split(aK, "_")[1])
361+ let aR = if (aC)
362+ then (2 * aQ)
363+ else aQ
364+ let aN = invoke(E(), "issueFreeDuckling", [b, ai, aR], nil)
365+ if ((aN == aN))
366+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
367+ else throw("Strict value is not equal to itself.")
368+ }
369+ else if ((indexOf(aK, "item") != unit))
370+ then {
371+ let aS = split(aK, "!")[1]
372+ let aN = if (!(aC))
373+ then invoke(G(), "issueArtefact", [aS, b], nil)
374+ else {
375+ let aO = invoke(G(), "issueArtefact", [aS, b], nil)
376+ if ((aO == aO))
377+ then invoke(G(), "issueArtefact", [aS, b], nil)
378+ else throw("Strict value is not equal to itself.")
379+ }
380+ if ((aN == aN))
381+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
382+ else throw("Strict value is not equal to itself.")
383+ }
384+ else throw("RFB: Some error occured, please contact the admins!")
385+ ((aL ++ [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_win"), aK), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_status"), "finish")]) ++ aG)
386+ }
387+ }
388+ else throw("Strict value is not equal to itself.")
389+ }
390+ else throw("Strict value is not equal to itself.")
391+ }
392+
393+
394+@Callable(aT)
395+func configureOracle (aU) = if ((aT.caller != this))
294396 then throw("RCU: admin only")
295- else [StringEntry("static_oracleAddress", aB)]
397+ else [StringEntry("static_oracleAddress", aU)]
296398
297399
298400
299-@Callable(aA)
300-func initRebirth (aC) = {
301- let aD = aA.payments[0]
302- let ad = value(aD.assetId)
303- let aE = toBase58String(aA.transactionId)
304- let b = toString(aA.caller)
305- if ((aD.amount != 1))
401+@Callable(aT)
402+func initRebirth (aV) = {
403+ let aW = aT.payments[0]
404+ let ad = value(aW.assetId)
405+ let aB = toBase58String(aT.transactionId)
406+ let b = toString(aT.caller)
407+ if ((aW.amount != 1))
306408 then throw("NFT is not attached")
307409 else {
308- let aF = av(invoke(H(), "useCoupons", [O], nil))
309- if ((aF == aF))
410+ let aX = av(invoke(H(), "useCoupons", [O], nil))
411+ if ((aX == aX))
310412 then {
311- let aG = (O - aF)
312- let aH = M(aA.payments[1])
313- if ((aH == aH))
413+ let aY = (O - aX)
414+ let aG = M(aT.payments[1])
415+ if ((aG == aG))
314416 then {
315- let N = if ((aG != 0))
417+ let N = if ((aY != 0))
316418 then {
317- let aI = value(aA.payments[2])
318- if ((aI.assetId != A()))
419+ let aZ = value(aT.payments[2])
420+ if ((aZ.assetId != A()))
319421 then throw("You need to attach EGG tokens as fee")
320- else if ((aG > aI.amount))
321- then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aG)))
422+ else if ((aY > aZ.amount))
423+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aY)))
322424 else {
323- let aJ = fraction(aG, 5, 100)
324- let aK = g(invoke(K(), "refPayment", [aC], [AttachedPayment(A(), aJ)]))
325- if ((aK == aK))
425+ let ba = fraction(aY, 5, 100)
426+ let bb = g(invoke(K(), "refPayment", [aV], [AttachedPayment(A(), ba)]))
427+ if ((bb == bb))
326428 then {
327- let aL = if (aK)
328- then (aG - aJ)
329- else aG
330- let aM = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), aL)])
331- if ((aM == aM))
332- then aG
429+ let bc = if (bb)
430+ then (aY - ba)
431+ else aY
432+ let bd = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), bc)])
433+ if ((bd == bd))
434+ then aY
333435 else throw("Strict value is not equal to itself.")
334436 }
335437 else throw("Strict value is not equal to itself.")
338440 else 0
339441 if ((N == N))
340442 then {
341- let aN = ac(ad)
342- let aO = aN._1
343- let aP = aN._2
344- let aQ = invoke(au(ad), "reduceRarity", [toBase58String(ad), aO], nil)
345- if ((aQ == aQ))
346- then ([IntegerEntry((((("address_" + b) + "_initTx_") + aE) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aE) + "_assetRarity"), aP), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_assetId"), toBase58String(ad))] ++ aH)
443+ let be = ac(ad)
444+ let bf = be._1
445+ let bg = be._2
446+ let aN = invoke(au(ad), "reduceRarity", [toBase58String(ad), bf], nil)
447+ if ((aN == aN))
448+ then ([IntegerEntry((((("address_" + b) + "_initTx_") + aB) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aB) + "_assetRarity"), bg), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_assetId"), toBase58String(ad))] ++ aG)
347449 else throw("Strict value is not equal to itself.")
348450 }
349451 else throw("Strict value is not equal to itself.")
356458
357459
358460
359-@Callable(aA)
360-func finishRebirth (aE) = {
361- let b = toString(aA.caller)
362- let aR = Q((((("address_" + b) + "_initTx_") + aE) + "_finishBlock"))
363- let aq = Q((((("address_" + b) + "_initTx_") + aE) + "_assetRarity"))
364- let aS = j((((("address_" + b) + "_initTx_") + aE) + "_status"))
365- let aH = M(aA.payments[0])
366- if ((aH == aH))
367- then {
368- let aT = invoke(H(), "recordAction", ["REBIRTH"], nil)
369- if ((aT == aT))
370- then {
371- func aU (b) = fromBase58String(a(b, "static_accessItemAssetId"))
461+@Callable(aT)
462+func finishRebirth (aB) = aA(aB, toString(aT.caller), aT.payments[1], false, toBase58String(aT.transactionId))
372463
373- func aV (b) = f(b, "static_accessItemPrice")
374464
375- if ((aS != "open"))
376- then throw("rebirth is finished or not open")
377- else if ((aR > height))
378- then throw("you cannot finish rebirth, yet")
379- else {
380- let aW = an(fromBase58String(aE), aR, aq)
381- let ai = aE
382- let aX = if ((indexOf(aW, "perch") != unit))
383- then {
384- let aY = takeRight(aW, 1)
385- let aQ = invoke(D(), "addFreePerch", [b, aY], nil)
386- if ((aQ == aQ))
387- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
388- else throw("Strict value is not equal to itself.")
389- }
390- else if ((aW == "incubator"))
391- then {
392- let aQ = invoke(B(), "issueFreeDuck", [b, ai], nil)
393- if ((aQ == aQ))
394- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
395- else throw("Strict value is not equal to itself.")
396- }
397- else if ((aW == "ar"))
398- then {
399- let ad = aU(I())
400- let aZ = aV(I())
401- let aQ = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aZ)])
402- if ((aQ == aQ))
403- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
404- else throw("Strict value is not equal to itself.")
405- }
406- else if ((aW == "phoenix"))
407- then {
408- let aQ = invoke(B(), "issueJackpot", [b, ai, valueOrElse(getString("JACKPOT_NAME"), "WWWWWWWP")], nil)
409- if ((aQ == aQ))
410- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
411- else throw("Strict value is not equal to itself.")
412- }
413- else if ((indexOf(aW, "duckling") != unit))
414- then {
415- let ba = parseIntValue(split(aW, "_")[1])
416- let aQ = invoke(E(), "issueFreeDuckling", [b, ai, ba], nil)
417- if ((aQ == aQ))
418- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
419- else throw("Strict value is not equal to itself.")
420- }
421- else if ((indexOf(aW, "item") != unit))
422- then {
423- let bb = split(aW, "!")[1]
424- let aQ = invoke(G(), "issueArtefact", [bb, b], nil)
425- if ((aQ == aQ))
426- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
427- else throw("Strict value is not equal to itself.")
428- }
429- else throw("RFB: Some error occured, please contact the admins!")
430- ((aX ++ [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_win"), aW), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_status"), "finish")]) ++ aH)
431- }
432- }
433- else throw("Strict value is not equal to itself.")
434- }
435- else throw("Strict value is not equal to itself.")
436- }
465+
466+@Callable(aT)
467+func finishRebirthDouble (aB) = if (!(if ((size(aT.payments) == 2))
468+ then (aT.payments[0].amount == 1)
469+ else false))
470+ then throw("Invalid payment")
471+ else {
472+ let ad = value(aT.payments[0].assetId)
473+ let bh = S(invoke(G(), "checkArtefactDetails", [toBase58String(ad)], nil))
474+ if ((bh == bh))
475+ then if ((bh == "ART-GIFT_DOUBL"))
476+ then ([Burn(ad, 1)] ++ aA(aB, toString(aT.caller), aT.payments[1], true, toBase58String(aT.transactionId)))
477+ else throw("Error! Wrong item attached to double rewards!")
478+ else throw("Strict value is not equal to itself.")
479+ }
437480
438481
439482 @Verifier(ao)
440-func bc () = if (az())
483+func bi () = if (az())
441484 then sigVerify(ao.bodyBytes, ao.proofs[0], ao.senderPublicKey)
442485 else {
443- let bd = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
444- let be = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
445- let bf = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
446- let bg = if (sigVerify(ao.bodyBytes, ao.proofs[0], bd))
486+ let bj = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
487+ let bk = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
488+ let bl = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
489+ let bm = if (sigVerify(ao.bodyBytes, ao.proofs[0], bj))
447490 then 1
448- else if (sigVerify(ao.bodyBytes, ao.proofs[1], bd))
491+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bj))
449492 then 1
450- else if (sigVerify(ao.bodyBytes, ao.proofs[2], bd))
493+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bj))
451494 then 1
452495 else 0
453- let bh = if (sigVerify(ao.bodyBytes, ao.proofs[0], be))
496+ let bn = if (sigVerify(ao.bodyBytes, ao.proofs[0], bk))
454497 then 1
455- else if (sigVerify(ao.bodyBytes, ao.proofs[1], be))
498+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bk))
456499 then 1
457- else if (sigVerify(ao.bodyBytes, ao.proofs[2], be))
500+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bk))
458501 then 1
459502 else 0
460- let bi = if (sigVerify(ao.bodyBytes, ao.proofs[0], bf))
503+ let bo = if (sigVerify(ao.bodyBytes, ao.proofs[0], bl))
461504 then 1
462- else if (sigVerify(ao.bodyBytes, ao.proofs[1], bf))
505+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bl))
463506 then 1
464- else if (sigVerify(ao.bodyBytes, ao.proofs[2], bf))
507+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bl))
465508 then 1
466509 else 0
467- let bj = ((bg + bh) + bi)
510+ let bp = ((bm + bn) + bo)
468511 let d = ao
469- (bj >= 2)
512+ (bp >= 2)
470513 }
471514
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getString(b, c)
66 if ($isInstanceOf(d, "String"))
77 then {
88 let e = d
99 e
1010 }
1111 else ""
1212 }
1313
1414
1515 func f (b,c) = {
1616 let d = getInteger(b, c)
1717 if ($isInstanceOf(d, "Int"))
1818 then {
1919 let e = d
2020 e
2121 }
2222 else throw("RTGIE: Something went wrong")
2323 }
2424
2525
2626 func g (h) = {
2727 let d = h
2828 if ($isInstanceOf(d, "Boolean"))
2929 then {
3030 let i = d
3131 i
3232 }
3333 else throw("FAB: wrong type, expected: Boolean")
3434 }
3535
3636
3737 func j (c) = a(this, c)
3838
3939
4040 let k = 2
4141
4242 func l () = "static_oracleAddress"
4343
4444
4545 func m () = "static_eggAssetId"
4646
4747
4848 func n () = "static_incubatorAddress"
4949
5050
5151 func o () = "static_breederAddress"
5252
5353
5454 func p () = "static_farmingAddress"
5555
5656
5757 func q () = "static_babyDuckAddress"
5858
5959
6060 func r () = "static_gameDappAddress"
6161
6262
6363 func s () = "static_itemsAddress"
6464
6565
6666 func t () = "static_couponsAddress"
6767
6868
6969 func u () = "static_huntAddress"
7070
7171
7272 func v () = "static_burnAddress"
7373
7474
7575 func w () = "static_refContractAddress"
7676
7777
7878 func x () = "static_extraFee"
7979
8080
8181 func y () = "static_feeAggregator"
8282
8383
8484 func z () = Address(fromBase58String(j(l())))
8585
8686
8787 func A () = fromBase58String(a(z(), m()))
8888
8989
9090 func B () = Address(fromBase58String(a(z(), n())))
9191
9292
9393 func C () = Address(fromBase58String(a(z(), o())))
9494
9595
9696 func D () = Address(fromBase58String(a(z(), p())))
9797
9898
9999 func E () = Address(fromBase58String(a(z(), q())))
100100
101101
102102 func F () = Address(fromBase58String(a(z(), r())))
103103
104104
105105 func G () = Address(fromBase58String(a(z(), s())))
106106
107107
108108 func H () = Address(fromBase58String(a(z(), t())))
109109
110110
111111 func I () = Address(fromBase58String(a(z(), u())))
112112
113113
114114 func J () = Address(fromBase58String(a(z(), v())))
115115
116116
117117 func K () = Address(fromBase58String(a(z(), w())))
118118
119119
120120 func L () = Address(fromBase58String(a(z(), y())))
121121
122122
123123 func M (N) = if (isDefined(N.assetId))
124124 then throw("RCAP: Please attach waves")
125125 else {
126126 let O = getIntegerValue(z(), x())
127127 if ((N.amount != O))
128128 then throw((("RCAP: Please attach exactly " + toString(O)) + " amount of wavelets"))
129129 else [ScriptTransfer(L(), O, unit)]
130130 }
131131
132132
133133 let P = 1000
134134
135135 func Q (c) = {
136136 let d = getInteger(this, c)
137137 if ($isInstanceOf(d, "Int"))
138138 then {
139139 let R = d
140140 R
141141 }
142142 else 0
143143 }
144144
145145
146146 func S (h) = {
147147 let d = h
148148 if ($isInstanceOf(d, "String"))
149149 then {
150150 let T = d
151151 T
152152 }
153153 else if ($isInstanceOf(d, "Int"))
154154 then {
155155 let T = d
156156 throw("wrong type, expected: String, got: Int")
157157 }
158158 else if ($isInstanceOf(d, "Unit"))
159159 then {
160160 let T = d
161161 throw("wrong type, expected: String, got: Unit")
162162 }
163163 else throw("wrong type, expected: String")
164164 }
165165
166166
167167 let O = Q("currentPrice")
168168
169169 func U (V) = if (contains(V, "0"))
170170 then ""
171171 else V
172172
173173
174174 func W (X) = if ((X == "G"))
175175 then B()
176176 else C()
177177
178178
179179 func Y (Z,X) = {
180180 let aa = getIntegerValue(W(X), (("stats_" + Z) + "_quantity"))
181181 let ab = pow((10000 / aa), 4, 5, 1, 2, FLOOR)
182182 if ((ab > 0))
183183 then ab
184184 else 2
185185 }
186186
187187
188188 func ac (ad) = if (if ((value(assetInfo(ad)).issuer == C()))
189189 then true
190190 else (value(assetInfo(ad)).issuer == B()))
191191 then {
192192 let ae = value(assetInfo(ad)).name
193193 let X = take(takeRight(ae, 2), 1)
194194 let af = S(invoke(C(), "getGenFromName", [ae], nil))
195195 if ((af == af))
196196 then $Tuple2(af, Y(af, X))
197197 else throw("Strict value is not equal to itself.")
198198 }
199199 else throw("not valid NFT")
200200
201201
202202 func ag (ah,ai,aj,ak) = {
203203 let al = value(blockInfoByHeight((aj - 1)))
204204 let am = sha256((ai + value(al.vrf)))
205205 (toInt(am, (ak * 8)) % ah)
206206 }
207207
208208
209209 func an (ao,ap,aq) = {
210210 let ar = (P - fraction((P / 2), aq, 100))
211211 let as = ag(ar, ao, ap, 1)
212212 if ((as == 1))
213213 then "phoenix"
214214 else {
215215 let at = ag(1000, ao, ap, 0)
216216 if ((170 > at))
217217 then "duckling_10"
218218 else if ((240 > at))
219219 then "duckling_20"
220220 else if ((260 > at))
221221 then "duckling_40"
222- else if ((600 > at))
222+ else if ((300 > at))
223223 then "incubator"
224224 else if ((320 > at))
225225 then "item!ART-SNAKE"
226226 else if ((330 > at))
227227 then "item!ART-FREEGENE"
228- else if ((900 > at))
229- then "phoenix"
228+ else if ((460 > at))
229+ then "item!ART-KATANA"
230230 else if ((510 > at))
231231 then "item!ART-ROBODUCK"
232232 else if ((540 > at))
233233 then "item!ART-CROWN"
234234 else if ((660 > at))
235235 then "item!ART-SCEPTER"
236236 else if ((790 > at))
237237 then "item!ART-BUILTBODY"
238238 else if ((810 > at))
239239 then "item!ART-FEED10"
240240 else if ((820 > at))
241241 then "item!ART-FEED50"
242242 else if ((824 > at))
243243 then "item!ART-FEED100"
244244 else if ((884 > at))
245245 then "item!ART-FIRE_ARMOUR"
246246 else "ar"
247247 }
248248 }
249249
250250
251251 func au (ad) = {
252252 let ae = value(assetInfo(ad)).name
253253 let X = take(takeRight(ae, 2), 1)
254254 if (if ((X == "G"))
255255 then true
256256 else (X == "J"))
257257 then B()
258258 else C()
259259 }
260260
261261
262262 func av (h) = {
263263 let d = h
264264 if ($isInstanceOf(d, "Int"))
265265 then {
266266 let aw = d
267267 aw
268268 }
269269 else if ($isInstanceOf(d, "String"))
270270 then {
271271 let ax = d
272272 throw(("RAI: wrong type, expected: Int, but got: " + ax))
273273 }
274274 else throw("RAI: wrong type, expected: Int")
275275 }
276276
277277
278278 func ay (c) = {
279279 let d = getBoolean(this, c)
280280 if ($isInstanceOf(d, "Boolean"))
281281 then {
282282 let R = d
283283 R
284284 }
285285 else false
286286 }
287287
288288
289289 func az () = ay("TESTENV")
290290
291291
292-@Callable(aA)
293-func configureOracle (aB) = if ((aA.caller != this))
292+func aA (aB,b,N,aC,aD) = {
293+ let aE = Q((((("address_" + b) + "_initTx_") + aB) + "_finishBlock"))
294+ let aq = Q((((("address_" + b) + "_initTx_") + aB) + "_assetRarity"))
295+ let aF = j((((("address_" + b) + "_initTx_") + aB) + "_status"))
296+ let aG = M(N)
297+ if ((aG == aG))
298+ then {
299+ let aH = invoke(H(), "recordAction", ["REBIRTH"], nil)
300+ if ((aH == aH))
301+ then {
302+ func aI (b) = fromBase58String(a(b, "static_accessItemAssetId"))
303+
304+ func aJ (b) = f(b, "static_accessItemPrice")
305+
306+ if ((aF != "open"))
307+ then throw("rebirth is finished or not open")
308+ else if ((aE > height))
309+ then throw("you cannot finish rebirth, yet")
310+ else {
311+ let aK = an(fromBase58String(aB), aE, aq)
312+ let ai = aB
313+ let aL = if ((indexOf(aK, "perch") != unit))
314+ then {
315+ let aM = takeRight(aK, 1)
316+ let aN = if (!(aC))
317+ then invoke(D(), "addFreePerch", [b, aM], nil)
318+ else {
319+ let aO = invoke(D(), "addFreePerch", [b, aM], nil)
320+ if ((aO == aO))
321+ then invoke(D(), "addFreePerch", [b, aM], nil)
322+ else throw("Strict value is not equal to itself.")
323+ }
324+ if ((aN == aN))
325+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
326+ else throw("Strict value is not equal to itself.")
327+ }
328+ else if ((aK == "incubator"))
329+ then {
330+ let aN = if (!(aC))
331+ then invoke(B(), "issueFreeDuck", [b, ai], nil)
332+ else {
333+ let aO = invoke(B(), "issueFreeDuck", [b, ai], nil)
334+ if ((aO == aO))
335+ then invoke(B(), "issueFreeDuck", [b, aD], nil)
336+ else throw("Strict value is not equal to itself.")
337+ }
338+ if ((aN == aN))
339+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
340+ else throw("Strict value is not equal to itself.")
341+ }
342+ else if ((aK == "ar"))
343+ then {
344+ let ad = aI(I())
345+ let aP = aJ(I())
346+ let aN = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aP)])
347+ if ((aN == aN))
348+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
349+ else throw("Strict value is not equal to itself.")
350+ }
351+ else if ((aK == "phoenix"))
352+ then {
353+ let aN = invoke(B(), "issueJackpot", [b, ai, valueOrElse(getString("JACKPOT_NAME"), "WWWWWWWP")], nil)
354+ if ((aN == aN))
355+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
356+ else throw("Strict value is not equal to itself.")
357+ }
358+ else if ((indexOf(aK, "duckling") != unit))
359+ then {
360+ let aQ = parseIntValue(split(aK, "_")[1])
361+ let aR = if (aC)
362+ then (2 * aQ)
363+ else aQ
364+ let aN = invoke(E(), "issueFreeDuckling", [b, ai, aR], nil)
365+ if ((aN == aN))
366+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
367+ else throw("Strict value is not equal to itself.")
368+ }
369+ else if ((indexOf(aK, "item") != unit))
370+ then {
371+ let aS = split(aK, "!")[1]
372+ let aN = if (!(aC))
373+ then invoke(G(), "issueArtefact", [aS, b], nil)
374+ else {
375+ let aO = invoke(G(), "issueArtefact", [aS, b], nil)
376+ if ((aO == aO))
377+ then invoke(G(), "issueArtefact", [aS, b], nil)
378+ else throw("Strict value is not equal to itself.")
379+ }
380+ if ((aN == aN))
381+ then [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_result"), S(aN))]
382+ else throw("Strict value is not equal to itself.")
383+ }
384+ else throw("RFB: Some error occured, please contact the admins!")
385+ ((aL ++ [StringEntry((((("address_" + b) + "_initTx_") + aB) + "_win"), aK), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_status"), "finish")]) ++ aG)
386+ }
387+ }
388+ else throw("Strict value is not equal to itself.")
389+ }
390+ else throw("Strict value is not equal to itself.")
391+ }
392+
393+
394+@Callable(aT)
395+func configureOracle (aU) = if ((aT.caller != this))
294396 then throw("RCU: admin only")
295- else [StringEntry("static_oracleAddress", aB)]
397+ else [StringEntry("static_oracleAddress", aU)]
296398
297399
298400
299-@Callable(aA)
300-func initRebirth (aC) = {
301- let aD = aA.payments[0]
302- let ad = value(aD.assetId)
303- let aE = toBase58String(aA.transactionId)
304- let b = toString(aA.caller)
305- if ((aD.amount != 1))
401+@Callable(aT)
402+func initRebirth (aV) = {
403+ let aW = aT.payments[0]
404+ let ad = value(aW.assetId)
405+ let aB = toBase58String(aT.transactionId)
406+ let b = toString(aT.caller)
407+ if ((aW.amount != 1))
306408 then throw("NFT is not attached")
307409 else {
308- let aF = av(invoke(H(), "useCoupons", [O], nil))
309- if ((aF == aF))
410+ let aX = av(invoke(H(), "useCoupons", [O], nil))
411+ if ((aX == aX))
310412 then {
311- let aG = (O - aF)
312- let aH = M(aA.payments[1])
313- if ((aH == aH))
413+ let aY = (O - aX)
414+ let aG = M(aT.payments[1])
415+ if ((aG == aG))
314416 then {
315- let N = if ((aG != 0))
417+ let N = if ((aY != 0))
316418 then {
317- let aI = value(aA.payments[2])
318- if ((aI.assetId != A()))
419+ let aZ = value(aT.payments[2])
420+ if ((aZ.assetId != A()))
319421 then throw("You need to attach EGG tokens as fee")
320- else if ((aG > aI.amount))
321- then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aG)))
422+ else if ((aY > aZ.amount))
423+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aY)))
322424 else {
323- let aJ = fraction(aG, 5, 100)
324- let aK = g(invoke(K(), "refPayment", [aC], [AttachedPayment(A(), aJ)]))
325- if ((aK == aK))
425+ let ba = fraction(aY, 5, 100)
426+ let bb = g(invoke(K(), "refPayment", [aV], [AttachedPayment(A(), ba)]))
427+ if ((bb == bb))
326428 then {
327- let aL = if (aK)
328- then (aG - aJ)
329- else aG
330- let aM = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), aL)])
331- if ((aM == aM))
332- then aG
429+ let bc = if (bb)
430+ then (aY - ba)
431+ else aY
432+ let bd = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), bc)])
433+ if ((bd == bd))
434+ then aY
333435 else throw("Strict value is not equal to itself.")
334436 }
335437 else throw("Strict value is not equal to itself.")
336438 }
337439 }
338440 else 0
339441 if ((N == N))
340442 then {
341- let aN = ac(ad)
342- let aO = aN._1
343- let aP = aN._2
344- let aQ = invoke(au(ad), "reduceRarity", [toBase58String(ad), aO], nil)
345- if ((aQ == aQ))
346- then ([IntegerEntry((((("address_" + b) + "_initTx_") + aE) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aE) + "_assetRarity"), aP), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_assetId"), toBase58String(ad))] ++ aH)
443+ let be = ac(ad)
444+ let bf = be._1
445+ let bg = be._2
446+ let aN = invoke(au(ad), "reduceRarity", [toBase58String(ad), bf], nil)
447+ if ((aN == aN))
448+ then ([IntegerEntry((((("address_" + b) + "_initTx_") + aB) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aB) + "_assetRarity"), bg), StringEntry((((("address_" + b) + "_initTx_") + aB) + "_assetId"), toBase58String(ad))] ++ aG)
347449 else throw("Strict value is not equal to itself.")
348450 }
349451 else throw("Strict value is not equal to itself.")
350452 }
351453 else throw("Strict value is not equal to itself.")
352454 }
353455 else throw("Strict value is not equal to itself.")
354456 }
355457 }
356458
357459
358460
359-@Callable(aA)
360-func finishRebirth (aE) = {
361- let b = toString(aA.caller)
362- let aR = Q((((("address_" + b) + "_initTx_") + aE) + "_finishBlock"))
363- let aq = Q((((("address_" + b) + "_initTx_") + aE) + "_assetRarity"))
364- let aS = j((((("address_" + b) + "_initTx_") + aE) + "_status"))
365- let aH = M(aA.payments[0])
366- if ((aH == aH))
367- then {
368- let aT = invoke(H(), "recordAction", ["REBIRTH"], nil)
369- if ((aT == aT))
370- then {
371- func aU (b) = fromBase58String(a(b, "static_accessItemAssetId"))
461+@Callable(aT)
462+func finishRebirth (aB) = aA(aB, toString(aT.caller), aT.payments[1], false, toBase58String(aT.transactionId))
372463
373- func aV (b) = f(b, "static_accessItemPrice")
374464
375- if ((aS != "open"))
376- then throw("rebirth is finished or not open")
377- else if ((aR > height))
378- then throw("you cannot finish rebirth, yet")
379- else {
380- let aW = an(fromBase58String(aE), aR, aq)
381- let ai = aE
382- let aX = if ((indexOf(aW, "perch") != unit))
383- then {
384- let aY = takeRight(aW, 1)
385- let aQ = invoke(D(), "addFreePerch", [b, aY], nil)
386- if ((aQ == aQ))
387- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
388- else throw("Strict value is not equal to itself.")
389- }
390- else if ((aW == "incubator"))
391- then {
392- let aQ = invoke(B(), "issueFreeDuck", [b, ai], nil)
393- if ((aQ == aQ))
394- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
395- else throw("Strict value is not equal to itself.")
396- }
397- else if ((aW == "ar"))
398- then {
399- let ad = aU(I())
400- let aZ = aV(I())
401- let aQ = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aZ)])
402- if ((aQ == aQ))
403- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
404- else throw("Strict value is not equal to itself.")
405- }
406- else if ((aW == "phoenix"))
407- then {
408- let aQ = invoke(B(), "issueJackpot", [b, ai, valueOrElse(getString("JACKPOT_NAME"), "WWWWWWWP")], nil)
409- if ((aQ == aQ))
410- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
411- else throw("Strict value is not equal to itself.")
412- }
413- else if ((indexOf(aW, "duckling") != unit))
414- then {
415- let ba = parseIntValue(split(aW, "_")[1])
416- let aQ = invoke(E(), "issueFreeDuckling", [b, ai, ba], nil)
417- if ((aQ == aQ))
418- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
419- else throw("Strict value is not equal to itself.")
420- }
421- else if ((indexOf(aW, "item") != unit))
422- then {
423- let bb = split(aW, "!")[1]
424- let aQ = invoke(G(), "issueArtefact", [bb, b], nil)
425- if ((aQ == aQ))
426- then [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_result"), S(aQ))]
427- else throw("Strict value is not equal to itself.")
428- }
429- else throw("RFB: Some error occured, please contact the admins!")
430- ((aX ++ [StringEntry((((("address_" + b) + "_initTx_") + aE) + "_win"), aW), StringEntry((((("address_" + b) + "_initTx_") + aE) + "_status"), "finish")]) ++ aH)
431- }
432- }
433- else throw("Strict value is not equal to itself.")
434- }
435- else throw("Strict value is not equal to itself.")
436- }
465+
466+@Callable(aT)
467+func finishRebirthDouble (aB) = if (!(if ((size(aT.payments) == 2))
468+ then (aT.payments[0].amount == 1)
469+ else false))
470+ then throw("Invalid payment")
471+ else {
472+ let ad = value(aT.payments[0].assetId)
473+ let bh = S(invoke(G(), "checkArtefactDetails", [toBase58String(ad)], nil))
474+ if ((bh == bh))
475+ then if ((bh == "ART-GIFT_DOUBL"))
476+ then ([Burn(ad, 1)] ++ aA(aB, toString(aT.caller), aT.payments[1], true, toBase58String(aT.transactionId)))
477+ else throw("Error! Wrong item attached to double rewards!")
478+ else throw("Strict value is not equal to itself.")
479+ }
437480
438481
439482 @Verifier(ao)
440-func bc () = if (az())
483+func bi () = if (az())
441484 then sigVerify(ao.bodyBytes, ao.proofs[0], ao.senderPublicKey)
442485 else {
443- let bd = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
444- let be = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
445- let bf = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
446- let bg = if (sigVerify(ao.bodyBytes, ao.proofs[0], bd))
486+ let bj = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
487+ let bk = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
488+ let bl = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
489+ let bm = if (sigVerify(ao.bodyBytes, ao.proofs[0], bj))
447490 then 1
448- else if (sigVerify(ao.bodyBytes, ao.proofs[1], bd))
491+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bj))
449492 then 1
450- else if (sigVerify(ao.bodyBytes, ao.proofs[2], bd))
493+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bj))
451494 then 1
452495 else 0
453- let bh = if (sigVerify(ao.bodyBytes, ao.proofs[0], be))
496+ let bn = if (sigVerify(ao.bodyBytes, ao.proofs[0], bk))
454497 then 1
455- else if (sigVerify(ao.bodyBytes, ao.proofs[1], be))
498+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bk))
456499 then 1
457- else if (sigVerify(ao.bodyBytes, ao.proofs[2], be))
500+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bk))
458501 then 1
459502 else 0
460- let bi = if (sigVerify(ao.bodyBytes, ao.proofs[0], bf))
503+ let bo = if (sigVerify(ao.bodyBytes, ao.proofs[0], bl))
461504 then 1
462- else if (sigVerify(ao.bodyBytes, ao.proofs[1], bf))
505+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bl))
463506 then 1
464- else if (sigVerify(ao.bodyBytes, ao.proofs[2], bf))
507+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bl))
465508 then 1
466509 else 0
467- let bj = ((bg + bh) + bi)
510+ let bp = ((bm + bn) + bo)
468511 let d = ao
469- (bj >= 2)
512+ (bp >= 2)
470513 }
471514

github/deemru/w8io/3ef1775 
99.06 ms