tx · 6vbnn12hkNxs8gd6kmdt7eiR3QS9zu9JtT8FiQ4cBoJf

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.14 04:53 [1877990] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "6vbnn12hkNxs8gd6kmdt7eiR3QS9zu9JtT8FiQ4cBoJf", "fee": 4000000, "feeAssetId": null, "timestamp": 1642125250844, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "4y9qLZs518PoTHmQjyLmdFu6LQtKQSRRmpN3XpBYiZgKbmQiDzf1T8Tn4mioNPW1ZSrfz9aapaEQCdEW1FF1NxQ7" ], "script": "base64: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", "height": 1877990, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EnvJ8yPgKchVFqHeu83hG6pq3jZdTXQZJy3mJGv47KPq Next: DYCjixxGUCw7BQgP9CsdYiE6rB7XyWiRbnaWJBBp5VZt Diff:
OldNewDifferences
210210 }
211211
212212
213+
214+@Callable(i)
215+func finalizeSale (assetId,ownerId) = {
216+ let assetData = match assetInfo(fromBase58String(assetId)) {
217+ case ass: Asset =>
218+ ass
219+ case _ =>
220+ throw("Asset not found")
221+ }
222+ let assetName = assetData.name
223+ let xPart = split(assetName, ",")
224+ let restPart = split(xPart[1], " ")
225+ let x = match xPart[0] {
226+ case s: String =>
227+ valueOrErrorMessage(parseInt(s), "Could not parse 'x'")
228+ case _ =>
229+ throw("'x' not found")
230+ }
231+ let y = match restPart[0] {
232+ case s: String =>
233+ valueOrErrorMessage(parseInt(s), "Could not parse 'y'")
234+ case _ =>
235+ throw("'y' not found")
236+ }
237+ let gen = match restPart[2] {
238+ case s: String =>
239+ valueOrErrorMessage(parseInt(s), "Could not parse 'gen'")
240+ case _ =>
241+ throw("'gen' not found")
242+ }
243+ let xStr = toString(x)
244+ let yStr = toString(y)
245+ let genStr = toString(gen)
246+ let $t065926655 = getXy($Tuple3(x, y, gen), ownerId)
247+ let parsedX = $t065926655._1
248+ let parsedY = $t065926655._2
249+ let parsedGen = $t065926655._3
250+ let returnList = nil
251+ if ((parsedGen == gen))
252+ then {
253+ let dataKey = ((((xStr + ",") + yStr) + ",") + genStr)
254+ $Tuple2([StringEntry((dataKey + "_owner"), ownerId), StringEntry((("sale_" + assetId) + "_originalOwner"), ""), IntegerEntry((("sale_" + assetId) + "_amount"), 0)], dataKey)
255+ }
256+ else {
257+ let transactionId = toBase58String(i.transactionId)
258+ let $t070397142 = claimSquare(xStr, yStr, ownerId, transactionId)
259+ let asset = $t070397142._1
260+ let evolvedAssetId = $t070397142._2
261+ let assetUrl = $t070397142._3
262+ let dataKeyPrefix = $t070397142._4
263+ let dataKey = dataKeyPrefix
264+ $Tuple2([asset, StringEntry((dataKey + "_assetId"), toBase58String(evolvedAssetId)), StringEntry((dataKey + "_asset"), assetUrl), StringEntry((dataKey + "_owner"), ownerId), StringEntry(transactionId, dataKey), ScriptTransfer(Address(fromBase58String(ownerId)), 1, fromBase58String(assetId))], dataKey)
265+ }
266+ }
267+
268+
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 DEBUG = true
1111
1212 let holdingsPublicKey = base58'GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY'
1313
1414 let holdingsAddress = addressFromPublicKey(holdingsPublicKey)
1515
1616 func getBoundCoords (data) = {
1717 let $t0361383 = data
1818 let x = $t0361383._1
1919 let y = $t0361383._2
2020 let gen = $t0361383._3
2121 let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
2222 let tl = $Tuple2((x - d), (y - d))
2323 let tc = $Tuple2(x, (y - d))
2424 let tr = $Tuple2((x + d), (y + d))
2525 let l = $Tuple2((x - d), y)
2626 let r = $Tuple2((x + d), y)
2727 let bl = $Tuple2((x - d), (y + d))
2828 let bc = $Tuple2(x, (y + d))
2929 let br = $Tuple2((x + d), (y + d))
3030 [$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
3131 }
3232
3333
3434 func checkSquareForEvolve (coords,gen,ownerId) = {
3535 let $t0816844 = coords
3636 let xy1 = $t0816844._1
3737 let xy2 = $t0816844._2
3838 let xy3 = $t0816844._3
3939 let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
4040 let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
4141 let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
4242 let xyVal1 = match getString(this, xy1Key) {
4343 case _: Unit =>
4444 "unset"
4545 case x: String =>
4646 x
4747 case _ =>
4848 throw("Match error")
4949 }
5050 let xyVal2 = match getString(this, xy2Key) {
5151 case _: Unit =>
5252 "unset"
5353 case x: String =>
5454 x
5555 case _ =>
5656 throw("Match error")
5757 }
5858 let xyVal3 = match getString(this, xy3Key) {
5959 case _: Unit =>
6060 "unset"
6161 case x: String =>
6262 x
6363 case _ =>
6464 throw("Match error")
6565 }
6666 if (if ((xyVal1 == ownerId))
6767 then (xyVal2 == ownerId)
6868 else false)
6969 then (xyVal3 == ownerId)
7070 else false
7171 }
7272
7373
7474 func getXyReturn (xy,gen) = {
7575 let $t015201535 = xy
7676 let x = $t015201535._1
7777 let y = $t015201535._2
7878 $Tuple3(x, y, (gen + 1))
7979 }
8080
8181
8282 func getXy (xyg,ownerId) = {
8383 let checkList = getBoundCoords(xyg)
8484 let $t016511672 = xyg
8585 let x = $t016511672._1
8686 let y = $t016511672._2
8787 let gen = $t016511672._3
8888 let genStr = toString(gen)
8989 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
9090 then getXyReturn(checkList[0]._1, gen)
9191 else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
9292 then getXyReturn(checkList[1]._1, gen)
9393 else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
9494 then getXyReturn(checkList[2]._1, gen)
9595 else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
9696 then getXyReturn(checkList[3]._1, gen)
9797 else xyg
9898 }
9999
100100
101101 func checkForEvolve (xyg,ownerId) = {
102102 let $t023192340 = xyg
103103 let x = $t023192340._1
104104 let y = $t023192340._2
105105 let gen = $t023192340._3
106106 let p1 = getXy(xyg, ownerId)
107107 if ((p1._3 == gen))
108108 then p1
109109 else {
110110 let p2 = getXy(p1, ownerId)
111111 if ((p2._3 == p1._3))
112112 then p2
113113 else {
114114 let p3 = getXy(p2, ownerId)
115115 if ((p3._3 == p2._3))
116116 then p3
117117 else {
118118 let p4 = getXy(p3, ownerId)
119119 if ((p4._3 == p3._3))
120120 then p4
121121 else {
122122 let p5 = getXy(p4, ownerId)
123123 if ((p5._3 == p4._3))
124124 then p5
125125 else {
126126 let p6 = getXy(p5, ownerId)
127127 if ((p6._3 == p5._3))
128128 then p6
129129 else {
130130 let p7 = getXy(p6, ownerId)
131131 if ((p7._3 == p6._3))
132132 then p7
133133 else {
134134 let p8 = getXy(p7, ownerId)
135135 if ((p8._3 == p7._3))
136136 then p8
137137 else {
138138 let p9 = getXy(p8, ownerId)
139139 if ((p9._3 == p8._3))
140140 then p9
141141 else getXy(getXy(p9, ownerId), ownerId)
142142 }
143143 }
144144 }
145145 }
146146 }
147147 }
148148 }
149149 }
150150 }
151151
152152
153153 func claimSquare (x,y,ownerId,transactionId) = {
154154 let $t033933490 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
155155 let resolvedX = $t033933490._1
156156 let resolvedY = $t033933490._2
157157 let resolvedGen = $t033933490._3
158158 let resolvedXStr = toString(resolvedX)
159159 let resolvedYStr = toString(resolvedY)
160160 let resolvedGenStr = toString(resolvedGen)
161161 let assetName = ((resolvedXStr + ",") + resolvedYStr)
162162 let assetUrl = ((nftDomain + transactionId) + ".png")
163163 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
164164 let assetId = calculateAssetId(asset)
165165 let gen = resolvedGenStr
166166 let dataKeyPrefix = ((assetName + ",") + gen)
167167 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
168168 }
169169
170170
171171 @Callable(i)
172172 func purchase (x,y) = {
173173 let ownerId = toBase58String(i.caller.bytes)
174174 let transactionId = toBase58String(i.transactionId)
175175 let $t041234213 = claimSquare(x, y, ownerId, transactionId)
176176 let asset = $t041234213._1
177177 let assetId = $t041234213._2
178178 let assetUrl = $t041234213._3
179179 let dataKeyPrefix = $t041234213._4
180180 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
181181 }
182182
183183
184184
185185 @Callable(i)
186186 func autoBuy (x,y) = {
187187 let ownerId = toBase58String(holdingsAddress.bytes)
188188 let transactionId = toBase58String(i.transactionId)
189189 let $t046624752 = claimSquare(x, y, ownerId, transactionId)
190190 let asset = $t046624752._1
191191 let assetId = $t046624752._2
192192 let assetUrl = $t046624752._3
193193 let dataKeyPrefix = $t046624752._4
194194 let assetIdStr = toBase58String(assetId)
195195 let res = invoke(holdingsAddress, "addOwnerAndAmount", [ownerId, assetIdStr, "2"], [AttachedPayment(unit, 1000000)])
196196 if ((res == res))
197197 then [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry((("sale_" + assetIdStr) + "_originalOwner"), ownerId), IntegerEntry((("sale_" + assetIdStr) + "_amount"), 2), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)]
198198 else throw("Strict value is not equal to itself.")
199199 }
200200
201201
202202
203203 @Callable(i)
204204 func putForSale (assetId,amount) = {
205205 let ownerId = toBase58String(i.caller.bytes)
206206 let res = invoke(holdingsAddress, "addOwnerAndAmount", [ownerId, assetId, amount], [AttachedPayment(unit, 1000000)])
207207 if ((res == res))
208208 then [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), StringEntry((("sale_" + assetId) + "_amount"), amount), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
209209 else throw("Strict value is not equal to itself.")
210210 }
211211
212212
213+
214+@Callable(i)
215+func finalizeSale (assetId,ownerId) = {
216+ let assetData = match assetInfo(fromBase58String(assetId)) {
217+ case ass: Asset =>
218+ ass
219+ case _ =>
220+ throw("Asset not found")
221+ }
222+ let assetName = assetData.name
223+ let xPart = split(assetName, ",")
224+ let restPart = split(xPart[1], " ")
225+ let x = match xPart[0] {
226+ case s: String =>
227+ valueOrErrorMessage(parseInt(s), "Could not parse 'x'")
228+ case _ =>
229+ throw("'x' not found")
230+ }
231+ let y = match restPart[0] {
232+ case s: String =>
233+ valueOrErrorMessage(parseInt(s), "Could not parse 'y'")
234+ case _ =>
235+ throw("'y' not found")
236+ }
237+ let gen = match restPart[2] {
238+ case s: String =>
239+ valueOrErrorMessage(parseInt(s), "Could not parse 'gen'")
240+ case _ =>
241+ throw("'gen' not found")
242+ }
243+ let xStr = toString(x)
244+ let yStr = toString(y)
245+ let genStr = toString(gen)
246+ let $t065926655 = getXy($Tuple3(x, y, gen), ownerId)
247+ let parsedX = $t065926655._1
248+ let parsedY = $t065926655._2
249+ let parsedGen = $t065926655._3
250+ let returnList = nil
251+ if ((parsedGen == gen))
252+ then {
253+ let dataKey = ((((xStr + ",") + yStr) + ",") + genStr)
254+ $Tuple2([StringEntry((dataKey + "_owner"), ownerId), StringEntry((("sale_" + assetId) + "_originalOwner"), ""), IntegerEntry((("sale_" + assetId) + "_amount"), 0)], dataKey)
255+ }
256+ else {
257+ let transactionId = toBase58String(i.transactionId)
258+ let $t070397142 = claimSquare(xStr, yStr, ownerId, transactionId)
259+ let asset = $t070397142._1
260+ let evolvedAssetId = $t070397142._2
261+ let assetUrl = $t070397142._3
262+ let dataKeyPrefix = $t070397142._4
263+ let dataKey = dataKeyPrefix
264+ $Tuple2([asset, StringEntry((dataKey + "_assetId"), toBase58String(evolvedAssetId)), StringEntry((dataKey + "_asset"), assetUrl), StringEntry((dataKey + "_owner"), ownerId), StringEntry(transactionId, dataKey), ScriptTransfer(Address(fromBase58String(ownerId)), 1, fromBase58String(assetId))], dataKey)
265+ }
266+ }
267+
268+

github/deemru/w8io/873ac7e 
43.08 ms