2022.08.09 10:58 [3242146] smart account 3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4 > SELF 0.00000000 Waves

{ "type": 13, "id": "GPHd7cuPci9DmqHm2NwDv92c1Guq6GLzapcuUFhFLibJ", "fee": 1700000, "feeAssetId": null, "timestamp": 1660031933380, "version": 2, "chainId": 87, "sender": "3PAHWHrKToiirbcQpggaf7xX582wEJHH1s4", "senderPublicKey": "GHr1Hnp4adsHHyw4nrZc3zDAeg6Z3sTVdvunPa8PwiEJ", "proofs": [ "2X2UrQY3dEMywXnc74Ji76fmhV19z9CUievN3NkyVJYG27hJ9uhoqxwDMuciaLAwmHEKbnEm5YGoNVFbwwpuZpX3" ], "script": "base64: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ZGVmaW5lZCEBAAAACmdldE5GVE5hbWUAAAAACQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQIAAAAOc3RhdGljX25mdE5hbWUCAAAAIzNHTk46IFRoZXJlIGlzIG5vIG5mdCBuYW1lIGRlZmluZWQhAQAAABNnZXRJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAARZ2V0QnJlZWRlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAARZ2V0RmFybWluZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAFXN0YXRpY19mYXJtaW5nQWRkcmVzcwEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAEXN0YXRpY19lZ2dBc3NldElkAQAAABRnZXRBY2Nlc3NJdGVtQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAGHN0YXRpY19hY2Nlc3NJdGVtQXNzZXRJZAEAAAASZ2V0QWNjZXNzSXRlbVByaWNlAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABZzdGF0aWNfYWNjZXNzSXRlbVByaWNlAQAAABJnZXRNaW5Mb2NrRHVyYXRpb24AAAAACQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAFnN0YXRpY19taW5Mb2NrRHVyYXRpb24BAAAAE2dldEJvc3RlckJ1eUFzc2V0SWQAAAAACQACWQAAAAEJAQAAAAx0cnlHZXRTdHJpbmcAAAABAgAAABhzdGF0aWNfYm9vc3RlckJ1eUFzc2V0SWQBAAAAFmdldEJvc3RlclByaWNlRm9yTGV2ZWwAAAABAAAABWxldmVsCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQfAAAAAQkAASwAAAACAgAAABlzdGF0aWNfYm9vc3RlclByaWNlTGV2ZWxfCQABpAAAAAEFAAAABWxldmVsAgAAADkzR0JQRkw6IFRoZXJlIGlzIG5vIHByaWNlIHZhbHVlIGZvciB0aGlzIGxldmVsIG9mIGJvb3N0ZXIBAAAAFWdldEJvc3Rlck5hbWVGb3JMZXZlbAAAAAEAAAAFbGV2ZWwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABCQABLAAAAAICAAAAE3N0YXRpY19ib29zdGVyTmFtZV8JAAGkAAAAAQUAAAAFbGV2ZWwCAAAAIDNHQk5GTDogVGhlcmUgaXMgbm8gc3VjaCBib29zdGVyAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAUAAAAGc3RyaW5nCQAAAgAAAAECAAAAHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBAAAAEGxvY2tEdWNrSW50ZXJuYWwAAAACAAAACmFkZHJlc3NTdHIAAAADcG10BAAAAAdhc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAC2Fzc2V0SXNzdWVyCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAdhc3NldElkAAAABmlzc3VlcgQAAAAMdER1Y2tEZXRhaWxzCQEAAAAOZ2V0RHVja0RldGFpbHMAAAABBQAAAAdhc3NldElkBAAAAAphc3NldENvbG9yCAUAAAAMdER1Y2tEZXRhaWxzAAAAAl8xBAAAAAlpc0phY2twb3QIBQAAAAx0RHVja0RldGFpbHMAAAACXzIEAAAACmtTcG90c0J1c3kJAQAAAAxrZXlTcG90c0J1c3kAAAABBQAAAAphZGRyZXNzU3RyBAAAAAlzcG90c0J1c3kJ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cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAAt1bnN0YWtlRHVjawAAAAIAAAAKYXNzZXRJZFN0cgAAAAphZGRyZXNzU3RyBAAAAAdhc3NldElkCQACWQAAAAEFAAAACmFzc2V0SWRTdHIEAAAADHREdWNrRGV0YWlscwkBAAAADmdldER1Y2tEZXRhaWxzAAAAAQUAAAAHYXNzZXRJZAQAAAAKYXNzZXRDb2xvcggFAAAADHREdWNrRGV0YWlscwAAAAJfMQQAAAAJaXNKYWNrcG90CAUAAAAMdER1Y2tEZXRhaWxzAAAAAl8yBAAAAAprU3BvdHNCdXN5CQEAAAAMa2V5U3BvdHNCdXN5AAAAAQUAAAAKYWRkcmVzc1N0cgQAAAAKa0R1Y2tPd25lcgkBAAAADGtleUR1Y2tPd25lcgAAAAEFAAAAB2Fzc2V0SWQEAAAAEnJlbWFpbmluZ0ZvclVubG9jawkAAGUAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFrZXlEdWNrVW5sb2NrVGltZQAAAAEFAAAAB2Fzc2V0SWQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAwkBAAAAAiE9AAAAAgkBAAAADHRyeUdldFN0cmluZwAAAAEFAAAACmtEdWNrT3duZXIFAAAACmFkZHJlc3NTdHIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAbM1VMOiBUaGUgZHVjayBpcyBub3QgeW91cnMgCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAKa0R1Y2tPd25lcgIAAAADIDogBQAAAAphZGRyZXNzU3RyBAAAAA91bnN0YWtlRnVuY05hbWUDCQAAAAAAAAIFAAAACWlzSmFja3BvdAYCAAAADnVuc3Rha2VKYWNrcG90AgAAAAp1bnN0YWtlTkZUBAAAAARpbnYxCQAD/AAAAAQJAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAFAAAAD3Vuc3Rha2VGdW5jTmFtZQkA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CmVnZ1BheW1lbnQAAAAHYXNzZXRJZAkBAAAAFGdldEFjY2Vzc0l0ZW1Bc3NldElkAAAAAAkAAAIAAAABAgAAABozQkFJOiBXcm9uZyBhc3NldCBhdHRhY2hlZAMJAQAAAAIhPQAAAAIIBQAAAAplZ2dQYXltZW50AAAABmFtb3VudAkBAAAAEmdldEFjY2Vzc0l0ZW1QcmljZQAAAAAJAAACAAAAAQIAAAAlM0JBSTogV3JvbmcgYW1vdW50IG9mIGFzc2V0cyBhdHRhY2hlZAQAAAAOYWNjZXNzSXRlbURhdGEJAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAAEdGhpcwIAAAAVYnV5QWNjZXNzSXRlbUludGVybmFsCQAETAAAAAIFAAAADGFkZHJlc3NPdGhlcgUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADmFjY2Vzc0l0ZW1EYXRhBQAAAA5hY2Nlc3NJdGVtRGF0YQkABRQAAAACBQAAAANuaWwFAAAADmFjY2Vzc0l0ZW1EYXRhCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAhsb2NrRHVjawAAAAADCQAAAAAAAAIGBgkAAAIAAAABAgAAAFVUQkFJOiBXZSBhcmUgd29ya2luZyB2ZXJ5IGhhcmQgdG8gcmVsZWFzZSB0aGUgbmV3IGh1bnQhIEZvciBub3cgYWxsIGxvY2tzIGFyZSBoYWx0ZWQhBAAAAAphZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALZHVja1BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAQAAABBsb2NrRHVja0ludGVybmFsAAAAAgUAAAAKYWRkcmVzc1N0cgUAAAALZHVja1BheW1lbnQAAAABaQEAAAAPdW5sb2NrRHVja090aGVyAAAAAQAAAAphc3NldElkU3RyAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAETNVRE86IEFkbWluIG9ubHkhBAAAAAhvd25lcktleQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAxrZXlEdWNrT3duZXIAAAABCQACWQAAAAEFAAAACmFzc2V0SWRTdHIJAQAAAAt1bnN0YWtlRHVjawAAAAIFAAAACmFzc2V0SWRTdHIFAAAACG93bmVyS2V5AAAAAWkBAAAACnVubG9ja0R1Y2sAAAABAAAACmFzc2V0SWRTdHIEAAAACmFkZHJlc3NTdHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQEAAAALdW5zdGFrZUR1Y2sAAAACBQAAAAphc3NldElkU3RyBQAAAAphZGRyZXNzU3RyAAAAAC9vWME=", "height": 3242146, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FMjwHvqG6Pp8VvT5MXGQWMwwFzePPfjWzRdP7esJp8ho Next: 42doNZpP5doXKSPtS4tmJUpE7jtXPc1TnrdH3GGr3PRg Diff:
OldNewDifferences
157157 let remainingForUnlock = (tryGetInteger(keyDuckUnlockTime(assetId)) - lastBlock.timestamp)
158158 if ((tryGetString(kDuckOwner) != addressStr))
159159 then throw(((("3UL: The duck is not yours " + tryGetString(kDuckOwner)) + " : ") + addressStr))
160- else if ((remainingForUnlock > 0))
161- then throw((("3UL: You need to wait to unlock " + toString((remainingForUnlock / 1000))) + " seconds"))
162- else {
163- let unstakeFuncName = if ((isJackpot == true))
164- then "unstakeJackpot"
165- else "unstakeNFT"
166- let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
167- if ((inv1 == inv1))
168- then [ScriptTransfer(Address(fromBase58String(addressStr)), 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
169- else throw("Strict value is not equal to itself.")
170- }
160+ else {
161+ let unstakeFuncName = if ((isJackpot == true))
162+ then "unstakeJackpot"
163+ else "unstakeNFT"
164+ let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
165+ if ((inv1 == inv1))
166+ then [ScriptTransfer(Address(fromBase58String(addressStr)), 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
167+ else throw("Strict value is not equal to itself.")
168+ }
171169 }
172170
173171
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 func unstakeDuck (assetIdStr,addressStr) = {
151151 let assetId = fromBase58String(assetIdStr)
152152 let tDuckDetails = getDuckDetails(assetId)
153153 let assetColor = tDuckDetails._1
154154 let isJackpot = tDuckDetails._2
155155 let kSpotsBusy = keySpotsBusy(addressStr)
156156 let kDuckOwner = keyDuckOwner(assetId)
157157 let remainingForUnlock = (tryGetInteger(keyDuckUnlockTime(assetId)) - lastBlock.timestamp)
158158 if ((tryGetString(kDuckOwner) != addressStr))
159159 then throw(((("3UL: The duck is not yours " + tryGetString(kDuckOwner)) + " : ") + addressStr))
160- else if ((remainingForUnlock > 0))
161- then throw((("3UL: You need to wait to unlock " + toString((remainingForUnlock / 1000))) + " seconds"))
162- else {
163- let unstakeFuncName = if ((isJackpot == true))
164- then "unstakeJackpot"
165- else "unstakeNFT"
166- let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
167- if ((inv1 == inv1))
168- then [ScriptTransfer(Address(fromBase58String(addressStr)), 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
169- else throw("Strict value is not equal to itself.")
170- }
160+ else {
161+ let unstakeFuncName = if ((isJackpot == true))
162+ then "unstakeJackpot"
163+ else "unstakeNFT"
164+ let inv1 = invoke(getFarmingAddress(), unstakeFuncName, [assetIdStr], nil)
165+ if ((inv1 == inv1))
166+ then [ScriptTransfer(Address(fromBase58String(addressStr)), 1, assetId), DeleteEntry(keyLockedDuckStatus(addressStr, assetIdStr)), DeleteEntry(kDuckOwner), IntegerEntry(kSpotsBusy, (tryGetInteger(kSpotsBusy) - 1))]
167+ else throw("Strict value is not equal to itself.")
168+ }
171169 }
172170
173171
174172 @Callable(i)
175173 func buyAccessItemInternal (addressStr) = if ((i.caller != this))
176174 then throw("3BAII: internal use only")
177175 else {
178176 let issueAccessItem = Issue(("ACCESS-" + getGameName()), ((("[Access] " + getLongGameName()) + " access NFT for ") + getNFTName()), 1, 0, false)
179177 let accessRaceAssetId = toBase58String(calculateAssetId(issueAccessItem))
180178 let kSpotsBought = keySpotsBought(addressStr)
181179 $Tuple2([issueAccessItem, StringEntry((("accessItem_" + accessRaceAssetId) + "_owner"), addressStr), StringEntry((("address_" + addressStr) + "_owning"), accessRaceAssetId), IntegerEntry(kSpotsBought, (tryGetInteger(kSpotsBought) + 1))], accessRaceAssetId)
182180 }
183181
184182
185183
186184 @Callable(i)
187185 func configureOracle (oracle,shortname,longname,nftName) = if ((i.caller != this))
188186 then throw("3CO: admin only")
189187 else [StringEntry("static_oracleAddress", oracle), StringEntry("static_shortGameName", shortname), StringEntry("static_longGameName", longname), StringEntry("static_nftName", nftName)]
190188
191189
192190
193191 @Callable(i)
194192 func updateSetting (key,value) = if ((i.caller != this))
195193 then throw("Only administrator can call this method")
196194 else match value {
197195 case int: Int =>
198196 [IntegerEntry(key, int)]
199197 case s: String =>
200198 [StringEntry(key, s)]
201199 case b: Boolean =>
202200 [BooleanEntry(key, b)]
203201 case bv: ByteVector =>
204202 [BinaryEntry(key, bv)]
205203 case _ =>
206204 throw("Bad value type")
207205 }
208206
209207
210208
211209 @Callable(i)
212210 func deleteSetting (key) = if ((i.caller != this))
213211 then throw("3DS: Only administrator can call this method")
214212 else [DeleteEntry(key)]
215213
216214
217215
218216 @Callable(i)
219217 func buyBooster () = {
220218 let kBoughtLevel = keyBoughtBoosterLevel(toString(i.caller))
221219 let boughtBoosterLevel = tryGetInteger(kBoughtLevel)
222220 let newLevel = (boughtBoosterLevel + 1)
223221 let pmt = value(i.payments[0])
224222 let price = getBosterPriceForLevel(newLevel)
225223 let expectedAssetId = getBosterBuyAssetId()
226224 if ((pmt.amount != price))
227225 then throw(("3BB: Bad price, it should be: " + toString(price)))
228226 else if ((pmt.assetId != expectedAssetId))
229227 then throw(("3BB: Bad payment attached, it should be: " + toBase58String(expectedAssetId)))
230228 else {
231229 let name = getBosterNameForLevel(newLevel)
232230 let boosterItem = Issue(((getGameName() + "-") + name), ((("[Booster] " + getLongGameName()) + " booster for the game, level = ") + toString(newLevel)), 1, 0, false)
233231 let boosterItemAssetId = calculateAssetId(boosterItem)
234232 [boosterItem, IntegerEntry(kBoughtLevel, newLevel), ScriptTransfer(i.caller, 1, boosterItemAssetId)]
235233 }
236234 }
237235
238236
239237
240238 @Callable(i)
241239 func buyAccessItemAndLockDuck () = if ((true == true))
242240 then throw("TBAIALD: We are working very hard to release the new hunt! For now all sales are halted!")
243241 else {
244242 let eggPayment = value(i.payments[0])
245243 let duckPayment = value(i.payments[1])
246244 let addressStr = toString(i.caller)
247245 if ((eggPayment.assetId != getAccessItemAssetId()))
248246 then throw("3BAI: Wrong asset attached")
249247 else if ((eggPayment.amount != getAccessItemPrice()))
250248 then throw("3BAI: Wrong amount of assets attached")
251249 else {
252250 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
253251 if ((accessItemData == accessItemData))
254252 then {
255253 let lockData = lockDuckInternal(addressStr, duckPayment)
256254 $Tuple2(lockData, accessItemData)
257255 }
258256 else throw("Strict value is not equal to itself.")
259257 }
260258 }
261259
262260
263261
264262 @Callable(i)
265263 func buyAccessItem () = if ((true == true))
266264 then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
267265 else {
268266 let addressStr = toString(i.caller)
269267 let eggPayment = value(i.payments[0])
270268 if ((eggPayment.assetId != getAccessItemAssetId()))
271269 then throw("3BAI: Wrong asset attached")
272270 else if ((eggPayment.amount != getAccessItemPrice()))
273271 then throw("3BAI: Wrong amount of assets attached")
274272 else {
275273 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressStr], nil))
276274 if ((accessItemData == accessItemData))
277275 then $Tuple2(nil, accessItemData)
278276 else throw("Strict value is not equal to itself.")
279277 }
280278 }
281279
282280
283281
284282 @Callable(i)
285283 func buyAccessItemOther (addressOther) = if ((true == true))
286284 then throw("TBAI: We are working very hard to release the new hunt! For now all sales are halted!")
287285 else {
288286 let eggPayment = value(i.payments[0])
289287 if ((eggPayment.assetId != getAccessItemAssetId()))
290288 then throw("3BAI: Wrong asset attached")
291289 else if ((eggPayment.amount != getAccessItemPrice()))
292290 then throw("3BAI: Wrong amount of assets attached")
293291 else {
294292 let accessItemData = asString(invoke(this, "buyAccessItemInternal", [addressOther], nil))
295293 if ((accessItemData == accessItemData))
296294 then $Tuple2(nil, accessItemData)
297295 else throw("Strict value is not equal to itself.")
298296 }
299297 }
300298
301299
302300
303301 @Callable(i)
304302 func lockDuck () = if ((true == true))
305303 then throw("TBAI: We are working very hard to release the new hunt! For now all locks are halted!")
306304 else {
307305 let addressStr = toString(i.caller)
308306 let duckPayment = value(i.payments[0])
309307 lockDuckInternal(addressStr, duckPayment)
310308 }
311309
312310
313311
314312 @Callable(i)
315313 func unlockDuckOther (assetIdStr) = if ((i.caller != this))
316314 then throw("3UDO: Admin only!")
317315 else {
318316 let ownerKey = tryGetString(keyDuckOwner(fromBase58String(assetIdStr)))
319317 unstakeDuck(assetIdStr, ownerKey)
320318 }
321319
322320
323321
324322 @Callable(i)
325323 func unlockDuck (assetIdStr) = {
326324 let addressStr = toString(i.caller)
327325 unstakeDuck(assetIdStr, addressStr)
328326 }
329327
330328

github/deemru/w8io/786bc32 
55.09 ms