tx · 5iTDoEFBk4VZKk9z8DpDarYmtf9EkqZHNNZdWKBW8Aao

3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL:  -0.04000000 Waves

2022.04.20 21:12 [2017212] smart account 3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL > SELF 0.00000000 Waves

{ "type": 13, "id": "5iTDoEFBk4VZKk9z8DpDarYmtf9EkqZHNNZdWKBW8Aao", "fee": 4000000, "feeAssetId": null, "timestamp": 1650478376422, "version": 2, "chainId": 84, "sender": "3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL", "senderPublicKey": "G6aSmaqLJ4p7jzm7BnQcZuqa2NRRLVtzqdYNjYErnEZZ", "proofs": [ "5zxgt8D1yZ87apzGto6p7Fp5uE4Fguqq4AZmoQ8wRNxCG4orDVQgZVxB32c5QQKizayZp9vQMcurgF8SwpFCGkkq" ], "script": "base64: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", "height": 2017212, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: QQgwnMjhLeCsVEBwnmSpkCYX32MGVkdZgASC5HfiUXW Next: BADGqBX489kkRwiCmkk9SSNoHsJVC4End1wrhtSeNN3g Diff:
OldNewDifferences
143143
144144
145145 @Callable(i)
146-func evolve (x,y,gen) = {
146+func evolve (x,y,gen,ownerId,coordsToBurn) = {
147147 let callerId = toBase58String(i.caller.bytes)
148- let transactionId = toBase58String(i.transactionId)
149- let $t041334229 = claimSquare(x, y, gen, callerId, transactionId)
150- let asset = $t041334229._1
151- let assetId = $t041334229._2
152- let assetUrl = $t041334229._3
153- let dataKeyPrefix = $t041334229._4
154- (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, callerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)])
155- }
156-
157-
158-
159-@Callable(i)
160-func burnForEvolve (coordsToBurn) = {
161- let $l = split(coordsToBurn, "|")
162- let $s = size($l)
163- let $acc0 = nil
164- func $f0_1 ($a,$i) = if (($i >= $s))
165- then $a
166- else burnFold($a, $l[$i])
167-
168- func $f0_2 ($a,$i) = if (($i >= $s))
169- then $a
170- else throw("List size exceeds 110")
171-
172- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110)
148+ if ((callerId != holdings))
149+ then throw("This can only be triggering internally")
150+ else {
151+ let transactionId = toBase58String(i.transactionId)
152+ let $t042654360 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042654360._1
154+ let assetId = $t042654360._2
155+ let assetUrl = $t042654360._3
156+ let dataKeyPrefix = $t042654360._4
157+ (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
158+ }
173159 }
174160
175161
231217 then throw("This can only be triggering internally")
232218 else {
233219 let transactionId = toBase58String(i.transactionId)
234- let $t064556560 = claimSquare(x, y, "1", desinationAddress, transactionId)
235- let asset = $t064556560._1
236- let assetId = $t064556560._2
237- let assetUrl = $t064556560._3
238- let dataKeyPrefix = $t064556560._4
220+ let $t062416346 = claimSquare(x, y, "1", desinationAddress, transactionId)
221+ let asset = $t062416346._1
222+ let assetId = $t062416346._2
223+ let assetUrl = $t062416346._3
224+ let dataKeyPrefix = $t062416346._4
239225 let assetIdStr = toBase58String(assetId)
240226 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
241227 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let COLS = 1024
55
66 let ROWS = 1024
77
88 let nftDomain = "https://nft.gridgang.io/"
99
1010 let addOwnerAndAmountFunc = "addOwnerAndAmount"
1111
1212 let DEBUG = true
1313
1414 let minForSaleWavlets = 100000000
1515
1616 let minPurchasePrice = 1000000
1717
1818 let dapp = "3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL"
1919
2020 let dappAddress = Address(fromBase58String(dapp))
2121
2222 let holdingsPublicKey = "AyAwWbMPM7a4VYkn1bhEBftC5WZgfvUXgrYDe98mvLsv"
2323
2424 let holdings = "3MwPsLy9F1mUQrdP37sCAKvHuE5HvPE674Y"
2525
2626 let holdingsAddress = Address(fromBase58String(holdings))
2727
2828 func getAssetName (x,y) = ((x + ",") + y)
2929
3030
3131 func getDataKeyPrefix (x,y) = getAssetName(x, y)
3232
3333
3434 func getXYGenFromName (name) = {
3535 let parts = split(name, ",")
3636 let tuple = $Tuple2(parts[0], parts[1])
3737 tuple
3838 }
3939
4040
4141 func getDataKeyPrefixFromAssetName (name) = {
4242 let $t0906941 = getXYGenFromName(name)
4343 let x = $t0906941._1
4444 let y = $t0906941._2
4545 let prefix = getDataKeyPrefix(x, y)
4646 prefix
4747 }
4848
4949
5050 func claimSquare (x,y,gen,ownerId,transactionId) = {
5151 let resolvedXStr = x
5252 let resolvedYStr = y
5353 let resolvedGenStr = gen
5454 let assetName = getAssetName(resolvedXStr, resolvedYStr)
5555 let assetUrl = ((nftDomain + transactionId) + ".png")
5656 let asset = Issue(assetName, assetUrl, 1, 0, false)
5757 let assetId = calculateAssetId(asset)
5858 let dataKeyPrefix = getDataKeyPrefix(resolvedXStr, resolvedYStr)
5959 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
6060 }
6161
6262
6363 func getTransactionEntries (prefix,assetId,asset,owner,gen) = [StringEntry((prefix + "_assetId"), assetId), StringEntry((prefix + "_asset"), asset), StringEntry((prefix + "_owner"), owner), StringEntry((prefix + "_gen"), gen)]
6464
6565
6666 func burnFold (accum,next) = {
6767 let resolvedNext = match next {
6868 case _: Unit =>
6969 "unset"
7070 case val: String =>
7171 val
7272 case _ =>
7373 throw("Match error")
7474 }
7575 if ((resolvedNext == "unset"))
7676 then accum
7777 else {
7878 let assetId = match getString(this, (resolvedNext + "_assetId")) {
7979 case _: Unit =>
8080 "unset"
8181 case val: String =>
8282 val
8383 case _ =>
8484 throw("Match error")
8585 }
8686 if ((assetId == "unset"))
8787 then accum
8888 else (accum ++ [Burn(fromBase58String(assetId), 1)])
8989 }
9090 }
9191
9292
9393 @Callable(i)
9494 func purchase (x,y,userText) = {
9595 let prefix = getDataKeyPrefix(x, y)
9696 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
9797 let existingAssetId = match getString(this, (prefix + "_assetId")) {
9898 case _: Unit =>
9999 "unset"
100100 case err: String =>
101101 throw("This square has already been purchased")
102102 case _ =>
103103 throw("Match error")
104104 }
105105 if ((minPurchasePrice > paymentAmount))
106106 then throw((("You need to send at least " + toString(minPurchasePrice)) + "WAVLETS to purchase a square"))
107107 else {
108108 let ownerId = toBase58String(i.caller.bytes)
109109 let transactionId = toBase58String(i.transactionId)
110110 let $t028612956 = claimSquare(x, y, "1", ownerId, transactionId)
111111 let asset = $t028612956._1
112112 let assetId = $t028612956._2
113113 let assetUrl = $t028612956._3
114114 let dataKeyPrefix = $t028612956._4
115115 (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, "1") ++ [asset, StringEntry((ownerId + "_handle"), userText), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)])
116116 }
117117 }
118118
119119
120120
121121 @Callable(i)
122122 func autoBuy (x,y) = {
123123 let callerId = toBase58String(i.caller.bytes)
124124 if (if ((callerId != holdings))
125125 then (callerId != dapp)
126126 else false)
127127 then throw("This can only be triggering internally")
128128 else {
129129 let transactionId = toBase58String(i.transactionId)
130130 let $t034913587 = claimSquare(x, y, "1", holdings, transactionId)
131131 let asset = $t034913587._1
132132 let assetId = $t034913587._2
133133 let assetUrl = $t034913587._3
134134 let dataKeyPrefix = $t034913587._4
135135 let assetIdStr = toBase58String(assetId)
136136 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [holdings, assetIdStr, 3], [AttachedPayment(unit, 0)])
137137 if ((res == res))
138138 then (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, holdings, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)])
139139 else throw("Strict value is not equal to itself.")
140140 }
141141 }
142142
143143
144144
145145 @Callable(i)
146-func evolve (x,y,gen) = {
146+func evolve (x,y,gen,ownerId,coordsToBurn) = {
147147 let callerId = toBase58String(i.caller.bytes)
148- let transactionId = toBase58String(i.transactionId)
149- let $t041334229 = claimSquare(x, y, gen, callerId, transactionId)
150- let asset = $t041334229._1
151- let assetId = $t041334229._2
152- let assetUrl = $t041334229._3
153- let dataKeyPrefix = $t041334229._4
154- (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, callerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)])
155- }
156-
157-
158-
159-@Callable(i)
160-func burnForEvolve (coordsToBurn) = {
161- let $l = split(coordsToBurn, "|")
162- let $s = size($l)
163- let $acc0 = nil
164- func $f0_1 ($a,$i) = if (($i >= $s))
165- then $a
166- else burnFold($a, $l[$i])
167-
168- func $f0_2 ($a,$i) = if (($i >= $s))
169- then $a
170- else throw("List size exceeds 110")
171-
172- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110)
148+ if ((callerId != holdings))
149+ then throw("This can only be triggering internally")
150+ else {
151+ let transactionId = toBase58String(i.transactionId)
152+ let $t042654360 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042654360._1
154+ let assetId = $t042654360._2
155+ let assetUrl = $t042654360._3
156+ let dataKeyPrefix = $t042654360._4
157+ (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
158+ }
173159 }
174160
175161
176162
177163 @Callable(i)
178164 func putForSale (assetId,amount) = {
179165 let callerId = toBase58String(i.caller.bytes)
180166 let assetData = match assetInfo(fromBase58String(assetId)) {
181167 case ass: Asset =>
182168 ass
183169 case _ =>
184170 throw("Asset not found")
185171 }
186172 let dataPrefix = getDataKeyPrefixFromAssetName(assetData.name)
187173 let ownerId = match getString(this, (dataPrefix + "_owner")) {
188174 case s: String =>
189175 s
190176 case _ =>
191177 throw("Owner not found in data")
192178 }
193179 if ((minForSaleWavlets > amount))
194180 then throw("Amount needs to be more than 1 wave")
195181 else if (if ((callerId != ownerId))
196182 then (callerId != holdings)
197183 else false)
198184 then throw("You are not able to put this asset up for sale")
199185 else {
200186 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [callerId, assetId, amount], [AttachedPayment(unit, 0)])
201187 if ((res == res))
202188 then [ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
203189 else throw("Strict value is not equal to itself.")
204190 }
205191 }
206192
207193
208194
209195 @Callable(i)
210196 func finalizeSale (assetId,ownerId,userText) = {
211197 let callerId = toBase58String(i.caller.bytes)
212198 if ((callerId != holdings))
213199 then throw("This can only be triggering internally")
214200 else {
215201 let prefix = match assetInfo(fromBase58String(assetId)) {
216202 case asset: Asset =>
217203 asset.name
218204 case _ =>
219205 throw("Can't find asset")
220206 }
221207 [StringEntry((prefix + "_owner"), ownerId), StringEntry((ownerId + "_handle"), userText)]
222208 }
223209 }
224210
225211
226212
227213 @Callable(i)
228214 func adminPromotionPurchase (x,y,desinationAddress) = {
229215 let callerId = toBase58String(i.caller.bytes)
230216 if ((callerId != holdings))
231217 then throw("This can only be triggering internally")
232218 else {
233219 let transactionId = toBase58String(i.transactionId)
234- let $t064556560 = claimSquare(x, y, "1", desinationAddress, transactionId)
235- let asset = $t064556560._1
236- let assetId = $t064556560._2
237- let assetUrl = $t064556560._3
238- let dataKeyPrefix = $t064556560._4
220+ let $t062416346 = claimSquare(x, y, "1", desinationAddress, transactionId)
221+ let asset = $t062416346._1
222+ let assetId = $t062416346._2
223+ let assetUrl = $t062416346._3
224+ let dataKeyPrefix = $t062416346._4
239225 let assetIdStr = toBase58String(assetId)
240226 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
241227 }
242228 }
243229
244230
245231
246232 @Callable(i)
247233 func adminSetHandle (ownerId,handle) = {
248234 let callerId = toBase58String(i.caller.bytes)
249235 if ((callerId != holdings))
250236 then throw("This can only be triggering internally")
251237 else [StringEntry((ownerId + "_handle"), handle)]
252238 }
253239
254240
255241 @Verifier(tx)
256242 func verify () = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
257243 then true
258244 else (addressFromPublicKey(tx.senderPublicKey) == holdingsAddress))
259245 then true
260246 else (addressFromPublicKey(tx.senderPublicKey) == dappAddress)
261247

github/deemru/w8io/026f985 
50.90 ms