tx · 3CsZe6Z4PNZaZAGHSDYqK99r38DPEWUAa9y5Cu2TMjY8

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.01.02 21:06 [1861608] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "3CsZe6Z4PNZaZAGHSDYqK99r38DPEWUAa9y5Cu2TMjY8", "fee": 4000000, "feeAssetId": null, "timestamp": 1641146796779, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "5HFTHtW2vajBFAqUqD4ppBy9uM5SJEcTM2tmh57uQuncZKi2YAhoWKgDDtdSPmhsMKVCVw39jicvcUeuRiwqHnCw" ], "script": "base64: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", "height": 1861608, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 78wYCmHzcFtE4VJUVCF3VW7yxP4dfHJQS7c3eGstpmen Next: 53RkWwevsdJ3Et8DPcsMEoKj8j57LGytqv5gkYwDhNGp Diff:
OldNewDifferences
6363
6464
6565 func getXyReturn (xy,gen) = {
66- let $t012921307 = xy
67- let x = $t012921307._1
68- let y = $t012921307._2
66+ let $t012941309 = xy
67+ let x = $t012941309._1
68+ let y = $t012941309._2
6969 $Tuple3(x, y, (gen + 1))
7070 }
7171
7272
7373 func getXy (xyg,ownerId) = {
7474 let checkList = getBoundCoords(xyg)
75- let $t014231444 = xyg
76- let x = $t014231444._1
77- let y = $t014231444._2
78- let gen = $t014231444._3
75+ let $t014251446 = xyg
76+ let x = $t014251446._1
77+ let y = $t014251446._2
78+ let gen = $t014251446._3
7979 let genStr = toString(gen)
8080 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8181 then getXyReturn(checkList[0]._1, gen)
82- else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
83- then getXyReturn(checkList[1]._1, gen)
84- else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
85- then getXyReturn(checkList[2]._1, gen)
86- else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
87- then getXyReturn(checkList[3]._1, gen)
88- else xyg
82+ else throw(((((toString(x) + ",") + toString(y)) + ",") + ownerId))
8983 }
9084
9185
9286 @Callable(i)
9387 func purchase (x,y) = {
9488 let ownerId = toBase58String(i.caller.bytes)
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
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
9993 let resolvedXStr = toString(resolvedX)
10094 let resolvedYStr = toString(resolvedY)
10195 let resolvedGenStr = toString(resolvedGen)
102- let assetName = ((resolvedXStr + ",") + resolvedYStr)
103- let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
104- let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
105- let assetId = calculateAssetId(asset)
106- let gen = resolvedGenStr
107- let dataKeyPrefix = ((assetName + ",") + gen)
96+ if ((resolvedGenStr == "1"))
97+ then throw(((resolvedXStr + ",") + resolvedGenStr))
98+ else {
99+ let assetName = ((resolvedXStr + ",") + resolvedYStr)
100+ let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
101+ let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
102+ let assetId = calculateAssetId(asset)
103+ let gen = resolvedGenStr
104+ let dataKeyPrefix = ((assetName + ",") + gen)
108105 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
106+ }
109107 }
110108
111109
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
3333 let xyVal1 = match getString(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) {
3434 case _: Unit =>
3535 "unset"
3636 case x: String =>
3737 x
3838 case _ =>
3939 throw("Match error")
4040 }
4141 let xyVal2 = match getString(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) {
4242 case _: Unit =>
4343 "unset"
4444 case x: String =>
4545 x
4646 case _ =>
4747 throw("Match error")
4848 }
4949 let xyVal3 = match getString(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) {
5050 case _: Unit =>
5151 "unset"
5252 case x: String =>
5353 x
5454 case _ =>
5555 throw("Match error")
5656 }
5757 if (if ((xyVal1 == ownerId))
5858 then (xyVal2 == ownerId)
5959 else false)
6060 then (xyVal3 == ownerId)
6161 else false
6262 }
6363
6464
6565 func getXyReturn (xy,gen) = {
66- let $t012921307 = xy
67- let x = $t012921307._1
68- let y = $t012921307._2
66+ let $t012941309 = xy
67+ let x = $t012941309._1
68+ let y = $t012941309._2
6969 $Tuple3(x, y, (gen + 1))
7070 }
7171
7272
7373 func getXy (xyg,ownerId) = {
7474 let checkList = getBoundCoords(xyg)
75- let $t014231444 = xyg
76- let x = $t014231444._1
77- let y = $t014231444._2
78- let gen = $t014231444._3
75+ let $t014251446 = xyg
76+ let x = $t014251446._1
77+ let y = $t014251446._2
78+ let gen = $t014251446._3
7979 let genStr = toString(gen)
8080 if (checkSquareForEvolve(checkList[0], genStr, ownerId))
8181 then getXyReturn(checkList[0]._1, gen)
82- else if (checkSquareForEvolve(checkList[1], genStr, ownerId))
83- then getXyReturn(checkList[1]._1, gen)
84- else if (checkSquareForEvolve(checkList[2], genStr, ownerId))
85- then getXyReturn(checkList[2]._1, gen)
86- else if (checkSquareForEvolve(checkList[3], genStr, ownerId))
87- then getXyReturn(checkList[3]._1, gen)
88- else xyg
82+ else throw(((((toString(x) + ",") + toString(y)) + ",") + ownerId))
8983 }
9084
9185
9286 @Callable(i)
9387 func purchase (x,y) = {
9488 let ownerId = toBase58String(i.caller.bytes)
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
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
9993 let resolvedXStr = toString(resolvedX)
10094 let resolvedYStr = toString(resolvedY)
10195 let resolvedGenStr = toString(resolvedGen)
102- let assetName = ((resolvedXStr + ",") + resolvedYStr)
103- let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
104- let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
105- let assetId = calculateAssetId(asset)
106- let gen = resolvedGenStr
107- let dataKeyPrefix = ((assetName + ",") + gen)
96+ if ((resolvedGenStr == "1"))
97+ then throw(((resolvedXStr + ",") + resolvedGenStr))
98+ else {
99+ let assetName = ((resolvedXStr + ",") + resolvedYStr)
100+ let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png")
101+ let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false)
102+ let assetId = calculateAssetId(asset)
103+ let gen = resolvedGenStr
104+ let dataKeyPrefix = ((assetName + ",") + gen)
108105 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)]
106+ }
109107 }
110108
111109
112110 @Verifier(tx)
113111 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
114112

github/deemru/w8io/873ac7e 
26.54 ms