tx · FBDEY7KsbSg8GDqK4zzu35bYKV6mxNgx5E5U3xwMfVcQ

3N51W4fn1aAAdypU26EGUwNZPr3zikN3vwh:  -0.01400000 Waves

2021.08.11 21:38 [1654071] smart account 3N51W4fn1aAAdypU26EGUwNZPr3zikN3vwh > SELF 0.00000000 Waves

{ "type": 13, "id": "FBDEY7KsbSg8GDqK4zzu35bYKV6mxNgx5E5U3xwMfVcQ", "fee": 1400000, "feeAssetId": null, "timestamp": 1628707188749, "version": 2, "chainId": 84, "sender": "3N51W4fn1aAAdypU26EGUwNZPr3zikN3vwh", "senderPublicKey": "D7edN6TZzQ6PbyWHGFdGMPJkkRNjR1Y32g7MmU7AXR73", "proofs": [ "5uG1yAHbyZ5EEdKajKHqeHp2jmdtQ8G8XAR6SyaZA7mCRkvj28G9gZWtYutV3XP7R7BGKjGFn1Jio1RjZUwiCKYx" ], "script": "base64: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", "height": 1654071, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8U2NrgmZQVURLDxtPPxznjsbrucpuujP8BpnAnJpkNdv Next: 3tKHfgUbcbKe9fT5ZQWBkAASDinBJcNQAJGwCQy5i6cP Diff:
OldNewDifferences
177177 @Callable(i)
178178 func giveIngot (uid) = {
179179 let caller = toBase58String(i.caller.bytes)
180+ let epoch = match getInteger(this, "epoch") {
181+ case a: Int =>
182+ a
183+ case _ =>
184+ 0
185+ }
180186 let assetId = match getString(this, ("ingot_" + toString(uid))) {
181187 case a: String =>
182188 a
183189 case _ =>
184190 ""
185191 }
186- let given = match getInteger(this, ("from_by_" + caller)) {
192+ let givenTotal = match getInteger(this, ("from_by_" + caller)) {
193+ case a: Int =>
194+ a
195+ case _ =>
196+ 0
197+ }
198+ let given = match getInteger(this, ((("from_by_" + caller) + "_") + toString(epoch))) {
187199 case a: Int =>
188200 a
189201 case _ =>
202214 0
203215 }
204216 let newGiven = (given + weight)
217+ let newGivenTotal = (givenTotal + weight)
205218 let newMaxQ = newGiven
206219 if ((size(i.payments) == 0))
207220 then throw("NFT Payment wasn't attached")
216229 else if ((payment.amount != 1))
217230 then throw("Wrong ingot's count")
218231 else if ((newMaxQ > maxq))
219- then [IntegerEntry("max_q", newMaxQ), StringEntry("max_owner", caller), IntegerEntry(("from_by_" + caller), newGiven)]
220- else [IntegerEntry(("from_by_" + caller), newGiven)]
232+ then [IntegerEntry("max_q", newMaxQ), StringEntry("max_owner", caller), IntegerEntry(("from_by_" + caller), newGivenTotal), IntegerEntry(((("from_by_" + caller) + "_") + toString(epoch)), newGiven)]
233+ else [IntegerEntry(((("from_by_" + caller) + "_") + toString(epoch)), newGiven), IntegerEntry(("from_by_" + caller), newGivenTotal)]
221234 }
222235 }
223236
249262 let issueDesc = (((("{\"king\":\"" + maxOwner) + "\",\"epoch\":") + toString(epoch)) + "}")
250263 let issue = Issue(issueName, issueDesc, 1, 0, false)
251264 let nft = calculateAssetId(issue)
252-[Issue(issueName, issueDesc, 1, 0, false), ScriptTransfer(addressFromStringValue(maxOwner), 1, nft), IntegerEntry("epoch", newEpoch), IntegerEntry("epochHeight", nextEpochHeight), StringEntry("king", maxOwner), StringEntry(("crown_" + toString(epoch)), toBase58String(nft))]
265+[Issue(issueName, issueDesc, 1, 0, false), ScriptTransfer(addressFromStringValue(maxOwner), 1, nft), IntegerEntry("epoch", newEpoch), IntegerEntry("epochHeight", nextEpochHeight), IntegerEntry("max_q", 0), StringEntry("max_owner", "NaN"), StringEntry("king", maxOwner), StringEntry(("crown_" + toString(epoch)), toBase58String(nft))]
253266 }
254267 }
255268 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let gLump = base58'HdveNhSzDRiEib9RfQ5EAxmpFVica4EqvBFd2S4pdbD4'
55
66 let DAPP = base58'3N51W4fn1aAAdypU26EGUwNZPr3zikN3vwh'
77
88 let BLOCKSTEP = 10
99
1010 let INGOTCOST = 1000
1111
1212 let PLOTCOST = 100000
1313
1414 let gLumpPlot = 500
1515
1616 let EPOCHSTEP = 100000
1717
1818 let BOOSTPRICE = 1
1919
2020 func randomizer (inv) = {
2121 let lastPlay = match getBinary(this, "lastMine") {
2222 case s: ByteVector =>
2323 s
2424 case _: Unit =>
2525 base58'TGCTLFoHxJ8U7rcUofN'
2626 case _ =>
2727 throw("Match error")
2828 }
2929 let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
3030 sha256(rand)
3131 }
3232
3333
3434 @Callable(i)
3535 func goToMine () = {
3636 let caller = toBase58String(i.caller.bytes)
3737 let wait = match getInteger(this, ("wait_" + caller)) {
3838 case a: Int =>
3939 a
4040 case _ =>
4141 0
4242 }
4343 let gLumpDeposit = match getInteger(this, "deposit") {
4444 case a: Int =>
4545 a
4646 case _ =>
4747 0
4848 }
4949 let balance = assetBalance(this, gLump)
5050 let newWait = (lastBlock.height + BLOCKSTEP)
5151 let randhash = randomizer(i)
5252 let count = ((toInt(randhash) % 1000) / 2)
5353 if ((0 > ((balance - gLumpDeposit) - count)))
5454 then throw("Not enough gLUMP in World")
5555 else if ((wait > lastBlock.height))
5656 then throw((("Wait block " + toString(wait)) + " for mining again"))
5757 else [IntegerEntry(("wait_" + caller), newWait), ScriptTransfer(i.caller, count, gLump), BinaryEntry("lastMine", randhash)]
5858 }
5959
6060
6161
6262 @Callable(i)
6363 func craftIngot (count) = {
6464 let caller = toBase58String(i.caller.bytes)
6565 let craft = match getInteger(this, ("craft_" + caller)) {
6666 case a: Int =>
6767 a
6868 case _ =>
6969 0
7070 }
7171 let ingots = match getInteger(this, "ingots_count") {
7272 case a: Int =>
7373 a
7474 case _ =>
7575 0
7676 }
7777 let newIngots = (ingots + 1)
7878 let newCraft = (lastBlock.height + BLOCKSTEP)
7979 if ((size(i.payments) == 0))
8080 then throw("Payment wasn't attached")
8181 else if ((craft > lastBlock.height))
8282 then throw((("Wait block " + toString(craft)) + " for crafting again"))
8383 else if (if (if ((count != 1))
8484 then (count != 10)
8585 else false)
8686 then (count != 50)
8787 else false)
8888 then throw("Wrong ingot's weight!")
8989 else {
9090 let payment = i.payments[0]
9191 if ((payment.assetId != gLump))
9292 then throw("Payment only in gLump")
9393 else if ((payment.amount != (INGOTCOST * count)))
9494 then throw((("Payment expected " + toString((INGOTCOST * count))) + " gLump"))
9595 else {
9696 let issueName = ("INGOT" + toString(newIngots))
9797 let issueDesc = (((((("{\"weight\":" + toString(count)) + ",\"uid\":") + toString(newIngots)) + ",\"made_by\":\"") + caller) + "\"}")
9898 let issue = Issue(issueName, issueDesc, 1, 0, false)
9999 let nft = calculateAssetId(issue)
100100 [Burn(gLump, (INGOTCOST * count)), Issue(issueName, issueDesc, 1, 0, false), ScriptTransfer(i.caller, 1, nft), IntegerEntry("ingots_count", newIngots), StringEntry(("ingot_" + toString(newIngots)), toBase58String(nft)), IntegerEntry(("craft_" + caller), newCraft), IntegerEntry(("weight_" + toBase58String(nft)), count)]
101101 }
102102 }
103103 }
104104
105105
106106
107107 @Callable(i)
108108 func buyPlot (pSize) = {
109109 let caller = toBase58String(i.caller.bytes)
110110 let plotSize = match getInteger(this, ("plot_" + caller)) {
111111 case a: Int =>
112112 a
113113 case _ =>
114114 0
115115 }
116116 let gLumpDeposit = match getInteger(this, "deposit") {
117117 case a: Int =>
118118 a
119119 case _ =>
120120 0
121121 }
122122 let balance = assetBalance(this, gLump)
123123 let newDeposit = (gLumpDeposit + (pSize * gLumpPlot))
124124 if ((0 > ((balance - gLumpDeposit) - (pSize * gLumpPlot))))
125125 then throw("Not enough gLUMP in World")
126126 else if ((plotSize > 0))
127127 then throw("You already have a plot!")
128128 else if (if ((0 > plotSize))
129129 then true
130130 else (plotSize > 1000))
131131 then throw("Correct size value from 1 to 1000")
132132 else {
133133 let payment = i.payments[0]
134134 if (isDefined(payment.assetId))
135135 then throw("Payment only in WAVES")
136136 else if ((payment.amount != (pSize * PLOTCOST)))
137137 then throw((("Payment expected " + toString((pSize * PLOTCOST))) + " WAVELET"))
138138 else [IntegerEntry(("plot_" + caller), pSize), IntegerEntry("deposit", newDeposit)]
139139 }
140140 }
141141
142142
143143
144144 @Callable(i)
145145 func goToPlot () = {
146146 let caller = toBase58String(i.caller.bytes)
147147 let plotSize = match getInteger(this, ("plot_" + caller)) {
148148 case a: Int =>
149149 a
150150 case _ =>
151151 0
152152 }
153153 let wait = match getInteger(this, ("wait_" + caller)) {
154154 case a: Int =>
155155 a
156156 case _ =>
157157 0
158158 }
159159 let gLumpDeposit = match getInteger(this, "deposit") {
160160 case a: Int =>
161161 a
162162 case _ =>
163163 0
164164 }
165165 let newDeposit = (gLumpDeposit - gLumpPlot)
166166 let newWait = (lastBlock.height + BLOCKSTEP)
167167 let newPlotSize = (plotSize - 1)
168168 if ((0 >= plotSize))
169169 then throw("Plot is empty, buy new!")
170170 else if ((wait > lastBlock.height))
171171 then throw((("Wait block " + toString(wait)) + " for mining again"))
172172 else [IntegerEntry(("wait_" + caller), newWait), ScriptTransfer(i.caller, gLumpPlot, gLump), IntegerEntry(("plot_" + caller), newPlotSize), IntegerEntry("deposit", newDeposit)]
173173 }
174174
175175
176176
177177 @Callable(i)
178178 func giveIngot (uid) = {
179179 let caller = toBase58String(i.caller.bytes)
180+ let epoch = match getInteger(this, "epoch") {
181+ case a: Int =>
182+ a
183+ case _ =>
184+ 0
185+ }
180186 let assetId = match getString(this, ("ingot_" + toString(uid))) {
181187 case a: String =>
182188 a
183189 case _ =>
184190 ""
185191 }
186- let given = match getInteger(this, ("from_by_" + caller)) {
192+ let givenTotal = match getInteger(this, ("from_by_" + caller)) {
193+ case a: Int =>
194+ a
195+ case _ =>
196+ 0
197+ }
198+ let given = match getInteger(this, ((("from_by_" + caller) + "_") + toString(epoch))) {
187199 case a: Int =>
188200 a
189201 case _ =>
190202 0
191203 }
192204 let weight = match getInteger(this, ("weight_" + assetId)) {
193205 case a: Int =>
194206 a
195207 case _ =>
196208 0
197209 }
198210 let maxq = match getInteger(this, "max_q") {
199211 case a: Int =>
200212 a
201213 case _ =>
202214 0
203215 }
204216 let newGiven = (given + weight)
217+ let newGivenTotal = (givenTotal + weight)
205218 let newMaxQ = newGiven
206219 if ((size(i.payments) == 0))
207220 then throw("NFT Payment wasn't attached")
208221 else if ((assetId == ""))
209222 then throw(("Can't find INGOT" + toString(uid)))
210223 else {
211224 let payment = i.payments[0]
212225 if ((isDefined(payment.assetId) == false))
213226 then throw("???")
214227 else if ((payment.assetId != fromBase58String(assetId)))
215228 then throw(("Wrong Ingot in Payment " + assetId))
216229 else if ((payment.amount != 1))
217230 then throw("Wrong ingot's count")
218231 else if ((newMaxQ > maxq))
219- then [IntegerEntry("max_q", newMaxQ), StringEntry("max_owner", caller), IntegerEntry(("from_by_" + caller), newGiven)]
220- else [IntegerEntry(("from_by_" + caller), newGiven)]
232+ then [IntegerEntry("max_q", newMaxQ), StringEntry("max_owner", caller), IntegerEntry(("from_by_" + caller), newGivenTotal), IntegerEntry(((("from_by_" + caller) + "_") + toString(epoch)), newGiven)]
233+ else [IntegerEntry(((("from_by_" + caller) + "_") + toString(epoch)), newGiven), IntegerEntry(("from_by_" + caller), newGivenTotal)]
221234 }
222235 }
223236
224237
225238
226239 @Callable(i)
227240 func startNewEpoch () = {
228241 let epoch = match getInteger(this, "epoch") {
229242 case a: Int =>
230243 a
231244 case _ =>
232245 -1
233246 }
234247 let maxOwner = match getString(this, "max_owner") {
235248 case a: String =>
236249 a
237250 case _ =>
238251 ""
239252 }
240253 if ((i.caller.bytes != DAPP))
241254 then throw("Only Creator of the world can start new Epoch")
242255 else {
243256 let newEpoch = (epoch + 1)
244257 let nextEpochHeight = (lastBlock.height + BLOCKSTEP)
245258 if ((maxOwner == ""))
246259 then [IntegerEntry("epoch", newEpoch), IntegerEntry("epochHeight", nextEpochHeight)]
247260 else {
248261 let issueName = ("CROWN" + toString(epoch))
249262 let issueDesc = (((("{\"king\":\"" + maxOwner) + "\",\"epoch\":") + toString(epoch)) + "}")
250263 let issue = Issue(issueName, issueDesc, 1, 0, false)
251264 let nft = calculateAssetId(issue)
252-[Issue(issueName, issueDesc, 1, 0, false), ScriptTransfer(addressFromStringValue(maxOwner), 1, nft), IntegerEntry("epoch", newEpoch), IntegerEntry("epochHeight", nextEpochHeight), StringEntry("king", maxOwner), StringEntry(("crown_" + toString(epoch)), toBase58String(nft))]
265+[Issue(issueName, issueDesc, 1, 0, false), ScriptTransfer(addressFromStringValue(maxOwner), 1, nft), IntegerEntry("epoch", newEpoch), IntegerEntry("epochHeight", nextEpochHeight), IntegerEntry("max_q", 0), StringEntry("max_owner", "NaN"), StringEntry("king", maxOwner), StringEntry(("crown_" + toString(epoch)), toBase58String(nft))]
253266 }
254267 }
255268 }
256269
257270
258271 @Verifier(tx)
259272 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
260273

github/deemru/w8io/c3f4982 
38.79 ms