tx · 76LKD8pw1AC8UtAU3uvVWHVnspkqXDv2QuK5unaJ1Egk

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.02 21:26 [1861625] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "76LKD8pw1AC8UtAU3uvVWHVnspkqXDv2QuK5unaJ1Egk", "fee": 4000000, "feeAssetId": null, "timestamp": 1641148021856, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "5aS3v9Gawj8NRW59yAJpD1WkP9osQrBukk53o47uj37ZFDqYbtaz47SWsDUtJJqMF8HsFfrtszgfnJzUAqQVfmpa" ], "script": "base64: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", "height": 1861625, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DJvf4FQe3TMbWZiMxM9TpV6eTCZ5FqyMaWaFGk8P2BjW Next: ATFiHBmdSgq94fKufHDPZAZk9wDfQF1tfq7GTiqPjCBE Diff:
OldNewDifferences
1414 let x = $t0222244._1
1515 let y = $t0222244._2
1616 let gen = $t0222244._3
17- let d = pow(2, 0, gen, 0, 0, HALFUP)
17+ let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
1818 let tl = $Tuple2((x - d), (y - d))
1919 let tc = $Tuple2(x, (y - d))
2020 let tr = $Tuple2((x + d), (y + d))
3030
3131
3232 func checkSquareForEvolve (coords,gen,ownerId) = {
33- let $t0799827 = coords
34- let xy1 = $t0799827._1
35- let xy2 = $t0799827._2
36- let xy3 = $t0799827._3
33+ let $t0803831 = coords
34+ let xy1 = $t0803831._1
35+ let xy2 = $t0803831._2
36+ let xy3 = $t0803831._3
3737 let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
3838 let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
3939 let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
7272
7373
7474 func getXyReturn (xy,gen) = {
75- let $t016651680 = xy
76- let x = $t016651680._1
77- let y = $t016651680._2
75+ let $t016691684 = xy
76+ let x = $t016691684._1
77+ let y = $t016691684._2
7878 $Tuple3(x, y, (gen + 1))
7979 }
8080
8181
8282 func getXy (xyg,ownerId) = {
8383 let checkList = getBoundCoords(xyg)
84- let $t017961817 = xyg
85- let x = $t017961817._1
86- let y = $t017961817._2
87- let gen = $t017961817._3
84+ let $t018001821 = xyg
85+ let x = $t018001821._1
86+ let y = $t018001821._2
87+ let gen = $t018001821._3
8888 let genStr = toString(gen)
8989 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
9090 then getXyReturn(checkList[0]._1, gen)
9595 @Callable(i)
9696 func purchase (x,y) = {
9797 let ownerId = toBase58String(i.caller.bytes)
98- let $t025192616 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
99- let resolvedX = $t025192616._1
100- let resolvedY = $t025192616._2
101- let resolvedGen = $t025192616._3
98+ let $t025232620 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
99+ let resolvedX = $t025232620._1
100+ let resolvedY = $t025232620._2
101+ let resolvedGen = $t025232620._3
102102 let resolvedXStr = toString(resolvedX)
103103 let resolvedYStr = toString(resolvedY)
104104 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 let DEBUG = true
1111
1212 func getBoundCoords (data) = {
1313 let $t0222244 = data
1414 let x = $t0222244._1
1515 let y = $t0222244._2
1616 let gen = $t0222244._3
17- let d = pow(2, 0, gen, 0, 0, HALFUP)
17+ let d = pow(2, 0, (gen - 1), 0, 0, HALFUP)
1818 let tl = $Tuple2((x - d), (y - d))
1919 let tc = $Tuple2(x, (y - d))
2020 let tr = $Tuple2((x + d), (y + d))
2121 let l = $Tuple2((x - d), y)
2222 let r = $Tuple2((x + d), y)
2323 let bl = $Tuple2((x - d), (y + d))
2424 let bc = $Tuple2(x, (y + d))
2525 let br = $Tuple2((x + d), (y + d))
2626 if ((DEBUG == true))
2727 then throw(((((((toString(x) + ",") + toString(y)) + ",") + toString(gen)) + " -- ") + toString(d)))
2828 else [$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)]
2929 }
3030
3131
3232 func checkSquareForEvolve (coords,gen,ownerId) = {
33- let $t0799827 = coords
34- let xy1 = $t0799827._1
35- let xy2 = $t0799827._2
36- let xy3 = $t0799827._3
33+ let $t0803831 = coords
34+ let xy1 = $t0803831._1
35+ let xy2 = $t0803831._2
36+ let xy3 = $t0803831._3
3737 let xy1Key = (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")
3838 let xy2Key = (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")
3939 let xy3Key = (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")
4040 let xyVal1 = match getString(this, xy1Key) {
4141 case _: Unit =>
4242 "unset"
4343 case x: String =>
4444 x
4545 case _ =>
4646 throw("Match error")
4747 }
4848 let xyVal2 = match getString(this, xy2Key) {
4949 case _: Unit =>
5050 "unset"
5151 case x: String =>
5252 x
5353 case _ =>
5454 throw("Match error")
5555 }
5656 let xyVal3 = match getString(this, xy3Key) {
5757 case _: Unit =>
5858 "unset"
5959 case x: String =>
6060 x
6161 case _ =>
6262 throw("Match error")
6363 }
6464 if ((xyVal1 == "unset"))
6565 then throw(((((((((((((xy1Key + ",") + xyVal1) + " - ") + xy2Key) + ",") + xyVal2) + " - ") + xy3Key) + ",") + xyVal3) + " - ") + ownerId))
6666 else 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) = {
75- let $t016651680 = xy
76- let x = $t016651680._1
77- let y = $t016651680._2
75+ let $t016691684 = xy
76+ let x = $t016691684._1
77+ let y = $t016691684._2
7878 $Tuple3(x, y, (gen + 1))
7979 }
8080
8181
8282 func getXy (xyg,ownerId) = {
8383 let checkList = getBoundCoords(xyg)
84- let $t017961817 = xyg
85- let x = $t017961817._1
86- let y = $t017961817._2
87- let gen = $t017961817._3
84+ let $t018001821 = xyg
85+ let x = $t018001821._1
86+ let y = $t018001821._2
87+ let gen = $t018001821._3
8888 let genStr = toString(gen)
8989 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
9090 then getXyReturn(checkList[0]._1, gen)
9191 else throw(((((toString(x) + ",") + toString(y)) + ",") + ownerId))
9292 }
9393
9494
9595 @Callable(i)
9696 func purchase (x,y) = {
9797 let ownerId = toBase58String(i.caller.bytes)
98- let $t025192616 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
99- let resolvedX = $t025192616._1
100- let resolvedY = $t025192616._2
101- let resolvedGen = $t025192616._3
98+ let $t025232620 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
99+ let resolvedX = $t025232620._1
100+ let resolvedY = $t025232620._2
101+ let resolvedGen = $t025232620._3
102102 let resolvedXStr = toString(resolvedX)
103103 let resolvedYStr = toString(resolvedY)
104104 let resolvedGenStr = toString(resolvedGen)
105105 if ((resolvedGenStr == "1"))
106106 then throw(((resolvedXStr + ",") + resolvedGenStr))
107107 else {
108108 let assetName = ((resolvedXStr + ",") + resolvedYStr)
109109 let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
110110 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
111111 let assetId = calculateAssetId(asset)
112112 let gen = resolvedGenStr
113113 let dataKeyPrefix = ((assetName + ",") + gen)
114114 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
115115 }
116116 }
117117
118118
119119 @Verifier(tx)
120120 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
121121

github/deemru/w8io/873ac7e 
31.81 ms