2022.08.07 19:31 [3239800] smart account 3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4 > SELF 0.00000000 Waves

{ "type": 13, "id": "DYfbRoLGUbSddzKgG9PdgxcuwVRkkByTd1s47xhuKZvp", "fee": 1700000, "feeAssetId": null, "timestamp": 1659889917963, "version": 2, "chainId": 87, "sender": "3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4", "senderPublicKey": "GHr1Hnp4adsHHyw4nrZc3zDAeg6Z3sTVdvunPa8PwiEJ", "proofs": [ "47v4KVAUUN4nJ9CJbivni6CavAk2FGXPreUm4efe9GZpggWjXcT581R3Wc8DQmNPcJyH6d8zZsz2fJ7zX96vsDt9" ], "script": "base64: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ZWQhAQAAAApnZXRORlROYW1lAAAAAAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEIgAAAAECAAAADnN0YXRpY19uZnROYW1lAgAAACMzR05OOiBUaGVyZSBpcyBubyBuZnQgbmFtZSBkZWZpbmVkIQEAAAATZ2V0SW5jdWJhdG9yQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAXc3RhdGljX2luY3ViYXRvckFkZHJlc3MBAAAAEWdldEJyZWVkZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfYnJlZWRlckFkZHJlc3MBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfZmFybWluZ0FkZHJlc3MBAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAAUZ2V0QWNjZXNzSXRlbUFzc2V0SWQAAAAACQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABhzdGF0aWNfYWNjZXNzSXRlbUFzc2V0SWQBAAAAEmdldEFjY2Vzc0l0ZW1QcmljZQAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAWc3RhdGljX2FjY2Vzc0l0ZW1QcmljZQEAAAASZ2V0TWluTG9ja0R1cmF0aW9uAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABZzdGF0aWNfbWluTG9ja0R1cmF0aW9uAQAAABNnZXRCb3N0ZXJCdXlBc3NldElkAAAAAAkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQIAAAAYc3RhdGljX2Jvb3N0ZXJCdXlBc3NldElkAQAAABZnZXRCb3N0ZXJQcmljZUZvckxldmVsAAAAAQAAAAVsZXZlbAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHwAAAAEJAAEsAAAAAgIAAAAZc3RhdGljX2Jvb3N0ZXJQcmljZUxldmVsXwkAAaQAAAABBQAAAAVsZXZlbAIAAAA5M0dCUEZMOiBUaGVyZSBpcyBubyBwcmljZSB2YWx1ZSBmb3IgdGhpcyBsZXZlbCBvZiBib29zdGVyAQAAABVnZXRCb3N0ZXJOYW1lRm9yTGV2ZWwAAAABAAAABWxldmVsCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkAASwAAAACAgAAABNzdGF0aWNfYm9vc3Rlck5hbWVfCQABpAAAAAEFAAAABWxldmVsAgAAACAzR0JORkw6IFRoZXJlIGlzIG5vIHN1Y2ggYm9vc3RlcgEAAAAIYXNTdHJpbmcAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZzdHJpbmcFAAAAByRtYXRjaDAFAAAABnN0cmluZwkAAAIAAAABAgAAABx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQAAABBsb2NrRHVja0ludGVybmFsAAAAAgAAAAphZGRyZXNzU3RyAAAAA3BtdAQAAAAHYXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAthc3NldElzc3VlcggJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAHYXNzZXRJZAAAAAZpc3N1ZXIEAAAADHREdWNrRGV0YWlscwkBAAAADmdldER1Y2tEZXRhaWxzAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRDb2xvcggFAAAADHREdWNrRGV0YWlscwAAAAJfMQQAAAAJaXNKYWNrcG90CAUAAAAMdER1Y2tEZXRhaWxzAAAAAl8yBAAAAAprU3BvdHNCdXN5CQEAAAAMa2V5U3BvdHNCdXN5AAAAAQUAAAAKYWRkcmVzc1N0cgQAAAAJc3BvdHNCdXN5CQEAAAAN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", "height": 3239800, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9MNMwWjCCVbpH3uaKCSWbXpC7t5SVsNyRzDfCfof48nJ Next: J9zFwjPonmLRVhWt2YMfSRNk53qhwhfRNdMTw4dn5SS8 Diff:
OldNewDifferences
214214
215215
216216 @Callable(i)
217-func buyAccessItemAndLockDuck () = {
218- let eggPayment = value(i.payments[0])
219- let duckPayment = value(i.payments[1])
220- let addressStr = toString(i.caller)
221- if ((eggPayment.assetId != getAccessItemAssetId()))
222- then throw("3BAI: Wrong asset attached")
223- else if ((eggPayment.amount != getAccessItemPrice()))
224- then throw("3BAI: Wrong amount of assets attached")
225- else {
226- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
227- if ((accessItemData == accessItemData))
228- then {
229- let lockData = lockDuckInternal(addressStr, duckPayment)
230- $Tuple2(lockData, accessItemData)
231- }
232- else throw("Strict value is not equal to itself.")
233- }
234- }
217+func buyAccessItemAndLockDuck () = if ((true == true))
218+ then throw("TBAIALD: We are working very hard to release the new hunt! For now all sales are halted!")
219+ else {
220+ let eggPayment = value(i.payments[0])
221+ let duckPayment = value(i.payments[1])
222+ let addressStr = toString(i.caller)
223+ if ((eggPayment.assetId != getAccessItemAssetId()))
224+ then throw("3BAI: Wrong asset attached")
225+ else if ((eggPayment.amount != getAccessItemPrice()))
226+ then throw("3BAI: Wrong amount of assets attached")
227+ else {
228+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
229+ if ((accessItemData == accessItemData))
230+ then {
231+ let lockData = lockDuckInternal(addressStr, duckPayment)
232+ $Tuple2(lockData, accessItemData)
233+ }
234+ else throw("Strict value is not equal to itself.")
235+ }
236+ }
235237
236238
237239
238240 @Callable(i)
239-func buyAccessItem () = {
240- let addressStr = toString(i.caller)
241- let eggPayment = value(i.payments[0])
242- if ((eggPayment.assetId != getAccessItemAssetId()))
243- then throw("3BAI: Wrong asset attached")
244- else if ((eggPayment.amount != getAccessItemPrice()))
245- then throw("3BAI: Wrong amount of assets attached")
246- else {
247- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
248- if ((accessItemData == accessItemData))
249- then $Tuple2(nil, accessItemData)
250- else throw("Strict value is not equal to itself.")
251- }
252- }
241+func buyAccessItem () = if ((true == true))
242+ then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
243+ else {
244+ let addressStr = toString(i.caller)
245+ let eggPayment = value(i.payments[0])
246+ if ((eggPayment.assetId != getAccessItemAssetId()))
247+ then throw("3BAI: Wrong asset attached")
248+ else if ((eggPayment.amount != getAccessItemPrice()))
249+ then throw("3BAI: Wrong amount of assets attached")
250+ else {
251+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
252+ if ((accessItemData == accessItemData))
253+ then $Tuple2(nil, accessItemData)
254+ else throw("Strict value is not equal to itself.")
255+ }
256+ }
253257
254258
255259
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (key) = match getInteger(this, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func keyBoughtBoosterLevel (addressStr) = (("address_" + addressStr) + "_boughtBoosterLevel")
1313
1414
1515 func keyDuckUnlockTime (assetId) = (("duck_" + toBase58String(assetId)) + "_unlockTime")
1616
1717
1818 func keyDuckOwner (assetId) = (("duck_" + toBase58String(assetId)) + "_owner")
1919
2020
2121 func keySpotsBought (addressStr) = (("address_" + addressStr) + "_spotsBought")
2222
2323
2424 func keySpotsBusy (addressStr) = (("address_" + addressStr) + "_spotsBusy")
2525
2626
2727 func keyLockedDuckStatus (addressStr,assetIdStr) = (((("address_" + addressStr) + "_lockedDuck_") + assetIdStr) + "_status")
2828
2929
3030 func getDuckDetails (assetId) = {
3131 let assetName = value(value(assetInfo(assetId)).name)
3232 let assetNameParts = split(assetName, "")
3333 let isJackpot = (assetNameParts[(size(assetNameParts) - 2)] == "J")
3434 let assetColor = if (isJackpot)
3535 then "B"
3636 else assetNameParts[(size(assetNameParts) - 1)]
3737 $Tuple2(assetColor, isJackpot)
3838 }
3939
4040
4141 func tryGetStringExternal (address,key) = match getString(address, key) {
4242 case a: String =>
4343 a
4444 case _ =>
4545 ""
4646 }
4747
4848
4949 func tryGetString (key) = tryGetStringExternal(this, key)
5050
5151
5252 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
5353
5454
5555 func getGameName () = valueOrErrorMessage(getString("static_shortGameName"), "3GGN: There is no game name defined!")
5656
5757
5858 func getLongGameName () = valueOrErrorMessage(getString("static_longGameName"), "3GLGN: There is no long game name defined!")
5959
6060
6161 func getNFTName () = valueOrErrorMessage(getString("static_nftName"), "3GNN: There is no nft name defined!")
6262
6363
6464 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_incubatorAddress")))
6565
6666
6767 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_breederAddress")))
6868
6969
7070 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
7171
7272
7373 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
7474
7575
7676 func getAccessItemAssetId () = fromBase58String(tryGetString("static_accessItemAssetId"))
7777
7878
7979 func getAccessItemPrice () = tryGetInteger("static_accessItemPrice")
8080
8181
8282 func getMinLockDuration () = tryGetInteger("static_minLockDuration")
8383
8484
8585 func getBosterBuyAssetId () = fromBase58String(tryGetString("static_boosterBuyAssetId"))
8686
8787
8888 func getBosterPriceForLevel (level) = valueOrErrorMessage(getInteger(("static_boosterPriceLevel_" + toString(level))), "3GBPFL: There is no price value for this level of booster")
8989
9090
9191 func getBosterNameForLevel (level) = valueOrErrorMessage(getString(("static_boosterName_" + toString(level))), "3GBNFL: There is no such booster")
9292
9393
9494 func asString (value) = match value {
9595 case string: String =>
9696 string
9797 case _ =>
9898 throw("wrong type, expected: String")
9999 }
100100
101101
102102 func lockDuckInternal (addressStr,pmt) = {
103103 let assetId = value(pmt.assetId)
104104 let assetIssuer = value(assetInfo(assetId)).issuer
105105 let tDuckDetails = getDuckDetails(assetId)
106106 let assetColor = tDuckDetails._1
107107 let isJackpot = tDuckDetails._2
108108 let kSpotsBusy = keySpotsBusy(addressStr)
109109 let spotsBusy = tryGetInteger(kSpotsBusy)
110110 let kSpotsBought = keySpotsBought(addressStr)
111111 let addressSpotsAvailable = (tryGetInteger(kSpotsBought) - spotsBusy)
112112 if ((pmt.amount != 1))
113113 then throw("NFT is not attached")
114114 else if (if ((assetIssuer != getIncubatorAddress()))
115115 then (assetIssuer != getBreederAddress())
116116 else false)
117117 then throw("ivalid NFT attached")
118118 else if ((0 >= addressSpotsAvailable))
119119 then throw("No spots available")
120120 else {
121121 let kPerchesAvailable = ((("address_" + toString(this)) + "_perchesAvailable_") + assetColor)
122122 let perchesAvailable = match getInteger(getFarmingAddress(), kPerchesAvailable) {
123123 case b: Int =>
124124 b
125125 case _ =>
126126 0
127127 }
128128 if ((perchesAvailable == perchesAvailable))
129129 then {
130130 let eggAssetId = getEggAssetId()
131131 let inv1 = if ((perchesAvailable > 0))
132132 then unit
133133 else invoke(getFarmingAddress(), "buyPerch", [assetColor, ""], [AttachedPayment(eggAssetId, 100000000)])
134134 if ((inv1 == inv1))
135135 then {
136136 let inv2 = if ((isJackpot == false))
137137 then invoke(getFarmingAddress(), "stakeNFT", nil, [AttachedPayment(assetId, 1)])
138138 else invoke(getFarmingAddress(), "stakeJackpot", [assetColor], [AttachedPayment(assetId, 1)])
139139 if ((inv2 == inv2))
140140 then [IntegerEntry(kSpotsBusy, (spotsBusy + 1)), StringEntry(keyDuckOwner(assetId), addressStr), BooleanEntry(keyLockedDuckStatus(addressStr, toBase58String(assetId)), true), IntegerEntry(keyDuckUnlockTime(assetId), (lastBlock.timestamp + getMinLockDuration()))]
141141 else throw("Strict value is not equal to itself.")
142142 }
143143 else throw("Strict value is not equal to itself.")
144144 }
145145 else throw("Strict value is not equal to itself.")
146146 }
147147 }
148148
149149
150150 @Callable(i)
151151 func buyAccessItemInternal (addressStr) = if ((i.caller != this))
152152 then throw("3BAII: internal use only")
153153 else {
154154 let issueAccessItem = Issue(("ACCESS-" + getGameName()), ((("[Access] " + getLongGameName()) + " access NFT for ") + getNFTName()), 1, 0, false)
155155 let accessRaceAssetId = toBase58String(calculateAssetId(issueAccessItem))
156156 let kSpotsBought = keySpotsBought(addressStr)
157157 $Tuple2([issueAccessItem, StringEntry((("accessItem_" + accessRaceAssetId) + "_owner"), addressStr), StringEntry((("address_" + addressStr) + "_owning"), accessRaceAssetId), IntegerEntry(kSpotsBought, (tryGetInteger(kSpotsBought) + 1))], accessRaceAssetId)
158158 }
159159
160160
161161
162162 @Callable(i)
163163 func configureOracle (oracle,shortname,longname,nftName) = if ((i.caller != this))
164164 then throw("3CO: admin only")
165165 else [StringEntry("static_oracleAddress", oracle), StringEntry("static_shortGameName", shortname), StringEntry("static_longGameName", longname), StringEntry("static_nftName", nftName)]
166166
167167
168168
169169 @Callable(i)
170170 func updateSetting (key,value) = if ((i.caller != this))
171171 then throw("Only administrator can call this method")
172172 else match value {
173173 case int: Int =>
174174 [IntegerEntry(key, int)]
175175 case s: String =>
176176 [StringEntry(key, s)]
177177 case b: Boolean =>
178178 [BooleanEntry(key, b)]
179179 case bv: ByteVector =>
180180 [BinaryEntry(key, bv)]
181181 case _ =>
182182 throw("Bad value type")
183183 }
184184
185185
186186
187187 @Callable(i)
188188 func deleteSetting (key) = if ((i.caller != this))
189189 then throw("3DS: Only administrator can call this method")
190190 else [DeleteEntry(key)]
191191
192192
193193
194194 @Callable(i)
195195 func buyBooster () = {
196196 let kBoughtLevel = keyBoughtBoosterLevel(toString(i.caller))
197197 let boughtBoosterLevel = tryGetInteger(kBoughtLevel)
198198 let newLevel = (boughtBoosterLevel + 1)
199199 let pmt = value(i.payments[0])
200200 let price = getBosterPriceForLevel(newLevel)
201201 let expectedAssetId = getBosterBuyAssetId()
202202 if ((pmt.amount != price))
203203 then throw(("3BB: Bad price, it should be: " + toString(price)))
204204 else if ((pmt.assetId != expectedAssetId))
205205 then throw(("3BB: Bad payment attached, it should be: " + toBase58String(expectedAssetId)))
206206 else {
207207 let name = getBosterNameForLevel(newLevel)
208208 let boosterItem = Issue(((getGameName() + "-") + name), ((("[Booster] " + getLongGameName()) + " booster for the game, level = ") + toString(newLevel)), 1, 0, false)
209209 let boosterItemAssetId = calculateAssetId(boosterItem)
210210 [boosterItem, IntegerEntry(kBoughtLevel, newLevel), ScriptTransfer(i.caller, 1, boosterItemAssetId)]
211211 }
212212 }
213213
214214
215215
216216 @Callable(i)
217-func buyAccessItemAndLockDuck () = {
218- let eggPayment = value(i.payments[0])
219- let duckPayment = value(i.payments[1])
220- let addressStr = toString(i.caller)
221- if ((eggPayment.assetId != getAccessItemAssetId()))
222- then throw("3BAI: Wrong asset attached")
223- else if ((eggPayment.amount != getAccessItemPrice()))
224- then throw("3BAI: Wrong amount of assets attached")
225- else {
226- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
227- if ((accessItemData == accessItemData))
228- then {
229- let lockData = lockDuckInternal(addressStr, duckPayment)
230- $Tuple2(lockData, accessItemData)
231- }
232- else throw("Strict value is not equal to itself.")
233- }
234- }
217+func buyAccessItemAndLockDuck () = if ((true == true))
218+ then throw("TBAIALD: We are working very hard to release the new hunt! For now all sales are halted!")
219+ else {
220+ let eggPayment = value(i.payments[0])
221+ let duckPayment = value(i.payments[1])
222+ let addressStr = toString(i.caller)
223+ if ((eggPayment.assetId != getAccessItemAssetId()))
224+ then throw("3BAI: Wrong asset attached")
225+ else if ((eggPayment.amount != getAccessItemPrice()))
226+ then throw("3BAI: Wrong amount of assets attached")
227+ else {
228+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
229+ if ((accessItemData == accessItemData))
230+ then {
231+ let lockData = lockDuckInternal(addressStr, duckPayment)
232+ $Tuple2(lockData, accessItemData)
233+ }
234+ else throw("Strict value is not equal to itself.")
235+ }
236+ }
235237
236238
237239
238240 @Callable(i)
239-func buyAccessItem () = {
240- let addressStr = toString(i.caller)
241- let eggPayment = value(i.payments[0])
242- if ((eggPayment.assetId != getAccessItemAssetId()))
243- then throw("3BAI: Wrong asset attached")
244- else if ((eggPayment.amount != getAccessItemPrice()))
245- then throw("3BAI: Wrong amount of assets attached")
246- else {
247- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
248- if ((accessItemData == accessItemData))
249- then $Tuple2(nil, accessItemData)
250- else throw("Strict value is not equal to itself.")
251- }
252- }
241+func buyAccessItem () = if ((true == true))
242+ then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
243+ else {
244+ let addressStr = toString(i.caller)
245+ let eggPayment = value(i.payments[0])
246+ if ((eggPayment.assetId != getAccessItemAssetId()))
247+ then throw("3BAI: Wrong asset attached")
248+ else if ((eggPayment.amount != getAccessItemPrice()))
249+ then throw("3BAI: Wrong amount of assets attached")
250+ else {
251+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
252+ if ((accessItemData == accessItemData))
253+ then $Tuple2(nil, accessItemData)
254+ else throw("Strict value is not equal to itself.")
255+ }
256+ }
253257
254258
255259
256260 @Callable(i)
257261 func buyAccessItemOther (addressOther) = {
258262 let eggPayment = value(i.payments[0])
259263 if ((eggPayment.assetId != getAccessItemAssetId()))
260264 then throw("3BAI: Wrong asset attached")
261265 else if ((eggPayment.amount != getAccessItemPrice()))
262266 then throw("3BAI: Wrong amount of assets attached")
263267 else {
264268 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
265269 if ((accessItemData == accessItemData))
266270 then $Tuple2(nil, accessItemData)
267271 else throw("Strict value is not equal to itself.")
268272 }
269273 }
270274
271275
272276
273277 @Callable(i)
274278 func lockDuck () = {
275279 let addressStr = toString(i.caller)
276280 let duckPayment = value(i.payments[0])
277281 lockDuckInternal(addressStr, duckPayment)
278282 }
279283
280284
281285
282286 @Callable(i)
283287 func unlockDuck (assetIdStr) = {
284288 let addressStr = toString(i.caller)
285289 let assetId = fromBase58String(assetIdStr)
286290 let tDuckDetails = getDuckDetails(assetId)
287291 let assetColor = tDuckDetails._1
288292 let isJackpot = tDuckDetails._2
289293 let kSpotsBusy = keySpotsBusy(addressStr)
290294 let kDuckOwner = keyDuckOwner(assetId)
291295 let remainingForUnlock = (tryGetInteger(keyDuckUnlockTime(assetId)) - lastBlock.timestamp)
292296 if ((tryGetString(kDuckOwner) != addressStr))
293297 then throw("3UL: The duck is not yours")
294298 else if ((remainingForUnlock > 0))
295299 then throw((("3UL: You need to wait to unlock " + toString((remainingForUnlock / 1000))) + " seconds"))
296300 else {
297301 let unstakeFuncName = if ((isJackpot == true))
298302 then "unstakeJackpot"
299303 else "unstakeNFT"
300304 let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
301305 if ((inv1 == inv1))
302306 then [ScriptTransfer(i.caller, 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
303307 else throw("Strict value is not equal to itself.")
304308 }
305309 }
306310
307311

github/deemru/w8io/786bc32 
42.02 ms