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:AAIFAAAAAAAAAq0IAhIECgIICBoLCgFBEgZ4eVZhbDIaCwoBQhIGeHlWYWwzGhAKAUMSC2dldFh5UmV0dXJuGgcKAUQSAnh5GhAKAUUSCyR0MDExMTExMTI2GgoKAUYSBWdldFh5GggKAUcSA3h5ZxoOCgFIEgljaGVja0xpc3QaEAoBSRILJHQwMTI0MjEyNjMaCwoBShIGZ2VuU3RyGgYKAUsSAWkaEAoBTBILJHQwMTg4NjE5ODMaDgoBTRIJcmVzb2x2ZWRYGg4KAU4SCXJlc29sdmVkWRoQCgFPEgtyZXNvbHZlZEdlbhoRCgFQEgxyZXNvbHZlZFhTdHIaEQoBURIMcmVzb2x2ZWRZU3RyGhMKAVISDnJlc29sdmVkR2VuU3RyGg4KAVMSCWFzc2V0TmFtZRoNCgFUEghhc3NldFVybBoKCgFVEgVhc3NldBoMCgFWEgdhc3NldElkGhIKAVcSDWRhdGFLZXlQcmVmaXgaBwoBWBICdHgaCwoBWRIGdmVyaWZ5GgkKAWESBENPTFMaCQoBYhIEUk9XUxoOCgFjEgluZnREb21haW4aEwoBZBIOZ2V0Qm91bmRDb29yZHMaCQoBZRIEZGF0YRoOCgFmEgkkdDAyMDUyMjcaBgoBZxIBeBoGCgFoEgF5GggKAWkSA2dlbhoGCgFqEgFkGgcKAWsSAnRsGgcKAWwSAnRjGgcKAW0SAnRyGgYKAW4SAWwaBgoBbxIBchoHCgFwEgJibBoHCgFxEgJiYxoHCgFyEgJichoZCgFzEhRjaGVja1NxdWFyZUZvckV2b2x2ZRoLCgF0EgZjb29yZHMaDAoBdRIHb3duZXJJZBoOCgF2EgkkdDA2NTY2ODQaCAoBdxIDeHkxGggKAXgSA3h5MhoICgF5EgN4eTMaCwoBehIGeHlWYWwxAAAABwAAAAABYQAAAAAAAAAEAAAAAAABYgAAAAAAAAAEAAAAAAABYwIAAAAYaHR0cHM6Ly9uZnQuZ3JpZGdhbmcuY2EvAQAAAAFkAAAAAQAAAAFlBAAAAAFmBQAAAAFlBAAAAAFnCAUAAAABZgAAAAJfMQQAAAABaAgFAAAAAWYAAAACXzIEAAAAAWkIBQAAAAFmAAAAAl8zBAAAAAFqCQAAbAAAAAYAAAAAAAAAAAIAAAAAAAAAAAAFAAAAAWkAAAAAAAAAAAAAAAAAAAAAAAAFAAAABkhBTEZVUAQAAAABawkABRQAAAACCQAAZQAAAAIFAAAAAWcFAAAAAWoJAABlAAAAAgUAAAABaAUAAAABagQAAAABbAkABRQAAAACBQAAAAFnCQAAZQAAAAIFAAAAAWgFAAAAAWoEAAAAAW0JAAUUAAAAAgkAAGQAAAACBQAAAAFnBQAAAAFqCQAAZAAAAAIFAAAAAWgFAAAAAWoEAAAAAW4JAAUUAAAAAgkAAGUAAAACBQAAAAFnBQAAAAFqBQAAAAFoBAAAAAFvCQAFFAAAAAIJAABkAAAAAgUAAAABZwUAAAABagUAAAABaAQAAAABcAkABRQAAAACCQAAZQAAAAIFAAAAAWcFAAAAAWoJAABkAAAAAgUAAAABaAUAAAABagQAAAABcQkABRQAAAACBQAAAAFnCQAAZAAAAAIFAAAAAWgFAAAAAWoEAAAAAXIJAAUUAAAAAgkAAGQAAAACBQAAAAFnBQAAAAFqCQAAZAAAAAIFAAAAAWgFAAAAAWoJAARMAAAAAgkABRUAAAADBQAAAAFrBQAAAAFsBQAAAAFuCQAETAAAAAIJAAUVAAAAAwUAAAABbAUAAAABbQUAAAABbwkABEwAAAACCQAFFQAAAAMFAAAAAW4FAAAAAXAFAAAAAXEJAARMAAAAAgkABRUAAAADBQAAAAFvBQAAAAFxBQAAAAFyBQAAAANuaWwBAAAAAXMAAAADAAAAAXQAAAABaQAAAAF1BAAAAAF2BQAAAAF0BAAAAAF3CAUAAAABdgAAAAJfMQQAAAABeAgFAAAAAXYAAAACXzIEAAAAAXkIBQAAAAF2AAAAAl8zBAAAAAF6CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABCAUAAAABdwAAAAJfMQIAAAABLAkAAaQAAAABCAUAAAABdwAAAAJfMgIAAAABLAUAAAABaQIAAAAGX293bmVyBAAAAAFBCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABCAUAAAABeAAAAAJfMQIAAAABLAkAAaQAAAABCAUAAAABeAAAAAJfMgIAAAABLAUAAAABaQIAAAAGX293bmVyBAAAAAFCCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABCAUAAAABeQAAAAJfMQIAAAABLAkAAaQAAAABCAUAAAABeQAAAAJfMgIAAAABLAUAAAABaQIAAAAGX293bmVyAwMJAAAAAAAAAgUAAAABegUAAAABdQkAAAAAAAACBQAAAAFBBQAAAAF1BwkAAAAAAAACBQAAAAFCBQAAAAF1BwEAAAABQwAAAAIAAAABRAAAAAFpBAAAAAFFBQAAAAFEBAAAAAFnCAUAAAABRQAAAAJfMQQAAAABaAgFAAAAAUUAAAACXzIJAAUVAAAAAwUAAAABZwUAAAABaAkAAGQAAAACBQAAAAFpAAAAAAAAAAABAQAAAAFGAAAAAgAAAAFHAAAAAXUEAAAAAUgJAQAAAAFkAAAAAQUAAAABRwQAAAABSQUAAAABRwQAAAABZwgFAAAAAUkAAAACXzEEAAAAAWgIBQAAAAFJAAAAAl8yBAAAAAFpCAUAAAABSQAAAAJfMwQAAAABSgkAAaQAAAABBQAAAAFpAwkBAAAAAXMAAAADCQABkQAAAAIFAAAAAUgAAAAAAAAAAAAFAAAAAUoFAAAAAXUJAQAAAAFDAAAAAggJAAGRAAAAAgUAAAABSAAAAAAAAAAAAAAAAAJfMQUAAAABaQMJAQAAAAFzAAAAAwkAAZEAAAACBQAAAAFIAAAAAAAAAAABBQAAAAFKBQAAAAF1CQEAAAABQwAAAAIICQABkQAAAAIFAAAAAUgAAAAAAAAAAAEAAAACXzEFAAAAAWkDCQEAAAABcwAAAAMJAAGRAAAAAgUAAAABSAAAAAAAAAAAAgUAAAABSgUAAAABdQkBAAAAAUMAAAACCAkAAZEAAAACBQAAAAFIAAAAAAAAAAACAAAAAl8xBQAAAAFpAwkBAAAAAXMAAAADCQABkQAAAAIFAAAAAUgAAAAAAAAAAAMFAAAAAUoFAAAAAXUJAQAAAAFDAAAAAggJAAGRAAAAAgUAAAABSAAAAAAAAAAAAwAAAAJfMQUAAAABaQUAAAABRwAAAAEAAAABSwEAAAAIcHVyY2hhc2UAAAACAAAAAWcAAAABaAQAAAABdQkAAlgAAAABCAgFAAAAAUsAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAFMCQEAAAABRgAAAAIJAAUVAAAAAwkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAAFnCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAAAWgAAAAAAAAAAAEFAAAAAXUEAAAAAU0IBQAAAAFMAAAAAl8xBAAAAAFOCAUAAAABTAAAAAJfMgQAAAABTwgFAAAAAUwAAAACXzMEAAAAAVAJAAGkAAAAAQUAAAABTQQAAAABUQkAAaQAAAABBQAAAAFOBAAAAAFSCQABpAAAAAEFAAAAAU8EAAAAAVMJAAEsAAAAAgkAASwAAAACBQAAAAFQAgAAAAEsBQAAAAFRBAAAAAFUCQABLAAAAAIJAAEsAAAAAgUAAAABYwkAAlgAAAABCAUAAAABSwAAAA10cmFuc2FjdGlvbklkAgAAAAQucG5nBAAAAAFVCQAEQgAAAAUJAAEsAAAAAgkAASwAAAACBQAAAAFTAgAAAAUgR2VuIAUAAAABUgUAAAABVAAAAAAAAAAAAQAAAAAAAAAAAAcEAAAAAVYJAAQ4AAAAAQUAAAABVQQAAAABaQkAASwAAAACAgAAAAEwBQAAAAFSBAAAAAFXCQABLAAAAAIJAAEsAAAAAgUAAAABUwIAAAABLAUAAAABaQkABEwAAAACBQAAAAFVCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAABVwIAAAAIX2Fzc2V0SWQJAAJYAAAAAQUAAAABVgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAAAVcCAAAABl9hc3NldAUAAAABVAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAAAVcCAAAABl9vd25lcgUAAAABdQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABSwAAAAZjYWxsZXIAAAAAAAAAAAEFAAAAAVYFAAAAA25pbAAAAAEAAAABWAEAAAABWQAAAAAJAAH0AAAAAwgFAAAAAVgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAFYAAAABnByb29mcwAAAAAAAAAAAAgFAAAAAVgAAAAPc2VuZGVyUHVibGljS2V5EGnsoQ==", "height": 1861513, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: B9LePVe1Ld9Dt9c6tDdtMrg5GiLAt9tdYo1S34TNjUCb Full:
OldNewDifferences
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/873ac7e 
15.06 ms