tx · 53RkWwevsdJ3Et8DPcsMEoKj8j57LGytqv5gkYwDhNGp

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.02 21:16 [1861615] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "53RkWwevsdJ3Et8DPcsMEoKj8j57LGytqv5gkYwDhNGp", "fee": 4000000, "feeAssetId": null, "timestamp": 1641147402757, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "5KCU1x9zWF9eL6meMzTmUc2EUwFBFo41eM8p1XFBzBXggFQWmgrBWsdV1h8BScW96BjmQY4uyjH4MEtbXQi6hUfk" ], "script": "base64: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", "height": 1861615, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3CsZe6Z4PNZaZAGHSDYqK99r38DPEWUAa9y5Cu2TMjY8 Next: 9AFsdMJMTDvbHv7cZif1uAKVv1pKPwXvqsoa58queWi9 Diff:
OldNewDifferences
3030 let xy1 = $t0656684._1
3131 let xy2 = $t0656684._2
3232 let xy3 = $t0656684._3
33- let xyVal1 = match getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) {
33+ let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
34+ let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
35+ let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
36+ let xyVal1 = match getString(this, xy1Key) {
3437 case _: Unit =>
3538 "unset"
3639 case x: String =>
3841 case _ =>
3942 throw("Match error")
4043 }
41- let xyVal2 = match getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) {
44+ let xyVal2 = match getString(this, xy2Key) {
4245 case _: Unit =>
4346 "unset"
4447 case x: String =>
4649 case _ =>
4750 throw("Match error")
4851 }
49- let xyVal3 = match getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) {
52+ let xyVal3 = match getString(this, xy3Key) {
5053 case _: Unit =>
5154 "unset"
5255 case x: String =>
5457 case _ =>
5558 throw("Match error")
5659 }
57- if (if ((xyVal1 == ownerId))
58- then (xyVal2 == ownerId)
59- else false)
60- then (xyVal3 == ownerId)
61- else false
60+ if ((xyVal1 != "unset"))
61+ then throw(((((((((((((xy1Key + ",") + xyVal1) + " - ") + xy2Key) + ",") + xyVal2) + " - ") + xy3Key) + ",") + xyVal3) + " - ") + ownerId))
62+ else if (if ((xyVal1 == ownerId))
63+ then (xyVal2 == ownerId)
64+ else false)
65+ then (xyVal3 == ownerId)
66+ else false
6267 }
6368
6469
6570 func getXyReturn (xy,gen) = {
66- let $t012941309 = xy
67- let x = $t012941309._1
68- let y = $t012941309._2
71+ let $t015221537 = xy
72+ let x = $t015221537._1
73+ let y = $t015221537._2
6974 $Tuple3(x, y, (gen + 1))
7075 }
7176
7277
7378 func getXy (xyg,ownerId) = {
7479 let checkList = getBoundCoords(xyg)
75- let $t014251446 = xyg
76- let x = $t014251446._1
77- let y = $t014251446._2
78- let gen = $t014251446._3
80+ let $t016531674 = xyg
81+ let x = $t016531674._1
82+ let y = $t016531674._2
83+ let gen = $t016531674._3
7984 let genStr = toString(gen)
8085 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8186 then getXyReturn(checkList[0]._1, gen)
8691 @Callable(i)
8792 func purchase (x,y) = {
8893 let ownerId = toBase58String(i.caller.bytes)
89- let $t021482245 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
90- let resolvedX = $t021482245._1
91- let resolvedY = $t021482245._2
92- let resolvedGen = $t021482245._3
94+ let $t023762473 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
95+ let resolvedX = $t023762473._1
96+ let resolvedY = $t023762473._2
97+ let resolvedGen = $t023762473._3
9398 let resolvedXStr = toString(resolvedX)
9499 let resolvedYStr = toString(resolvedY)
95100 let resolvedGenStr = toString(resolvedGen)
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.ca/"
99
1010 func getBoundCoords (data) = {
1111 let $t0205227 = data
1212 let x = $t0205227._1
1313 let y = $t0205227._2
1414 let gen = $t0205227._3
1515 let d = pow(2, 0, gen, 0, 0, HALFUP)
1616 let tl = $Tuple2((x - d), (y - d))
1717 let tc = $Tuple2(x, (y - d))
1818 let tr = $Tuple2((x + d), (y + d))
1919 let l = $Tuple2((x - d), y)
2020 let r = $Tuple2((x + d), y)
2121 let bl = $Tuple2((x - d), (y + d))
2222 let bc = $Tuple2(x, (y + d))
2323 let br = $Tuple2((x + d), (y + d))
2424 [$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
2525 }
2626
2727
2828 func checkSquareForEvolve (coords,gen,ownerId) = {
2929 let $t0656684 = coords
3030 let xy1 = $t0656684._1
3131 let xy2 = $t0656684._2
3232 let xy3 = $t0656684._3
33- let xyVal1 = match getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) {
33+ let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
34+ let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
35+ let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
36+ let xyVal1 = match getString(this, xy1Key) {
3437 case _: Unit =>
3538 "unset"
3639 case x: String =>
3740 x
3841 case _ =>
3942 throw("Match error")
4043 }
41- let xyVal2 = match getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) {
44+ let xyVal2 = match getString(this, xy2Key) {
4245 case _: Unit =>
4346 "unset"
4447 case x: String =>
4548 x
4649 case _ =>
4750 throw("Match error")
4851 }
49- let xyVal3 = match getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) {
52+ let xyVal3 = match getString(this, xy3Key) {
5053 case _: Unit =>
5154 "unset"
5255 case x: String =>
5356 x
5457 case _ =>
5558 throw("Match error")
5659 }
57- if (if ((xyVal1 == ownerId))
58- then (xyVal2 == ownerId)
59- else false)
60- then (xyVal3 == ownerId)
61- else false
60+ if ((xyVal1 != "unset"))
61+ then throw(((((((((((((xy1Key + ",") + xyVal1) + " - ") + xy2Key) + ",") + xyVal2) + " - ") + xy3Key) + ",") + xyVal3) + " - ") + ownerId))
62+ else if (if ((xyVal1 == ownerId))
63+ then (xyVal2 == ownerId)
64+ else false)
65+ then (xyVal3 == ownerId)
66+ else false
6267 }
6368
6469
6570 func getXyReturn (xy,gen) = {
66- let $t012941309 = xy
67- let x = $t012941309._1
68- let y = $t012941309._2
71+ let $t015221537 = xy
72+ let x = $t015221537._1
73+ let y = $t015221537._2
6974 $Tuple3(x, y, (gen + 1))
7075 }
7176
7277
7378 func getXy (xyg,ownerId) = {
7479 let checkList = getBoundCoords(xyg)
75- let $t014251446 = xyg
76- let x = $t014251446._1
77- let y = $t014251446._2
78- let gen = $t014251446._3
80+ let $t016531674 = xyg
81+ let x = $t016531674._1
82+ let y = $t016531674._2
83+ let gen = $t016531674._3
7984 let genStr = toString(gen)
8085 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8186 then getXyReturn(checkList[0]._1, gen)
8287 else throw(((((toString(x) + ",") + toString(y)) + ",") + ownerId))
8388 }
8489
8590
8691 @Callable(i)
8792 func purchase (x,y) = {
8893 let ownerId = toBase58String(i.caller.bytes)
89- let $t021482245 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
90- let resolvedX = $t021482245._1
91- let resolvedY = $t021482245._2
92- let resolvedGen = $t021482245._3
94+ let $t023762473 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
95+ let resolvedX = $t023762473._1
96+ let resolvedY = $t023762473._2
97+ let resolvedGen = $t023762473._3
9398 let resolvedXStr = toString(resolvedX)
9499 let resolvedYStr = toString(resolvedY)
95100 let resolvedGenStr = toString(resolvedGen)
96101 if ((resolvedGenStr == "1"))
97102 then throw(((resolvedXStr + ",") + resolvedGenStr))
98103 else {
99104 let assetName = ((resolvedXStr + ",") + resolvedYStr)
100105 let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
101106 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
102107 let assetId = calculateAssetId(asset)
103108 let gen = resolvedGenStr
104109 let dataKeyPrefix = ((assetName + ",") + gen)
105110 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
106111 }
107112 }
108113
109114
110115 @Verifier(tx)
111116 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
112117

github/deemru/w8io/873ac7e 
37.16 ms