tx · 2nzBJFAReKVrXCQtCQ4CswmwPDFHYphJVjTw6xrVj6ge

3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu:  -0.04000000 Waves

2022.03.29 17:47 [1985357] smart account 3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu > SELF 0.00000000 Waves

{ "type": 13, "id": "2nzBJFAReKVrXCQtCQ4CswmwPDFHYphJVjTw6xrVj6ge", "fee": 4000000, "feeAssetId": null, "timestamp": 1648565283482, "version": 2, "chainId": 84, "sender": "3N4vqUXWw8tf23LDWDbSEpJZH6dent3ETFu", "senderPublicKey": "D4v2S9mjah7eEEmuQVBNd4WipC3scs8V4PjuDBweWatE", "proofs": [ "57iUhBeRTqsrrAeaF6TCzkuRX5PvbQxzA6wbn8aMHGeDcJvcCoZ25ZVrE1Kj8kU9J92XKupdCVYnNRccqiJpnMq3" ], "script": "base64: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", "height": 1985357, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ZqHEYjN851yAaYFbjVrAQETGjHgvfiSgdsHmdzmuwWx Next: 46N3aJoL2utUivzVQNgRAd7BGcf2rXDoubXPGJRYr1U4 Diff:
OldNewDifferences
77
88 let nftDomain = "https://nft.gridgang.io/"
99
10+let addOwnerAndAmountFunc = "addOwnerAndAmount"
11+
1012 let DEBUG = true
1113
1214 let minForSaleWavlets = 100000000
1315
1416 let minPurchasePrice = 1000000
17+
18+let holdingsPublicKey = "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY"
1519
1620 let holdings = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
1721
3842
3943
4044 func getDataKeyPrefixFromAssetName (name) = {
41- let $t0783823 = getXYGenFromName(name)
42- let x = $t0783823._1
43- let y = $t0783823._2
44- let gen = $t0783823._3
45+ let $t0902942 = getXYGenFromName(name)
46+ let x = $t0902942._1
47+ let y = $t0902942._2
48+ let gen = $t0902942._3
4549 let prefix = getDataKeyPrefix(x, y, gen)
4650 prefix
4751 }
7781 else {
7882 let ownerId = toBase58String(i.caller.bytes)
7983 let transactionId = toBase58String(i.transactionId)
80- let $t019972092 = claimSquare(x, y, "1", ownerId, transactionId)
81- let asset = $t019972092._1
82- let assetId = $t019972092._2
83- let assetUrl = $t019972092._3
84- let dataKeyPrefix = $t019972092._4
84+ let $t021162211 = claimSquare(x, y, "1", ownerId, transactionId)
85+ let asset = $t021162211._1
86+ let assetId = $t021162211._2
87+ let assetUrl = $t021162211._3
88+ let dataKeyPrefix = $t021162211._4
8589 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
8690 }
8791 }
9599 then throw("This can only be triggering internally")
96100 else {
97101 let transactionId = toBase58String(i.transactionId)
98- let $t026482744 = claimSquare(x, y, "1", holdings, transactionId)
99- let asset = $t026482744._1
100- let assetId = $t026482744._2
101- let assetUrl = $t026482744._3
102- let dataKeyPrefix = $t026482744._4
102+ let $t027672863 = claimSquare(x, y, "1", holdings, transactionId)
103+ let asset = $t027672863._1
104+ let assetId = $t027672863._2
105+ let assetUrl = $t027672863._3
106+ let dataKeyPrefix = $t027672863._4
103107 let assetIdStr = toBase58String(assetId)
104- let res = invoke(holdingsAddress, "addOwnerAndAmount", [holdings, assetId, 3], [AttachedPayment(unit, 0)])
108+ let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [holdings, assetId, 3], [AttachedPayment(unit, 0)])
105109 if ((res == res))
106110 then [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), holdings), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)]
107111 else throw("Strict value is not equal to itself.")
117121 then throw("This can only be triggering internally")
118122 else {
119123 let transactionId = toBase58String(i.transactionId)
120- let $t034953600 = claimSquare(x, y, "1", desinationAddress, transactionId)
121- let asset = $t034953600._1
122- let assetId = $t034953600._2
123- let assetUrl = $t034953600._3
124- let dataKeyPrefix = $t034953600._4
124+ let $t036163721 = claimSquare(x, y, "1", desinationAddress, transactionId)
125+ let asset = $t036163721._1
126+ let assetId = $t036163721._2
127+ let assetUrl = $t036163721._3
128+ let dataKeyPrefix = $t036163721._4
125129 let assetIdStr = toBase58String(assetId)
126130 [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), desinationAddress), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)]
127131 }
136140 then throw("This can only be triggering internally")
137141 else {
138142 let transactionId = toBase58String(i.transactionId)
139- let $t042634358 = claimSquare(x, y, gen, ownerId, transactionId)
140- let asset = $t042634358._1
141- let assetId = $t042634358._2
142- let assetUrl = $t042634358._3
143- let dataKeyPrefix = $t042634358._4
143+ let $t043844479 = claimSquare(x, y, gen, ownerId, transactionId)
144+ let asset = $t043844479._1
145+ let assetId = $t043844479._2
146+ let assetUrl = $t043844479._3
147+ let dataKeyPrefix = $t043844479._4
144148 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)]
145149 }
146150 }
170174 else false)
171175 then throw("You are not able to put this asset up for sale")
172176 else {
173- let res = invoke(holdingsAddress, "addOwnerAndAmount", [callerId, assetId, amount], [AttachedPayment(unit, 0)])
177+ let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [callerId, assetId, amount], [AttachedPayment(unit, 0)])
174178 if ((res == res))
175179 then [ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
176180 else throw("Strict value is not equal to itself.")
179183
180184
181185 @Verifier(tx)
182-func verify () = true
186+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
187+ then true
188+ else (addressFromPublicKey(tx.senderPublicKey) == holdingsAddress)
183189
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.io/"
99
10+let addOwnerAndAmountFunc = "addOwnerAndAmount"
11+
1012 let DEBUG = true
1113
1214 let minForSaleWavlets = 100000000
1315
1416 let minPurchasePrice = 1000000
17+
18+let holdingsPublicKey = "GUHw1jkstNWTs9SX1KM3pMtq9HXjupvxiTd1urNhNoyY"
1519
1620 let holdings = "3N9R7u449Z1b76QpJp9u3gzPjMYQYnp3V7r"
1721
1822 let holdingsAddress = Address(fromBase58String(holdings))
1923
2024 func getAssetName (x,y) = {
2125 let name = ((x + ",") + y)
2226 name
2327 }
2428
2529
2630 func getDataKeyPrefix (x,y,gen) = {
2731 let name = getAssetName(x, y)
2832 let prefix = ((name + ",") + gen)
2933 prefix
3034 }
3135
3236
3337 func getXYGenFromName (name) = {
3438 let parts = split(name, ",")
3539 let tuple = $Tuple3(parts[0], parts[1], parts[2])
3640 tuple
3741 }
3842
3943
4044 func getDataKeyPrefixFromAssetName (name) = {
41- let $t0783823 = getXYGenFromName(name)
42- let x = $t0783823._1
43- let y = $t0783823._2
44- let gen = $t0783823._3
45+ let $t0902942 = getXYGenFromName(name)
46+ let x = $t0902942._1
47+ let y = $t0902942._2
48+ let gen = $t0902942._3
4549 let prefix = getDataKeyPrefix(x, y, gen)
4650 prefix
4751 }
4852
4953
5054 func claimSquare (x,y,gen,ownerId,transactionId) = {
5155 let resolvedXStr = x
5256 let resolvedYStr = y
5357 let resolvedGenStr = gen
5458 let assetName = getAssetName(resolvedXStr, resolvedYStr)
5559 let assetUrl = ((nftDomain + transactionId) + ".png")
5660 let asset = Issue(((assetName + ",") + resolvedGenStr), assetUrl, 1, 0, false)
5761 let assetId = calculateAssetId(asset)
5862 let dataKeyPrefix = getDataKeyPrefix(resolvedXStr, resolvedYStr, gen)
5963 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
6064 }
6165
6266
6367 @Callable(i)
6468 func purchase (x,y) = {
6569 let prefix = getDataKeyPrefix(x, y, "1")
6670 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
6771 let existingAssetId = match getString(this, (prefix + "_assetId")) {
6872 case _: Unit =>
6973 "unset"
7074 case err: String =>
7175 throw("This square has already been purchased")
7276 case _ =>
7377 throw("Match error")
7478 }
7579 if ((minPurchasePrice > paymentAmount))
7680 then throw((("You need to send at least " + toString(minPurchasePrice)) + "WAVLETS to purchase a square"))
7781 else {
7882 let ownerId = toBase58String(i.caller.bytes)
7983 let transactionId = toBase58String(i.transactionId)
80- let $t019972092 = claimSquare(x, y, "1", ownerId, transactionId)
81- let asset = $t019972092._1
82- let assetId = $t019972092._2
83- let assetUrl = $t019972092._3
84- let dataKeyPrefix = $t019972092._4
84+ let $t021162211 = claimSquare(x, y, "1", ownerId, transactionId)
85+ let asset = $t021162211._1
86+ let assetId = $t021162211._2
87+ let assetUrl = $t021162211._3
88+ let dataKeyPrefix = $t021162211._4
8589 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)]
8690 }
8791 }
8892
8993
9094
9195 @Callable(i)
9296 func autoBuy (x,y) = {
9397 let callerId = toBase58String(i.caller.bytes)
9498 if ((callerId != holdings))
9599 then throw("This can only be triggering internally")
96100 else {
97101 let transactionId = toBase58String(i.transactionId)
98- let $t026482744 = claimSquare(x, y, "1", holdings, transactionId)
99- let asset = $t026482744._1
100- let assetId = $t026482744._2
101- let assetUrl = $t026482744._3
102- let dataKeyPrefix = $t026482744._4
102+ let $t027672863 = claimSquare(x, y, "1", holdings, transactionId)
103+ let asset = $t027672863._1
104+ let assetId = $t027672863._2
105+ let assetUrl = $t027672863._3
106+ let dataKeyPrefix = $t027672863._4
103107 let assetIdStr = toBase58String(assetId)
104- let res = invoke(holdingsAddress, "addOwnerAndAmount", [holdings, assetId, 3], [AttachedPayment(unit, 0)])
108+ let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [holdings, assetId, 3], [AttachedPayment(unit, 0)])
105109 if ((res == res))
106110 then [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), holdings), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)]
107111 else throw("Strict value is not equal to itself.")
108112 }
109113 }
110114
111115
112116
113117 @Callable(i)
114118 func promotionPurchase (x,y,desinationAddress) = {
115119 let callerId = toBase58String(i.caller.bytes)
116120 if ((callerId != holdings))
117121 then throw("This can only be triggering internally")
118122 else {
119123 let transactionId = toBase58String(i.transactionId)
120- let $t034953600 = claimSquare(x, y, "1", desinationAddress, transactionId)
121- let asset = $t034953600._1
122- let assetId = $t034953600._2
123- let assetUrl = $t034953600._3
124- let dataKeyPrefix = $t034953600._4
124+ let $t036163721 = claimSquare(x, y, "1", desinationAddress, transactionId)
125+ let asset = $t036163721._1
126+ let assetId = $t036163721._2
127+ let assetUrl = $t036163721._3
128+ let dataKeyPrefix = $t036163721._4
125129 let assetIdStr = toBase58String(assetId)
126130 [asset, StringEntry((dataKeyPrefix + "_assetId"), assetIdStr), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), desinationAddress), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)]
127131 }
128132 }
129133
130134
131135
132136 @Callable(i)
133137 func evolve (x,y,gen,ownerId) = {
134138 let callerId = toBase58String(i.caller.bytes)
135139 if ((callerId != holdings))
136140 then throw("This can only be triggering internally")
137141 else {
138142 let transactionId = toBase58String(i.transactionId)
139- let $t042634358 = claimSquare(x, y, gen, ownerId, transactionId)
140- let asset = $t042634358._1
141- let assetId = $t042634358._2
142- let assetUrl = $t042634358._3
143- let dataKeyPrefix = $t042634358._4
143+ let $t043844479 = claimSquare(x, y, gen, ownerId, transactionId)
144+ let asset = $t043844479._1
145+ let assetId = $t043844479._2
146+ let assetUrl = $t043844479._3
147+ let dataKeyPrefix = $t043844479._4
144148 [asset, StringEntry((dataKeyPrefix + "_assetId"), toBase58String(assetId)), StringEntry((dataKeyPrefix + "_asset"), assetUrl), StringEntry((dataKeyPrefix + "_owner"), ownerId), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)]
145149 }
146150 }
147151
148152
149153
150154 @Callable(i)
151155 func putForSale (assetId,amount) = {
152156 let callerId = toBase58String(i.caller.bytes)
153157 let assetData = match assetInfo(fromBase58String(assetId)) {
154158 case ass: Asset =>
155159 ass
156160 case _ =>
157161 throw("Asset not found")
158162 }
159163 let dataPrefix = getDataKeyPrefixFromAssetName(assetData.name)
160164 let ownerId = match getString(this, (dataPrefix + "_owner")) {
161165 case s: String =>
162166 s
163167 case _ =>
164168 throw("Owner not found in data")
165169 }
166170 if ((minForSaleWavlets > amount))
167171 then throw("Amount needs to be more than 1 wave")
168172 else if (if ((callerId != ownerId))
169173 then (callerId != holdings)
170174 else false)
171175 then throw("You are not able to put this asset up for sale")
172176 else {
173- let res = invoke(holdingsAddress, "addOwnerAndAmount", [callerId, assetId, amount], [AttachedPayment(unit, 0)])
177+ let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [callerId, assetId, amount], [AttachedPayment(unit, 0)])
174178 if ((res == res))
175179 then [ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
176180 else throw("Strict value is not equal to itself.")
177181 }
178182 }
179183
180184
181185 @Verifier(tx)
182-func verify () = true
186+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
187+ then true
188+ else (addressFromPublicKey(tx.senderPublicKey) == holdingsAddress)
183189

github/deemru/w8io/873ac7e 
47.16 ms