tx · DAYeyiUAi4iUcTDJHmAipFfoEuuTBGMnnB1fPeVAfQpV

3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo:  -0.01400000 Waves

2022.02.22 11:40 [2999709] smart account 3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo > SELF 0.00000000 Waves

{ "type": 13, "id": "DAYeyiUAi4iUcTDJHmAipFfoEuuTBGMnnB1fPeVAfQpV", "fee": 1400000, "feeAssetId": null, "timestamp": 1645519282871, "version": 2, "chainId": 87, "sender": "3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo", "senderPublicKey": "kGiN3HQLLzkjcQVfSrY4H1JRUTjPhJhMgiTQeXsEoPV", "proofs": [ "63qsXTn5pawQcq94YvXTZiKnxnU4ENTwhJUyDiN6Qnb9XQtpoSGcuLyJg2nNqPjX5eoe5UpWQKxxeGpQ1n6ZsSry" ], "script": "base64:AAIFAAAAAAAAAAYIAhIAEgAAAAAYAAAAABJuZnRDcmVhdGlvbkFkZHJlc3MBAAAAGgFXRkeg0dLB5XqqDtLD9Tumwl0uvsvI4tRyAAAAABBpbmN1YmF0b3JBZGRyZXNzAQAAABoBV4y1SJ9+nhXVGJeOG3f7CX9nYtrhbWMlSQAAAAAOYnJlZWRlckFkZHJlc3MBAAAAGgFXfue5+XHETHhcfXh7hnGCQxWmeWoPth8eAAAAAA5mYXJtaW5nQWRkcmVzcwEAAAAaAVdbE2dZBmknpxBMinC9RqR4sTAMn5OPIsMAAAAACmVnZ0Fzc2V0SWQBAAAAIKOff08jclHRLOIhkmKITQwL8+oiboHVr/wLkxfObbHJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAAAAAAAEWFjY2Vzc0l0ZW1Bc3NldElkCQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABhzdGF0aWNfYWNjZXNzSXRlbUFzc2V0SWQAAAAAD2FjY2Vzc0l0ZW1QcmljZQkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABZzdGF0aWNfYWNjZXNzSXRlbVByaWNlAAAAAA9taW5Mb2NrRHVyYXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAWc3RhdGljX21pbkxvY2tEdXJhdGlvbgEAAAAJaXNTeW1ib2xBAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABQQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xCAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABQgkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xDAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABQwkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xEAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABRAkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xFAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABRQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xGAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABRgkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xHAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABRwkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xIAAAAAgAAAAthY2N1bXVsYXRlZAAAAANzeW0DCQAAAAAAAAIFAAAAA3N5bQIAAAABSAkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAQkAAGQAAAACBQAAAAthY2N1bXVsYXRlZAAAAAAAAAAAAAEAAAAJaXNTeW1ib2xJ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", "height": 2999709, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Bq7oA6uXUVvEFdVzXWyBKAJw8Q2uTPPpTcJznfG5BjjB Next: hVqxcQNFAB1BcyUUKaUSNgzLh252AmARnkBfybFg3ac Diff:
OldNewDifferences
253253 }
254254 if ((perchesAvailable == perchesAvailable))
255255 then {
256- let inv1 = if ((perchesAvailable > 0))
257- then unit
258- else invoke(Address(farmingAddress), "buyPerch", [assetColor, ""], [AttachedPayment(eggAssetId, 100000000)])
259- if ((inv1 == inv1))
260- then {
261- let inv2 = invoke(Address(farmingAddress), "stakeNFT", nil, [AttachedPayment(assetId, 1)])
262- if ((inv2 == inv2))
256+ let eggBalance = assetBalance(this, eggAssetId)
257+ let isOnPerch = if (if ((50 > assetRarity))
258+ then true
259+ else if ((perchesAvailable == 0))
260+ then (100000000 > eggBalance)
261+ else false)
262+ then false
263+ else {
264+ let inv1 = if ((perchesAvailable > 0))
265+ then unit
266+ else invoke(Address(farmingAddress), "buyPerch", [assetColor, ""], [AttachedPayment(eggAssetId, 100000000)])
267+ if ((inv1 == inv1))
263268 then {
264- let imageLink = ((("https://wavesducks.com/api/v1/ducks/" + dropRight(drop(assetName, 5), 3)) + ".svg?onPerch=true&color=") + assetColor)
265- let inv3 = invoke(Address(nftCreationAddress), "createNFT", ["Staked Duck", "Character from the Waves Ducks game", imageLink, "ducks"], nil)
266- if ((inv3 == inv3))
267- then [StringEntry((("duck_" + toBase58String(assetId)) + "_owner"), addressStr), IntegerEntry(((("address_" + addressStr) + "_lockedDuck_") + toBase58String(assetId)), assetRarity)]
269+ let inv2 = invoke(Address(farmingAddress), "stakeNFT", nil, [AttachedPayment(assetId, 1)])
270+ if ((inv2 == inv2))
271+ then true
268272 else throw("Strict value is not equal to itself.")
269273 }
274+ else throw("Strict value is not equal to itself.")
275+ }
276+ if ((isOnPerch == isOnPerch))
277+ then {
278+ let imageLink = ((((("https://wavesducks.com/api/v1/ducks/" + dropRight(drop(assetName, 5), 3)) + ".svg?onPerch=") + toString(isOnPerch)) + "&color=") + assetColor)
279+ let name = if (isOnPerch)
280+ then "Staked Duck"
281+ else "Waves Duck"
282+ let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [name, "Character from the Waves Ducks game", imageLink, "ducks"], nil) {
283+ case x: String =>
284+ x
285+ case _ =>
286+ throw("something went wrong during creation of NFT")
287+ }
288+ if ((stakedNFTIdStr == stakedNFTIdStr))
289+ then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("duck_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("nft_" + stakedNFTIdStr) + "_duckId"), toBase58String(assetId)), IntegerEntry(((("address_" + addressStr) + "_lockedDuck_") + toBase58String(assetId)), assetRarity)], toBase58String(assetId))
270290 else throw("Strict value is not equal to itself.")
271291 }
272292 else throw("Strict value is not equal to itself.")
278298
279299
280300 @Callable(i)
281-func unlockDuck (assetIdStr) = {
301+func unlockDuck () = {
282302 let addressStr = toString(i.caller)
303+ let stakedNFTId = value(i.payments[0].assetId)
304+ let stakedNFTIdStr = toBase58String(stakedNFTId)
305+ let assetIdStr = tryGetString((("nft_" + stakedNFTIdStr) + "_duckId"))
283306 let assetId = fromBase58String(assetIdStr)
284307 if ((tryGetString((("duck_" + assetIdStr) + "_owner")) != addressStr))
285308 then throw("duck is not yours")
294317 then {
295318 let eggEarned = (assetBalance(this, eggAssetId) - assetBalanceBefore)
296319 if ((eggEarned == eggEarned))
297- then [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, eggEarned, eggAssetId), Burn(assetId, 1), DeleteEntry(((("address_" + addressStr) + "_lockedDuck_") + assetIdStr)), DeleteEntry((("duck_" + assetIdStr) + "_owner"))]
320+ then [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, eggEarned, eggAssetId), Burn(stakedNFTId, 1), DeleteEntry(((("address_" + addressStr) + "_lockedDuck_") + assetIdStr)), StringEntry((("nft_" + stakedNFTIdStr) + "_duckId"), toBase58String(assetId)), DeleteEntry((("duck_" + assetIdStr) + "_owner"))]
298321 else throw("Strict value is not equal to itself.")
299322 }
300323 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57'
55
66 let incubatorAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
77
88 let breederAddress = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
99
1010 let farmingAddress = base58'3PAETTtuW7aSiyKtn9GuML3RgtV1xdq1mQW'
1111
1212 let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
1313
1414 func tryGetInteger (key) = match getInteger(this, key) {
1515 case b: Int =>
1616 b
1717 case _ =>
1818 0
1919 }
2020
2121
2222 func tryGetString (key) = match getString(this, key) {
2323 case a: String =>
2424 a
2525 case _ =>
2626 ""
2727 }
2828
2929
3030 let accessItemAssetId = fromBase58String(tryGetString("static_accessItemAssetId"))
3131
3232 let accessItemPrice = tryGetInteger("static_accessItemPrice")
3333
3434 let minLockDuration = tryGetInteger("static_minLockDuration")
3535
3636 func isSymbolA (accumulated,sym) = if ((sym == "A"))
3737 then (accumulated + 1)
3838 else (accumulated + 0)
3939
4040
4141 func isSymbolB (accumulated,sym) = if ((sym == "B"))
4242 then (accumulated + 1)
4343 else (accumulated + 0)
4444
4545
4646 func isSymbolC (accumulated,sym) = if ((sym == "C"))
4747 then (accumulated + 1)
4848 else (accumulated + 0)
4949
5050
5151 func isSymbolD (accumulated,sym) = if ((sym == "D"))
5252 then (accumulated + 1)
5353 else (accumulated + 0)
5454
5555
5656 func isSymbolE (accumulated,sym) = if ((sym == "E"))
5757 then (accumulated + 1)
5858 else (accumulated + 0)
5959
6060
6161 func isSymbolF (accumulated,sym) = if ((sym == "F"))
6262 then (accumulated + 1)
6363 else (accumulated + 0)
6464
6565
6666 func isSymbolG (accumulated,sym) = if ((sym == "G"))
6767 then (accumulated + 1)
6868 else (accumulated + 0)
6969
7070
7171 func isSymbolH (accumulated,sym) = if ((sym == "H"))
7272 then (accumulated + 1)
7373 else (accumulated + 0)
7474
7575
7676 func isSymbolI (accumulated,sym) = if ((sym == "I"))
7777 then (accumulated + 1)
7878 else (accumulated + 0)
7979
8080
8181 func getAmountOrClear (amount) = if (contains(amount, "0"))
8282 then ""
8383 else amount
8484
8585
8686 func getGen (assetName) = {
8787 let genotype = split(dropRight(drop(assetName, 5), 3), "")
8888 ((((((((getAmountOrClear((toString({
8989 let $l = genotype
9090 let $s = size($l)
9191 let $acc0 = 0
9292 func $f0_1 ($a,$i) = if (($i >= $s))
9393 then $a
9494 else isSymbolA($a, $l[$i])
9595
9696 func $f0_2 ($a,$i) = if (($i >= $s))
9797 then $a
9898 else throw("List size exceeds 8")
9999
100100 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
101101 }) + "A")) + getAmountOrClear((toString({
102102 let $l = genotype
103103 let $s = size($l)
104104 let $acc0 = 0
105105 func $f1_1 ($a,$i) = if (($i >= $s))
106106 then $a
107107 else isSymbolB($a, $l[$i])
108108
109109 func $f1_2 ($a,$i) = if (($i >= $s))
110110 then $a
111111 else throw("List size exceeds 8")
112112
113113 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
114114 }) + "B"))) + getAmountOrClear((toString({
115115 let $l = genotype
116116 let $s = size($l)
117117 let $acc0 = 0
118118 func $f2_1 ($a,$i) = if (($i >= $s))
119119 then $a
120120 else isSymbolC($a, $l[$i])
121121
122122 func $f2_2 ($a,$i) = if (($i >= $s))
123123 then $a
124124 else throw("List size exceeds 8")
125125
126126 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
127127 }) + "C"))) + getAmountOrClear((toString({
128128 let $l = genotype
129129 let $s = size($l)
130130 let $acc0 = 0
131131 func $f3_1 ($a,$i) = if (($i >= $s))
132132 then $a
133133 else isSymbolD($a, $l[$i])
134134
135135 func $f3_2 ($a,$i) = if (($i >= $s))
136136 then $a
137137 else throw("List size exceeds 8")
138138
139139 $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
140140 }) + "D"))) + getAmountOrClear((toString({
141141 let $l = genotype
142142 let $s = size($l)
143143 let $acc0 = 0
144144 func $f4_1 ($a,$i) = if (($i >= $s))
145145 then $a
146146 else isSymbolE($a, $l[$i])
147147
148148 func $f4_2 ($a,$i) = if (($i >= $s))
149149 then $a
150150 else throw("List size exceeds 8")
151151
152152 $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
153153 }) + "E"))) + getAmountOrClear((toString({
154154 let $l = genotype
155155 let $s = size($l)
156156 let $acc0 = 0
157157 func $f5_1 ($a,$i) = if (($i >= $s))
158158 then $a
159159 else isSymbolF($a, $l[$i])
160160
161161 func $f5_2 ($a,$i) = if (($i >= $s))
162162 then $a
163163 else throw("List size exceeds 8")
164164
165165 $f5_2($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($f5_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
166166 }) + "F"))) + getAmountOrClear((toString({
167167 let $l = genotype
168168 let $s = size($l)
169169 let $acc0 = 0
170170 func $f6_1 ($a,$i) = if (($i >= $s))
171171 then $a
172172 else isSymbolG($a, $l[$i])
173173
174174 func $f6_2 ($a,$i) = if (($i >= $s))
175175 then $a
176176 else throw("List size exceeds 8")
177177
178178 $f6_2($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($f6_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
179179 }) + "G"))) + getAmountOrClear((toString({
180180 let $l = genotype
181181 let $s = size($l)
182182 let $acc0 = 0
183183 func $f7_1 ($a,$i) = if (($i >= $s))
184184 then $a
185185 else isSymbolH($a, $l[$i])
186186
187187 func $f7_2 ($a,$i) = if (($i >= $s))
188188 then $a
189189 else throw("List size exceeds 8")
190190
191191 $f7_2($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($f7_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
192192 }) + "H"))) + getAmountOrClear((toString({
193193 let $l = genotype
194194 let $s = size($l)
195195 let $acc0 = 0
196196 func $f8_1 ($a,$i) = if (($i >= $s))
197197 then $a
198198 else isSymbolI($a, $l[$i])
199199
200200 func $f8_2 ($a,$i) = if (($i >= $s))
201201 then $a
202202 else throw("List size exceeds 8")
203203
204204 $f8_2($f8_1($f8_1($f8_1($f8_1($f8_1($f8_1($f8_1($f8_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
205205 }) + "I")))
206206 }
207207
208208
209209 func getAssetOrigin (generation) = if ((generation == "G"))
210210 then incubatorAddress
211211 else breederAddress
212212
213213
214214 func getAssetRarity (genotype,generation) = {
215215 let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + genotype) + "_quantity"))
216216 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
217217 if ((power > 0))
218218 then power
219219 else 2
220220 }
221221
222222
223223 func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
224224 then true
225225 else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
226226 then {
227227 let assetName = value(assetInfo(assetId)).name
228228 let generation = take(takeRight(assetName, 2), 1)
229229 let gen = ((getGen(assetName) + "-") + generation)
230230 $Tuple2(gen, getAssetRarity(gen, generation))
231231 }
232232 else throw("not valid NFT")
233233
234234
235235 @Callable(i)
236236 func lockDuck () = {
237237 let addressStr = toString(i.caller)
238238 let assetId = value(value(i.payments[0]).assetId)
239239 let assetIssuer = value(assetInfo(assetId)).issuer.bytes
240240 let assetName = value(value(assetInfo(assetId)).name)
241241 let assetColor = split(assetName, "")[(size(split(assetName, "")) - 1)]
242242 let assetRarity = getAssetFarmingPower(assetId)._2
243243 if (if ((assetIssuer != incubatorAddress))
244244 then (assetIssuer != breederAddress)
245245 else false)
246246 then throw("ivalid NFT attached")
247247 else {
248248 let perchesAvailable = match getInteger(Address(farmingAddress), ((("address_" + toString(this)) + "_perchesAvailable_") + assetColor)) {
249249 case b: Int =>
250250 b
251251 case _ =>
252252 0
253253 }
254254 if ((perchesAvailable == perchesAvailable))
255255 then {
256- let inv1 = if ((perchesAvailable > 0))
257- then unit
258- else invoke(Address(farmingAddress), "buyPerch", [assetColor, ""], [AttachedPayment(eggAssetId, 100000000)])
259- if ((inv1 == inv1))
260- then {
261- let inv2 = invoke(Address(farmingAddress), "stakeNFT", nil, [AttachedPayment(assetId, 1)])
262- if ((inv2 == inv2))
256+ let eggBalance = assetBalance(this, eggAssetId)
257+ let isOnPerch = if (if ((50 > assetRarity))
258+ then true
259+ else if ((perchesAvailable == 0))
260+ then (100000000 > eggBalance)
261+ else false)
262+ then false
263+ else {
264+ let inv1 = if ((perchesAvailable > 0))
265+ then unit
266+ else invoke(Address(farmingAddress), "buyPerch", [assetColor, ""], [AttachedPayment(eggAssetId, 100000000)])
267+ if ((inv1 == inv1))
263268 then {
264- let imageLink = ((("https://wavesducks.com/api/v1/ducks/" + dropRight(drop(assetName, 5), 3)) + ".svg?onPerch=true&color=") + assetColor)
265- let inv3 = invoke(Address(nftCreationAddress), "createNFT", ["Staked Duck", "Character from the Waves Ducks game", imageLink, "ducks"], nil)
266- if ((inv3 == inv3))
267- then [StringEntry((("duck_" + toBase58String(assetId)) + "_owner"), addressStr), IntegerEntry(((("address_" + addressStr) + "_lockedDuck_") + toBase58String(assetId)), assetRarity)]
269+ let inv2 = invoke(Address(farmingAddress), "stakeNFT", nil, [AttachedPayment(assetId, 1)])
270+ if ((inv2 == inv2))
271+ then true
268272 else throw("Strict value is not equal to itself.")
269273 }
274+ else throw("Strict value is not equal to itself.")
275+ }
276+ if ((isOnPerch == isOnPerch))
277+ then {
278+ let imageLink = ((((("https://wavesducks.com/api/v1/ducks/" + dropRight(drop(assetName, 5), 3)) + ".svg?onPerch=") + toString(isOnPerch)) + "&color=") + assetColor)
279+ let name = if (isOnPerch)
280+ then "Staked Duck"
281+ else "Waves Duck"
282+ let stakedNFTIdStr = match invoke(Address(nftCreationAddress), "createNFT", [name, "Character from the Waves Ducks game", imageLink, "ducks"], nil) {
283+ case x: String =>
284+ x
285+ case _ =>
286+ throw("something went wrong during creation of NFT")
287+ }
288+ if ((stakedNFTIdStr == stakedNFTIdStr))
289+ then $Tuple2([ScriptTransfer(i.caller, 1, fromBase58String(stakedNFTIdStr)), StringEntry((("duck_" + toBase58String(assetId)) + "_owner"), addressStr), StringEntry((("nft_" + stakedNFTIdStr) + "_duckId"), toBase58String(assetId)), IntegerEntry(((("address_" + addressStr) + "_lockedDuck_") + toBase58String(assetId)), assetRarity)], toBase58String(assetId))
270290 else throw("Strict value is not equal to itself.")
271291 }
272292 else throw("Strict value is not equal to itself.")
273293 }
274294 else throw("Strict value is not equal to itself.")
275295 }
276296 }
277297
278298
279299
280300 @Callable(i)
281-func unlockDuck (assetIdStr) = {
301+func unlockDuck () = {
282302 let addressStr = toString(i.caller)
303+ let stakedNFTId = value(i.payments[0].assetId)
304+ let stakedNFTIdStr = toBase58String(stakedNFTId)
305+ let assetIdStr = tryGetString((("nft_" + stakedNFTIdStr) + "_duckId"))
283306 let assetId = fromBase58String(assetIdStr)
284307 if ((tryGetString((("duck_" + assetIdStr) + "_owner")) != addressStr))
285308 then throw("duck is not yours")
286309 else if ((minLockDuration > (height - tryGetInteger((("duck_" + assetIdStr) + "_lockedAt")))))
287310 then throw(("you need to wait to unlock: min " + toString(((minLockDuration - height) + tryGetInteger((("duck_" + assetIdStr) + "_lockedAt"))))))
288311 else {
289312 let assetBalanceBefore = assetBalance(this, eggAssetId)
290313 if ((assetBalanceBefore == assetBalanceBefore))
291314 then {
292315 let inv1 = invoke(Address(farmingAddress), "unstakeNFT", [assetIdStr], nil)
293316 if ((inv1 == inv1))
294317 then {
295318 let eggEarned = (assetBalance(this, eggAssetId) - assetBalanceBefore)
296319 if ((eggEarned == eggEarned))
297- then [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, eggEarned, eggAssetId), Burn(assetId, 1), DeleteEntry(((("address_" + addressStr) + "_lockedDuck_") + assetIdStr)), DeleteEntry((("duck_" + assetIdStr) + "_owner"))]
320+ then [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, eggEarned, eggAssetId), Burn(stakedNFTId, 1), DeleteEntry(((("address_" + addressStr) + "_lockedDuck_") + assetIdStr)), StringEntry((("nft_" + stakedNFTIdStr) + "_duckId"), toBase58String(assetId)), DeleteEntry((("duck_" + assetIdStr) + "_owner"))]
298321 else throw("Strict value is not equal to itself.")
299322 }
300323 else throw("Strict value is not equal to itself.")
301324 }
302325 else throw("Strict value is not equal to itself.")
303326 }
304327 }
305328
306329

github/deemru/w8io/0e76f2f 
60.25 ms