tx · q77QhRx6WRDfRxjNqWdmVFMMiZ1rYrzYq2SMbuB9ZLc

3P24S1EVZadwzmfKSNWUZyLjjqp5DcHY4hE:  -0.01000000 Waves

2022.11.22 12:03 [3393542] smart account 3P24S1EVZadwzmfKSNWUZyLjjqp5DcHY4hE > SELF 0.00000000 Waves

{ "type": 13, "id": "q77QhRx6WRDfRxjNqWdmVFMMiZ1rYrzYq2SMbuB9ZLc", "fee": 1000000, "feeAssetId": null, "timestamp": 1669107887541, "version": 2, "chainId": 87, "sender": "3P24S1EVZadwzmfKSNWUZyLjjqp5DcHY4hE", "senderPublicKey": "AQwX2ceR4UZa1x7FCpCMBWUnvw71p91YptLtXdV9F1vG", "proofs": [ "3JMwRKs3upRvd8yQ8sQYSUrjGUhwj6QbvpNUnjgf5hMf7LCoJ5Gboi9KUHwT6HWsDo9zXggqhNQbkKmKfLeaYq5N" ], "script": "base64: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Al8yBAAAABFyZWdpc3RyYW50QWRkcmVzcwkBAAAACV9nZXRPd25lcgAAAAEFAAAACWxhc3RMYWJlbAQAAAAPbWF5YmVSZWdpc3RyYW50BAAAAAckbWF0Y2gwBQAAABFyZWdpc3RyYW50QWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAVvd25lcgUAAAAHJG1hdGNoMAkABCYAAAABBQAAAAVvd25lcgUAAAAEdW5pdAQAAAAKcmVnaXN0cmFudAkBAAAABXZhbHVlAAAAAQUAAAAPbWF5YmVSZWdpc3RyYW50BAAAAA5wYXJlbnRSZXNvbHZlcgkBAAAADF9nZXRSZXNvbHZlcgAAAAEFAAAACWxhc3RMYWJlbAQAAAANcGFyZW50Q3JlYXRlZAkBAAAADV9nZXRDcmVhdGVkQXQAAAABBQAAAAlsYXN0TGFiZWwEAAAABW93bmVyBAAAAAckbWF0Y2gwCQEAAAAXX2NhbGxTdXBwb3J0ZWRJbnRlcmZhY2UAAAADBQAAAApyZWdpc3RyYW50AgAAAAhnZXRPd25lcgUAAAAKcmVzdExhYmVscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAVvd25lcgUAAAAHJG1hdGNoMAMJAQAAAA5pc1ZhbGlkQWRkcmVzcwAAAAEFAAAABW93bmVyBQAAAAVvd25lcgUAAAAEdW5pdAUAAAAEdW5pdAQAAAAIcmVzb2x2ZXIEAAAAByRtYXRjaDAJAQAAABdfY2FsbFN1cHBvcnRlZEludGVyZmFjZQAAAAMFAAAACnJlZ2lzdHJhbnQCAAAAC2dldFJlc29sdmVyBQAAAApyZXN0TGFiZWxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAACHJlc29sdmVyBQAAAAckbWF0Y2gwAwkBAAAADmlzVmFsaWRBZGRyZXNzAAAAAQUAAAAIcmVzb2x2ZXIFAAAACHJlc29sdmVyBQAAAAR1bml0BQAAAAR1bml0BAAAAAtuYW1lQ3JlYXRlZAQAAAAHJG1hdGNoMAkBAAAAF19jYWxsU3VwcG9ydGVkSW50ZXJmYWNlAAAAAwUAAAAKcmVnaXN0cmFudAIAAAAOZ2V0TmFtZUNyZWF0ZWQFAAAACnJlc3RMYWJlbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAALbmFtZUNyZWF0ZWQFAAAAByRtYXRjaDADAwkAAGYAAAACBQAAAAtuYW1lQ3JlYXRlZAAAAAAAAAAAAAkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAALbmFtZUNyZWF0ZWQHBQAAAAtuYW1lQ3JlYXRlZAUAAAAEdW5pdAUAAAAEdW5pdAQAAAALbmFtZUV4cGlyZXMEAAAAByRtYXRjaDAJAQAAABdfY2FsbFN1cHBvcnRlZEludGVyZmFjZQAAAAMFAAAACnJlZ2lzdHJhbnQCAAAADmdldE5hbWVFeHBpcmVzBQAAAApyZXN0TGFiZWxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAC25hbWVFeHBpcmVzBQAAAAckbWF0Y2gwAwkAAGYAAAACBQAAAAtuYW1lRXhwaXJlcwAAAAAAAAAAAAUAAAALbmFtZUV4cGlyZXMFAAAABHVuaXQFAAAABHVuaXQEAAAACW5hbWVUb2tlbgQAAAAHJG1hdGNoMAkBAAAAF19jYWxsU3VwcG9ydGVkSW50ZXJmYWNlAAAAAwUAAAAKcmVnaXN0cmFudAIAAAAMZ2V0TmFtZVRva2VuBQAAAApyZXN0TGFiZWxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAACW5hbWVUb2tlbgUAAAAHJG1hdGNoMAUAAAAJbmFtZVRva2VuBQAAAAR1bml0BAAAAAppc1Jvb3ROYW1lAwkAAGYAAAACCQABMQAAAAEFAAAACWxhc3RMYWJlbAAAAAAAAAAAAAkAAAAAAAACCQABMQAAAAEFAAAACnJlc3RMYWJlbHMAAAAAAAAAAAAHAwMFAAAACmlzUm9vdE5hbWUGCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAA9tYXliZVJlZ2lzdHJhbnQJAAUUAAAAAgUAAAADbmlsCQAFFwAAAAUFAAAAEXJlZ2lzdHJhbnRBZGRyZXNzBQAAAA5wYXJlbnRSZXNvbHZlcgUAAAANcGFyZW50Q3JlYXRlZAUAAAAEdW5pdAUAAAAEdW5pdAkABRQAAAACBQAAAANuaWwJAAUXAAAABQUAAAAFb3duZXIFAAAACHJlc29sdmVyBQAAAAtuYW1lQ3JlYXRlZAUAAAALbmFtZUV4cGlyZXMFAAAACW5hbWVUb2tlbgAAAAA9DAHA", "height": 3393542, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C7kHzvLoSnziCSoqXzAq1LYbZbYuuRtdy2wBAEYhF5hm Next: 8qKNsXv23YySz8ZmQwUjZwCc1fRHedbs5AHDs1DpJWwR Diff:
OldNewDifferences
179179 case _ =>
180180 unit
181181 }
182+ let nameToken = match _callSupportedInterface(registrant, "getNameToken", restLabels) {
183+ case nameToken: String =>
184+ nameToken
185+ case _ =>
186+ unit
187+ }
182188 let isRootName = if ((size(lastLabel) > 0))
183189 then (size(restLabels) == 0)
184190 else false
185191 if (if (isRootName)
186192 then true
187193 else !(isDefined(maybeRegistrant)))
188- then $Tuple2(nil, $Tuple4(registrantAddress, parentResolver, parentCreated, unit))
189- else $Tuple2(nil, $Tuple4(owner, resolver, nameCreated, nameExpires))
194+ then $Tuple2(nil, $Tuple5(registrantAddress, parentResolver, parentCreated, unit, unit))
195+ else $Tuple2(nil, $Tuple5(owner, resolver, nameCreated, nameExpires, nameToken))
190196 })
191197
192198
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getStringOrThrow (address,key) = valueOrErrorMessage(getString(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
55
66
77 func getIntegerOrThrow (address,key) = valueOrErrorMessage(getInteger(address, key), ((("Can't read '" + key) + "' at address ") + toString(address)))
88
99
1010 func parseAddressOrThrow (maybeAddress) = valueOrErrorMessage(addressFromString(maybeAddress), (("Can't parse address from '" + maybeAddress) + "'"))
1111
1212
1313 func key_entity (name,pk,property) = ((((name + "_") + pk) + "_") + property)
1414
1515
1616 func key_Name_owner (node) = key_entity("Name", node, "owner")
1717
1818
1919 func key_Name_resolver (node) = key_entity("Name", node, "resolver")
2020
2121
2222 func key_Name_createdAt (node) = key_entity("Name", node, "createdAt")
2323
2424
2525 func _getOwner (node) = getString(this, key_Name_owner(node))
2626
2727
2828 func _setOwner (node,owner) = [StringEntry(key_Name_owner(node), owner)]
2929
3030
3131 func _getResolver (node) = getString(this, key_Name_resolver(node))
3232
3333
3434 func _setResolver (node,resolver) = [StringEntry(key_Name_resolver(node), resolver)]
3535
3636
3737 func _getCreatedAt (node) = getInteger(this, key_Name_createdAt(node))
3838
3939
4040 func _setCreatedAt (node,createdAt) = [IntegerEntry(key_Name_createdAt(node), createdAt)]
4141
4242
4343 func isAdmin (inv) = (inv.caller == this)
4444
4545
4646 func isOwner (inv,node) = (toString(inv.caller) == valueOrElse(_getOwner(node), ""))
4747
4848
4949 func isValidAddress (maybeAddress) = isDefined(addressFromString(maybeAddress))
5050
5151
5252 func _splitLastLabel (name) = {
5353 let labels = split(name, ".")
5454 let lastIndex = (size(labels) - 1)
5555 let lastLabel = labels[lastIndex]
5656 let restLabels = makeString(removeByIndex(labels, lastIndex), ".")
5757 $Tuple2(lastLabel, restLabels)
5858 }
5959
6060
6161 func _callSupportedInterface (registrant,interfaceId,restLabels) = match invoke(registrant, "supportsInterface", [interfaceId], nil) {
6262 case supportsInterface: Boolean =>
6363 if (!(supportsInterface))
6464 then unit
6565 else match invoke(value(registrant), interfaceId, [restLabels], nil) {
6666 case maybeString: String =>
6767 maybeString
6868 case maybeInt: Int =>
6969 maybeInt
7070 case _ =>
7171 unit
7272 }
7373 case _ =>
7474 unit
7575 }
7676
7777
7878 func modifiers (validations) = unit
7979
8080
8181 func onlyAdmin (inv) = if (isAdmin(inv))
8282 then unit
8383 else throw("Permission denied")
8484
8585
8686 func onlyOwner (inv,node) = if (if (isAdmin(inv))
8787 then true
8888 else isOwner(inv, node))
8989 then unit
9090 else throw("Permission denied")
9191
9292
9393 @Callable(inv)
9494 func getOwner (node) = $Tuple2(nil, _getOwner(node))
9595
9696
9797
9898 @Callable(inv)
9999 func setOwner (node,owner) = valueOrElse(modifiers([onlyOwner(inv, node), if (isValidAddress(owner))
100100 then unit
101101 else throw("Owner must be a valid address")]), _setOwner(node, owner))
102102
103103
104104
105105 @Callable(inv)
106106 func getResolver (node) = $Tuple2(nil, _getResolver(node))
107107
108108
109109
110110 @Callable(inv)
111111 func setResolver (node,resolver) = valueOrElse(modifiers([onlyOwner(inv, node), if (isValidAddress(resolver))
112112 then unit
113113 else throw("Resolver must be a valid address")]), _setResolver(node, resolver))
114114
115115
116116
117117 @Callable(inv)
118118 func getNameCreated (node) = $Tuple2(nil, _getCreatedAt(node))
119119
120120
121121
122122 @Callable(inv)
123123 func setRecord (node,owner,resolver) = valueOrElse(modifiers([onlyAdmin(inv), if (isValidAddress(owner))
124124 then unit
125125 else throw("Owner must be a valid address"), if (isValidAddress(resolver))
126126 then unit
127127 else throw("Resolver must be a valid contract address")]), ((_setOwner(node, owner) ++ _setResolver(node, resolver)) ++ _setCreatedAt(node, lastBlock.timestamp)))
128128
129129
130130
131131 @Callable(inv)
132132 func whoIs (name) = valueOrElse(modifiers([if ((size(name) > 0))
133133 then unit
134134 else throw("Name cannot be empty")]), {
135135 let $t046974748 = _splitLastLabel(name)
136136 let lastLabel = $t046974748._1
137137 let restLabels = $t046974748._2
138138 let registrantAddress = _getOwner(lastLabel)
139139 let maybeRegistrant = match registrantAddress {
140140 case owner: String =>
141141 addressFromString(owner)
142142 case _ =>
143143 unit
144144 }
145145 let registrant = value(maybeRegistrant)
146146 let parentResolver = _getResolver(lastLabel)
147147 let parentCreated = _getCreatedAt(lastLabel)
148148 let owner = match _callSupportedInterface(registrant, "getOwner", restLabels) {
149149 case owner: String =>
150150 if (isValidAddress(owner))
151151 then owner
152152 else unit
153153 case _ =>
154154 unit
155155 }
156156 let resolver = match _callSupportedInterface(registrant, "getResolver", restLabels) {
157157 case resolver: String =>
158158 if (isValidAddress(resolver))
159159 then resolver
160160 else unit
161161 case _ =>
162162 unit
163163 }
164164 let nameCreated = match _callSupportedInterface(registrant, "getNameCreated", restLabels) {
165165 case nameCreated: Int =>
166166 if (if ((nameCreated > 0))
167167 then (lastBlock.timestamp >= nameCreated)
168168 else false)
169169 then nameCreated
170170 else unit
171171 case _ =>
172172 unit
173173 }
174174 let nameExpires = match _callSupportedInterface(registrant, "getNameExpires", restLabels) {
175175 case nameExpires: Int =>
176176 if ((nameExpires > 0))
177177 then nameExpires
178178 else unit
179179 case _ =>
180180 unit
181181 }
182+ let nameToken = match _callSupportedInterface(registrant, "getNameToken", restLabels) {
183+ case nameToken: String =>
184+ nameToken
185+ case _ =>
186+ unit
187+ }
182188 let isRootName = if ((size(lastLabel) > 0))
183189 then (size(restLabels) == 0)
184190 else false
185191 if (if (isRootName)
186192 then true
187193 else !(isDefined(maybeRegistrant)))
188- then $Tuple2(nil, $Tuple4(registrantAddress, parentResolver, parentCreated, unit))
189- else $Tuple2(nil, $Tuple4(owner, resolver, nameCreated, nameExpires))
194+ then $Tuple2(nil, $Tuple5(registrantAddress, parentResolver, parentCreated, unit, unit))
195+ else $Tuple2(nil, $Tuple5(owner, resolver, nameCreated, nameExpires, nameToken))
190196 })
191197
192198

github/deemru/w8io/3ef1775 
32.10 ms