tx · 78wYCmHzcFtE4VJUVCF3VW7yxP4dfHJQS7c3eGstpmen

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.02 20:57 [1861600] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "78wYCmHzcFtE4VJUVCF3VW7yxP4dfHJQS7c3eGstpmen", "fee": 4000000, "feeAssetId": null, "timestamp": 1641146260784, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "3JQg1rwwQpcBrArNBBuNaDNwZrStFCkieMtGXrp6TaoHSdgBeAJ1LcMbWdXnUTowZSn7DWDx6US3x7Y8cc5EDkmT" ], "script": "base64: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", "height": 1861600, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FtqVuP8cSzffwq3jXxeR6KSbvq8yMXDmgnsA9rP8zSHv Next: 3CsZe6Z4PNZaZAGHSDYqK99r38DPEWUAa9y5Cu2TMjY8 Diff:
OldNewDifferences
3030 let xy1 = $t0656684._1
3131 let xy2 = $t0656684._2
3232 let xy3 = $t0656684._3
33- let xyVal1 = getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner"))
34- let xyVal2 = getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner"))
35- let xyVal3 = getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner"))
33+ let xyVal1 = match getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) {
34+ case _: Unit =>
35+ "unset"
36+ case x: String =>
37+ x
38+ case _ =>
39+ throw("Match error")
40+ }
41+ let xyVal2 = match getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) {
42+ case _: Unit =>
43+ "unset"
44+ case x: String =>
45+ x
46+ case _ =>
47+ throw("Match error")
48+ }
49+ let xyVal3 = match getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) {
50+ case _: Unit =>
51+ "unset"
52+ case x: String =>
53+ x
54+ case _ =>
55+ throw("Match error")
56+ }
3657 if (if ((xyVal1 == ownerId))
3758 then (xyVal2 == ownerId)
3859 else false)
4263
4364
4465 func getXyReturn (xy,gen) = {
45- let $t010931108 = xy
46- let x = $t010931108._1
47- let y = $t010931108._2
66+ let $t012921307 = xy
67+ let x = $t012921307._1
68+ let y = $t012921307._2
4869 $Tuple3(x, y, (gen + 1))
4970 }
5071
5172
5273 func getXy (xyg,ownerId) = {
5374 let checkList = getBoundCoords(xyg)
54- let $t012241245 = xyg
55- let x = $t012241245._1
56- let y = $t012241245._2
57- let gen = $t012241245._3
75+ let $t014231444 = xyg
76+ let x = $t014231444._1
77+ let y = $t014231444._2
78+ let gen = $t014231444._3
5879 let genStr = toString(gen)
5980 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
6081 then getXyReturn(checkList[0]._1, gen)
7192 @Callable(i)
7293 func purchase (x,y) = {
7394 let ownerId = toBase58String(i.caller.bytes)
74- let $t018681965 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
75- let resolvedX = $t018681965._1
76- let resolvedY = $t018681965._2
77- let resolvedGen = $t018681965._3
95+ let $t020672164 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
96+ let resolvedX = $t020672164._1
97+ let resolvedY = $t020672164._2
98+ let resolvedGen = $t020672164._3
7899 let resolvedXStr = toString(resolvedX)
79100 let resolvedYStr = toString(resolvedY)
80101 let resolvedGenStr = toString(resolvedGen)
82103 let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
83104 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
84105 let assetId = calculateAssetId(asset)
85- let gen = ("0" + resolvedGenStr)
106+ let gen = resolvedGenStr
86107 let dataKeyPrefix = ((assetName + ",") + gen)
87108 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
88109 }
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 = getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner"))
34- let xyVal2 = getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner"))
35- let xyVal3 = getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner"))
33+ let xyVal1 = match getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) {
34+ case _: Unit =>
35+ "unset"
36+ case x: String =>
37+ x
38+ case _ =>
39+ throw("Match error")
40+ }
41+ let xyVal2 = match getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) {
42+ case _: Unit =>
43+ "unset"
44+ case x: String =>
45+ x
46+ case _ =>
47+ throw("Match error")
48+ }
49+ let xyVal3 = match getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) {
50+ case _: Unit =>
51+ "unset"
52+ case x: String =>
53+ x
54+ case _ =>
55+ throw("Match error")
56+ }
3657 if (if ((xyVal1 == ownerId))
3758 then (xyVal2 == ownerId)
3859 else false)
3960 then (xyVal3 == ownerId)
4061 else false
4162 }
4263
4364
4465 func getXyReturn (xy,gen) = {
45- let $t010931108 = xy
46- let x = $t010931108._1
47- let y = $t010931108._2
66+ let $t012921307 = xy
67+ let x = $t012921307._1
68+ let y = $t012921307._2
4869 $Tuple3(x, y, (gen + 1))
4970 }
5071
5172
5273 func getXy (xyg,ownerId) = {
5374 let checkList = getBoundCoords(xyg)
54- let $t012241245 = xyg
55- let x = $t012241245._1
56- let y = $t012241245._2
57- let gen = $t012241245._3
75+ let $t014231444 = xyg
76+ let x = $t014231444._1
77+ let y = $t014231444._2
78+ let gen = $t014231444._3
5879 let genStr = toString(gen)
5980 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
6081 then getXyReturn(checkList[0]._1, gen)
6182 else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
6283 then getXyReturn(checkList[1]._1, gen)
6384 else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
6485 then getXyReturn(checkList[2]._1, gen)
6586 else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
6687 then getXyReturn(checkList[3]._1, gen)
6788 else xyg
6889 }
6990
7091
7192 @Callable(i)
7293 func purchase (x,y) = {
7394 let ownerId = toBase58String(i.caller.bytes)
74- let $t018681965 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
75- let resolvedX = $t018681965._1
76- let resolvedY = $t018681965._2
77- let resolvedGen = $t018681965._3
95+ let $t020672164 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId)
96+ let resolvedX = $t020672164._1
97+ let resolvedY = $t020672164._2
98+ let resolvedGen = $t020672164._3
7899 let resolvedXStr = toString(resolvedX)
79100 let resolvedYStr = toString(resolvedY)
80101 let resolvedGenStr = toString(resolvedGen)
81102 let assetName = ((resolvedXStr + ",") + resolvedYStr)
82103 let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
83104 let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
84105 let assetId = calculateAssetId(asset)
85- let gen = ("0" + resolvedGenStr)
106+ let gen = resolvedGenStr
86107 let dataKeyPrefix = ((assetName + ",") + gen)
87108 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
88109 }
89110
90111
91112 @Verifier(tx)
92113 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
93114

github/deemru/w8io/873ac7e 
29.23 ms