tx · BJC4theM3hAYHyWrjKzsxY4FegcvVbR2Sf1JhJAdY6DN

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.02.07 18:30 [1913402] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "BJC4theM3hAYHyWrjKzsxY4FegcvVbR2Sf1JhJAdY6DN", "fee": 4000000, "feeAssetId": null, "timestamp": 1644247873418, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "uJziKNSMF9XtgsbkCdKCode2XqoYkY1ANH2ZUeqb75n7AaSLEZCMeeLZdRjwmB4ePN8xitjLJ9rghUgz9dmquP1" ], "script": "base64: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", "height": 1913402, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7qJp3WyVgVZdEfHhZC1hn4GDxPC5MSMXi1RW9LXzwMz5 Next: 3fzMGkTAHqg6M82m3hvUxZtr6YXdgBfr5c3a7zmerSjS Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let COLS = 1024
5-
6-let ROWS = 1024
7-
84 let nftDomain = "https://nft.gridgang.io/"
9-
10-let DEBUG = true
115
126 let holdings = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
137
148 let holdingsAddress = Address(fromBase58String(holdings))
15-
16-func getBoundCoords (data) = {
17- let $t0333355 = data
18- let x = $t0333355._1
19- let y = $t0333355._2
20- let gen = $t0333355._3
21- let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
22- let tl = $Tuple2((x - d), (y - d))
23- let tc = $Tuple2(x, (y - d))
24- let tr = $Tuple2((x + d), (y + d))
25- let l = $Tuple2((x - d), y)
26- let r = $Tuple2((x + d), y)
27- let bl = $Tuple2((x - d), (y + d))
28- let bc = $Tuple2(x, (y + d))
29- let br = $Tuple2((x + d), (y + d))
30-[$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
31- }
32-
33-
34-func checkSquareForEvolve (coords,gen,ownerId) = {
35- let $t0788816 = coords
36- let xy1 = $t0788816._1
37- let xy2 = $t0788816._2
38- let xy3 = $t0788816._3
39- let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
40- let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
41- let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
42- let xyVal1 = match getString(this, xy1Key) {
43- case _: Unit =>
44- "unset"
45- case x: String =>
46- x
47- case _ =>
48- throw("Match error")
49- }
50- let xyVal2 = match getString(this, xy2Key) {
51- case _: Unit =>
52- "unset"
53- case x: String =>
54- x
55- case _ =>
56- throw("Match error")
57- }
58- let xyVal3 = match getString(this, xy3Key) {
59- case _: Unit =>
60- "unset"
61- case x: String =>
62- x
63- case _ =>
64- throw("Match error")
65- }
66- if (if ((xyVal1 == ownerId))
67- then (xyVal2 == ownerId)
68- else false)
69- then (xyVal3 == ownerId)
70- else false
71- }
72-
73-
74-func getXyReturn (xy,gen) = {
75- let $t014921507 = xy
76- let x = $t014921507._1
77- let y = $t014921507._2
78- $Tuple3(x, y, (gen + 1))
79- }
80-
81-
82-func getXy (xyg,ownerId) = {
83- let checkList = getBoundCoords(xyg)
84- let $t016231644 = xyg
85- let x = $t016231644._1
86- let y = $t016231644._2
87- let gen = $t016231644._3
88- let genStr = toString(gen)
89- if (checkSquareForEvolve(checkList[0], genStr, ownerId))
90- then getXyReturn(checkList[0]._1, gen)
91- else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
92- then getXyReturn(checkList[1]._1, gen)
93- else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
94- then getXyReturn(checkList[2]._1, gen)
95- else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
96- then getXyReturn(checkList[3]._1, gen)
97- else xyg
98- }
99-
100-
101-func checkForEvolve (xyg,ownerId) = {
102- let $t022912312 = xyg
103- let x = $t022912312._1
104- let y = $t022912312._2
105- let gen = $t022912312._3
106- let p1 = getXy(xyg, ownerId)
107- if ((p1._3 == gen))
108- then p1
109- else {
110- let p2 = getXy(p1, ownerId)
111- if ((p2._3 == p1._3))
112- then p2
113- else {
114- let p3 = getXy(p2, ownerId)
115- if ((p3._3 == p2._3))
116- then p3
117- else {
118- let p4 = getXy(p3, ownerId)
119- if ((p4._3 == p3._3))
120- then p4
121- else {
122- let p5 = getXy(p4, ownerId)
123- if ((p5._3 == p4._3))
124- then p5
125- else {
126- let p6 = getXy(p5, ownerId)
127- if ((p6._3 == p5._3))
128- then p6
129- else {
130- let p7 = getXy(p6, ownerId)
131- if ((p7._3 == p6._3))
132- then p7
133- else {
134- let p8 = getXy(p7, ownerId)
135- if ((p8._3 == p7._3))
136- then p8
137- else {
138- let p9 = getXy(p8, ownerId)
139- if ((p9._3 == p8._3))
140- then p9
141- else getXy(getXy(p9, ownerId), ownerId)
142- }
143- }
144- }
145- }
146- }
147- }
148- }
149- }
150- }
151-
1529
15310 func claimSquare (x,y,gen,ownerId,transactionId) = {
15411 let resolvedXStr = x
16724 func purchase (x,y) = {
16825 let ownerId = toBase58String(i.caller.bytes)
16926 let transactionId = toBase58String(i.transactionId)
170- let $t041654260 = claimSquare(x, y, "1", ownerId, transactionId)
171- let asset = $t041654260._1
172- let assetId = $t041654260._2
173- let assetUrl = $t041654260._3
174- let dataKeyPrefix = $t041654260._4
27+ let $t09311026 = claimSquare(x, y, "1", ownerId, transactionId)
28+ let asset = $t09311026._1
29+ let assetId = $t09311026._2
30+ let assetUrl = $t09311026._3
31+ let dataKeyPrefix = $t09311026._4
17532 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
17633 }
17734
18037 @Callable(i)
18138 func autoBuy (x,y) = {
18239 let transactionId = toBase58String(i.transactionId)
183- let $t047114807 = claimSquare(x, y, "1", holdings, transactionId)
184- let asset = $t047114807._1
185- let assetId = $t047114807._2
186- let assetUrl = $t047114807._3
187- let dataKeyPrefix = $t047114807._4
40+ let $t014771573 = claimSquare(x, y, "1", holdings, transactionId)
41+ let asset = $t014771573._1
42+ let assetId = $t014771573._2
43+ let assetUrl = $t014771573._3
44+ let dataKeyPrefix = $t014771573._4
18845 let assetIdStr = toBase58String(assetId)
18946 let res = invoke(holdingsAddress, "addOwnerAndAmount", [holdings, assetIdStr, "2"], [AttachedPayment(unit, 0)])
19047 if ((res == res))
19754 @Callable(i)
19855 func evolve (x,y,gen,ownerId) = {
19956 let transactionId = toBase58String(i.transactionId)
200- let $t055335628 = claimSquare(x, y, gen, ownerId, transactionId)
201- let asset = $t055335628._1
202- let assetId = $t055335628._2
203- let assetUrl = $t055335628._3
204- let dataKeyPrefix = $t055335628._4
57+ let $t022992394 = claimSquare(x, y, gen, ownerId, transactionId)
58+ let asset = $t022992394._1
59+ let assetId = $t022992394._2
60+ let assetUrl = $t022992394._3
61+ let dataKeyPrefix = $t022992394._4
20562 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)]
20663 }
20764
250107 let xStr = toString(x)
251108 let yStr = toString(y)
252109 let genStr = toString(gen)
253- let $t072077270 = getXy($Tuple3(x, y, gen), ownerId)
254- let parsedX = $t072077270._1
255- let parsedY = $t072077270._2
256- let parsedGen = $t072077270._3
110+ let $t039734020 = $Tuple3(x, y, gen)
111+ let parsedX = $t039734020._1
112+ let parsedY = $t039734020._2
113+ let parsedGen = $t039734020._3
257114 let returnList = nil
258115 if ((parsedGen == gen))
259116 then {
262119 }
263120 else {
264121 let transactionId = toBase58String(i.transactionId)
265- let $t076537764 = claimSquare(xStr, yStr, genStr, ownerId, transactionId)
266- let asset = $t076537764._1
267- let evolvedAssetId = $t076537764._2
268- let assetUrl = $t076537764._3
269- let dataKeyPrefix = $t076537764._4
122+ let $t044034514 = claimSquare(xStr, yStr, genStr, ownerId, transactionId)
123+ let asset = $t044034514._1
124+ let evolvedAssetId = $t044034514._2
125+ let assetUrl = $t044034514._3
126+ let dataKeyPrefix = $t044034514._4
270127 let dataKey = dataKeyPrefix
271128 $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)
272129 }
273130 }
274131
275132
133+@Verifier(tx)
134+func verify () = true
135+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let COLS = 1024
5-
6-let ROWS = 1024
7-
84 let nftDomain = "https://nft.gridgang.io/"
9-
10-let DEBUG = true
115
126 let holdings = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
137
148 let holdingsAddress = Address(fromBase58String(holdings))
15-
16-func getBoundCoords (data) = {
17- let $t0333355 = data
18- let x = $t0333355._1
19- let y = $t0333355._2
20- let gen = $t0333355._3
21- let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
22- let tl = $Tuple2((x - d), (y - d))
23- let tc = $Tuple2(x, (y - d))
24- let tr = $Tuple2((x + d), (y + d))
25- let l = $Tuple2((x - d), y)
26- let r = $Tuple2((x + d), y)
27- let bl = $Tuple2((x - d), (y + d))
28- let bc = $Tuple2(x, (y + d))
29- let br = $Tuple2((x + d), (y + d))
30-[$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
31- }
32-
33-
34-func checkSquareForEvolve (coords,gen,ownerId) = {
35- let $t0788816 = coords
36- let xy1 = $t0788816._1
37- let xy2 = $t0788816._2
38- let xy3 = $t0788816._3
39- let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
40- let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
41- let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
42- let xyVal1 = match getString(this, xy1Key) {
43- case _: Unit =>
44- "unset"
45- case x: String =>
46- x
47- case _ =>
48- throw("Match error")
49- }
50- let xyVal2 = match getString(this, xy2Key) {
51- case _: Unit =>
52- "unset"
53- case x: String =>
54- x
55- case _ =>
56- throw("Match error")
57- }
58- let xyVal3 = match getString(this, xy3Key) {
59- case _: Unit =>
60- "unset"
61- case x: String =>
62- x
63- case _ =>
64- throw("Match error")
65- }
66- if (if ((xyVal1 == ownerId))
67- then (xyVal2 == ownerId)
68- else false)
69- then (xyVal3 == ownerId)
70- else false
71- }
72-
73-
74-func getXyReturn (xy,gen) = {
75- let $t014921507 = xy
76- let x = $t014921507._1
77- let y = $t014921507._2
78- $Tuple3(x, y, (gen + 1))
79- }
80-
81-
82-func getXy (xyg,ownerId) = {
83- let checkList = getBoundCoords(xyg)
84- let $t016231644 = xyg
85- let x = $t016231644._1
86- let y = $t016231644._2
87- let gen = $t016231644._3
88- let genStr = toString(gen)
89- if (checkSquareForEvolve(checkList[0], genStr, ownerId))
90- then getXyReturn(checkList[0]._1, gen)
91- else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
92- then getXyReturn(checkList[1]._1, gen)
93- else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
94- then getXyReturn(checkList[2]._1, gen)
95- else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
96- then getXyReturn(checkList[3]._1, gen)
97- else xyg
98- }
99-
100-
101-func checkForEvolve (xyg,ownerId) = {
102- let $t022912312 = xyg
103- let x = $t022912312._1
104- let y = $t022912312._2
105- let gen = $t022912312._3
106- let p1 = getXy(xyg, ownerId)
107- if ((p1._3 == gen))
108- then p1
109- else {
110- let p2 = getXy(p1, ownerId)
111- if ((p2._3 == p1._3))
112- then p2
113- else {
114- let p3 = getXy(p2, ownerId)
115- if ((p3._3 == p2._3))
116- then p3
117- else {
118- let p4 = getXy(p3, ownerId)
119- if ((p4._3 == p3._3))
120- then p4
121- else {
122- let p5 = getXy(p4, ownerId)
123- if ((p5._3 == p4._3))
124- then p5
125- else {
126- let p6 = getXy(p5, ownerId)
127- if ((p6._3 == p5._3))
128- then p6
129- else {
130- let p7 = getXy(p6, ownerId)
131- if ((p7._3 == p6._3))
132- then p7
133- else {
134- let p8 = getXy(p7, ownerId)
135- if ((p8._3 == p7._3))
136- then p8
137- else {
138- let p9 = getXy(p8, ownerId)
139- if ((p9._3 == p8._3))
140- then p9
141- else getXy(getXy(p9, ownerId), ownerId)
142- }
143- }
144- }
145- }
146- }
147- }
148- }
149- }
150- }
151-
1529
15310 func claimSquare (x,y,gen,ownerId,transactionId) = {
15411 let resolvedXStr = x
15512 let resolvedYStr = y
15613 let resolvedGenStr = gen
15714 let assetName = ((resolvedXStr + ",") + resolvedYStr)
15815 let assetUrl = ((nftDomain + transactionId) + ".png")
15916 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
16017 let assetId = calculateAssetId(asset)
16118 let dataKeyPrefix = ((assetName + ",") + gen)
16219 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
16320 }
16421
16522
16623 @Callable(i)
16724 func purchase (x,y) = {
16825 let ownerId = toBase58String(i.caller.bytes)
16926 let transactionId = toBase58String(i.transactionId)
170- let $t041654260 = claimSquare(x, y, "1", ownerId, transactionId)
171- let asset = $t041654260._1
172- let assetId = $t041654260._2
173- let assetUrl = $t041654260._3
174- let dataKeyPrefix = $t041654260._4
27+ let $t09311026 = claimSquare(x, y, "1", ownerId, transactionId)
28+ let asset = $t09311026._1
29+ let assetId = $t09311026._2
30+ let assetUrl = $t09311026._3
31+ let dataKeyPrefix = $t09311026._4
17532 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
17633 }
17734
17835
17936
18037 @Callable(i)
18138 func autoBuy (x,y) = {
18239 let transactionId = toBase58String(i.transactionId)
183- let $t047114807 = claimSquare(x, y, "1", holdings, transactionId)
184- let asset = $t047114807._1
185- let assetId = $t047114807._2
186- let assetUrl = $t047114807._3
187- let dataKeyPrefix = $t047114807._4
40+ let $t014771573 = claimSquare(x, y, "1", holdings, transactionId)
41+ let asset = $t014771573._1
42+ let assetId = $t014771573._2
43+ let assetUrl = $t014771573._3
44+ let dataKeyPrefix = $t014771573._4
18845 let assetIdStr = toBase58String(assetId)
18946 let res = invoke(holdingsAddress, "addOwnerAndAmount", [holdings, assetIdStr, "2"], [AttachedPayment(unit, 0)])
19047 if ((res == res))
19148 then [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), holdings), StringEntry((("sale_" + assetIdStr) + "_originalOwner"), holdings), IntegerEntry((("sale_" + assetIdStr) + "_amount"), 2), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)]
19249 else throw("Strict value is not equal to itself.")
19350 }
19451
19552
19653
19754 @Callable(i)
19855 func evolve (x,y,gen,ownerId) = {
19956 let transactionId = toBase58String(i.transactionId)
200- let $t055335628 = claimSquare(x, y, gen, ownerId, transactionId)
201- let asset = $t055335628._1
202- let assetId = $t055335628._2
203- let assetUrl = $t055335628._3
204- let dataKeyPrefix = $t055335628._4
57+ let $t022992394 = claimSquare(x, y, gen, ownerId, transactionId)
58+ let asset = $t022992394._1
59+ let assetId = $t022992394._2
60+ let assetUrl = $t022992394._3
61+ let dataKeyPrefix = $t022992394._4
20562 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)]
20663 }
20764
20865
20966
21067 @Callable(i)
21168 func putForSale (assetId,amount) = {
21269 let ownerId = toBase58String(i.caller.bytes)
21370 let res = invoke(holdingsAddress, "addOwnerAndAmount", [ownerId, assetId, amount], [AttachedPayment(unit, 0)])
21471 if ((res == res))
21572 then [StringEntry((("sale_" + assetId) + "_originalOwner"), ownerId), StringEntry((("sale_" + assetId) + "_amount"), amount), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
21673 else throw("Strict value is not equal to itself.")
21774 }
21875
21976
22077
22178 @Callable(i)
22279 func finalizeSale (assetId,ownerId) = {
22380 let assetData = match assetInfo(fromBase58String(assetId)) {
22481 case ass: Asset =>
22582 ass
22683 case _ =>
22784 throw("Asset not found")
22885 }
22986 let assetName = assetData.name
23087 let xPart = split(assetName, ",")
23188 let restPart = split(xPart[1], " ")
23289 let x = match xPart[0] {
23390 case s: String =>
23491 valueOrErrorMessage(parseInt(s), "Could not parse 'x'")
23592 case _ =>
23693 throw("'x' not found")
23794 }
23895 let y = match restPart[0] {
23996 case s: String =>
24097 valueOrErrorMessage(parseInt(s), "Could not parse 'y'")
24198 case _ =>
24299 throw("'y' not found")
243100 }
244101 let gen = match restPart[2] {
245102 case s: String =>
246103 valueOrErrorMessage(parseInt(s), "Could not parse 'gen'")
247104 case _ =>
248105 throw("'gen' not found")
249106 }
250107 let xStr = toString(x)
251108 let yStr = toString(y)
252109 let genStr = toString(gen)
253- let $t072077270 = getXy($Tuple3(x, y, gen), ownerId)
254- let parsedX = $t072077270._1
255- let parsedY = $t072077270._2
256- let parsedGen = $t072077270._3
110+ let $t039734020 = $Tuple3(x, y, gen)
111+ let parsedX = $t039734020._1
112+ let parsedY = $t039734020._2
113+ let parsedGen = $t039734020._3
257114 let returnList = nil
258115 if ((parsedGen == gen))
259116 then {
260117 let dataKey = ((((xStr + ",") + yStr) + ",") + genStr)
261118 $Tuple2([StringEntry((dataKey + "_owner"), ownerId), StringEntry((("sale_" + assetId) + "_originalOwner"), ""), IntegerEntry((("sale_" + assetId) + "_amount"), 0)], dataKey)
262119 }
263120 else {
264121 let transactionId = toBase58String(i.transactionId)
265- let $t076537764 = claimSquare(xStr, yStr, genStr, ownerId, transactionId)
266- let asset = $t076537764._1
267- let evolvedAssetId = $t076537764._2
268- let assetUrl = $t076537764._3
269- let dataKeyPrefix = $t076537764._4
122+ let $t044034514 = claimSquare(xStr, yStr, genStr, ownerId, transactionId)
123+ let asset = $t044034514._1
124+ let evolvedAssetId = $t044034514._2
125+ let assetUrl = $t044034514._3
126+ let dataKeyPrefix = $t044034514._4
270127 let dataKey = dataKeyPrefix
271128 $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)
272129 }
273130 }
274131
275132
133+@Verifier(tx)
134+func verify () = true
135+

github/deemru/w8io/873ac7e 
84.32 ms