tx · C3u7eSPBMjRRXmuBTaGQpsPTuzh7bajo9pbk9KMZ9CqV

3N5BB6iE58rujeTEkymeLNcdsYF4f6iKoxr:  -0.01400000 Waves

2022.03.30 15:07 [1986632] smart account 3N5BB6iE58rujeTEkymeLNcdsYF4f6iKoxr > SELF 0.00000000 Waves

{ "type": 13, "id": "C3u7eSPBMjRRXmuBTaGQpsPTuzh7bajo9pbk9KMZ9CqV", "fee": 1400000, "feeAssetId": null, "timestamp": 1648642063969, "version": 2, "chainId": 84, "sender": "3N5BB6iE58rujeTEkymeLNcdsYF4f6iKoxr", "senderPublicKey": "EtZZHS4uqNXY5WPneZ8jY2aA95peXwthJVLzAMxMp379", "proofs": [ "3t6PudJ8vtAe58qNeiwUHVLBQhpckQc5wPkGbcoVgBQsTcUkAjK8wwQbJDDdK2zgmttQpcNkE7fC4zB71qFr4UoC" ], "script": "base64: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bAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAlrZXlTdGF0dXMAAAABBQAAAAdhc3NldElkCQEAAAAQdmVyaWZpZWRUb1N0YXR1cwAAAAEFAAAACHZlcmlmaWVkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACXNldEFkbWlucwAAAAEAAAAMYWRtaW5QdWJLZXlzBAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlBZG1pblB1YktleXMAAAAACQAEuQAAAAIFAAAADGFkbWluUHViS2V5cwUAAAADU0VQBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5qFXlFQ==", "height": 1986632, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9E2sHVZ2co5UFfwXF8k4a4QGfq9m5uCGiqFjntg8Bihd Next: EkMZZLkUaGoDBV6t3FsxRLdybhLoWFGopBezN1P96oCQ Diff:
OldNewDifferences
9797 then {
9898 let isCreatedNow = !(isCreated(assetId))
9999 if ((isCreatedNow == isCreatedNow))
100- then $Tuple2([BooleanEntry(keyCreated(assetId), true), StringEntry(keyTicker(assetId), ticker), StringEntry(keyLogo(assetId), logo), IntegerEntry(keyStatus(assetId), verifiedToStatus(verified))], isCreatedNow)
100+ then {
101+ let setLogoActions = if ((logo == ""))
102+ then nil
103+ else [StringEntry(keyLogo(assetId), logo)]
104+ $Tuple2(([BooleanEntry(keyCreated(assetId), true), StringEntry(keyTicker(assetId), ticker), IntegerEntry(keyStatus(assetId), verifiedToStatus(verified))] ++ setLogoActions), isCreatedNow)
105+ }
101106 else throw("Strict value is not equal to itself.")
102107 }
103108 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 let EMPTY = ""
77
88 func throwPD () = throw("Permission denied")
99
1010
1111 func throwNoAsset () = throw("Asset doesn't exists")
1212
1313
1414 func keyManagerPublicKey () = "%s__managerPublicKey"
1515
1616
1717 func keyPendingManagerPublicKey () = "%s__pendingManagerPublicKey"
1818
1919
2020 func keyAdminPubKeys () = "%s__adminPubKeys"
2121
2222
2323 func keyCreated (assetId) = (("created_<" + assetId) + ">")
2424
2525
2626 func keyLogo (assetId) = (("logo_<" + assetId) + ">")
2727
2828
2929 func keyTicker (assetId) = (("ticker_<" + assetId) + ">")
3030
3131
3232 func keyStatus (assetId) = (("status_<" + assetId) + ">")
3333
3434
3535 func managerPublicKeyOrUnit () = match getString(keyManagerPublicKey()) {
3636 case s: String =>
3737 fromBase58String(s)
3838 case _: Unit =>
3939 unit
4040 case _ =>
4141 throw("Match error")
4242 }
4343
4444
4545 func pendingManagerPublicKeyOrUnit () = match getString(keyPendingManagerPublicKey()) {
4646 case s: String =>
4747 fromBase58String(s)
4848 case _: Unit =>
4949 unit
5050 case _ =>
5151 throw("Match error")
5252 }
5353
5454
5555 func mustManager (i) = match managerPublicKeyOrUnit() {
5656 case pk: ByteVector =>
5757 if ((i.callerPublicKey == pk))
5858 then true
5959 else throwPD()
6060 case _: Unit =>
6161 if ((i.caller == this))
6262 then true
6363 else throwPD()
6464 case _ =>
6565 throw("Match error")
6666 }
6767
6868
6969 func mustAdmin (i) = {
7070 let adminPKs = split(valueOrElse(getString(keyAdminPubKeys()), EMPTY), SEP)
7171 if (containsElement(adminPKs, toBase58String(i.callerPublicKey)))
7272 then true
7373 else {
7474 let isManager = mustManager(i)
7575 if ((isManager == isManager))
7676 then true
7777 else throw("Strict value is not equal to itself.")
7878 }
7979 }
8080
8181
8282 func isCreated (assetId) = valueOrElse(getBoolean(keyCreated(assetId)), false)
8383
8484
8585 func verifiedToStatus (verified) = if (verified)
8686 then 2
8787 else 0
8888
8989
9090 @Callable(i)
9191 func createOrUpdate (assetId,ticker,logo,verified) = {
9292 let checkCaller = mustAdmin(i)
9393 if ((checkCaller == checkCaller))
9494 then {
9595 let checkAssetId = valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "Invalid asset ID")
9696 if ((checkAssetId == checkAssetId))
9797 then {
9898 let isCreatedNow = !(isCreated(assetId))
9999 if ((isCreatedNow == isCreatedNow))
100- then $Tuple2([BooleanEntry(keyCreated(assetId), true), StringEntry(keyTicker(assetId), ticker), StringEntry(keyLogo(assetId), logo), IntegerEntry(keyStatus(assetId), verifiedToStatus(verified))], isCreatedNow)
100+ then {
101+ let setLogoActions = if ((logo == ""))
102+ then nil
103+ else [StringEntry(keyLogo(assetId), logo)]
104+ $Tuple2(([BooleanEntry(keyCreated(assetId), true), StringEntry(keyTicker(assetId), ticker), IntegerEntry(keyStatus(assetId), verifiedToStatus(verified))] ++ setLogoActions), isCreatedNow)
105+ }
101106 else throw("Strict value is not equal to itself.")
102107 }
103108 else throw("Strict value is not equal to itself.")
104109 }
105110 else throw("Strict value is not equal to itself.")
106111 }
107112
108113
109114
110115 @Callable(i)
111116 func setTicker (assetId,ticker) = {
112117 let checks = [mustAdmin(i), if (isCreated(assetId))
113118 then true
114119 else throwNoAsset()]
115120 if ((checks == checks))
116121 then [StringEntry(keyTicker(assetId), ticker)]
117122 else throw("Strict value is not equal to itself.")
118123 }
119124
120125
121126
122127 @Callable(i)
123128 func setLogo (assetId,logo) = {
124129 let checks = [mustAdmin(i), if (isCreated(assetId))
125130 then true
126131 else throwNoAsset()]
127132 if ((checks == checks))
128133 then [StringEntry(keyLogo(assetId), logo)]
129134 else throw("Strict value is not equal to itself.")
130135 }
131136
132137
133138
134139 @Callable(i)
135140 func setVerified (assetId,verified) = {
136141 let checks = [mustAdmin(i), if (isCreated(assetId))
137142 then true
138143 else throwNoAsset()]
139144 if ((checks == checks))
140145 then [IntegerEntry(keyStatus(assetId), verifiedToStatus(verified))]
141146 else throw("Strict value is not equal to itself.")
142147 }
143148
144149
145150
146151 @Callable(i)
147152 func setAdmins (adminPubKeys) = {
148153 let checkCaller = mustManager(i)
149154 if ((checkCaller == checkCaller))
150155 then [StringEntry(keyAdminPubKeys(), makeString(adminPubKeys, SEP))]
151156 else throw("Strict value is not equal to itself.")
152157 }
153158
154159
155160
156161 @Callable(i)
157162 func setManager (pendingManagerPublicKey) = {
158163 let checkCaller = mustManager(i)
159164 if ((checkCaller == checkCaller))
160165 then {
161166 let checkManagerPublicKey = fromBase58String(pendingManagerPublicKey)
162167 if ((checkManagerPublicKey == checkManagerPublicKey))
163168 then [StringEntry(keyPendingManagerPublicKey(), pendingManagerPublicKey)]
164169 else throw("Strict value is not equal to itself.")
165170 }
166171 else throw("Strict value is not equal to itself.")
167172 }
168173
169174
170175
171176 @Callable(i)
172177 func confirmManager () = {
173178 let pm = pendingManagerPublicKeyOrUnit()
174179 let hasPM = if (isDefined(pm))
175180 then true
176181 else throw("No pending manager")
177182 if ((hasPM == hasPM))
178183 then {
179184 let checkPM = if ((i.callerPublicKey == value(pm)))
180185 then true
181186 else throw("You are not pending manager")
182187 if ((checkPM == checkPM))
183188 then [StringEntry(keyManagerPublicKey(), toBase58String(value(pm))), DeleteEntry(keyPendingManagerPublicKey())]
184189 else throw("Strict value is not equal to itself.")
185190 }
186191 else throw("Strict value is not equal to itself.")
187192 }
188193
189194
190195 @Verifier(tx)
191196 func verify () = {
192197 let targetPublicKey = match managerPublicKeyOrUnit() {
193198 case pk: ByteVector =>
194199 pk
195200 case _: Unit =>
196201 tx.senderPublicKey
197202 case _ =>
198203 throw("Match error")
199204 }
200205 sigVerify(tx.bodyBytes, tx.proofs[0], targetPublicKey)
201206 }
202207

github/deemru/w8io/873ac7e 
42.38 ms