tx · 2m4E7JxJLbRcTg3Sx5XjLFTDj3ur1KCZ94YGKUGru1Mo

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.05 19:29 [1865831] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "2m4E7JxJLbRcTg3Sx5XjLFTDj3ur1KCZ94YGKUGru1Mo", "fee": 4000000, "feeAssetId": null, "timestamp": 1641400196292, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "5TbYh5yxVtpxKZmVygnMSS1jEHbt9PsVQvGDbEc4qRUYanqiBt3yZ4VB8UWibKEzGMKkxNPWN5y31PqEYzJQon6H" ], "script": "base64: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", "height": 1865831, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Hi7gQkbukMTFi34UPe4PRNTCAhERKwXmYNaqQRa4wPve Next: BdWj9xW928u4dyW6BjAqf9w1KKNg6vw6AbaPSAa96tKp Diff:
OldNewDifferences
99
1010 let DEBUG = true
1111
12+let holdingsPublicKey = toBytes("GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY")
13+
1214 func getBoundCoords (data) = {
13- let $t0222244 = data
14- let x = $t0222244._1
15- let y = $t0222244._2
16- let gen = $t0222244._3
15+ let $t0302324 = data
16+ let x = $t0302324._1
17+ let y = $t0302324._2
18+ let gen = $t0302324._3
1719 let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
1820 let tl = $Tuple2((x - d), (y - d))
1921 let tc = $Tuple2(x, (y - d))
2830
2931
3032 func checkSquareForEvolve (coords,gen,ownerId) = {
31- let $t0677705 = coords
32- let xy1 = $t0677705._1
33- let xy2 = $t0677705._2
34- let xy3 = $t0677705._3
33+ let $t0757785 = coords
34+ let xy1 = $t0757785._1
35+ let xy2 = $t0757785._2
36+ let xy3 = $t0757785._3
3537 let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
3638 let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
3739 let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
6870
6971
7072 func getXyReturn (xy,gen) = {
71- let $t013811396 = xy
72- let x = $t013811396._1
73- let y = $t013811396._2
73+ let $t014611476 = xy
74+ let x = $t014611476._1
75+ let y = $t014611476._2
7476 $Tuple3(x, y, (gen + 1))
7577 }
7678
7779
7880 func getXy (xyg,ownerId) = {
7981 let checkList = getBoundCoords(xyg)
80- let $t015121533 = xyg
81- let x = $t015121533._1
82- let y = $t015121533._2
83- let gen = $t015121533._3
82+ let $t015921613 = xyg
83+ let x = $t015921613._1
84+ let y = $t015921613._2
85+ let gen = $t015921613._3
8486 let genStr = toString(gen)
8587 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8688 then getXyReturn(checkList[0]._1, gen)
9597
9698
9799 func checkForEvolve (xyg,ownerId) = {
98- let $t021802201 = xyg
99- let x = $t021802201._1
100- let y = $t021802201._2
101- let gen = $t021802201._3
100+ let $t022602281 = xyg
101+ let x = $t022602281._1
102+ let y = $t022602281._2
103+ let gen = $t022602281._3
102104 let p1 = getXy(xyg, ownerId)
103105 if ((p1._3 == gen))
104106 then p1
147149
148150
149151 func claimSquare (x,y,ownerId,transactionId) = {
150- let $t032543351 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
151- let resolvedX = $t032543351._1
152- let resolvedY = $t032543351._2
153- let resolvedGen = $t032543351._3
152+ let $t033343431 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
153+ let resolvedX = $t033343431._1
154+ let resolvedY = $t033343431._2
155+ let resolvedGen = $t033343431._3
154156 let resolvedXStr = toString(resolvedX)
155157 let resolvedYStr = toString(resolvedY)
156158 let resolvedGenStr = toString(resolvedGen)
168170 func purchase (x,y) = {
169171 let ownerId = toBase58String(i.caller.bytes)
170172 let transactionId = toBase58String(i.transactionId)
171- let $t039844074 = claimSquare(x, y, ownerId, transactionId)
172- let asset = $t039844074._1
173- let assetId = $t039844074._2
174- let assetUrl = $t039844074._3
175- let dataKeyPrefix = $t039844074._4
173+ let $t040644154 = claimSquare(x, y, ownerId, transactionId)
174+ let asset = $t040644154._1
175+ let assetId = $t040644154._2
176+ let assetUrl = $t040644154._3
177+ let dataKeyPrefix = $t040644154._4
176178 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
177179 }
178180
179181
180-
181-@Callable(i)
182-func autoBuy (x,y) = {
183- let address = addressFromPublicKey(base58'251TfxXBEXj72aSzHVyqj8vf47nRECBGm96ZbfjqbY8s')
184- let ownerId = toBase58String(address.bytes)
185- let transactionId = toBase58String(i.transactionId)
186- let $t046064696 = claimSquare(x, y, ownerId, transactionId)
187- let asset = $t046064696._1
188- let assetId = $t046064696._2
189- let assetUrl = $t046064696._3
190- let dataKeyPrefix = $t046064696._4
191-[asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(address, 1, assetId)]
192- }
193-
194-
195182 @Verifier(tx)
196-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
183+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
184+ then true
185+ else sigVerify(tx.bodyBytes, tx.proofs[0], holdingsPublicKey)
197186
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
12+let holdingsPublicKey = toBytes("GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY")
13+
1214 func getBoundCoords (data) = {
13- let $t0222244 = data
14- let x = $t0222244._1
15- let y = $t0222244._2
16- let gen = $t0222244._3
15+ let $t0302324 = data
16+ let x = $t0302324._1
17+ let y = $t0302324._2
18+ let gen = $t0302324._3
1719 let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
1820 let tl = $Tuple2((x - d), (y - d))
1921 let tc = $Tuple2(x, (y - d))
2022 let tr = $Tuple2((x + d), (y + d))
2123 let l = $Tuple2((x - d), y)
2224 let r = $Tuple2((x + d), y)
2325 let bl = $Tuple2((x - d), (y + d))
2426 let bc = $Tuple2(x, (y + d))
2527 let br = $Tuple2((x + d), (y + d))
2628 [$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
2729 }
2830
2931
3032 func checkSquareForEvolve (coords,gen,ownerId) = {
31- let $t0677705 = coords
32- let xy1 = $t0677705._1
33- let xy2 = $t0677705._2
34- let xy3 = $t0677705._3
33+ let $t0757785 = coords
34+ let xy1 = $t0757785._1
35+ let xy2 = $t0757785._2
36+ let xy3 = $t0757785._3
3537 let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
3638 let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
3739 let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
3840 let xyVal1 = match getString(this, xy1Key) {
3941 case _: Unit =>
4042 "unset"
4143 case x: String =>
4244 x
4345 case _ =>
4446 throw("Match error")
4547 }
4648 let xyVal2 = match getString(this, xy2Key) {
4749 case _: Unit =>
4850 "unset"
4951 case x: String =>
5052 x
5153 case _ =>
5254 throw("Match error")
5355 }
5456 let xyVal3 = match getString(this, xy3Key) {
5557 case _: Unit =>
5658 "unset"
5759 case x: String =>
5860 x
5961 case _ =>
6062 throw("Match error")
6163 }
6264 if (if ((xyVal1 == ownerId))
6365 then (xyVal2 == ownerId)
6466 else false)
6567 then (xyVal3 == ownerId)
6668 else false
6769 }
6870
6971
7072 func getXyReturn (xy,gen) = {
71- let $t013811396 = xy
72- let x = $t013811396._1
73- let y = $t013811396._2
73+ let $t014611476 = xy
74+ let x = $t014611476._1
75+ let y = $t014611476._2
7476 $Tuple3(x, y, (gen + 1))
7577 }
7678
7779
7880 func getXy (xyg,ownerId) = {
7981 let checkList = getBoundCoords(xyg)
80- let $t015121533 = xyg
81- let x = $t015121533._1
82- let y = $t015121533._2
83- let gen = $t015121533._3
82+ let $t015921613 = xyg
83+ let x = $t015921613._1
84+ let y = $t015921613._2
85+ let gen = $t015921613._3
8486 let genStr = toString(gen)
8587 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8688 then getXyReturn(checkList[0]._1, gen)
8789 else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
8890 then getXyReturn(checkList[1]._1, gen)
8991 else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
9092 then getXyReturn(checkList[2]._1, gen)
9193 else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
9294 then getXyReturn(checkList[3]._1, gen)
9395 else xyg
9496 }
9597
9698
9799 func checkForEvolve (xyg,ownerId) = {
98- let $t021802201 = xyg
99- let x = $t021802201._1
100- let y = $t021802201._2
101- let gen = $t021802201._3
100+ let $t022602281 = xyg
101+ let x = $t022602281._1
102+ let y = $t022602281._2
103+ let gen = $t022602281._3
102104 let p1 = getXy(xyg, ownerId)
103105 if ((p1._3 == gen))
104106 then p1
105107 else {
106108 let p2 = getXy(p1, ownerId)
107109 if ((p2._3 == p1._3))
108110 then p2
109111 else {
110112 let p3 = getXy(p2, ownerId)
111113 if ((p3._3 == p2._3))
112114 then p3
113115 else {
114116 let p4 = getXy(p3, ownerId)
115117 if ((p4._3 == p3._3))
116118 then p4
117119 else {
118120 let p5 = getXy(p4, ownerId)
119121 if ((p5._3 == p4._3))
120122 then p5
121123 else {
122124 let p6 = getXy(p5, ownerId)
123125 if ((p6._3 == p5._3))
124126 then p6
125127 else {
126128 let p7 = getXy(p6, ownerId)
127129 if ((p7._3 == p6._3))
128130 then p7
129131 else {
130132 let p8 = getXy(p7, ownerId)
131133 if ((p8._3 == p7._3))
132134 then p8
133135 else {
134136 let p9 = getXy(p8, ownerId)
135137 if ((p9._3 == p8._3))
136138 then p9
137139 else getXy(getXy(p9, ownerId), ownerId)
138140 }
139141 }
140142 }
141143 }
142144 }
143145 }
144146 }
145147 }
146148 }
147149
148150
149151 func claimSquare (x,y,ownerId,transactionId) = {
150- let $t032543351 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
151- let resolvedX = $t032543351._1
152- let resolvedY = $t032543351._2
153- let resolvedGen = $t032543351._3
152+ let $t033343431 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
153+ let resolvedX = $t033343431._1
154+ let resolvedY = $t033343431._2
155+ let resolvedGen = $t033343431._3
154156 let resolvedXStr = toString(resolvedX)
155157 let resolvedYStr = toString(resolvedY)
156158 let resolvedGenStr = toString(resolvedGen)
157159 let assetName = ((resolvedXStr + ",") + resolvedYStr)
158160 let assetUrl = ((nftDomain + transactionId) + ".png")
159161 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
160162 let assetId = calculateAssetId(asset)
161163 let gen = resolvedGenStr
162164 let dataKeyPrefix = ((assetName + ",") + gen)
163165 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
164166 }
165167
166168
167169 @Callable(i)
168170 func purchase (x,y) = {
169171 let ownerId = toBase58String(i.caller.bytes)
170172 let transactionId = toBase58String(i.transactionId)
171- let $t039844074 = claimSquare(x, y, ownerId, transactionId)
172- let asset = $t039844074._1
173- let assetId = $t039844074._2
174- let assetUrl = $t039844074._3
175- let dataKeyPrefix = $t039844074._4
173+ let $t040644154 = claimSquare(x, y, ownerId, transactionId)
174+ let asset = $t040644154._1
175+ let assetId = $t040644154._2
176+ let assetUrl = $t040644154._3
177+ let dataKeyPrefix = $t040644154._4
176178 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
177179 }
178180
179181
180-
181-@Callable(i)
182-func autoBuy (x,y) = {
183- let address = addressFromPublicKey(base58'251TfxXBEXj72aSzHVyqj8vf47nRECBGm96ZbfjqbY8s')
184- let ownerId = toBase58String(address.bytes)
185- let transactionId = toBase58String(i.transactionId)
186- let $t046064696 = claimSquare(x, y, ownerId, transactionId)
187- let asset = $t046064696._1
188- let assetId = $t046064696._2
189- let assetUrl = $t046064696._3
190- let dataKeyPrefix = $t046064696._4
191-[asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(address, 1, assetId)]
192- }
193-
194-
195182 @Verifier(tx)
196-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
183+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
184+ then true
185+ else sigVerify(tx.bodyBytes, tx.proofs[0], holdingsPublicKey)
197186

github/deemru/w8io/873ac7e 
54.34 ms