tx · JBvfxCQvCXntVZ1M1CcC3HKRhBScADPcoNnza7ZEVVaP

3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba:  -0.01400000 Waves

2022.06.12 20:22 [3159071] smart account 3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba > SELF 0.00000000 Waves

{ "type": 13, "id": "JBvfxCQvCXntVZ1M1CcC3HKRhBScADPcoNnza7ZEVVaP", "fee": 1400000, "feeAssetId": null, "timestamp": 1655054576677, "version": 2, "chainId": 87, "sender": "3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba", "senderPublicKey": "8yG34okaNeKtYZriaoqUQTinJjpk3pYKFTeGptmiWvTV", "proofs": [ "YFUBd8Jwq9GdgcTgBoXKcyvU8axoeMrQFBkbJ8GC3fw16pLeGaQyJ7gKmGQUraQxhyrqHceuCvHcmzobcGbAtHU" ], "script": "base64:AAIFAAAAAAAAAA4IAhIDCgEIEgASAwoBCAAAABgBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAABBkZWxheUZvckhhdGNoaW5nAAAAAAAAAAACAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAAA1nZXRFZ2dBc3NldElkAAAAAAkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAE2dldEluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAF3N0YXRpY19pbmN1YmF0b3JBZGRyZXNzAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2JyZWVkZXJBZGRyZXNzAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2Zhcm1pbmdBZGRyZXNzAQAAABJnZXRCYWJ5RHVja0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJ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", "height": 3159071, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FjHi6jYmnN5xWWUEPAFEJUDasTHSrqu2PzE27aRfRNPr Next: J7bQ157NFSMzawtuZ9ooiKKs3QxBvwVM8C57JZbG6xz3 Diff:
OldNewDifferences
107107
108108 func getRandomWin (tx,finishHeight,assetRarity) = {
109109 let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
110- let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
110+ let jackpotRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
111111 let itemRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 2)
112- if ((phoenixRandom == 1))
113- then "phoenix"
112+ if ((jackpotRandom == 1))
113+ then {
114+ let chance = getRandomNumber(100, tx, finishHeight, 6)
115+ if ((chance >= 50))
116+ then "fine"
117+ else "phoenix"
118+ }
114119 else if ((itemRandom == 1))
115120 then "item_ART-FREEGENE"
116121 else {
197202 else 0
198203 if ((payment == payment))
199204 then {
200- let $t057845833 = getAssetFarmingPower(assetId)
201- let gen = $t057845833._1
202- let rarity = $t057845833._2
205+ let $t059235972 = getAssetFarmingPower(assetId)
206+ let gen = $t059235972._1
207+ let rarity = $t059235972._2
203208 let call = invoke(getOrigin(assetId), "reduceRarity", [toBase58String(assetId), gen], nil)
204209 if ((call == call))
205210 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))]
248253 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
249254 else throw("Strict value is not equal to itself.")
250255 }
251- else if ((indexOf(win, "duckling") != unit))
256+ else if ((win == "fine"))
252257 then {
253- let level = parseIntValue(split(win, "_")[1])
254- let call = invoke(getBabyDuckAddress(), "issueFreeDuckling", [address, txId, level], nil)
258+ let call = invoke(getIncubatorAddress(), "issueJackpot", [address, txId, "WWWWFINE"], nil)
255259 if ((call == call))
256260 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
257261 else throw("Strict value is not equal to itself.")
258262 }
259- else if ((indexOf(win, "mantle") != unit))
263+ else if ((indexOf(win, "duckling") != unit))
260264 then {
261265 let level = parseIntValue(split(win, "_")[1])
262- let call = invoke(getGameDappAddress(), "issueFreeMantle", [address, "mantle", level], nil)
266+ let call = invoke(getBabyDuckAddress(), "issueFreeDuckling", [address, txId, level], nil)
263267 if ((call == call))
264268 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
265269 else throw("Strict value is not equal to itself.")
266270 }
267- else if ((indexOf(win, "item") != unit))
271+ else if ((indexOf(win, "mantle") != unit))
268272 then {
269- let itemName = split(win, "_")[1]
270- let call = invoke(getItemsAddress(), "issueArtefact", [itemName, address], nil)
273+ let level = parseIntValue(split(win, "_")[1])
274+ let call = invoke(getGameDappAddress(), "issueFreeMantle", [address, "mantle", level], nil)
271275 if ((call == call))
272276 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
273277 else throw("Strict value is not equal to itself.")
274278 }
275- else throw("RFB: Some error occured, please contact the admins!")
279+ else if ((indexOf(win, "item") != unit))
280+ then {
281+ let itemName = split(win, "_")[1]
282+ let call = invoke(getItemsAddress(), "issueArtefact", [itemName, address], nil)
283+ if ((call == call))
284+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
285+ else throw("Strict value is not equal to itself.")
286+ }
287+ else throw("RFB: Some error occured, please contact the admins!")
276288 (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")])
277289 }
278290 }
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
5757 case s: Int =>
5858 throw("wrong type, expected: String, got: Int")
5959 case s: Unit =>
6060 throw("wrong type, expected: String, got: Unit")
6161 case _ =>
6262 throw("wrong type, expected: String")
6363 }
6464
6565
6666 let feeAmount = tryGetInteger("currentPrice")
6767
6868 func getAmountOrClear (amount) = if (contains(amount, "0"))
6969 then ""
7070 else amount
7171
7272
7373 func getAssetOrigin (generation) = if ((generation == "G"))
7474 then getIncubatorAddress()
7575 else getBreederAddress()
7676
7777
7878 func getAssetRarity (genotype,generation) = {
7979 let quantity = getIntegerValue(getAssetOrigin(generation), (("stats_" + genotype) + "_quantity"))
8080 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
8181 if ((power > 0))
8282 then power
8383 else 2
8484 }
8585
8686
8787 func getAssetFarmingPower (assetId) = if (if ((value(assetInfo(assetId)).issuer == getBreederAddress()))
8888 then true
8989 else (value(assetInfo(assetId)).issuer == getIncubatorAddress()))
9090 then {
9191 let assetName = value(assetInfo(assetId)).name
9292 let generation = take(takeRight(assetName, 2), 1)
9393 let farmGen = asString(invoke(getBreederAddress(), "getGenFromName", [assetName], nil))
9494 if ((farmGen == farmGen))
9595 then $Tuple2(farmGen, getAssetRarity(farmGen, generation))
9696 else throw("Strict value is not equal to itself.")
9797 }
9898 else throw("not valid NFT")
9999
100100
101101 func getRandomNumber (options,txId,hatchingFinishHeight,offset) = {
102102 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
103103 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
104104 (toInt(randomHash, (offset * 8)) % options)
105105 }
106106
107107
108108 func getRandomWin (tx,finishHeight,assetRarity) = {
109109 let phoenixOptions = (PHOENIXBASEOPTIONS - fraction((PHOENIXBASEOPTIONS / 2), assetRarity, 100))
110- let phoenixRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
110+ let jackpotRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 1)
111111 let itemRandom = getRandomNumber(phoenixOptions, tx, finishHeight, 2)
112- if ((phoenixRandom == 1))
113- then "phoenix"
112+ if ((jackpotRandom == 1))
113+ then {
114+ let chance = getRandomNumber(100, tx, finishHeight, 6)
115+ if ((chance >= 50))
116+ then "fine"
117+ else "phoenix"
118+ }
114119 else if ((itemRandom == 1))
115120 then "item_ART-FREEGENE"
116121 else {
117122 let n = getRandomNumber(1000, tx, finishHeight, 0)
118123 if ((145 > n))
119124 then "duckling_20"
120125 else if ((195 > n))
121126 then "duckling_40"
122127 else if ((200 > n))
123128 then "duckling_80"
124129 else if ((300 > n))
125130 then "incubator"
126131 else if ((400 > n))
127132 then "perch_Y"
128133 else if ((500 > n))
129134 then "perch_G"
130135 else if ((600 > n))
131136 then "perch_B"
132137 else if ((700 > n))
133138 then "perch_R"
134139 else if ((849 > n))
135140 then "mantle_2"
136141 else if ((850 > n))
137142 then "mantle_40"
138143 else if ((930 > n))
139144 then "mantle_3"
140145 else if ((980 > n))
141146 then "mantle_5"
142147 else "mantle_10"
143148 }
144149 }
145150
146151
147152 func getOrigin (assetId) = {
148153 let assetName = value(assetInfo(assetId)).name
149154 let generation = take(takeRight(assetName, 2), 1)
150155 if (if ((generation == "G"))
151156 then true
152157 else (generation == "J"))
153158 then getIncubatorAddress()
154159 else getBreederAddress()
155160 }
156161
157162
158163 func asInt (value) = match value {
159164 case int: Int =>
160165 int
161166 case string: String =>
162167 throw(("RAI: wrong type, expected: Int, but got: " + string))
163168 case _ =>
164169 throw("RAI: wrong type, expected: Int")
165170 }
166171
167172
168173 @Callable(i)
169174 func configureOracle (oracle) = if ((i.caller != this))
170175 then throw("RCU: admin only")
171176 else [StringEntry("static_oracleAddress", oracle)]
172177
173178
174179
175180 @Callable(i)
176181 func initRebirth () = {
177182 let pmt = i.payments[0]
178183 let assetId = value(pmt.assetId)
179184 let initTx = toBase58String(i.transactionId)
180185 let address = toString(i.caller)
181186 if ((pmt.amount != 1))
182187 then throw("NFT is not attached")
183188 else {
184189 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [feeAmount], nil))
185190 if ((amountPaidByCoupons == amountPaidByCoupons))
186191 then {
187192 let leftToPay = (feeAmount - amountPaidByCoupons)
188193 let payment = if ((leftToPay != 0))
189194 then {
190195 let feePayment = value(i.payments[1])
191196 if ((feePayment.assetId != getEggAssetId()))
192197 then throw("You need to attach EGG tokens as fee")
193198 else if ((leftToPay > feePayment.amount))
194199 then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(leftToPay)))
195200 else leftToPay
196201 }
197202 else 0
198203 if ((payment == payment))
199204 then {
200- let $t057845833 = getAssetFarmingPower(assetId)
201- let gen = $t057845833._1
202- let rarity = $t057845833._2
205+ let $t059235972 = getAssetFarmingPower(assetId)
206+ let gen = $t059235972._1
207+ let rarity = $t059235972._2
203208 let call = invoke(getOrigin(assetId), "reduceRarity", [toBase58String(assetId), gen], nil)
204209 if ((call == call))
205210 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))]
206211 else throw("Strict value is not equal to itself.")
207212 }
208213 else throw("Strict value is not equal to itself.")
209214 }
210215 else throw("Strict value is not equal to itself.")
211216 }
212217 }
213218
214219
215220
216221 @Callable(i)
217222 func finishRebirth (initTx) = {
218223 let address = toString(i.caller)
219224 let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"))
220225 let assetRarity = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_assetRarity"))
221226 let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status"))
222227 if ((status != "open"))
223228 then throw("rebirth is finished or not open")
224229 else if ((finishBlock > height))
225230 then throw("you cannot finish rebirth, yet")
226231 else {
227232 let win = getRandomWin(fromBase58String(initTx), finishBlock, assetRarity)
228233 let txId = initTx
229234 let result = if ((indexOf(win, "perch") != unit))
230235 then {
231236 let color = takeRight(win, 1)
232237 let call = invoke(getFarmingAddress(), "addFreePerch", [address, color], nil)
233238 if ((call == call))
234239 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
235240 else throw("Strict value is not equal to itself.")
236241 }
237242 else if ((win == "incubator"))
238243 then {
239244 let call = invoke(getIncubatorAddress(), "issueFreeDuck", [address, txId], nil)
240245 if ((call == call))
241246 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
242247 else throw("Strict value is not equal to itself.")
243248 }
244249 else if ((win == "phoenix"))
245250 then {
246251 let call = invoke(getIncubatorAddress(), "issueJackpot", [address, txId, "WWWWWWWP"], nil)
247252 if ((call == call))
248253 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
249254 else throw("Strict value is not equal to itself.")
250255 }
251- else if ((indexOf(win, "duckling") != unit))
256+ else if ((win == "fine"))
252257 then {
253- let level = parseIntValue(split(win, "_")[1])
254- let call = invoke(getBabyDuckAddress(), "issueFreeDuckling", [address, txId, level], nil)
258+ let call = invoke(getIncubatorAddress(), "issueJackpot", [address, txId, "WWWWFINE"], nil)
255259 if ((call == call))
256260 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
257261 else throw("Strict value is not equal to itself.")
258262 }
259- else if ((indexOf(win, "mantle") != unit))
263+ else if ((indexOf(win, "duckling") != unit))
260264 then {
261265 let level = parseIntValue(split(win, "_")[1])
262- let call = invoke(getGameDappAddress(), "issueFreeMantle", [address, "mantle", level], nil)
266+ let call = invoke(getBabyDuckAddress(), "issueFreeDuckling", [address, txId, level], nil)
263267 if ((call == call))
264268 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
265269 else throw("Strict value is not equal to itself.")
266270 }
267- else if ((indexOf(win, "item") != unit))
271+ else if ((indexOf(win, "mantle") != unit))
268272 then {
269- let itemName = split(win, "_")[1]
270- let call = invoke(getItemsAddress(), "issueArtefact", [itemName, address], nil)
273+ let level = parseIntValue(split(win, "_")[1])
274+ let call = invoke(getGameDappAddress(), "issueFreeMantle", [address, "mantle", level], nil)
271275 if ((call == call))
272276 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
273277 else throw("Strict value is not equal to itself.")
274278 }
275- else throw("RFB: Some error occured, please contact the admins!")
279+ else if ((indexOf(win, "item") != unit))
280+ then {
281+ let itemName = split(win, "_")[1]
282+ let call = invoke(getItemsAddress(), "issueArtefact", [itemName, address], nil)
283+ if ((call == call))
284+ then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
285+ else throw("Strict value is not equal to itself.")
286+ }
287+ else throw("RFB: Some error occured, please contact the admins!")
276288 (result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish")])
277289 }
278290 }
279291
280292

github/deemru/w8io/6500d08 
71.85 ms