tx · FjHi6jYmnN5xWWUEPAFEJUDasTHSrqu2PzE27aRfRNPr

3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba:  -0.01400000 Waves

2022.06.09 17:21 [3154554] smart account 3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba > SELF 0.00000000 Waves

{ "type": 13, "id": "FjHi6jYmnN5xWWUEPAFEJUDasTHSrqu2PzE27aRfRNPr", "fee": 1400000, "feeAssetId": null, "timestamp": 1654784549794, "version": 2, "chainId": 87, "sender": "3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba", "senderPublicKey": "8yG34okaNeKtYZriaoqUQTinJjpk3pYKFTeGptmiWvTV", "proofs": [ "54BYdCz8yjCP14V1yJEKrhn54Cyz8XquHvRuVxP5c6EfLfhx7unWsCvXwEdivF54uBJKEfp3RQ5vZ58hAACeZmVA" ], "script": "base64:AAIFAAAAAAAAAA4IAhIDCgEIEgASAwoBCAAAABgBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAABBkZWxheUZvckhhdGNoaW5nAAAAAAAAAAACAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAAA1nZXRFZ2dBc3NldElkAAAAAAkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAE2dldEluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAF3N0YXRpY19pbmN1YmF0b3JBZGRyZXNzAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2JyZWVkZXJBZGRyZXNzAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2Zhcm1pbmdBZGRyZXNzAQAAABJnZXRCYWJ5RHVja0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJ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", "height": 3154554, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2EMyWqxfJMuYFBSmGdfv1kaBktVfdfX4KVGUKyBbSBJj Next: JBvfxCQvCXntVZ1M1CcC3HKRhBScADPcoNnza7ZEVVaP Diff:
OldNewDifferences
5454 func asString (value) = match value {
5555 case s: String =>
5656 s
57+ case s: Int =>
58+ throw("wrong type, expected: String, got: Int")
59+ case s: Unit =>
60+ throw("wrong type, expected: String, got: Unit")
5761 case _ =>
5862 throw("wrong type, expected: String")
5963 }
104108 func getRandomWin (tx,finishHeight,assetRarity) = {
105109 let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
106110 let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
111+ let itemRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 2)
107112 if ((phoenixRandom == 1))
108113 then "phoenix"
109- else {
110- let n = getRandomNumber(1000, tx, finishHeight, 0)
111- if ((n == 1))
112- then "item_ART-FREEGENE"
113- else if ((145 > n))
114+ else if ((itemRandom == 1))
115+ then "item_ART-FREEGENE"
116+ else {
117+ let n = getRandomNumber(1000, tx, finishHeight, 0)
118+ if ((145 > n))
114119 then "duckling_20"
115120 else if ((195 > n))
116121 then "duckling_40"
135140 else if ((980 > n))
136141 then "mantle_5"
137142 else "mantle_10"
138- }
143+ }
139144 }
140145
141146
192197 else 0
193198 if ((payment == payment))
194199 then {
195- let $t055785627 = getAssetFarmingPower(assetId)
196- let gen = $t055785627._1
197- let rarity = $t055785627._2
200+ let $t057845833 = getAssetFarmingPower(assetId)
201+ let gen = $t057845833._1
202+ let rarity = $t057845833._2
198203 let call = invoke(getOrigin(assetId), "reduceRarity", [toBase58String(assetId), gen], nil)
199204 if ((call == call))
200205 then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetString (key) = tryGetStringExternal(this, key)
1313
1414
1515 let delayForHatching = 2
1616
1717 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
1818
1919
2020 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
2121
2222
2323 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_incubatorAddress")))
2424
2525
2626 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_breederAddress")))
2727
2828
2929 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
3030
3131
3232 func getBabyDuckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_babyDuckAddress")))
3333
3434
3535 func getGameDappAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_gameDappAddress")))
3636
3737
3838 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_itemsAddress")))
3939
4040
4141 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_couponsAddress")))
4242
4343
4444 let PHOENIXBASEOPTIONS = 1000
4545
4646 func tryGetInteger (key) = match getInteger(this, key) {
4747 case b: Int =>
4848 b
4949 case _ =>
5050 0
5151 }
5252
5353
5454 func asString (value) = match value {
5555 case s: String =>
5656 s
57+ case s: Int =>
58+ throw("wrong type, expected: String, got: Int")
59+ case s: Unit =>
60+ throw("wrong type, expected: String, got: Unit")
5761 case _ =>
5862 throw("wrong type, expected: String")
5963 }
6064
6165
6266 let feeAmount = tryGetInteger("currentPrice")
6367
6468 func getAmountOrClear (amount) = if (contains(amount, "0"))
6569 then ""
6670 else amount
6771
6872
6973 func getAssetOrigin (generation) = if ((generation == "G"))
7074 then getIncubatorAddress()
7175 else getBreederAddress()
7276
7377
7478 func getAssetRarity (genotype,generation) = {
7579 let quantity = getIntegerValue(getAssetOrigin(generation), (("stats_" + genotype) + "_quantity"))
7680 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
7781 if ((power > 0))
7882 then power
7983 else 2
8084 }
8185
8286
8387 func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == getBreederAddress()))
8488 then true
8589 else (value(assetInfo(assetId)).issuer == getIncubatorAddress()))
8690 then {
8791 let assetName = value(assetInfo(assetId)).name
8892 let generation = take(takeRight(assetName, 2), 1)
8993 let farmGen = asString(invoke(getBreederAddress(), "getGenFromName", [assetName], nil))
9094 if ((farmGen == farmGen))
9195 then $Tuple2(farmGen, getAssetRarity(farmGen, generation))
9296 else throw("Strict value is not equal to itself.")
9397 }
9498 else throw("not valid NFT")
9599
96100
97101 func getRandomNumber (options,txId,hatchingFinishHeight,offset) = {
98102 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
99103 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
100104 (toInt(randomHash, (offset * 8)) % options)
101105 }
102106
103107
104108 func getRandomWin (tx,finishHeight,assetRarity) = {
105109 let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
106110 let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
111+ let itemRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 2)
107112 if ((phoenixRandom == 1))
108113 then "phoenix"
109- else {
110- let n = getRandomNumber(1000, tx, finishHeight, 0)
111- if ((n == 1))
112- then "item_ART-FREEGENE"
113- else if ((145 > n))
114+ else if ((itemRandom == 1))
115+ then "item_ART-FREEGENE"
116+ else {
117+ let n = getRandomNumber(1000, tx, finishHeight, 0)
118+ if ((145 > n))
114119 then "duckling_20"
115120 else if ((195 > n))
116121 then "duckling_40"
117122 else if ((200 > n))
118123 then "duckling_80"
119124 else if ((300 > n))
120125 then "incubator"
121126 else if ((400 > n))
122127 then "perch_Y"
123128 else if ((500 > n))
124129 then "perch_G"
125130 else if ((600 > n))
126131 then "perch_B"
127132 else if ((700 > n))
128133 then "perch_R"
129134 else if ((849 > n))
130135 then "mantle_2"
131136 else if ((850 > n))
132137 then "mantle_40"
133138 else if ((930 > n))
134139 then "mantle_3"
135140 else if ((980 > n))
136141 then "mantle_5"
137142 else "mantle_10"
138- }
143+ }
139144 }
140145
141146
142147 func getOrigin (assetId) = {
143148 let assetName = value(assetInfo(assetId)).name
144149 let generation = take(takeRight(assetName, 2), 1)
145150 if (if ((generation == "G"))
146151 then true
147152 else (generation == "J"))
148153 then getIncubatorAddress()
149154 else getBreederAddress()
150155 }
151156
152157
153158 func asInt (value) = match value {
154159 case int: Int =>
155160 int
156161 case string: String =>
157162 throw(("RAI: wrong type, expected: Int, but got: " + string))
158163 case _ =>
159164 throw("RAI: wrong type, expected: Int")
160165 }
161166
162167
163168 @Callable(i)
164169 func configureOracle (oracle) = if ((i.caller != this))
165170 then throw("RCU: admin only")
166171 else [StringEntry("static_oracleAddress", oracle)]
167172
168173
169174
170175 @Callable(i)
171176 func initRebirth () = {
172177 let pmt = i.payments[0]
173178 let assetId = value(pmt.assetId)
174179 let initTx = toBase58String(i.transactionId)
175180 let address = toString(i.caller)
176181 if ((pmt.amount != 1))
177182 then throw("NFT is not attached")
178183 else {
179184 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [feeAmount], nil))
180185 if ((amountPaidByCoupons == amountPaidByCoupons))
181186 then {
182187 let leftToPay = (feeAmount - amountPaidByCoupons)
183188 let payment = if ((leftToPay != 0))
184189 then {
185190 let feePayment = value(i.payments[1])
186191 if ((feePayment.assetId != getEggAssetId()))
187192 then throw("You need to attach EGG tokens as fee")
188193 else if ((leftToPay > feePayment.amount))
189194 then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(leftToPay)))
190195 else leftToPay
191196 }
192197 else 0
193198 if ((payment == payment))
194199 then {
195- let $t055785627 = getAssetFarmingPower(assetId)
196- let gen = $t055785627._1
197- let rarity = $t055785627._2
200+ let $t057845833 = getAssetFarmingPower(assetId)
201+ let gen = $t057845833._1
202+ let rarity = $t057845833._2
198203 let call = invoke(getOrigin(assetId), "reduceRarity", [toBase58String(assetId), gen], nil)
199204 if ((call == call))
200205 then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"), rarity), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId))]
201206 else throw("Strict value is not equal to itself.")
202207 }
203208 else throw("Strict value is not equal to itself.")
204209 }
205210 else throw("Strict value is not equal to itself.")
206211 }
207212 }
208213
209214
210215
211216 @Callable(i)
212217 func finishRebirth (initTx) = {
213218 let address = toString(i.caller)
214219 let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"))
215220 let assetRarity = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"))
216221 let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status"))
217222 if ((status != "open"))
218223 then throw("rebirth is finished or not open")
219224 else if ((finishBlock > height))
220225 then throw("you cannot finish rebirth, yet")
221226 else {
222227 let win = getRandomWin(fromBase58String(initTx), finishBlock, assetRarity)
223228 let txId = initTx
224229 let result = if ((indexOf(win, "perch") != unit))
225230 then {
226231 let color = takeRight(win, 1)
227232 let call = invoke(getFarmingAddress(), "addFreePerch", [address, color], nil)
228233 if ((call == call))
229234 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
230235 else throw("Strict value is not equal to itself.")
231236 }
232237 else if ((win == "incubator"))
233238 then {
234239 let call = invoke(getIncubatorAddress(), "issueFreeDuck", [address, txId], nil)
235240 if ((call == call))
236241 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
237242 else throw("Strict value is not equal to itself.")
238243 }
239244 else if ((win == "phoenix"))
240245 then {
241246 let call = invoke(getIncubatorAddress(), "issueJackpot", [address, txId, "WWWWWWWP"], nil)
242247 if ((call == call))
243248 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
244249 else throw("Strict value is not equal to itself.")
245250 }
246251 else if ((indexOf(win, "duckling") != unit))
247252 then {
248253 let level = parseIntValue(split(win, "_")[1])
249254 let call = invoke(getBabyDuckAddress(), "issueFreeDuckling", [address, txId, level], nil)
250255 if ((call == call))
251256 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
252257 else throw("Strict value is not equal to itself.")
253258 }
254259 else if ((indexOf(win, "mantle") != unit))
255260 then {
256261 let level = parseIntValue(split(win, "_")[1])
257262 let call = invoke(getGameDappAddress(), "issueFreeMantle", [address, "mantle", level], nil)
258263 if ((call == call))
259264 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
260265 else throw("Strict value is not equal to itself.")
261266 }
262267 else if ((indexOf(win, "item") != unit))
263268 then {
264269 let itemName = split(win, "_")[1]
265270 let call = invoke(getItemsAddress(), "issueArtefact", [itemName, address], nil)
266271 if ((call == call))
267272 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
268273 else throw("Strict value is not equal to itself.")
269274 }
270275 else throw("RFB: Some error occured, please contact the admins!")
271276 (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")])
272277 }
273278 }
274279
275280

github/deemru/w8io/6500d08 
60.13 ms