tx · Ew4q9KZXahkkyu6ryMVxVCGWy3pumEtPVGkoyJQ7ohpY

3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL:  -0.04000000 Waves

2022.04.20 15:43 [2016877] smart account 3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL > SELF 0.00000000 Waves

{ "type": 13, "id": "Ew4q9KZXahkkyu6ryMVxVCGWy3pumEtPVGkoyJQ7ohpY", "fee": 4000000, "feeAssetId": null, "timestamp": 1650458582505, "version": 2, "chainId": 84, "sender": "3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL", "senderPublicKey": "G6aSmaqLJ4p7jzm7BnQcZuqa2NRRLVtzqdYNjYErnEZZ", "proofs": [ "5qejGBeJMaHrs4TimK5H1yZViUvehexybJax6ujTBsjWkTEHrAvSANgkTESt3SgRqf8HXiHA97fHWqbBMGokFxLT" ], "script": "base64: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AQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJ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", "height": 2016877, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HSVG75L6UBtr3LSeJmNVcigC1AgziJ3mMCmpn86Dt2tR Next: FxUFGsw1FwwuA9TEjrbyEDnpo4CLPca9tbDKrBHmhHGy Diff:
OldNewDifferences
6363 func getTransactionEntries (prefix,assetId,asset,owner,gen) = [StringEntry((prefix + "_assetId"), assetId), StringEntry((prefix + "_asset"), asset), StringEntry((prefix + "_owner"), owner), StringEntry((prefix + "_gen"), gen)]
6464
6565
66+func burnFold (accum,next) = {
67+ let resolvedNext = match next {
68+ case _: Unit =>
69+ "unset"
70+ case val: String =>
71+ val
72+ case _ =>
73+ throw("Match error")
74+ }
75+ if ((resolvedNext == "unset"))
76+ then accum
77+ else {
78+ let assetId = match getString(this, (resolvedNext + "_assetId")) {
79+ case _: Unit =>
80+ "unset"
81+ case val: String =>
82+ val
83+ case _ =>
84+ throw("Match error")
85+ }
86+ if ((assetId == "unset"))
87+ then accum
88+ else (accum ++ [Burn(fromBase58String(assetId), 1)])
89+ }
90+ }
91+
92+
6693 @Callable(i)
6794 func purchase (x,y,userText) = {
6895 let prefix = getDataKeyPrefix(x, y)
80107 else {
81108 let ownerId = toBase58String(i.caller.bytes)
82109 let transactionId = toBase58String(i.transactionId)
83- let $t023862481 = claimSquare(x, y, "1", ownerId, transactionId)
84- let asset = $t023862481._1
85- let assetId = $t023862481._2
86- let assetUrl = $t023862481._3
87- let dataKeyPrefix = $t023862481._4
110+ let $t028612956 = claimSquare(x, y, "1", ownerId, transactionId)
111+ let asset = $t028612956._1
112+ let assetId = $t028612956._2
113+ let assetUrl = $t028612956._3
114+ let dataKeyPrefix = $t028612956._4
88115 (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, "1") ++ [asset, StringEntry((ownerId + "_handle"), userText), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)])
89116 }
90117 }
100127 then throw("This can only be triggering internally")
101128 else {
102129 let transactionId = toBase58String(i.transactionId)
103- let $t030163112 = claimSquare(x, y, "1", holdings, transactionId)
104- let asset = $t030163112._1
105- let assetId = $t030163112._2
106- let assetUrl = $t030163112._3
107- let dataKeyPrefix = $t030163112._4
130+ let $t034913587 = claimSquare(x, y, "1", holdings, transactionId)
131+ let asset = $t034913587._1
132+ let assetId = $t034913587._2
133+ let assetUrl = $t034913587._3
134+ let dataKeyPrefix = $t034913587._4
108135 let assetIdStr = toBase58String(assetId)
109136 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [holdings, assetIdStr, 3], [AttachedPayment(unit, 0)])
110137 if ((res == res))
116143
117144
118145 @Callable(i)
119-func evolve (x,y,gen,ownerId) = {
146+func evolve (x,y,gen,ownerId,coordsToBurn) = {
120147 let callerId = toBase58String(i.caller.bytes)
121148 if ((callerId != holdings))
122149 then throw("This can only be triggering internally")
123150 else {
124151 let transactionId = toBase58String(i.transactionId)
125- let $t037683863 = claimSquare(x, y, gen, ownerId, transactionId)
126- let asset = $t037683863._1
127- let assetId = $t037683863._2
128- let assetUrl = $t037683863._3
129- let dataKeyPrefix = $t037683863._4
130- (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
152+ let $t042654655 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042654655._1
154+ let assetId = $t042654655._2
155+ let assetUrl = $t042654655._3
156+ let dataKeyPrefix = $t042654655._4
157+ let burnTransactions = {
158+ let $l = split(coordsToBurn, "|")
159+ let $s = size($l)
160+ let $acc0 = nil
161+ func $f0_1 ($a,$i) = if (($i >= $s))
162+ then $a
163+ else burnFold($a, $l[$i])
164+
165+ func $f0_2 ($a,$i) = if (($i >= $s))
166+ then $a
167+ else throw("List size exceeds 110")
168+
169+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110)
170+ }
171+ ((burnTransactions ++ getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen)) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
131172 }
132173 }
133174
190231 then throw("This can only be triggering internally")
191232 else {
192233 let transactionId = toBase58String(i.transactionId)
193- let $t057445849 = claimSquare(x, y, "1", desinationAddress, transactionId)
194- let asset = $t057445849._1
195- let assetId = $t057445849._2
196- let assetUrl = $t057445849._3
197- let dataKeyPrefix = $t057445849._4
234+ let $t066346739 = claimSquare(x, y, "1", desinationAddress, transactionId)
235+ let asset = $t066346739._1
236+ let assetId = $t066346739._2
237+ let assetUrl = $t066346739._3
238+ let dataKeyPrefix = $t066346739._4
198239 let assetIdStr = toBase58String(assetId)
199240 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
200241 }
211252 }
212253
213254
214-
215-@Callable(i)
216-func burnTest (assetId) = [Burn(fromBase58String(assetId), 1)]
217-
218-
219255 @Verifier(tx)
220256 func verify () = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
221257 then true
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
1010 let addOwnerAndAmountFunc = "addOwnerAndAmount"
1111
1212 let DEBUG = true
1313
1414 let minForSaleWavlets = 100000000
1515
1616 let minPurchasePrice = 1000000
1717
1818 let dapp = "3N7J6mMMkjVViBREz9y53JmcX7r7KZRXQpL"
1919
2020 let dappAddress = Address(fromBase58String(dapp))
2121
2222 let holdingsPublicKey = "AyAwWbMPM7a4VYkn1bhEBftC5WZgfvUXgrYDe98mvLsv"
2323
2424 let holdings = "3MwPsLy9F1mUQrdP37sCAKvHuE5HvPE674Y"
2525
2626 let holdingsAddress = Address(fromBase58String(holdings))
2727
2828 func getAssetName (x,y) = ((x + ",") + y)
2929
3030
3131 func getDataKeyPrefix (x,y) = getAssetName(x, y)
3232
3333
3434 func getXYGenFromName (name) = {
3535 let parts = split(name, ",")
3636 let tuple = $Tuple2(parts[0], parts[1])
3737 tuple
3838 }
3939
4040
4141 func getDataKeyPrefixFromAssetName (name) = {
4242 let $t0906941 = getXYGenFromName(name)
4343 let x = $t0906941._1
4444 let y = $t0906941._2
4545 let prefix = getDataKeyPrefix(x, y)
4646 prefix
4747 }
4848
4949
5050 func claimSquare (x,y,gen,ownerId,transactionId) = {
5151 let resolvedXStr = x
5252 let resolvedYStr = y
5353 let resolvedGenStr = gen
5454 let assetName = getAssetName(resolvedXStr, resolvedYStr)
5555 let assetUrl = ((nftDomain + transactionId) + ".png")
5656 let asset = Issue(assetName, assetUrl, 1, 0, false)
5757 let assetId = calculateAssetId(asset)
5858 let dataKeyPrefix = getDataKeyPrefix(resolvedXStr, resolvedYStr)
5959 $Tuple4(asset, assetId, assetUrl, dataKeyPrefix)
6060 }
6161
6262
6363 func getTransactionEntries (prefix,assetId,asset,owner,gen) = [StringEntry((prefix + "_assetId"), assetId), StringEntry((prefix + "_asset"), asset), StringEntry((prefix + "_owner"), owner), StringEntry((prefix + "_gen"), gen)]
6464
6565
66+func burnFold (accum,next) = {
67+ let resolvedNext = match next {
68+ case _: Unit =>
69+ "unset"
70+ case val: String =>
71+ val
72+ case _ =>
73+ throw("Match error")
74+ }
75+ if ((resolvedNext == "unset"))
76+ then accum
77+ else {
78+ let assetId = match getString(this, (resolvedNext + "_assetId")) {
79+ case _: Unit =>
80+ "unset"
81+ case val: String =>
82+ val
83+ case _ =>
84+ throw("Match error")
85+ }
86+ if ((assetId == "unset"))
87+ then accum
88+ else (accum ++ [Burn(fromBase58String(assetId), 1)])
89+ }
90+ }
91+
92+
6693 @Callable(i)
6794 func purchase (x,y,userText) = {
6895 let prefix = getDataKeyPrefix(x, y)
6996 let paymentAmount = valueOrElse(i.payments[0].amount, 0)
7097 let existingAssetId = match getString(this, (prefix + "_assetId")) {
7198 case _: Unit =>
7299 "unset"
73100 case err: String =>
74101 throw("This square has already been purchased")
75102 case _ =>
76103 throw("Match error")
77104 }
78105 if ((minPurchasePrice > paymentAmount))
79106 then throw((("You need to send at least " + toString(minPurchasePrice)) + "WAVLETS to purchase a square"))
80107 else {
81108 let ownerId = toBase58String(i.caller.bytes)
82109 let transactionId = toBase58String(i.transactionId)
83- let $t023862481 = claimSquare(x, y, "1", ownerId, transactionId)
84- let asset = $t023862481._1
85- let assetId = $t023862481._2
86- let assetUrl = $t023862481._3
87- let dataKeyPrefix = $t023862481._4
110+ let $t028612956 = claimSquare(x, y, "1", ownerId, transactionId)
111+ let asset = $t028612956._1
112+ let assetId = $t028612956._2
113+ let assetUrl = $t028612956._3
114+ let dataKeyPrefix = $t028612956._4
88115 (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, "1") ++ [asset, StringEntry((ownerId + "_handle"), userText), StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(i.caller, 1, assetId)])
89116 }
90117 }
91118
92119
93120
94121 @Callable(i)
95122 func autoBuy (x,y) = {
96123 let callerId = toBase58String(i.caller.bytes)
97124 if (if ((callerId != holdings))
98125 then (callerId != dapp)
99126 else false)
100127 then throw("This can only be triggering internally")
101128 else {
102129 let transactionId = toBase58String(i.transactionId)
103- let $t030163112 = claimSquare(x, y, "1", holdings, transactionId)
104- let asset = $t030163112._1
105- let assetId = $t030163112._2
106- let assetUrl = $t030163112._3
107- let dataKeyPrefix = $t030163112._4
130+ let $t034913587 = claimSquare(x, y, "1", holdings, transactionId)
131+ let asset = $t034913587._1
132+ let assetId = $t034913587._2
133+ let assetUrl = $t034913587._3
134+ let dataKeyPrefix = $t034913587._4
108135 let assetIdStr = toBase58String(assetId)
109136 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [holdings, assetIdStr, 3], [AttachedPayment(unit, 0)])
110137 if ((res == res))
111138 then (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, holdings, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(holdingsAddress, 1, assetId)])
112139 else throw("Strict value is not equal to itself.")
113140 }
114141 }
115142
116143
117144
118145 @Callable(i)
119-func evolve (x,y,gen,ownerId) = {
146+func evolve (x,y,gen,ownerId,coordsToBurn) = {
120147 let callerId = toBase58String(i.caller.bytes)
121148 if ((callerId != holdings))
122149 then throw("This can only be triggering internally")
123150 else {
124151 let transactionId = toBase58String(i.transactionId)
125- let $t037683863 = claimSquare(x, y, gen, ownerId, transactionId)
126- let asset = $t037683863._1
127- let assetId = $t037683863._2
128- let assetUrl = $t037683863._3
129- let dataKeyPrefix = $t037683863._4
130- (getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
152+ let $t042654655 = claimSquare(x, y, gen, ownerId, transactionId)
153+ let asset = $t042654655._1
154+ let assetId = $t042654655._2
155+ let assetUrl = $t042654655._3
156+ let dataKeyPrefix = $t042654655._4
157+ let burnTransactions = {
158+ let $l = split(coordsToBurn, "|")
159+ let $s = size($l)
160+ let $acc0 = nil
161+ func $f0_1 ($a,$i) = if (($i >= $s))
162+ then $a
163+ else burnFold($a, $l[$i])
164+
165+ func $f0_2 ($a,$i) = if (($i >= $s))
166+ then $a
167+ else throw("List size exceeds 110")
168+
169+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110)
170+ }
171+ ((burnTransactions ++ getTransactionEntries(dataKeyPrefix, toBase58String(assetId), assetUrl, ownerId, gen)) ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(ownerId)), 1, assetId)])
131172 }
132173 }
133174
134175
135176
136177 @Callable(i)
137178 func putForSale (assetId,amount) = {
138179 let callerId = toBase58String(i.caller.bytes)
139180 let assetData = match assetInfo(fromBase58String(assetId)) {
140181 case ass: Asset =>
141182 ass
142183 case _ =>
143184 throw("Asset not found")
144185 }
145186 let dataPrefix = getDataKeyPrefixFromAssetName(assetData.name)
146187 let ownerId = match getString(this, (dataPrefix + "_owner")) {
147188 case s: String =>
148189 s
149190 case _ =>
150191 throw("Owner not found in data")
151192 }
152193 if ((minForSaleWavlets > amount))
153194 then throw("Amount needs to be more than 1 wave")
154195 else if (if ((callerId != ownerId))
155196 then (callerId != holdings)
156197 else false)
157198 then throw("You are not able to put this asset up for sale")
158199 else {
159200 let res = invoke(holdingsAddress, addOwnerAndAmountFunc, [callerId, assetId, amount], [AttachedPayment(unit, 0)])
160201 if ((res == res))
161202 then [ScriptTransfer(holdingsAddress, 1, fromBase58String(assetId))]
162203 else throw("Strict value is not equal to itself.")
163204 }
164205 }
165206
166207
167208
168209 @Callable(i)
169210 func finalizeSale (assetId,ownerId,userText) = {
170211 let callerId = toBase58String(i.caller.bytes)
171212 if ((callerId != holdings))
172213 then throw("This can only be triggering internally")
173214 else {
174215 let prefix = match assetInfo(fromBase58String(assetId)) {
175216 case asset: Asset =>
176217 asset.name
177218 case _ =>
178219 throw("Can't find asset")
179220 }
180221 [StringEntry((prefix + "_owner"), ownerId), StringEntry((ownerId + "_handle"), userText)]
181222 }
182223 }
183224
184225
185226
186227 @Callable(i)
187228 func adminPromotionPurchase (x,y,desinationAddress) = {
188229 let callerId = toBase58String(i.caller.bytes)
189230 if ((callerId != holdings))
190231 then throw("This can only be triggering internally")
191232 else {
192233 let transactionId = toBase58String(i.transactionId)
193- let $t057445849 = claimSquare(x, y, "1", desinationAddress, transactionId)
194- let asset = $t057445849._1
195- let assetId = $t057445849._2
196- let assetUrl = $t057445849._3
197- let dataKeyPrefix = $t057445849._4
234+ let $t066346739 = claimSquare(x, y, "1", desinationAddress, transactionId)
235+ let asset = $t066346739._1
236+ let assetId = $t066346739._2
237+ let assetUrl = $t066346739._3
238+ let dataKeyPrefix = $t066346739._4
198239 let assetIdStr = toBase58String(assetId)
199240 (getTransactionEntries(dataKeyPrefix, assetIdStr, assetUrl, desinationAddress, "1") ++ [asset, StringEntry(transactionId, dataKeyPrefix), ScriptTransfer(Address(fromBase58String(desinationAddress)), 1, assetId)])
200241 }
201242 }
202243
203244
204245
205246 @Callable(i)
206247 func adminSetHandle (ownerId,handle) = {
207248 let callerId = toBase58String(i.caller.bytes)
208249 if ((callerId != holdings))
209250 then throw("This can only be triggering internally")
210251 else [StringEntry((ownerId + "_handle"), handle)]
211252 }
212253
213254
214-
215-@Callable(i)
216-func burnTest (assetId) = [Burn(fromBase58String(assetId), 1)]
217-
218-
219255 @Verifier(tx)
220256 func verify () = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
221257 then true
222258 else (addressFromPublicKey(tx.senderPublicKey) == holdingsAddress))
223259 then true
224260 else (addressFromPublicKey(tx.senderPublicKey) == dappAddress)
225261

github/deemru/w8io/026f985 
57.28 ms