2022.08.09 09:46 [3242069] smart account 3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4 > SELF 0.00000000 Waves

{ "type": 13, "id": "97G8JMHfhRvb2rQXVGxogHQMFK6s8CqfwvVgoa6bb7qw", "fee": 1700000, "feeAssetId": null, "timestamp": 1660027615597, "version": 2, "chainId": 87, "sender": "3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4", "senderPublicKey": "GHr1Hnp4adsHHyw4nrZc3zDAeg6Z3sTVdvunPa8PwiEJ", "proofs": [ "21MswCoyustQTcimpPbT8GxN6DKCx8HxAg5w1vPPAmn8hCxqzv5bhRgy1bhKsTF6jzWjEzumdLiKhQxfAmvE1iUz" ], "script": "base64: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ZWQhAQAAAApnZXRORlROYW1lAAAAAAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEIgAAAAECAAAADnN0YXRpY19uZnROYW1lAgAAACMzR05OOiBUaGVyZSBpcyBubyBuZnQgbmFtZSBkZWZpbmVkIQEAAAATZ2V0SW5jdWJhdG9yQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAXc3RhdGljX2luY3ViYXRvckFkZHJlc3MBAAAAEWdldEJyZWVkZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfYnJlZWRlckFkZHJlc3MBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfZmFybWluZ0FkZHJlc3MBAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAAUZ2V0QWNjZXNzSXRlbUFzc2V0SWQAAAAACQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABhzdGF0aWNfYWNjZXNzSXRlbUFzc2V0SWQBAAAAEmdldEFjY2Vzc0l0ZW1QcmljZQAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAWc3RhdGljX2FjY2Vzc0l0ZW1QcmljZQEAAAASZ2V0TWluTG9ja0R1cmF0aW9uAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABZzdGF0aWNfbWluTG9ja0R1cmF0aW9uAQAAABNnZXRCb3N0ZXJCdXlBc3NldElkAAAAAAkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQIAAAAYc3RhdGljX2Jvb3N0ZXJCdXlBc3NldElkAQAAABZnZXRCb3N0ZXJQcmljZUZvckxldmVsAAAAAQAAAAVsZXZlbAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHwAAAAEJAAEsAAAAAgIAAAAZc3RhdGljX2Jvb3N0ZXJQcmljZUxldmVsXwkAAaQAAAABBQAAAAVsZXZlbAIAAAA5M0dCUEZMOiBUaGVyZSBpcyBubyBwcmljZSB2YWx1ZSBmb3IgdGhpcyBsZXZlbCBvZiBib29zdGVyAQAAABVnZXRCb3N0ZXJOYW1lRm9yTGV2ZWwAAAABAAAABWxldmVsCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkAASwAAAACAgAAABNzdGF0aWNfYm9vc3Rlck5hbWVfCQABpAAAAAEFAAAABWxldmVsAgAAACAzR0JORkw6IFRoZXJlIGlzIG5vIHN1Y2ggYm9vc3RlcgEAAAAIYXNTdHJpbmcAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZzdHJpbmcFAAAAByRtYXRjaDAFAAAABnN0cmluZwkAAAIAAAABAgAAABx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQAAABBsb2NrRHVja0ludGVybmFsAAAAAgAAAAphZGRyZXNzU3RyAAAAA3BtdAQAAAAHYXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAthc3NldElzc3VlcggJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAHYXNzZXRJZAAAAAZpc3N1ZXIEAAAADHREdWNrRGV0YWlscwkBAAAADmdldER1Y2tEZXRhaWxzAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRDb2xvcggFAAAADHREdWNrRGV0YWlscwAAAAJfMQQAAAAJaXNKYWNrcG90CAUAAAAMdER1Y2tEZXRhaWxzAAAAAl8yBAAAAAprU3BvdHNCdXN5CQEAAAAMa2V5U3BvdHNCdXN5AAAAAQUAAAAKYWRkcmVzc1N0cgQAAAAJc3BvdHNCdXN5CQEAAAAN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aWwFAAAAA25pbAMJAAAAAAAAAgUAAAAOYWNjZXNzSXRlbURhdGEFAAAADmFjY2Vzc0l0ZW1EYXRhCQAFFAAAAAIFAAAAA25pbAUAAAAOYWNjZXNzSXRlbURhdGEJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACGxvY2tEdWNrAAAAAAMJAAAAAAAAAgYGCQAAAgAAAAECAAAAVVRCQUk6IFdlIGFyZSB3b3JraW5nIHZlcnkgaGFyZCB0byByZWxlYXNlIHRoZSBuZXcgaHVudCEgRm9yIG5vdyBhbGwgbG9ja3MgYXJlIGhhbHRlZCEEAAAACmFkZHJlc3NTdHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAtkdWNrUGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkBAAAAEGxvY2tEdWNrSW50ZXJuYWwAAAACBQAAAAphZGRyZXNzU3RyBQAAAAtkdWNrUGF5bWVudAAAAAFpAQAAAAp1bmxvY2tEdWNrAAAAAQAAAAphc3NldElkU3RyBAAAAAphZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAAphc3NldElkU3RyBAAAAAx0RHVja0RldGFpbHMJAQAAAA5nZXREdWNrRGV0YWlscwAAAAEFAAAAB2Fzc2V0SWQEAAAACmFzc2V0Q29sb3IIBQAAAAx0RHVja0RldGFpbHMAAAACXzEEAAAACWlzSmFja3BvdAgFAAAADHREdWNrRGV0YWlscwAAAAJfMgQAAAAKa1Nwb3RzQnVzeQkBAAAADGtleVNwb3RzQnVzeQAAAAEFAAAACmFkZHJlc3NTdHIEAAAACmtEdWNrT3duZXIJAQAAAAxrZXlEdWNrT3duZXIAAAABBQAAAAdhc3NldElkBAAAABJyZW1haW5pbmdGb3JVbmxvY2sJAABlAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARa2V5RHVja1VubG9ja1RpbWUAAAABBQAAAAdhc3NldElkCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAMJAQAAAAIhPQAAAAIJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAAAprRHVja093bmVyBQAAAAphZGRyZXNzU3RyCQAAAgAAAAECAAAAGjNVTDogVGhlIGR1Y2sgaXMgbm90IHlvdXJzAwkAAGYAAAACBQAAABJyZW1haW5pbmdGb3JVbmxvY2sAAAAAAAAAAAAJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIDNVTDogWW91IG5lZWQgdG8gd2FpdCB0byB1bmxvY2sgCQABpAAAAAEJAABpAAAAAgUAAAAScmVtYWluaW5nRm9yVW5sb2NrAAAAAAAAAAPoAgAAAAggc2Vjb25kcwQAAAAPdW5zdGFrZUZ1bmNOYW1lAwkAAAAAAAACBQAAAAlpc0phY2twb3QGAgAAAA51bnN0YWtlSmFja3BvdAIAAAAKdW5zdGFrZU5GVAQAAAAEaW52MQkAA/wAAAAECQEAAAARZ2V0RmFybWluZ0FkZHJlc3MAAAAABQAAAA91bnN0YWtlRnVuY05hbWUJAARMAAAAAgUAAAAKYXNzZXRJZFN0cgUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAABGludjEFAAAABGludjEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABNrZXlMb2NrZWREdWNrU3RhdHVzAAAAAgUAAAAKYWRkcmVzc1N0cgUAAAAKYXNzZXRJZFN0cgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAprRHVja093bmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAprU3BvdHNCdXN5CQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAKa1Nwb3RzQnVzeQAAAAAAAAAAAQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAC8rn2c", "height": 3242069, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J9zFwjPonmLRVhWt2YMfSRNk53qhwhfRNdMTw4dn5SS8 Next: DsSTSJGa9dEY5dxabq45De74SG7j6A2RkYoFZHNbWVMS Diff:
OldNewDifferences
258258
259259
260260 @Callable(i)
261-func buyAccessItemOther (addressOther) = {
262- let eggPayment = value(i.payments[0])
263- if ((eggPayment.assetId != getAccessItemAssetId()))
264- then throw("3BAI: Wrong asset attached")
265- else if ((eggPayment.amount != getAccessItemPrice()))
266- then throw("3BAI: Wrong amount of assets attached")
267- else {
268- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
269- if ((accessItemData == accessItemData))
270- then $Tuple2(nil, accessItemData)
271- else throw("Strict value is not equal to itself.")
272- }
273- }
261+func buyAccessItemOther (addressOther) = if ((true == true))
262+ then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
263+ else {
264+ let eggPayment = value(i.payments[0])
265+ if ((eggPayment.assetId != getAccessItemAssetId()))
266+ then throw("3BAI: Wrong asset attached")
267+ else if ((eggPayment.amount != getAccessItemPrice()))
268+ then throw("3BAI: Wrong amount of assets attached")
269+ else {
270+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
271+ if ((accessItemData == accessItemData))
272+ then $Tuple2(nil, accessItemData)
273+ else throw("Strict value is not equal to itself.")
274+ }
275+ }
274276
275277
276278
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)
217217 func buyAccessItemAndLockDuck () = if ((true == true))
218218 then throw("TBAIALD: We are working very hard to release the new hunt! For now all sales are halted!")
219219 else {
220220 let eggPayment = value(i.payments[0])
221221 let duckPayment = value(i.payments[1])
222222 let addressStr = toString(i.caller)
223223 if ((eggPayment.assetId != getAccessItemAssetId()))
224224 then throw("3BAI: Wrong asset attached")
225225 else if ((eggPayment.amount != getAccessItemPrice()))
226226 then throw("3BAI: Wrong amount of assets attached")
227227 else {
228228 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
229229 if ((accessItemData == accessItemData))
230230 then {
231231 let lockData = lockDuckInternal(addressStr, duckPayment)
232232 $Tuple2(lockData, accessItemData)
233233 }
234234 else throw("Strict value is not equal to itself.")
235235 }
236236 }
237237
238238
239239
240240 @Callable(i)
241241 func buyAccessItem () = if ((true == true))
242242 then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
243243 else {
244244 let addressStr = toString(i.caller)
245245 let eggPayment = value(i.payments[0])
246246 if ((eggPayment.assetId != getAccessItemAssetId()))
247247 then throw("3BAI: Wrong asset attached")
248248 else if ((eggPayment.amount != getAccessItemPrice()))
249249 then throw("3BAI: Wrong amount of assets attached")
250250 else {
251251 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
252252 if ((accessItemData == accessItemData))
253253 then $Tuple2(nil, accessItemData)
254254 else throw("Strict value is not equal to itself.")
255255 }
256256 }
257257
258258
259259
260260 @Callable(i)
261-func buyAccessItemOther (addressOther) = {
262- let eggPayment = value(i.payments[0])
263- if ((eggPayment.assetId != getAccessItemAssetId()))
264- then throw("3BAI: Wrong asset attached")
265- else if ((eggPayment.amount != getAccessItemPrice()))
266- then throw("3BAI: Wrong amount of assets attached")
267- else {
268- let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
269- if ((accessItemData == accessItemData))
270- then $Tuple2(nil, accessItemData)
271- else throw("Strict value is not equal to itself.")
272- }
273- }
261+func buyAccessItemOther (addressOther) = if ((true == true))
262+ then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
263+ else {
264+ let eggPayment = value(i.payments[0])
265+ if ((eggPayment.assetId != getAccessItemAssetId()))
266+ then throw("3BAI: Wrong asset attached")
267+ else if ((eggPayment.amount != getAccessItemPrice()))
268+ then throw("3BAI: Wrong amount of assets attached")
269+ else {
270+ let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
271+ if ((accessItemData == accessItemData))
272+ then $Tuple2(nil, accessItemData)
273+ else throw("Strict value is not equal to itself.")
274+ }
275+ }
274276
275277
276278
277279 @Callable(i)
278280 func lockDuck () = if ((true == true))
279281 then throw("TBAI: We are working very hard to release the new hunt! For now all locks are halted!")
280282 else {
281283 let addressStr = toString(i.caller)
282284 let duckPayment = value(i.payments[0])
283285 lockDuckInternal(addressStr, duckPayment)
284286 }
285287
286288
287289
288290 @Callable(i)
289291 func unlockDuck (assetIdStr) = {
290292 let addressStr = toString(i.caller)
291293 let assetId = fromBase58String(assetIdStr)
292294 let tDuckDetails = getDuckDetails(assetId)
293295 let assetColor = tDuckDetails._1
294296 let isJackpot = tDuckDetails._2
295297 let kSpotsBusy = keySpotsBusy(addressStr)
296298 let kDuckOwner = keyDuckOwner(assetId)
297299 let remainingForUnlock = (tryGetInteger(keyDuckUnlockTime(assetId)) - lastBlock.timestamp)
298300 if ((tryGetString(kDuckOwner) != addressStr))
299301 then throw("3UL: The duck is not yours")
300302 else if ((remainingForUnlock > 0))
301303 then throw((("3UL: You need to wait to unlock " + toString((remainingForUnlock / 1000))) + " seconds"))
302304 else {
303305 let unstakeFuncName = if ((isJackpot == true))
304306 then "unstakeJackpot"
305307 else "unstakeNFT"
306308 let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
307309 if ((inv1 == inv1))
308310 then [ScriptTransfer(i.caller, 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
309311 else throw("Strict value is not equal to itself.")
310312 }
311313 }
312314
313315

github/deemru/w8io/786bc32 
52.44 ms