tx · BADGqBX489kkRwiCmkk9SSNoHsJVC4End1wrhtSeNN3g

3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL:  -0.04000000 Waves

2022.04.20 22:20 [2017282] smart account 3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL > SELF 0.00000000 Waves

{ "type": 13, "id": "BADGqBX489kkRwiCmkk9SSNoHsJVC4End1wrhtSeNN3g", "fee": 4000000, "feeAssetId": null, "timestamp": 1650482424373, "version": 2, "chainId": 84, "sender": "3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL", "senderPublicKey": "G6aSmaqLJ4p7jzm7BnQcZuqa2NRRLVtzqdYNjYErnEZZ", "proofs": [ "5QCLtLFEzPa1VpRsnYc9MtiAVpMmMceEFAPR3kDoaokqrJJyoiWgfgiZ3xhFqRRXKWbyNAyFcXvk5TiRWzkMm8fv" ], "script": "base64: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", "height": 2017282, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5iTDoEFBk4VZKk9z8DpDarYmtf9EkqZHNNZdWKBW8Aao Next: none Diff:
OldNewDifferences
143143
144144
145145 @Callable(i)
146-func evolve (x,y,gen,ownerId,coordsToBurn) = {
146+func evolve (x,y,gen,ownerId) = {
147147 let callerId = toBase58String(i.caller.bytes)
148148 if ((callerId != holdings))
149149 then throw("This can only be triggering internally")
150150 else {
151151 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
152+ let $t042434338 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042434338._1
154+ let assetId = $t042434338._2
155+ let assetUrl = $t042434338._3
156+ let dataKeyPrefix = $t042434338._4
157157 (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
158158 }
159159 }
217217 then throw("This can only be triggering internally")
218218 else {
219219 let transactionId = toBase58String(i.transactionId)
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
220+ let $t062196324 = claimSquare(x, y, "1", desinationAddress, transactionId)
221+ let asset = $t062196324._1
222+ let assetId = $t062196324._2
223+ let assetUrl = $t062196324._3
224+ let dataKeyPrefix = $t062196324._4
225225 let assetIdStr = toBase58String(assetId)
226226 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
227227 }
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,ownerId,coordsToBurn) = {
146+func evolve (x,y,gen,ownerId) = {
147147 let callerId = toBase58String(i.caller.bytes)
148148 if ((callerId != holdings))
149149 then throw("This can only be triggering internally")
150150 else {
151151 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
152+ let $t042434338 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042434338._1
154+ let assetId = $t042434338._2
155+ let assetUrl = $t042434338._3
156+ let dataKeyPrefix = $t042434338._4
157157 (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
158158 }
159159 }
160160
161161
162162
163163 @Callable(i)
164164 func putForSale (assetId,amount) = {
165165 let callerId = toBase58String(i.caller.bytes)
166166 let assetData = match assetInfo(fromBase58String(assetId)) {
167167 case ass: Asset =>
168168 ass
169169 case _ =>
170170 throw("Asset not found")
171171 }
172172 let dataPrefix = getDataKeyPrefixFromAssetName(assetData.name)
173173 let ownerId = match getString(this, (dataPrefix + "_owner")) {
174174 case s: String =>
175175 s
176176 case _ =>
177177 throw("Owner not found in data")
178178 }
179179 if ((minForSaleWavlets > amount))
180180 then throw("Amount needs to be more than 1 wave")
181181 else if (if ((callerId != ownerId))
182182 then (callerId != holdings)
183183 else false)
184184 then throw("You are not able to put this asset up for sale")
185185 else {
186186 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [callerId, assetId, amount], [AttachedPayment(unit, 0)])
187187 if ((res == res))
188188 then [ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
189189 else throw("Strict value is not equal to itself.")
190190 }
191191 }
192192
193193
194194
195195 @Callable(i)
196196 func finalizeSale (assetId,ownerId,userText) = {
197197 let callerId = toBase58String(i.caller.bytes)
198198 if ((callerId != holdings))
199199 then throw("This can only be triggering internally")
200200 else {
201201 let prefix = match assetInfo(fromBase58String(assetId)) {
202202 case asset: Asset =>
203203 asset.name
204204 case _ =>
205205 throw("Can't find asset")
206206 }
207207 [StringEntry((prefix + "_owner"), ownerId), StringEntry((ownerId + "_handle"), userText)]
208208 }
209209 }
210210
211211
212212
213213 @Callable(i)
214214 func adminPromotionPurchase (x,y,desinationAddress) = {
215215 let callerId = toBase58String(i.caller.bytes)
216216 if ((callerId != holdings))
217217 then throw("This can only be triggering internally")
218218 else {
219219 let transactionId = toBase58String(i.transactionId)
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
220+ let $t062196324 = claimSquare(x, y, "1", desinationAddress, transactionId)
221+ let asset = $t062196324._1
222+ let assetId = $t062196324._2
223+ let assetUrl = $t062196324._3
224+ let dataKeyPrefix = $t062196324._4
225225 let assetIdStr = toBase58String(assetId)
226226 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
227227 }
228228 }
229229
230230
231231
232232 @Callable(i)
233233 func adminSetHandle (ownerId,handle) = {
234234 let callerId = toBase58String(i.caller.bytes)
235235 if ((callerId != holdings))
236236 then throw("This can only be triggering internally")
237237 else [StringEntry((ownerId + "_handle"), handle)]
238238 }
239239
240240
241241 @Verifier(tx)
242242 func verify () = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
243243 then true
244244 else (addressFromPublicKey(tx.senderPublicKey) == holdingsAddress))
245245 then true
246246 else (addressFromPublicKey(tx.senderPublicKey) == dappAddress)
247247

github/deemru/w8io/169f3d6 
54.58 ms