tx · 6abPacCV6SA8LQ8MYnRuta7yg1yqt373HVgSkWBL9cHE

3N4uWa2T9W2p4WgDwLPo3kWRp8eXRatp4vv:  -0.01100000 Waves

2022.07.23 21:26 [2152781] smart account 3N4uWa2T9W2p4WgDwLPo3kWRp8eXRatp4vv > SELF 0.00000000 Waves

{ "type": 13, "id": "6abPacCV6SA8LQ8MYnRuta7yg1yqt373HVgSkWBL9cHE", "fee": 1100000, "feeAssetId": null, "timestamp": 1658600752825, "version": 2, "chainId": 84, "sender": "3N4uWa2T9W2p4WgDwLPo3kWRp8eXRatp4vv", "senderPublicKey": "6pUz5KTgi8pySNF2EuYHUMBkXbTyxL7R7YWGgb2PkhgU", "proofs": [ "5rm9uPeFPQkexWRkahv3WRu88R8uJXRbeADrtjrbDXzfECCxpD7vJS6dCDag4PejRPE6aR3oeshsbTxfaYUehczA" ], "script": "base64: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ZXN1bHRzCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQUAAAAQY29sbGVjdG9yQWRkcmVzcwkAAGUAAAACCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAUAAAAKZWdnc05lZWRlZAUAAAALZWdnc0Fzc2V0SWQFAAAAA25pbAAAAAFpAQAAABNmaW5pc2hQYW5kYUFkb3B0aW9uAAAAAQAAAAd0eElkU3RyBAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEUFkb3B0aW9uU3RhdHVzS2V5CQEAAAAUZ2V0QWRvcHRpb25TdGF0dXNLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAPZmluaXNoSGVpZ2h0S2V5CQEAAAAaZ2V0QWRvcHRpb25GaW5pc2hIZWlnaHRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAJZHVja0lkS2V5CQEAAAAMZ2V0RHVja0lkS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQEAAAADGR1Y2tGcm9tQmFieQQAAAAHJG1hdGNoMAkABCAAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAJQWRvcHRpb25fBQAAAAd0eElkU3RyAgAAAAlfYmFieUR1Y2sDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQHBAAAABBBZG9wdGlvblR4U3RhdHVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAABFBZG9wdGlvblN0YXR1c0tleQQAAAAUQWRvcHRpb25GaW5pc2hIZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2ZpbmlzaEhlaWdodEtleQMJAAAAAAAAAgUAAAAQQWRvcHRpb25UeFN0YXR1cwUAAAAQQWRvcHRpb25GaW5pc2hlZAQAAAAGZHVja0lkCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQEAAAAMZ2V0RHVja0lkS2V5AAAA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", "height": 2152781, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AeRLF5VgPooFZGhsQVYouBCkrSsCfjPTFyytP7jt7rVj Next: none Diff:
OldNewDifferences
55
66 let b = base58'3MpADDQFqadaCADNH9JDMQAGw9WEaMcymVU'
77
8-let c = 1440
8+let c = 2
99
10-let d = 1000000000
10+let d = 10
1111
12-let e = 2
12+let e = 9
1313
14-let f = 8
14+let f = 5
1515
16-let g = 8
16+let g = "ADOPTION_STARTED"
1717
18-func h (i) = {
19- let j = {
20- let k = getInteger(this, i)
21- if ($isInstanceOf(k, "Int"))
18+let h = "ADOPTION_FINISHED"
19+
20+func i (j,k) = (((j + "_") + toBase58String(k)) + "_status")
21+
22+
23+func l (j,k) = (((j + "_") + toBase58String(k)) + "_fh")
24+
25+
26+func m (j,k) = (((j + "_") + toBase58String(k)) + "_di")
27+
28+
29+func n (o) = (("stats_" + o) + "_amount")
30+
31+
32+func p (q) = {
33+ let r = {
34+ let s = getInteger(this, q)
35+ if ($isInstanceOf(s, "Int"))
2236 then {
23- let l = k
24- l
37+ let t = s
38+ t
2539 }
2640 else 0
2741 }
28- j
42+ r
2943 }
3044
3145
32-func m (i) = {
33- let j = {
34- let k = getString(this, i)
35- if ($isInstanceOf(k, "String"))
36- then {
37- let l = k
38- l
39- }
40- else ""
41- }
42- j
46+func u (v,k,w,x) = {
47+ let y = value(blockInfoByHeight((w - 1)))
48+ let z = sha256((k + value(y.vrf)))
49+ (toInt(z, (x * 8)) % v)
4350 }
4451
4552
46-func n (i) = {
47- let k = getBoolean(this, i)
48- if ($isInstanceOf(k, "Boolean"))
49- then {
50- let l = k
51- l
52- }
53- else false
53+func A (B) = p(n(B))
54+
55+
56+func C (k,w) = {
57+ let D = toString(u(6, k, w, 0))
58+ let E = toString(u(5, k, w, 0))
59+ let F = toString(u(3, k, w, 0))
60+ let G = toString(u(43, k, w, 0))
61+ let H = toString(u(34, k, w, 0))
62+ let I = u(4, k, w, 1)
63+ let J = if ((I == 0))
64+ then "R"
65+ else if ((I == 1))
66+ then "G"
67+ else if ((I == 2))
68+ then "B"
69+ else "Y"
70+ $Tuple2(((((((("PANDA-" + D) + E) + F) + G) + H) + "-") + J), "PANDA")
5471 }
5572
5673
57-@Callable(o)
58-func exchangeToken (p) = {
59- let q = toBase58String(o.transactionId)
60- let r = (p / e)
61- let s = h((("receiver_" + toString(o.originCaller)) + "_lastDay"))
62- let t = h((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"))
63- if ((height > (s + c)))
64- then if ((t > d))
65- then throw("Max exchange limit reached. Please try after 24 hours.")
66- else if (((t + p) > d))
67- then throw("Max exchange crossed. Please try with lower value.")
68- else [IntegerEntry((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"), (t + p)), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_waveAmount"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_tokenAmount"), r), ScriptTransfer(Address(b), p, unit), ScriptTransfer(o.originCaller, r, a)]
69- else [IntegerEntry((("receiver_" + toString(o.originCaller)) + "_lastDay"), height), IntegerEntry((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_waveAmount"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_tokenAmount"), r), ScriptTransfer(Address(b), p, unit), ScriptTransfer(o.originCaller, r, a)]
74+func K (L) = {
75+ let M = L
76+ let N = d
77+ let O = e
78+ let P = pow((100 + ((M * N) / (10 * O))), 2, 5, 1, 2, DOWN)
79+ (P * 1000000)
7080 }
7181
7282
73-@Verifier(u)
74-func v () = sigVerify(u.bodyBytes, u.proofs[0], u.senderPublicKey)
83+@Callable(Q)
84+func startPandaAdoption () = {
85+ let L = p("ducks_amount")
86+ let R = K(L)
87+ let S = value(Q.payments[0])
88+ let T = [StringEntry(i(toString(Q.originCaller), Q.transactionId), g), IntegerEntry(l(toString(Q.originCaller), Q.transactionId), (height + c)), IntegerEntry("ducks_amount", (L + 1)), IntegerEntry("ducks_last_price", (R / 1000000))]
89+ if ((S.assetId != a))
90+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
91+ else if ((R > S.amount))
92+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(R)))
93+ else (T ++ [ScriptTransfer(Address(b), (S.amount - R), a)])
94+ }
95+
96+
97+
98+@Callable(Q)
99+func finishPandaAdoption (U) = {
100+ let k = fromBase58String(U)
101+ let V = i(toString(Q.caller), k)
102+ let W = l(toString(Q.caller), k)
103+ let X = m(toString(Q.caller), k)
104+ let Y = {
105+ let s = getBoolean((("Adoption_" + U) + "_babyDuck"))
106+ if ($isInstanceOf(s, "Boolean"))
107+ then {
108+ let O = s
109+ O
110+ }
111+ else false
112+ }
113+ let Z = getStringValue(this, V)
114+ let w = getIntegerValue(this, W)
115+ if ((Z == h))
116+ then {
117+ let aa = getStringValue(this, m(toString(Q.caller), k))
118+ throw(("The duck was hatched and claimed already, here is the folowing: " + aa))
119+ }
120+ else if ((w > height))
121+ then throw((((("Adoption is not finished yet " + toString((w - height))) + " blocks remaining, it will take around ") + toString((w - height))) + " minutes"))
122+ else {
123+ let ab = C(k, w)
124+ let ac = ab._1
125+ let ad = ab._2
126+ let ae = (("{\"genotype\": \"" + ac) + "\", \"crossbreeding\": true}")
127+ let af = Issue(ac, ae, 1, 0, false, unit, w)
128+ let ag = calculateAssetId(af)
129+ let ah = (p(n(ac)) + 1)
130+[StringEntry(V, h), StringEntry(X, toBase58String(ag)), StringEntry(toBase58String(ag), X), BooleanEntry((("duck_" + toBase58String(ag)) + "_grown"), Y), IntegerEntry(n(ac), ah), IntegerEntry((("stats_" + ad) + "_quantity"), (p((("stats_" + ad) + "_quantity")) + 1)), af, ScriptTransfer(Address(b), 1, ag)]
131+ }
132+ }
133+
134+
135+@Verifier(ai)
136+func aj () = sigVerify(ai.bodyBytes, ai.proofs[0], ai.senderPublicKey)
75137
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'2cf6jyVG19oHU79R8iHfqFEesjstr3e7nSYEUhb2WagB'
55
66 let b = base58'3MpADDQFqadaCADNH9JDMQAGw9WEaMcymVU'
77
8-let c = 1440
8+let c = 2
99
10-let d = 1000000000
10+let d = 10
1111
12-let e = 2
12+let e = 9
1313
14-let f = 8
14+let f = 5
1515
16-let g = 8
16+let g = "ADOPTION_STARTED"
1717
18-func h (i) = {
19- let j = {
20- let k = getInteger(this, i)
21- if ($isInstanceOf(k, "Int"))
18+let h = "ADOPTION_FINISHED"
19+
20+func i (j,k) = (((j + "_") + toBase58String(k)) + "_status")
21+
22+
23+func l (j,k) = (((j + "_") + toBase58String(k)) + "_fh")
24+
25+
26+func m (j,k) = (((j + "_") + toBase58String(k)) + "_di")
27+
28+
29+func n (o) = (("stats_" + o) + "_amount")
30+
31+
32+func p (q) = {
33+ let r = {
34+ let s = getInteger(this, q)
35+ if ($isInstanceOf(s, "Int"))
2236 then {
23- let l = k
24- l
37+ let t = s
38+ t
2539 }
2640 else 0
2741 }
28- j
42+ r
2943 }
3044
3145
32-func m (i) = {
33- let j = {
34- let k = getString(this, i)
35- if ($isInstanceOf(k, "String"))
36- then {
37- let l = k
38- l
39- }
40- else ""
41- }
42- j
46+func u (v,k,w,x) = {
47+ let y = value(blockInfoByHeight((w - 1)))
48+ let z = sha256((k + value(y.vrf)))
49+ (toInt(z, (x * 8)) % v)
4350 }
4451
4552
46-func n (i) = {
47- let k = getBoolean(this, i)
48- if ($isInstanceOf(k, "Boolean"))
49- then {
50- let l = k
51- l
52- }
53- else false
53+func A (B) = p(n(B))
54+
55+
56+func C (k,w) = {
57+ let D = toString(u(6, k, w, 0))
58+ let E = toString(u(5, k, w, 0))
59+ let F = toString(u(3, k, w, 0))
60+ let G = toString(u(43, k, w, 0))
61+ let H = toString(u(34, k, w, 0))
62+ let I = u(4, k, w, 1)
63+ let J = if ((I == 0))
64+ then "R"
65+ else if ((I == 1))
66+ then "G"
67+ else if ((I == 2))
68+ then "B"
69+ else "Y"
70+ $Tuple2(((((((("PANDA-" + D) + E) + F) + G) + H) + "-") + J), "PANDA")
5471 }
5572
5673
57-@Callable(o)
58-func exchangeToken (p) = {
59- let q = toBase58String(o.transactionId)
60- let r = (p / e)
61- let s = h((("receiver_" + toString(o.originCaller)) + "_lastDay"))
62- let t = h((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"))
63- if ((height > (s + c)))
64- then if ((t > d))
65- then throw("Max exchange limit reached. Please try after 24 hours.")
66- else if (((t + p) > d))
67- then throw("Max exchange crossed. Please try with lower value.")
68- else [IntegerEntry((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"), (t + p)), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_waveAmount"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_tokenAmount"), r), ScriptTransfer(Address(b), p, unit), ScriptTransfer(o.originCaller, r, a)]
69- else [IntegerEntry((("receiver_" + toString(o.originCaller)) + "_lastDay"), height), IntegerEntry((("receiver_" + toString(o.originCaller)) + "_totalAmountInDay"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_waveAmount"), p), IntegerEntry((((("receiver_" + toString(o.originCaller)) + "_transactionId_") + q) + "_tokenAmount"), r), ScriptTransfer(Address(b), p, unit), ScriptTransfer(o.originCaller, r, a)]
74+func K (L) = {
75+ let M = L
76+ let N = d
77+ let O = e
78+ let P = pow((100 + ((M * N) / (10 * O))), 2, 5, 1, 2, DOWN)
79+ (P * 1000000)
7080 }
7181
7282
73-@Verifier(u)
74-func v () = sigVerify(u.bodyBytes, u.proofs[0], u.senderPublicKey)
83+@Callable(Q)
84+func startPandaAdoption () = {
85+ let L = p("ducks_amount")
86+ let R = K(L)
87+ let S = value(Q.payments[0])
88+ let T = [StringEntry(i(toString(Q.originCaller), Q.transactionId), g), IntegerEntry(l(toString(Q.originCaller), Q.transactionId), (height + c)), IntegerEntry("ducks_amount", (L + 1)), IntegerEntry("ducks_last_price", (R / 1000000))]
89+ if ((S.assetId != a))
90+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(a)))
91+ else if ((R > S.amount))
92+ then throw(("To hatch a duck you currently need the following amount of EGGlets: " + toString(R)))
93+ else (T ++ [ScriptTransfer(Address(b), (S.amount - R), a)])
94+ }
95+
96+
97+
98+@Callable(Q)
99+func finishPandaAdoption (U) = {
100+ let k = fromBase58String(U)
101+ let V = i(toString(Q.caller), k)
102+ let W = l(toString(Q.caller), k)
103+ let X = m(toString(Q.caller), k)
104+ let Y = {
105+ let s = getBoolean((("Adoption_" + U) + "_babyDuck"))
106+ if ($isInstanceOf(s, "Boolean"))
107+ then {
108+ let O = s
109+ O
110+ }
111+ else false
112+ }
113+ let Z = getStringValue(this, V)
114+ let w = getIntegerValue(this, W)
115+ if ((Z == h))
116+ then {
117+ let aa = getStringValue(this, m(toString(Q.caller), k))
118+ throw(("The duck was hatched and claimed already, here is the folowing: " + aa))
119+ }
120+ else if ((w > height))
121+ then throw((((("Adoption is not finished yet " + toString((w - height))) + " blocks remaining, it will take around ") + toString((w - height))) + " minutes"))
122+ else {
123+ let ab = C(k, w)
124+ let ac = ab._1
125+ let ad = ab._2
126+ let ae = (("{\"genotype\": \"" + ac) + "\", \"crossbreeding\": true}")
127+ let af = Issue(ac, ae, 1, 0, false, unit, w)
128+ let ag = calculateAssetId(af)
129+ let ah = (p(n(ac)) + 1)
130+[StringEntry(V, h), StringEntry(X, toBase58String(ag)), StringEntry(toBase58String(ag), X), BooleanEntry((("duck_" + toBase58String(ag)) + "_grown"), Y), IntegerEntry(n(ac), ah), IntegerEntry((("stats_" + ad) + "_quantity"), (p((("stats_" + ad) + "_quantity")) + 1)), af, ScriptTransfer(Address(b), 1, ag)]
131+ }
132+ }
133+
134+
135+@Verifier(ai)
136+func aj () = sigVerify(ai.bodyBytes, ai.proofs[0], ai.senderPublicKey)
75137

github/deemru/w8io/873ac7e 
52.07 ms