tx · 4pPN4f88RDft7dnKzuiU2F9GhN7U1HB6WzqHgJWsowQS

3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM:  -0.01400000 Waves

2021.06.16 12:04 [2637446] smart account 3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM > SELF 0.00000000 Waves

{ "type": 13, "id": "4pPN4f88RDft7dnKzuiU2F9GhN7U1HB6WzqHgJWsowQS", "fee": 1400000, "feeAssetId": null, "timestamp": 1623834251835, "version": 2, "chainId": 87, "sender": "3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM", "senderPublicKey": "2u37SmDDZX3Ry9sDnA1umgjYSVQ51faPMAXtooDpx6yw", "proofs": [ "xr2XmkF9Dani2xDKVPJAqVee59594iQ9nzFtf8UvGdtau45MNe2SD3427hR357ZkS4tkaJ5vLAmnBpBaL4NAgax" ], "script": "base64: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IGFzc2V0IGlkOiAJAAJYAAAAAQUAAAALZWdnc0Fzc2V0SWQDCQAAZgAAAAIFAAAACmVnZ3NOZWVkZWQIBQAAAAxmaXJzdFBheW1lbnQAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAABEVG8gaGF0Y2ggYSBkdWNrIHlvdSBjdXJyZW50bHkgbmVlZCB0aGUgZm9sbG93aW5nIGFtb3VudCBvZiBFR0dsZXRzOiAJAAGkAAAAAQUAAAAKZWdnc05lZWRlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAPSGF0Y2hpbmdTdGFydGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9ySGF0Y2hpbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGR1Y2tzX2Ftb3VudAkAAGQAAAACBQAAABB0b3RhbER1Y2tzQW1vdW50AAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBkdWNrc19sYXN0X3ByaWNlBQAAAAplZ2dzTmVlZGVkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGUAAAACCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAUAAAAKZWdnc05lZWRlZAUAAAALZWdnc0Fzc2V0SWQFAAAAA25pbAAAAAFpAQAAABJmaW5pc2hEdWNrSGF0Y2hpbmcAAAABAAAAB3R4SWRTdHIEAAAABHR4SWQJAAJZAAAAAQUAAAAHdHhJZFN0cgQAAAARaGF0Y2hpbmdTdGF0dXNLZXkJAQAAABRnZXRIYXRjaGluZ1N0YXR1c0tleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAAlkdWNrSWRLZXkJAQAAAAxnZXREdWNrSWRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAQaGF0Y2hpbmdUeFN0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAARaGF0Y2hpbmdTdGF0dXNLZXkEAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA9maW5pc2hIZWlnaHRLZXkDCQAAAAAAAAIFAAAAEGhhdGNoaW5nVHhTdGF0dXMFAAAAEEhhdGNoaW5nRmluaXNoZWQEAAAABmR1Y2tJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkBAAAADGdldER1Y2tJZEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkCQAAAgAAAAEJAAEsAAAAAgIAAABAVGhlIGR1Y2sgd2FzIGhhdGNoZWQgYW5kIGNsYWltZWQgYWxyZWFkeSwgaGVyZSBpcyB0aGUgZm9sb3dpbmc6IAUAAAAGZHVja0lkAwkAAGYAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdSGF0Y2hpbmcgaXMgbm90IGZpbmlzaGVkIHlldCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAACcgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAAAggbWludXRlcwQAAAALJHQwNDIxNjQyODIJAQAAAA1nZXRSYW5kb21OYW1lAAAAAgUAAAAEdHhJZAUAAAAUaGF0Y2hpbmdGaW5pc2hIZWlnaHQEAAAAB2R1Y2tHZW4IBQAAAAskdDA0MjE2NDI4MgAAAAJfMQQAAAAHZmFybUdlbggFAAAACyR0MDQyMTY0MjgyAAAAAl8yBAAAAAtkZXNjcmlwdGlvbgkAASwAAAACCQABLAAAAAICAAAADnsiZ2Vub3R5cGUiOiAiBQAAAAdkdWNrR2VuAgAAABkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAAAAAVhc3NldAkABEMAAAAHBQAAAAdkdWNrR2VuBQAAAAtkZXNjcmlwdGlvbgAAAAAAAAAAAQAAAAAAAAAAAAcFAAAABHVuaXQFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAZhbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFoYXRjaGluZ1N0YXR1c0tleQUAAAAQSGF0Y2hpbmdGaW5pc2hlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAlkdWNrSWRLZXkJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQACWAAAAAEFAAAAB2Fzc2V0SWQFAAAACWR1Y2tJZEtleQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5BQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9nZXREdWNrU3RhdHNLZXkAAAABBQAAAAdkdWNrR2VuBQAAAAZhbW91bnQJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAdhc3NldElkBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleY4bEcc=", "height": 2637446, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4SwWRvSphBCZhfEWWk8P1TG6EjaBY2PMqEqq2n9ZRsNq Next: AZnDbpwEjkao9W8w1k4sYMZ2VyASmkU6Uuew5Vmzy7SA Diff:
OldNewDifferences
120120 let Y = Issue(V, X, 1, 0, false, unit, u)
121121 let Z = calculateAssetId(Y)
122122 let aa = (n(l(V)) + 1)
123-[StringEntry(P, f), StringEntry(R, toBase58String(Z)), StringEntry(toBase58String(Z), R), IntegerEntry((("stats_" + W) + "_quantity"), aa), IntegerEntry(l(V), aa), Y, ScriptTransfer(L.caller, 1, Z)]
123+[StringEntry(P, f), StringEntry(R, toBase58String(Z)), StringEntry(toBase58String(Z), R), IntegerEntry((("stats_" + W) + "_quantity"), (n((("stats_" + W) + "_quantity")) + aa)), IntegerEntry(l(V), aa), Y, ScriptTransfer(L.caller, 1, Z)]
124124 }
125125 }
126126
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'53bLXGQhnMxAoiWnza2SJQRp7hNQZVHnyrRziLmwdVjb'
55
66 let b = 0
77
88 let c = 10
99
1010 let d = 2
1111
1212 let e = "HATCHING_STARTED"
1313
1414 let f = "HATCHING_FINISHED"
1515
1616 func g (h,i) = (((h + "_") + toBase58String(i)) + "_status")
1717
1818
1919 func j (h,i) = (((h + "_") + toBase58String(i)) + "_fh")
2020
2121
2222 func k (h,i) = (((h + "_") + toBase58String(i)) + "_di")
2323
2424
2525 func l (m) = (("stats_" + m) + "_amount")
2626
2727
2828 func n (o) = {
2929 let p = {
3030 let q = getInteger(this, o)
3131 if ($isInstanceOf(q, "Int"))
3232 then {
3333 let r = q
3434 r
3535 }
3636 else 0
3737 }
3838 p
3939 }
4040
4141
4242 func s (t,i,u,v) = {
4343 let w = value(blockInfoByHeight((u - 1)))
4444 let x = sha256_16Kb((i + value(w.vrf)))
4545 (toInt(x, (v * 8)) % t)
4646 }
4747
4848
4949 func y (z) = n(l(z))
5050
5151
5252 func A (i,u) = {
5353 let B = s(1, i, u, 0)
5454 if (if ((B == 0))
5555 then (y("DUCK-WWWWWWWW-JU") == 0)
5656 else false)
5757 then $Tuple2("DUCK-WWWWWWWW-JU", "8W-J")
5858 else {
5959 let C = s(3, i, u, 0)
6060 let D = s(4, i, u, 1)
6161 let E = if ((D == 0))
6262 then "Y"
6363 else if ((D == 1))
6464 then "G"
6565 else if ((D == 2))
6666 then "B"
6767 else "R"
6868 if ((C == 0))
6969 then $Tuple2(("DUCK-AAAAAAAA-G" + E), "8A-G")
7070 else if ((C == 1))
7171 then $Tuple2(("DUCK-BBBBBBBB-G" + E), "8B-G")
7272 else $Tuple2(("DUCK-CCCCCCCC-G" + E), "8C-G")
7373 }
7474 }
7575
7676
7777 func F (G) = {
7878 let H = G
7979 let I = c
8080 let J = d
8181 let K = pow((100 + ((H * I) / (10 * J))), 2, 5, 1, 2, DOWN)
8282 K
8383 }
8484
8585
8686 @Callable(L)
8787 func startDuckHatching () = {
8888 let G = n("ducks_amount")
8989 let M = F(G)
9090 let N = value(L.payments[0])
9191 if ((N.assetId != a))
9292 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
9393 else if ((M > N.amount))
9494 then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(M)))
9595 else [StringEntry(g(toString(L.caller), L.transactionId), e), IntegerEntry(j(toString(L.caller), L.transactionId), (height + b)), IntegerEntry("ducks_amount", (G + 1)), IntegerEntry("ducks_last_price", M), ScriptTransfer(L.caller, (N.amount - M), a)]
9696 }
9797
9898
9999
100100 @Callable(L)
101101 func finishDuckHatching (O) = {
102102 let i = fromBase58String(O)
103103 let P = g(toString(L.caller), i)
104104 let Q = j(toString(L.caller), i)
105105 let R = k(toString(L.caller), i)
106106 let S = getStringValue(this, P)
107107 let u = getIntegerValue(this, Q)
108108 if ((S == f))
109109 then {
110110 let T = getStringValue(this, k(toString(L.caller), i))
111111 throw(("The duck was hatched and claimed already, here is the folowing: " + T))
112112 }
113113 else if ((u > height))
114114 then throw((((("Hatching is not finished yet " + toString((u - height))) + " blocks remaining, it will take around ") + toString((u - height))) + " minutes"))
115115 else {
116116 let U = A(i, u)
117117 let V = U._1
118118 let W = U._2
119119 let X = (("{\"genotype\": \"" + V) + "\", \"crossbreeding\": true}")
120120 let Y = Issue(V, X, 1, 0, false, unit, u)
121121 let Z = calculateAssetId(Y)
122122 let aa = (n(l(V)) + 1)
123-[StringEntry(P, f), StringEntry(R, toBase58String(Z)), StringEntry(toBase58String(Z), R), IntegerEntry((("stats_" + W) + "_quantity"), aa), IntegerEntry(l(V), aa), Y, ScriptTransfer(L.caller, 1, Z)]
123+[StringEntry(P, f), StringEntry(R, toBase58String(Z)), StringEntry(toBase58String(Z), R), IntegerEntry((("stats_" + W) + "_quantity"), (n((("stats_" + W) + "_quantity")) + aa)), IntegerEntry(l(V), aa), Y, ScriptTransfer(L.caller, 1, Z)]
124124 }
125125 }
126126
127127
128128 @Verifier(ab)
129129 func ac () = sigVerify(ab.bodyBytes, ab.proofs[0], ab.senderPublicKey)
130130

github/deemru/w8io/873ac7e 
59.20 ms