tx · PgcinEBAHcPfQaLyMwkKqWAHXJjeVt66tZJ1EwuqKZQ 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu: -0.04000000 Waves 2022.02.09 18:23 [1916269] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves
{ "type": 13, "id": "PgcinEBAHcPfQaLyMwkKqWAHXJjeVt66tZJ1EwuqKZQ", "fee": 4000000, "feeAssetId": null, "timestamp": 1644420224688, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "3p4us94Ag3tbnnXQEcfZWXyPosi2uQ2Jiw9sxgQ2Vfq4WQpTuY3sGqsxKLmgituxSDEB3sR6zZ3FbVdNGMwgfWkR" ], "script": "base64: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", "height": 1916269, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HKxVZe2Lya1SsV3tyK97is6xoTXwZHj81BVf7JdJ1yKK Next: FigRWRStUtTT4LbXNaRARFTA773XY1bvit8Zu93YyBmK Diff:
Old | New | Differences | |
---|---|---|---|
119 | 119 | then (callerId != holdings) | |
120 | 120 | else false) | |
121 | 121 | then throw("You are not able to put this asset up for sale") | |
122 | - | else [StringEntry((("sale_" + assetId) + "_originalOwner"), callerId), StringEntry((("sale_" + assetId) + "_amount"), toString(amount)), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))] | |
122 | + | else { | |
123 | + | let res = invoke(holdingsAddress, "addOwnerAndAmount", [callerId, assetId, toString(amount)], [AttachedPayment(unit, 0)]) | |
124 | + | if ((res == res)) | |
125 | + | then [StringEntry((("sale_" + assetId) + "_originalOwner"), callerId), StringEntry((("sale_" + assetId) + "_amount"), toString(amount)), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))] | |
126 | + | else throw("Strict value is not equal to itself.") | |
127 | + | } | |
123 | 128 | } | |
124 | 129 | ||
125 | 130 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let COLS = 1024 | |
5 | 5 | ||
6 | 6 | let ROWS = 1024 | |
7 | 7 | ||
8 | 8 | let nftDomain = "https://nft.gridgang.io/" | |
9 | 9 | ||
10 | 10 | let DEBUG = true | |
11 | 11 | ||
12 | 12 | let holdings = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r" | |
13 | 13 | ||
14 | 14 | let holdingsAddress = Address(fromBase58String(holdings)) | |
15 | 15 | ||
16 | 16 | func getAssetName (x,y) = { | |
17 | 17 | let name = ((x + ",") + y) | |
18 | 18 | name | |
19 | 19 | } | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func getDataKeyPrefix (x,y,gen) = { | |
23 | 23 | let name = getAssetName(x, y) | |
24 | 24 | let prefix = ((name + ",") + gen) | |
25 | 25 | prefix | |
26 | 26 | } | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func getXYGenFromName (name) = { | |
30 | 30 | let parts = split(name, ",") | |
31 | 31 | let tuple = $Tuple3(parts[0], parts[1], parts[2]) | |
32 | 32 | tuple | |
33 | 33 | } | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func getDataKeyPrefixFromAssetName (name) = { | |
37 | 37 | let $t0683723 = getXYGenFromName(name) | |
38 | 38 | let x = $t0683723._1 | |
39 | 39 | let y = $t0683723._2 | |
40 | 40 | let gen = $t0683723._3 | |
41 | 41 | let prefix = getDataKeyPrefix(x, y, gen) | |
42 | 42 | prefix | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func claimSquare (x,y,gen,ownerId,transactionId) = { | |
47 | 47 | let resolvedXStr = x | |
48 | 48 | let resolvedYStr = y | |
49 | 49 | let resolvedGenStr = gen | |
50 | 50 | let assetName = getAssetName(resolvedXStr, resolvedYStr) | |
51 | 51 | let assetUrl = ((nftDomain + transactionId) + ".png") | |
52 | 52 | let asset = Issue(((assetName + ",") + resolvedGenStr), assetUrl, 1, 0, false) | |
53 | 53 | let assetId = calculateAssetId(asset) | |
54 | 54 | let dataKeyPrefix = getDataKeyPrefix(resolvedXStr, resolvedYStr, gen) | |
55 | 55 | $Tuple4(asset, assetId, assetUrl, dataKeyPrefix) | |
56 | 56 | } | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | @Callable(i) | |
60 | 60 | func purchase (x,y) = { | |
61 | 61 | let ownerId = toBase58String(i.caller.bytes) | |
62 | 62 | let transactionId = toBase58String(i.transactionId) | |
63 | 63 | let $t015101605 = claimSquare(x, y, "1", ownerId, transactionId) | |
64 | 64 | let asset = $t015101605._1 | |
65 | 65 | let assetId = $t015101605._2 | |
66 | 66 | let assetUrl = $t015101605._3 | |
67 | 67 | let dataKeyPrefix = $t015101605._4 | |
68 | 68 | [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)] | |
69 | 69 | } | |
70 | 70 | ||
71 | 71 | ||
72 | 72 | ||
73 | 73 | @Callable(i) | |
74 | 74 | func autoBuy (x,y) = { | |
75 | 75 | let transactionId = toBase58String(i.transactionId) | |
76 | 76 | let $t020472143 = claimSquare(x, y, "1", holdings, transactionId) | |
77 | 77 | let asset = $t020472143._1 | |
78 | 78 | let assetId = $t020472143._2 | |
79 | 79 | let assetUrl = $t020472143._3 | |
80 | 80 | let dataKeyPrefix = $t020472143._4 | |
81 | 81 | let assetIdStr = toBase58String(assetId) | |
82 | 82 | [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), holdings), StringEntry((("sale_" + assetIdStr) + "_originalOwner"), holdings), IntegerEntry((("sale_" + assetIdStr) + "_amount"), 2), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)] | |
83 | 83 | } | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | ||
87 | 87 | @Callable(i) | |
88 | 88 | func evolve (x,y,gen,ownerId) = { | |
89 | 89 | let transactionId = toBase58String(i.transactionId) | |
90 | 90 | let $t028732968 = claimSquare(x, y, gen, ownerId, transactionId) | |
91 | 91 | let asset = $t028732968._1 | |
92 | 92 | let assetId = $t028732968._2 | |
93 | 93 | let assetUrl = $t028732968._3 | |
94 | 94 | let dataKeyPrefix = $t028732968._4 | |
95 | 95 | [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)] | |
96 | 96 | } | |
97 | 97 | ||
98 | 98 | ||
99 | 99 | ||
100 | 100 | @Callable(i) | |
101 | 101 | func putForSale (assetId,amount) = { | |
102 | 102 | let callerId = toBase58String(i.caller.bytes) | |
103 | 103 | let assetData = match assetInfo(fromBase58String(assetId)) { | |
104 | 104 | case ass: Asset => | |
105 | 105 | ass | |
106 | 106 | case _ => | |
107 | 107 | throw("Asset not found") | |
108 | 108 | } | |
109 | 109 | let dataPrefix = getDataKeyPrefixFromAssetName(assetData.name) | |
110 | 110 | let ownerId = match getString(this, (dataPrefix + "_owner")) { | |
111 | 111 | case s: String => | |
112 | 112 | s | |
113 | 113 | case _ => | |
114 | 114 | throw("Owner not found in data") | |
115 | 115 | } | |
116 | 116 | if ((1 > amount)) | |
117 | 117 | then throw("Original owner not found ") | |
118 | 118 | else if (if ((callerId != ownerId)) | |
119 | 119 | then (callerId != holdings) | |
120 | 120 | else false) | |
121 | 121 | then throw("You are not able to put this asset up for sale") | |
122 | - | else [StringEntry((("sale_" + assetId) + "_originalOwner"), callerId), StringEntry((("sale_" + assetId) + "_amount"), toString(amount)), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))] | |
122 | + | else { | |
123 | + | let res = invoke(holdingsAddress, "addOwnerAndAmount", [callerId, assetId, toString(amount)], [AttachedPayment(unit, 0)]) | |
124 | + | if ((res == res)) | |
125 | + | then [StringEntry((("sale_" + assetId) + "_originalOwner"), callerId), StringEntry((("sale_" + assetId) + "_amount"), toString(amount)), ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))] | |
126 | + | else throw("Strict value is not equal to itself.") | |
127 | + | } | |
123 | 128 | } | |
124 | 129 | ||
125 | 130 | ||
126 | 131 | @Verifier(tx) | |
127 | 132 | func verify () = true | |
128 | 133 |
github/deemru/w8io/169f3d6 31.62 ms ◑