tx · 9ynn9a6nrDZxqBcB8PAnGVy6kBPjSM53QMm7Ph2vPhF

3MtDn875i1WRCdCymHMcfCk94YT9ccJJouP:  -0.01500000 Waves

2024.10.03 20:05 [3310942] smart account 3MtDn875i1WRCdCymHMcfCk94YT9ccJJouP > SELF 0.00000000 Waves

{ "type": 13, "id": "9ynn9a6nrDZxqBcB8PAnGVy6kBPjSM53QMm7Ph2vPhF", "fee": 1500000, "feeAssetId": null, "timestamp": 1727975100126, "version": 2, "chainId": 84, "sender": "3MtDn875i1WRCdCymHMcfCk94YT9ccJJouP", "senderPublicKey": "HiVVS4DDgAz7hk7nPYxpMJFMeDwEspXQSDVs5npYHvDa", "proofs": [ "iHyYNa3srbkpRi8bS5ZcwuYF278oD2F83GNDWWSRvigRfMTJcmZ3PE8EacEXPtBNF7Ee96KyNRnTw42r28EdkBc" ], "script": "base64:AAIFAAAAAAAAAB8IAhIECgIICBIAEgMKAQgSBAoCCAgSAwoBCBIDCgEIAAAAIQEAAAAHZ2V0Qm9vbAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAACWlzVGVzdEVudgAAAAAJAQAAAAdnZXRCb29sAAAAAQIAAAAHVEVTVEVOVgEAAAAIa2V5T3duZXIAAAABAAAAC2R1Y2tIb3VzZUlkCQABLAAAAAIFAAAAC2R1Y2tIb3VzZUlkAgAAAAZfb3duZXIBAAAADGtleUR1Y2tIb3VzZQAAAAEAAAAGZHVja0lkCQABLAAAAAIFAAAABmR1Y2tJZAIAAAALX2R1Y2tfaG91c2UBAAAAF29jY3VwaWVkU3BvdHNEdWNrc0hvdXNlAAAAAQAAAAtkdWNrSG91c2VJZAkAASwAAAACBQAAAAtkdWNrSG91c2VJZAIAAAANX2ZpbGxlZF9zcG90cwEAAAANdHJ5R2V0Qm9vbGVhbgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEIAAAAAEFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAACGFzU3RyaW5nAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAGc3RyaW5nBQAAAAckbWF0Y2gwBQAAAAZzdHJpbmcJAAACAAAAAQIAAAAcd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZwEAAAAFYXNJbnQAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAABl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAACAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAABZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAAAAAIAAAATc3RhdGljX2l0ZW1zQWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAABRzdGF0aWNLZXlfZWdnQXNzZXRJZAAAAAACAAAAEXN0YXRpY19lZ2dBc3NldElkAQAAABhzdGF0aWNLZXlfZmFybWluZ0FkZHJlc3MAAAAAAgAAABhzdGF0aWNfZmFybWluZ0FkZHJlc3NOZXcBAAAAEnN0YXRpY0tleV9tYXhEdWNrcwAAAAACAAAAD3N0YXRpY19tYXhEdWNrcwEAAAAQc3RhdGljX3N0YWtlQ2FsbAAAAAACAAAACHN0YWtlTkZUAQAAABtzdGF0aWNLZXlfc3Rha2VXaXRob3V0UGVyY2gAAAAAAgAAABRzdGF0aWNfd2l0aG91dF9wZXJjaAEAAAAOc3RhdGljS2V5X3R5cGUAAAAAAgAAAAtzdGF0aWNfdHlwZQEAAAAPc3RhdGljS2V5X2Jvb3N0AAAAAAIAAAAMc3RhdGljX2Jvb3N0AQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAAD2dldEl0ZW1zQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABBnZXRGZWVBZ2dyZWdhdG9yAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAAAAAQAAAAhtYXhEdWNrcwAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEnN0YXRpY0tleV9tYXhEdWNrcwAAAAABAAAABHR5cGUAAAAACQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADnN0YXRpY0tleV90eXBlAAAAAAEAAAAFYm9vc3QAAAAACQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA9zdGF0aWNLZXlfYm9vc3QAAAAAAQAAAAlpc0phY2twb3QAAAABAAAAB2Fzc2V0SWQJAAAAAAAAAgkBAAAACXRha2VSaWdodAAAAAIJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAB2Fzc2V0SWQAAAAEbmFtZQAAAAAAAAAAAQIAAAABVQEAAAAWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAAA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", "height": 3310942, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 13WojSu8gnZPbijG7TT5FLZiNAmzdjaDDBJDz34T9oMi Next: BK6BrLs1rEjEx1jFJPSEE3upcETqjtHsXefBMiZsYCZv Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = (b + "_owner")
5-
6-
7-func c (d) = (d + "_duck_house")
8-
9-
10-func e (b) = (b + "_filled_spots")
11-
12-
13-func f (g) = {
14- let h = getBoolean(g)
15- if ($isInstanceOf(h, "Boolean"))
4+func a (b) = {
5+ let c = getBoolean(this, b)
6+ if ($isInstanceOf(c, "Boolean"))
167 then {
17- let i = h
18- i
8+ let d = c
9+ d
1910 }
2011 else false
2112 }
2213
2314
24-func j (k,g) = {
25- let h = getString(k, g)
26- if ($isInstanceOf(h, "String"))
15+func e () = a("TESTENV")
16+
17+
18+func f (g) = (g + "_owner")
19+
20+
21+func h (i) = (i + "_duck_house")
22+
23+
24+func j (g) = (g + "_filled_spots")
25+
26+
27+func k (b) = {
28+ let c = getBoolean(b)
29+ if ($isInstanceOf(c, "Boolean"))
2730 then {
28- let l = h
29- l
31+ let d = c
32+ d
33+ }
34+ else false
35+ }
36+
37+
38+func l (m,b) = {
39+ let c = getString(m, b)
40+ if ($isInstanceOf(c, "String"))
41+ then {
42+ let n = c
43+ n
3044 }
3145 else ""
3246 }
3347
3448
35-func m (g) = j(this, g)
49+func o (b) = l(this, b)
3650
3751
38-func n (g) = {
39- let h = getInteger(this, g)
40- if ($isInstanceOf(h, "Int"))
52+func p (b) = {
53+ let c = getInteger(this, b)
54+ if ($isInstanceOf(c, "Int"))
4155 then {
42- let i = h
43- i
56+ let d = c
57+ d
4458 }
4559 else 0
4660 }
4761
4862
49-func o (p) = {
50- let h = p
51- if ($isInstanceOf(h, "String"))
63+func q (r) = {
64+ let c = r
65+ if ($isInstanceOf(c, "String"))
5266 then {
53- let q = h
54- q
67+ let s = c
68+ s
5569 }
5670 else throw("wrong type, expected: String")
5771 }
5872
5973
60-func r (p) = {
61- let h = p
62- if ($isInstanceOf(h, "Int"))
74+func t (r) = {
75+ let c = r
76+ if ($isInstanceOf(c, "Int"))
6377 then {
64- let s = h
65- s
78+ let u = c
79+ u
6680 }
6781 else throw("wrong type, expected: Int")
6882 }
6983
7084
71-func t () = "static_oracleAddress"
85+func v () = "static_oracleAddress"
7286
7387
74-func u () = "static_itemsAddress"
88+func w () = "static_itemsAddress"
7589
7690
77-func v () = "static_extraFee"
91+func x () = "static_extraFee"
7892
7993
80-func w () = "static_feeAggregator"
94+func y () = "static_feeAggregator"
8195
8296
83-func x () = "static_eggAssetId"
97+func z () = "static_eggAssetId"
8498
8599
86-func y () = "static_farmingAddressNew"
100+func A () = "static_farmingAddressNew"
87101
88102
89-func z () = "static_maxDucks"
103+func B () = "static_maxDucks"
90104
91105
92-func A () = "stakeNFT"
106+func C () = "stakeNFT"
93107
94108
95-func B () = "static_without_perch"
109+func D () = "static_without_perch"
96110
97111
98-func C () = "static_type"
112+func E () = "static_type"
99113
100114
101-func D () = "static_boost"
115+func F () = "static_boost"
102116
103117
104-func E () = Address(fromBase58String(m(t())))
118+func G () = Address(fromBase58String(o(v())))
105119
106120
107-func F () = Address(fromBase58String(j(E(), u())))
121+func H () = Address(fromBase58String(l(G(), w())))
108122
109123
110-func G () = Address(fromBase58String(j(E(), y())))
124+func I () = Address(fromBase58String(l(G(), A())))
111125
112126
113-func H () = fromBase58String(j(E(), x()))
127+func J () = fromBase58String(l(G(), z()))
114128
115129
116-func I () = Address(fromBase58String(j(E(), w())))
130+func K () = Address(fromBase58String(l(G(), y())))
117131
118132
119-func J () = n(z())
133+func L () = p(B())
120134
121135
122-func K () = m(C())
136+func M () = o(E())
123137
124138
125-func L () = n(D())
139+func N () = p(F())
126140
127141
128-func M (N) = (takeRight(value(value(assetInfo(N)).name), 1) == "U")
142+func O (P) = (takeRight(value(value(assetInfo(P)).name), 1) == "U")
129143
130144
131-func O (P) = if (isDefined(P.assetId))
145+func Q (R) = if (isDefined(R.assetId))
132146 then throw("WCAP: Please attach waves")
133147 else {
134- let Q = getIntegerValue(E(), v())
135- if ((P.amount != Q))
136- then throw((("WCAP: Please attach exactly " + toString(Q)) + " amount of wavelets"))
137- else [ScriptTransfer(I(), Q, unit)]
148+ let S = getIntegerValue(G(), x())
149+ if ((R.amount != S))
150+ then throw((("WCAP: Please attach exactly " + toString(S)) + " amount of wavelets"))
151+ else [ScriptTransfer(K(), S, unit)]
138152 }
139153
140154
141-func R (S,T) = {
142- let b = m(c(S))
143- let U = m(a(b))
144- let k = toString(T.caller)
145- if ((U != k))
155+func T (U,V) = {
156+ let g = o(h(U))
157+ let W = o(f(g))
158+ let m = toString(V.caller)
159+ if ((W != m))
146160 then throw("Don't try to steal someone duck!")
147- else b
161+ else g
148162 }
149163
150164
151-@Callable(T)
152-func configureOracle (V,K) = if ((T.caller != this))
165+@Callable(V)
166+func configureOracle (X,M) = if ((V.caller != this))
153167 then throw("admin only")
154168 else {
155- let W = if ((K == "ART-BIGHOUSE"))
156- then [IntegerEntry(D(), 15), IntegerEntry(z(), 10), BooleanEntry(B(), true)]
157- else if ((K == "ART-HOUSE"))
158- then [IntegerEntry(D(), 30), IntegerEntry(z(), 4), BooleanEntry(B(), false)]
159- else if ((K == "ART-XMAS_STBLE"))
160- then [IntegerEntry(D(), 5), IntegerEntry(z(), 6), BooleanEntry(B(), false)]
169+ let Y = if ((M == "ART-BIGHOUSE"))
170+ then [IntegerEntry(F(), 15), IntegerEntry(B(), 10), BooleanEntry(D(), true)]
171+ else if ((M == "ART-HOUSE"))
172+ then [IntegerEntry(F(), 30), IntegerEntry(B(), 4), BooleanEntry(D(), false)]
173+ else if ((M == "ART-XMAS_STBLE"))
174+ then [IntegerEntry(F(), 5), IntegerEntry(B(), 6), BooleanEntry(D(), false)]
161175 else throw("Unknown type!")
162- ([StringEntry(t(), V), StringEntry(C(), K)] ++ W)
176+ ([StringEntry(v(), X), StringEntry(E(), M)] ++ Y)
163177 }
164178
165179
166180
167-@Callable(T)
181+@Callable(V)
168182 func stakeDuckHouse () = {
169- let U = toString(T.caller)
170- let X = value(T.payments[0])
171- let Y = O(T.payments[1])
172- let Z = toBase58String(value(X.assetId))
173- if ((X.amount != 1))
183+ let W = toString(V.caller)
184+ let Z = value(V.payments[0])
185+ let aa = Q(V.payments[1])
186+ let ab = toBase58String(value(Z.assetId))
187+ if ((Z.amount != 1))
174188 then throw("NFT is not attached")
175189 else {
176- let aa = o(invoke(F(), "checkArtefactDetails", [Z], nil))
177- if ((aa == aa))
178- then if ((aa != K()))
190+ let ac = q(invoke(H(), "checkArtefactDetails", [ab], nil))
191+ if ((ac == ac))
192+ then if ((ac != M()))
179193 then throw("Wrong artefact")
180- else ([StringEntry(a(Z), U)] ++ Y)
194+ else ([StringEntry(f(ab), W)] ++ aa)
181195 else throw("Strict value is not equal to itself.")
182196 }
183197 }
184198
185199
186200
187-@Callable(T)
188-func unstakeDuckHouse (b) = {
189- let ab = toString(T.caller)
190- let ac = m(a(b))
191- let Y = O(T.payments[0])
192- if ((ac == ""))
201+@Callable(V)
202+func unstakeDuckHouse (g) = {
203+ let ad = toString(V.caller)
204+ let ae = o(f(g))
205+ let aa = Q(V.payments[0])
206+ if ((ae == ""))
193207 then throw("This duckhouse is not staked!")
194- else if ((ac != ab))
208+ else if ((ae != ad))
195209 then throw("This duckhouse is not yours!")
196- else if ((n(e(b)) != 0))
210+ else if ((p(j(g)) != 0))
197211 then throw("Please first remove your ducks from the duckhouse")
198- else ([ScriptTransfer(T.caller, 1, fromBase58String(b)), DeleteEntry(a(b))] ++ Y)
212+ else ([ScriptTransfer(V.caller, 1, fromBase58String(g)), DeleteEntry(f(g))] ++ aa)
199213 }
200214
201215
202216
203-@Callable(T)
204-func stakeDuck (b,ad) = {
205- let N = value(value(T.payments[1]).assetId)
206- let k = toString(T.caller)
207- let ac = m(a(b))
208- if ((ac == ""))
217+@Callable(V)
218+func stakeDuck (g,af) = {
219+ let P = value(value(V.payments[1]).assetId)
220+ let m = toString(V.caller)
221+ let ae = o(f(g))
222+ if ((ae == ""))
209223 then throw("This duckhouse is not staked!")
210- else if ((ac != k))
224+ else if ((ae != m))
211225 then throw("This duckhouse is not yours!")
212226 else {
213- let ae = n(e(b))
214- if ((ae == J()))
227+ let ag = p(j(g))
228+ if ((ag == L()))
215229 then throw("No space in duck house left!")
216230 else {
217- let af = invoke(F(), "manipulateBoost", [L(), toBase58String(N)], nil)
218- if ((af == af))
231+ let ah = invoke(H(), "manipulateBoost", [N(), toBase58String(P)], nil)
232+ if ((ah == ah))
219233 then {
220- let ag = invoke(G(), A(), [ad, true, f(B())], T.payments)
221- if ((ag == ag))
222- then [IntegerEntry(e(b), (ae + 1)), StringEntry(c(toBase58String(N)), b)]
234+ let ai = invoke(I(), C(), [af, true, k(D())], V.payments)
235+ if ((ai == ai))
236+ then [IntegerEntry(j(g), (ag + 1)), StringEntry(h(toBase58String(P)), g)]
223237 else throw("Strict value is not equal to itself.")
224238 }
225239 else throw("Strict value is not equal to itself.")
229243
230244
231245
232-@Callable(T)
233-func unstakeDuck (S) = {
234- let b = R(S, T)
235- if ((b == b))
246+@Callable(V)
247+func unstakeDuck (U) = {
248+ let g = T(U, V)
249+ if ((g == g))
236250 then {
237- let ah = r(invoke(G(), "unstakeNFT", [S], T.payments))
238- if ((ah == ah))
251+ let aj = t(invoke(I(), "unstakeNFT", [U], V.payments))
252+ if ((aj == aj))
239253 then {
240- let ae = n(e(b))
241- if ((ae == 0))
254+ let ag = p(j(g))
255+ if ((ag == 0))
242256 then throw("You aren't staking any ducks!")
243257 else {
244- let ai = invoke(F(), "manipulateBoost", [-(L()), S], nil)
245- if ((ai == ai))
246- then [ScriptTransfer(T.caller, ah, H()), ScriptTransfer(T.caller, 1, fromBase58String(S)), DeleteEntry(c(S)), IntegerEntry(e(b), (ae - 1))]
258+ let ak = invoke(H(), "manipulateBoost", [-(N()), U], nil)
259+ if ((ak == ak))
260+ then [ScriptTransfer(V.caller, aj, J()), ScriptTransfer(V.caller, 1, fromBase58String(U)), DeleteEntry(h(U)), IntegerEntry(j(g), (ag - 1))]
247261 else throw("Strict value is not equal to itself.")
248262 }
249263 }
254268
255269
256270
257-@Callable(T)
258-func claimDuckRewards (S) = {
259- let U = R(S, T)
260- if ((U == U))
271+@Callable(V)
272+func claimDuckRewards (U) = {
273+ let W = T(U, V)
274+ if ((W == W))
261275 then {
262- let aj = r(invoke(G(), "claimReward", [S], T.payments))
263- if ((aj == aj))
264- then [ScriptTransfer(T.caller, aj, H())]
276+ let al = t(invoke(I(), "claimReward", [U], V.payments))
277+ if ((al == al))
278+ then [ScriptTransfer(V.caller, al, J())]
265279 else throw("Strict value is not equal to itself.")
266280 }
267281 else throw("Strict value is not equal to itself.")
268282 }
269283
270284
285+@Verifier(am)
286+func an () = if (e())
287+ then sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
288+ else {
289+ let ao = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
290+ let ap = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
291+ let aq = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
292+ let ar = if (sigVerify(am.bodyBytes, am.proofs[0], ao))
293+ then 1
294+ else if (sigVerify(am.bodyBytes, am.proofs[1], ao))
295+ then 1
296+ else if (sigVerify(am.bodyBytes, am.proofs[2], ao))
297+ then 1
298+ else 0
299+ let as = if (sigVerify(am.bodyBytes, am.proofs[0], ap))
300+ then 1
301+ else if (sigVerify(am.bodyBytes, am.proofs[1], ap))
302+ then 1
303+ else if (sigVerify(am.bodyBytes, am.proofs[2], ap))
304+ then 1
305+ else 0
306+ let at = if (sigVerify(am.bodyBytes, am.proofs[0], aq))
307+ then 1
308+ else if (sigVerify(am.bodyBytes, am.proofs[1], aq))
309+ then 1
310+ else if (sigVerify(am.bodyBytes, am.proofs[2], aq))
311+ then 1
312+ else 0
313+ let au = ((ar + as) + at)
314+ let c = am
315+ (au >= 2)
316+ }
317+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = (b + "_owner")
5-
6-
7-func c (d) = (d + "_duck_house")
8-
9-
10-func e (b) = (b + "_filled_spots")
11-
12-
13-func f (g) = {
14- let h = getBoolean(g)
15- if ($isInstanceOf(h, "Boolean"))
4+func a (b) = {
5+ let c = getBoolean(this, b)
6+ if ($isInstanceOf(c, "Boolean"))
167 then {
17- let i = h
18- i
8+ let d = c
9+ d
1910 }
2011 else false
2112 }
2213
2314
24-func j (k,g) = {
25- let h = getString(k, g)
26- if ($isInstanceOf(h, "String"))
15+func e () = a("TESTENV")
16+
17+
18+func f (g) = (g + "_owner")
19+
20+
21+func h (i) = (i + "_duck_house")
22+
23+
24+func j (g) = (g + "_filled_spots")
25+
26+
27+func k (b) = {
28+ let c = getBoolean(b)
29+ if ($isInstanceOf(c, "Boolean"))
2730 then {
28- let l = h
29- l
31+ let d = c
32+ d
33+ }
34+ else false
35+ }
36+
37+
38+func l (m,b) = {
39+ let c = getString(m, b)
40+ if ($isInstanceOf(c, "String"))
41+ then {
42+ let n = c
43+ n
3044 }
3145 else ""
3246 }
3347
3448
35-func m (g) = j(this, g)
49+func o (b) = l(this, b)
3650
3751
38-func n (g) = {
39- let h = getInteger(this, g)
40- if ($isInstanceOf(h, "Int"))
52+func p (b) = {
53+ let c = getInteger(this, b)
54+ if ($isInstanceOf(c, "Int"))
4155 then {
42- let i = h
43- i
56+ let d = c
57+ d
4458 }
4559 else 0
4660 }
4761
4862
49-func o (p) = {
50- let h = p
51- if ($isInstanceOf(h, "String"))
63+func q (r) = {
64+ let c = r
65+ if ($isInstanceOf(c, "String"))
5266 then {
53- let q = h
54- q
67+ let s = c
68+ s
5569 }
5670 else throw("wrong type, expected: String")
5771 }
5872
5973
60-func r (p) = {
61- let h = p
62- if ($isInstanceOf(h, "Int"))
74+func t (r) = {
75+ let c = r
76+ if ($isInstanceOf(c, "Int"))
6377 then {
64- let s = h
65- s
78+ let u = c
79+ u
6680 }
6781 else throw("wrong type, expected: Int")
6882 }
6983
7084
71-func t () = "static_oracleAddress"
85+func v () = "static_oracleAddress"
7286
7387
74-func u () = "static_itemsAddress"
88+func w () = "static_itemsAddress"
7589
7690
77-func v () = "static_extraFee"
91+func x () = "static_extraFee"
7892
7993
80-func w () = "static_feeAggregator"
94+func y () = "static_feeAggregator"
8195
8296
83-func x () = "static_eggAssetId"
97+func z () = "static_eggAssetId"
8498
8599
86-func y () = "static_farmingAddressNew"
100+func A () = "static_farmingAddressNew"
87101
88102
89-func z () = "static_maxDucks"
103+func B () = "static_maxDucks"
90104
91105
92-func A () = "stakeNFT"
106+func C () = "stakeNFT"
93107
94108
95-func B () = "static_without_perch"
109+func D () = "static_without_perch"
96110
97111
98-func C () = "static_type"
112+func E () = "static_type"
99113
100114
101-func D () = "static_boost"
115+func F () = "static_boost"
102116
103117
104-func E () = Address(fromBase58String(m(t())))
118+func G () = Address(fromBase58String(o(v())))
105119
106120
107-func F () = Address(fromBase58String(j(E(), u())))
121+func H () = Address(fromBase58String(l(G(), w())))
108122
109123
110-func G () = Address(fromBase58String(j(E(), y())))
124+func I () = Address(fromBase58String(l(G(), A())))
111125
112126
113-func H () = fromBase58String(j(E(), x()))
127+func J () = fromBase58String(l(G(), z()))
114128
115129
116-func I () = Address(fromBase58String(j(E(), w())))
130+func K () = Address(fromBase58String(l(G(), y())))
117131
118132
119-func J () = n(z())
133+func L () = p(B())
120134
121135
122-func K () = m(C())
136+func M () = o(E())
123137
124138
125-func L () = n(D())
139+func N () = p(F())
126140
127141
128-func M (N) = (takeRight(value(value(assetInfo(N)).name), 1) == "U")
142+func O (P) = (takeRight(value(value(assetInfo(P)).name), 1) == "U")
129143
130144
131-func O (P) = if (isDefined(P.assetId))
145+func Q (R) = if (isDefined(R.assetId))
132146 then throw("WCAP: Please attach waves")
133147 else {
134- let Q = getIntegerValue(E(), v())
135- if ((P.amount != Q))
136- then throw((("WCAP: Please attach exactly " + toString(Q)) + " amount of wavelets"))
137- else [ScriptTransfer(I(), Q, unit)]
148+ let S = getIntegerValue(G(), x())
149+ if ((R.amount != S))
150+ then throw((("WCAP: Please attach exactly " + toString(S)) + " amount of wavelets"))
151+ else [ScriptTransfer(K(), S, unit)]
138152 }
139153
140154
141-func R (S,T) = {
142- let b = m(c(S))
143- let U = m(a(b))
144- let k = toString(T.caller)
145- if ((U != k))
155+func T (U,V) = {
156+ let g = o(h(U))
157+ let W = o(f(g))
158+ let m = toString(V.caller)
159+ if ((W != m))
146160 then throw("Don't try to steal someone duck!")
147- else b
161+ else g
148162 }
149163
150164
151-@Callable(T)
152-func configureOracle (V,K) = if ((T.caller != this))
165+@Callable(V)
166+func configureOracle (X,M) = if ((V.caller != this))
153167 then throw("admin only")
154168 else {
155- let W = if ((K == "ART-BIGHOUSE"))
156- then [IntegerEntry(D(), 15), IntegerEntry(z(), 10), BooleanEntry(B(), true)]
157- else if ((K == "ART-HOUSE"))
158- then [IntegerEntry(D(), 30), IntegerEntry(z(), 4), BooleanEntry(B(), false)]
159- else if ((K == "ART-XMAS_STBLE"))
160- then [IntegerEntry(D(), 5), IntegerEntry(z(), 6), BooleanEntry(B(), false)]
169+ let Y = if ((M == "ART-BIGHOUSE"))
170+ then [IntegerEntry(F(), 15), IntegerEntry(B(), 10), BooleanEntry(D(), true)]
171+ else if ((M == "ART-HOUSE"))
172+ then [IntegerEntry(F(), 30), IntegerEntry(B(), 4), BooleanEntry(D(), false)]
173+ else if ((M == "ART-XMAS_STBLE"))
174+ then [IntegerEntry(F(), 5), IntegerEntry(B(), 6), BooleanEntry(D(), false)]
161175 else throw("Unknown type!")
162- ([StringEntry(t(), V), StringEntry(C(), K)] ++ W)
176+ ([StringEntry(v(), X), StringEntry(E(), M)] ++ Y)
163177 }
164178
165179
166180
167-@Callable(T)
181+@Callable(V)
168182 func stakeDuckHouse () = {
169- let U = toString(T.caller)
170- let X = value(T.payments[0])
171- let Y = O(T.payments[1])
172- let Z = toBase58String(value(X.assetId))
173- if ((X.amount != 1))
183+ let W = toString(V.caller)
184+ let Z = value(V.payments[0])
185+ let aa = Q(V.payments[1])
186+ let ab = toBase58String(value(Z.assetId))
187+ if ((Z.amount != 1))
174188 then throw("NFT is not attached")
175189 else {
176- let aa = o(invoke(F(), "checkArtefactDetails", [Z], nil))
177- if ((aa == aa))
178- then if ((aa != K()))
190+ let ac = q(invoke(H(), "checkArtefactDetails", [ab], nil))
191+ if ((ac == ac))
192+ then if ((ac != M()))
179193 then throw("Wrong artefact")
180- else ([StringEntry(a(Z), U)] ++ Y)
194+ else ([StringEntry(f(ab), W)] ++ aa)
181195 else throw("Strict value is not equal to itself.")
182196 }
183197 }
184198
185199
186200
187-@Callable(T)
188-func unstakeDuckHouse (b) = {
189- let ab = toString(T.caller)
190- let ac = m(a(b))
191- let Y = O(T.payments[0])
192- if ((ac == ""))
201+@Callable(V)
202+func unstakeDuckHouse (g) = {
203+ let ad = toString(V.caller)
204+ let ae = o(f(g))
205+ let aa = Q(V.payments[0])
206+ if ((ae == ""))
193207 then throw("This duckhouse is not staked!")
194- else if ((ac != ab))
208+ else if ((ae != ad))
195209 then throw("This duckhouse is not yours!")
196- else if ((n(e(b)) != 0))
210+ else if ((p(j(g)) != 0))
197211 then throw("Please first remove your ducks from the duckhouse")
198- else ([ScriptTransfer(T.caller, 1, fromBase58String(b)), DeleteEntry(a(b))] ++ Y)
212+ else ([ScriptTransfer(V.caller, 1, fromBase58String(g)), DeleteEntry(f(g))] ++ aa)
199213 }
200214
201215
202216
203-@Callable(T)
204-func stakeDuck (b,ad) = {
205- let N = value(value(T.payments[1]).assetId)
206- let k = toString(T.caller)
207- let ac = m(a(b))
208- if ((ac == ""))
217+@Callable(V)
218+func stakeDuck (g,af) = {
219+ let P = value(value(V.payments[1]).assetId)
220+ let m = toString(V.caller)
221+ let ae = o(f(g))
222+ if ((ae == ""))
209223 then throw("This duckhouse is not staked!")
210- else if ((ac != k))
224+ else if ((ae != m))
211225 then throw("This duckhouse is not yours!")
212226 else {
213- let ae = n(e(b))
214- if ((ae == J()))
227+ let ag = p(j(g))
228+ if ((ag == L()))
215229 then throw("No space in duck house left!")
216230 else {
217- let af = invoke(F(), "manipulateBoost", [L(), toBase58String(N)], nil)
218- if ((af == af))
231+ let ah = invoke(H(), "manipulateBoost", [N(), toBase58String(P)], nil)
232+ if ((ah == ah))
219233 then {
220- let ag = invoke(G(), A(), [ad, true, f(B())], T.payments)
221- if ((ag == ag))
222- then [IntegerEntry(e(b), (ae + 1)), StringEntry(c(toBase58String(N)), b)]
234+ let ai = invoke(I(), C(), [af, true, k(D())], V.payments)
235+ if ((ai == ai))
236+ then [IntegerEntry(j(g), (ag + 1)), StringEntry(h(toBase58String(P)), g)]
223237 else throw("Strict value is not equal to itself.")
224238 }
225239 else throw("Strict value is not equal to itself.")
226240 }
227241 }
228242 }
229243
230244
231245
232-@Callable(T)
233-func unstakeDuck (S) = {
234- let b = R(S, T)
235- if ((b == b))
246+@Callable(V)
247+func unstakeDuck (U) = {
248+ let g = T(U, V)
249+ if ((g == g))
236250 then {
237- let ah = r(invoke(G(), "unstakeNFT", [S], T.payments))
238- if ((ah == ah))
251+ let aj = t(invoke(I(), "unstakeNFT", [U], V.payments))
252+ if ((aj == aj))
239253 then {
240- let ae = n(e(b))
241- if ((ae == 0))
254+ let ag = p(j(g))
255+ if ((ag == 0))
242256 then throw("You aren't staking any ducks!")
243257 else {
244- let ai = invoke(F(), "manipulateBoost", [-(L()), S], nil)
245- if ((ai == ai))
246- then [ScriptTransfer(T.caller, ah, H()), ScriptTransfer(T.caller, 1, fromBase58String(S)), DeleteEntry(c(S)), IntegerEntry(e(b), (ae - 1))]
258+ let ak = invoke(H(), "manipulateBoost", [-(N()), U], nil)
259+ if ((ak == ak))
260+ then [ScriptTransfer(V.caller, aj, J()), ScriptTransfer(V.caller, 1, fromBase58String(U)), DeleteEntry(h(U)), IntegerEntry(j(g), (ag - 1))]
247261 else throw("Strict value is not equal to itself.")
248262 }
249263 }
250264 else throw("Strict value is not equal to itself.")
251265 }
252266 else throw("Strict value is not equal to itself.")
253267 }
254268
255269
256270
257-@Callable(T)
258-func claimDuckRewards (S) = {
259- let U = R(S, T)
260- if ((U == U))
271+@Callable(V)
272+func claimDuckRewards (U) = {
273+ let W = T(U, V)
274+ if ((W == W))
261275 then {
262- let aj = r(invoke(G(), "claimReward", [S], T.payments))
263- if ((aj == aj))
264- then [ScriptTransfer(T.caller, aj, H())]
276+ let al = t(invoke(I(), "claimReward", [U], V.payments))
277+ if ((al == al))
278+ then [ScriptTransfer(V.caller, al, J())]
265279 else throw("Strict value is not equal to itself.")
266280 }
267281 else throw("Strict value is not equal to itself.")
268282 }
269283
270284
285+@Verifier(am)
286+func an () = if (e())
287+ then sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
288+ else {
289+ let ao = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
290+ let ap = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
291+ let aq = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
292+ let ar = if (sigVerify(am.bodyBytes, am.proofs[0], ao))
293+ then 1
294+ else if (sigVerify(am.bodyBytes, am.proofs[1], ao))
295+ then 1
296+ else if (sigVerify(am.bodyBytes, am.proofs[2], ao))
297+ then 1
298+ else 0
299+ let as = if (sigVerify(am.bodyBytes, am.proofs[0], ap))
300+ then 1
301+ else if (sigVerify(am.bodyBytes, am.proofs[1], ap))
302+ then 1
303+ else if (sigVerify(am.bodyBytes, am.proofs[2], ap))
304+ then 1
305+ else 0
306+ let at = if (sigVerify(am.bodyBytes, am.proofs[0], aq))
307+ then 1
308+ else if (sigVerify(am.bodyBytes, am.proofs[1], aq))
309+ then 1
310+ else if (sigVerify(am.bodyBytes, am.proofs[2], aq))
311+ then 1
312+ else 0
313+ let au = ((ar + as) + at)
314+ let c = am
315+ (au >= 2)
316+ }
317+

github/deemru/w8io/026f985 
85.99 ms