tx · GXkeD5savvTZaUmHbq9Fvzg34UobRMsdNmEHLGgHgdqJ

3MrF6QFGLaSKfoNPMd8L3u7KYNm7cE43Ydw:  -0.01000000 Waves

2022.10.14 13:02 [2271870] smart account 3MrF6QFGLaSKfoNPMd8L3u7KYNm7cE43Ydw > SELF 0.00000000 Waves

{ "type": 13, "id": "GXkeD5savvTZaUmHbq9Fvzg34UobRMsdNmEHLGgHgdqJ", "fee": 1000000, "feeAssetId": null, "timestamp": 1665741759817, "version": 2, "chainId": 84, "sender": "3MrF6QFGLaSKfoNPMd8L3u7KYNm7cE43Ydw", "senderPublicKey": "6NSakbUsm1WyESQ8yj3qpc1kQUfHWNd5C6CHVpbs4X7c", "proofs": [ "4dxbSV3oYmNWuBhMHWNpm2qora94rxN6fWWc2ciicVaqUKUzmFyRJBeshe1kwD5rQyBWVbJ8F1zTFB5jGuHYC6Cv" ], "script": "base64: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", "height": 2271870, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2dNL8wTkPethmFkTzpV6TR7ZLzQVPKC2MqjaEUDjnrXS Next: EDzDn558J72E33j4SsXowLKBqT31kfcbCN1dc5P9L26f Diff:
OldNewDifferences
3030 }
3131
3232
33+func _splitLastLabel (name) = {
34+ let labels = split(name, ".")
35+ let lastIndex = (size(labels) - 1)
36+ let lastLabel = labels[lastIndex]
37+ let restLabels = makeString(removeByIndex(labels, lastIndex), ".")
38+ $Tuple2(lastLabel, restLabels)
39+ }
40+
41+
3342 @Callable(inv)
3443 func init (registryAddress) = valueOrElse(modifiers([onlyAdmin(inv)]), [StringEntry(key_registry, registryAddress)])
3544
4150
4251
4352 @Callable(inv)
44-func resolve (name) = {
45- let labels = if ((size(name) == 0))
46- then throw("Name cannot be empty")
47- else split(name, ".")
48- let lastLabel = labels[(size(labels) - 1)]
49- $Tuple2(nil, _addr(lastLabel))
50- }
51-
52-
53-
54-@Callable(inv)
55-func whoIs (name) = valueOrElse(modifiers([if ((size(name) > 0))
53+func resolve (name) = valueOrElse(modifiers([if ((size(name) > 0))
5654 then unit
5755 else throw("Name cannot be empty")]), {
58- let labels = split(name, ".")
59- let lastLabel = labels[(size(labels) - 1)]
60- let registrant = match invoke(registry, "owner", [lastLabel], nil) {
61- case owner: String =>
62- owner
63- case _ =>
64- unit
65- }
66- let resolver = unit
67- let nameCreated = match invoke(registry, "nameCreated", [lastLabel], nil) {
68- case createdAt: Int =>
69- createdAt
70- case _ =>
71- unit
72- }
73- let nameExpires = match invoke(registry, "nameExpires", [lastLabel], nil) {
74- case expiresAt: Int =>
75- expiresAt
76- case _ =>
77- unit
78- }
79- let nameStatus = match invoke(registry, "nameStatus", [lastLabel], nil) {
80- case status: String =>
81- status
82- case _ =>
83- unit
84- }
85- $Tuple2(nil, $Tuple5(registrant, resolver, nameCreated, nameExpires, nameStatus))
56+ let lastLabel = _splitLastLabel(name)._1
57+ $Tuple2(nil, _addr(lastLabel))
8658 })
8759
8860
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 parseAddressOrThrow (maybeAddress) = valueOrErrorMessage(addressFromString(maybeAddress), (("Can't parse address from '" + maybeAddress) + "'"))
88
99
1010 let key_registry = "registry"
1111
1212 let registry = parseAddressOrThrow(getStringOrThrow(this, key_registry))
1313
1414 func isAdmin (inv) = (inv.caller == this)
1515
1616
1717 func modifiers (validations) = unit
1818
1919
2020 func onlyAdmin (inv) = if (isAdmin(inv))
2121 then unit
2222 else throw("Permission denied")
2323
2424
2525 func _addr (label) = match invoke(registry, "owner", [label], nil) {
2626 case owner: String =>
2727 owner
2828 case _ =>
2929 unit
3030 }
3131
3232
33+func _splitLastLabel (name) = {
34+ let labels = split(name, ".")
35+ let lastIndex = (size(labels) - 1)
36+ let lastLabel = labels[lastIndex]
37+ let restLabels = makeString(removeByIndex(labels, lastIndex), ".")
38+ $Tuple2(lastLabel, restLabels)
39+ }
40+
41+
3342 @Callable(inv)
3443 func init (registryAddress) = valueOrElse(modifiers([onlyAdmin(inv)]), [StringEntry(key_registry, registryAddress)])
3544
3645
3746
3847 @Callable(inv)
3948 func addr (label) = $Tuple2(nil, _addr(label))
4049
4150
4251
4352 @Callable(inv)
44-func resolve (name) = {
45- let labels = if ((size(name) == 0))
46- then throw("Name cannot be empty")
47- else split(name, ".")
48- let lastLabel = labels[(size(labels) - 1)]
49- $Tuple2(nil, _addr(lastLabel))
50- }
51-
52-
53-
54-@Callable(inv)
55-func whoIs (name) = valueOrElse(modifiers([if ((size(name) > 0))
53+func resolve (name) = valueOrElse(modifiers([if ((size(name) > 0))
5654 then unit
5755 else throw("Name cannot be empty")]), {
58- let labels = split(name, ".")
59- let lastLabel = labels[(size(labels) - 1)]
60- let registrant = match invoke(registry, "owner", [lastLabel], nil) {
61- case owner: String =>
62- owner
63- case _ =>
64- unit
65- }
66- let resolver = unit
67- let nameCreated = match invoke(registry, "nameCreated", [lastLabel], nil) {
68- case createdAt: Int =>
69- createdAt
70- case _ =>
71- unit
72- }
73- let nameExpires = match invoke(registry, "nameExpires", [lastLabel], nil) {
74- case expiresAt: Int =>
75- expiresAt
76- case _ =>
77- unit
78- }
79- let nameStatus = match invoke(registry, "nameStatus", [lastLabel], nil) {
80- case status: String =>
81- status
82- case _ =>
83- unit
84- }
85- $Tuple2(nil, $Tuple5(registrant, resolver, nameCreated, nameExpires, nameStatus))
56+ let lastLabel = _splitLastLabel(name)._1
57+ $Tuple2(nil, _addr(lastLabel))
8658 })
8759
8860

github/deemru/w8io/026f985 
49.59 ms