tx · 7BzJtvv8WqzBUkWq4eG44LRoLNAKvgz2keZfFwNZQ3H7 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu: -0.09000000 Waves 2022.01.02 19:23 [1861513] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves
{ "type": 13, "id": "7BzJtvv8WqzBUkWq4eG44LRoLNAKvgz2keZfFwNZQ3H7", "fee": 9000000, "feeAssetId": null, "timestamp": 1641140628144, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "2qHFeZqzrGXfSCg27Z64mTWzPn5XZhQhLkd7ViTedavpUjQqG1VduuaKVSPbPVBMgwuHYeHsvkCos8bzrpmGzanU" ], "script": "base64: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", "height": 1861513, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: B9LePVe1Ld9Dt9c6tDdtMrg5GiLAt9tdYo1S34TNjUCb Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let COLS = 1024 | |
5 | + | ||
6 | + | let ROWS = 1024 | |
7 | + | ||
8 | + | let nftDomain = "https://nft.gridgang.ca/" | |
9 | + | ||
10 | + | func getBoundCoords (data) = { | |
11 | + | let $t0205227 = data | |
12 | + | let x = $t0205227._1 | |
13 | + | let y = $t0205227._2 | |
14 | + | let gen = $t0205227._3 | |
15 | + | let d = pow(2, 0, gen, 0, 0, HALFUP) | |
16 | + | let tl = $Tuple2((x - d), (y - d)) | |
17 | + | let tc = $Tuple2(x, (y - d)) | |
18 | + | let tr = $Tuple2((x + d), (y + d)) | |
19 | + | let l = $Tuple2((x - d), y) | |
20 | + | let r = $Tuple2((x + d), y) | |
21 | + | let bl = $Tuple2((x - d), (y + d)) | |
22 | + | let bc = $Tuple2(x, (y + d)) | |
23 | + | let br = $Tuple2((x + d), (y + d)) | |
24 | + | [$Tuple3(tl, tc, l), $Tuple3(tc, tr, r), $Tuple3(l, bl, bc), $Tuple3(r, bc, br)] | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | func checkSquareForEvolve (coords,gen,ownerId) = { | |
29 | + | let $t0656684 = coords | |
30 | + | let xy1 = $t0656684._1 | |
31 | + | let xy2 = $t0656684._2 | |
32 | + | let xy3 = $t0656684._3 | |
33 | + | let xyVal1 = getStringValue(this, (((((toString(xy1._1) + ",") + toString(xy1._2)) + ",") + gen) + "_owner")) | |
34 | + | let xyVal2 = getStringValue(this, (((((toString(xy2._1) + ",") + toString(xy2._2)) + ",") + gen) + "_owner")) | |
35 | + | let xyVal3 = getStringValue(this, (((((toString(xy3._1) + ",") + toString(xy3._2)) + ",") + gen) + "_owner")) | |
36 | + | if (if ((xyVal1 == ownerId)) | |
37 | + | then (xyVal2 == ownerId) | |
38 | + | else false) | |
39 | + | then (xyVal3 == ownerId) | |
40 | + | else false | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | func getXyReturn (xy,gen) = { | |
45 | + | let $t011111126 = xy | |
46 | + | let x = $t011111126._1 | |
47 | + | let y = $t011111126._2 | |
48 | + | $Tuple3(x, y, (gen + 1)) | |
49 | + | } | |
50 | + | ||
51 | + | ||
52 | + | func getXy (xyg,ownerId) = { | |
53 | + | let checkList = getBoundCoords(xyg) | |
54 | + | let $t012421263 = xyg | |
55 | + | let x = $t012421263._1 | |
56 | + | let y = $t012421263._2 | |
57 | + | let gen = $t012421263._3 | |
58 | + | let genStr = toString(gen) | |
59 | + | if (checkSquareForEvolve(checkList[0], genStr, ownerId)) | |
60 | + | then getXyReturn(checkList[0]._1, gen) | |
61 | + | else if (checkSquareForEvolve(checkList[1], genStr, ownerId)) | |
62 | + | then getXyReturn(checkList[1]._1, gen) | |
63 | + | else if (checkSquareForEvolve(checkList[2], genStr, ownerId)) | |
64 | + | then getXyReturn(checkList[2]._1, gen) | |
65 | + | else if (checkSquareForEvolve(checkList[3], genStr, ownerId)) | |
66 | + | then getXyReturn(checkList[3]._1, gen) | |
67 | + | else xyg | |
68 | + | } | |
69 | + | ||
70 | + | ||
71 | + | @Callable(i) | |
72 | + | func purchase (x,y) = { | |
73 | + | let ownerId = toBase58String(i.caller.bytes) | |
74 | + | let $t018861983 = getXy($Tuple3(parseIntValue(x), parseIntValue(y), 1), ownerId) | |
75 | + | let resolvedX = $t018861983._1 | |
76 | + | let resolvedY = $t018861983._2 | |
77 | + | let resolvedGen = $t018861983._3 | |
78 | + | let resolvedXStr = toString(resolvedX) | |
79 | + | let resolvedYStr = toString(resolvedY) | |
80 | + | let resolvedGenStr = toString(resolvedGen) | |
81 | + | let assetName = ((resolvedXStr + ",") + resolvedYStr) | |
82 | + | let assetUrl = ((nftDomain + toBase58String(i.transactionId)) + ".png") | |
83 | + | let asset = Issue(((assetName + " Gen ") + resolvedGenStr), assetUrl, 1, 0, false) | |
84 | + | let assetId = calculateAssetId(asset) | |
85 | + | let gen = ("0" + resolvedGenStr) | |
86 | + | let dataKeyPrefix = ((assetName + ",") + gen) | |
87 | + | [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), ScriptTransfer(i.caller, 1, assetId)] | |
88 | + | } | |
89 | + | ||
90 | + | ||
91 | + | @Verifier(tx) | |
92 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
93 | + |
github/deemru/w8io/169f3d6 22.51 ms ◑