tx · 7h6VQ3sw4hZMFh3SHGr3tQMb9Ht9N13whHNAPVDK3Xw

3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh:  -0.01000000 Waves

2022.10.14 13:28 [2271897] smart account 3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh > SELF 0.00000000 Waves

{ "type": 13, "id": "7h6VQ3sw4hZMFh3SHGr3tQMb9Ht9N13whHNAPVDK3Xw", "fee": 1000000, "feeAssetId": null, "timestamp": 1665743305435, "version": 2, "chainId": 84, "sender": "3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh", "senderPublicKey": "7BvYKnVkbABXoQwqVQAsEXRQN9bt7H7QxxhXqMhW44oa", "proofs": [ "4SMubw6Bn416n7j7r5whTxgcfU2k1mnEbGUXVUBvdUp4kqdsLnoR6w1osUGZ36FJvg55YoHz7797sCCkACNfgP3W" ], "script": "base64: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", "height": 2271897, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6jXcgg3HXtG15ym7BDkcJLqNVrVBmGodPegPfp8BNL17 Next: 3bXXarVuUSHbqrTTkZYSMzuc2eEz3i8cqT8bdTSNwQt2 Diff:
OldNewDifferences
2222 else throw("Permission denied")
2323
2424
25+func _supportsInterface (interfaceId) = (interfaceId == "addr")
26+
27+
28+func _addr (label) = match invoke(registry, "owner", [label], nil) {
29+ case owner: String =>
30+ owner
31+ case _ =>
32+ unit
33+}
34+
35+
2536 func _splitLastLabel (name) = {
2637 let labels = split(name, ".")
2738 let lastIndex = (size(labels) - 1)
3142 }
3243
3344
34-func _findResolver (name) = {
35- let $t012401291 = _splitLastLabel(name)
36- let lastLabel = $t012401291._1
37- let restLabels = $t012401291._2
38- if ((size(restLabels) == 0))
39- then $Tuple2(unit, name)
40- else match invoke(registry, "resolver", [lastLabel], nil) {
41- case resolverAddress: String =>
42- $Tuple2(addressFromString(resolverAddress), restLabels)
43- case _ =>
44- $Tuple2(unit, name)
45- }
46- }
47-
48-
4945 @Callable(inv)
5046 func init (registryAddress) = valueOrElse(modifiers([onlyAdmin(inv)]), [StringEntry(key_registry, registryAddress)])
5147
5248
5349
5450 @Callable(inv)
55-func resolve (name,callData) = valueOrElse(modifiers([if ((size(name) > 0))
56- then unit
57- else throw("Name cannot be empty"), if ((size(callData) > 0))
58- then unit
59- else throw("Call data cannot be empty")]), {
60- let $t020132061 = _findResolver(name)
61- let resolver = $t020132061._1
62- let restLabels = $t020132061._2
63- let $t020672205 = match callData {
64- case _ =>
65- if (("addr" == $match0))
66- then $Tuple2("addr", [value(restLabels)])
67- else $Tuple2(unit, unit)
68- }
69- let callFunction = $t020672205._1
70- let callArgs = $t020672205._2
71- let supportsInterface = if (!(isDefined(resolver)))
72- then false
73- else match invoke(value(resolver), "supportsInterface", [callData], nil) {
74- case supportsInterface: Boolean =>
75- supportsInterface
76- case _ =>
77- false
78- }
79- $Tuple2(nil, if (!(supportsInterface))
80- then unit
81- else match invoke(value(resolver), value(callFunction), value(callArgs), nil) {
82- case callbackData: String =>
83- callbackData
84- case _ =>
85- unit
86- })
87- })
51+func supportsInterface (interfaceId) = $Tuple2(nil, _supportsInterface(interfaceId))
52+
53+
54+
55+@Callable(inv)
56+func addr (label) = $Tuple2(nil, _addr(label))
8857
8958
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
25+func _supportsInterface (interfaceId) = (interfaceId == "addr")
26+
27+
28+func _addr (label) = match invoke(registry, "owner", [label], nil) {
29+ case owner: String =>
30+ owner
31+ case _ =>
32+ unit
33+}
34+
35+
2536 func _splitLastLabel (name) = {
2637 let labels = split(name, ".")
2738 let lastIndex = (size(labels) - 1)
2839 let lastLabel = labels[lastIndex]
2940 let restLabels = makeString(removeByIndex(labels, lastIndex), ".")
3041 $Tuple2(lastLabel, restLabels)
3142 }
3243
3344
34-func _findResolver (name) = {
35- let $t012401291 = _splitLastLabel(name)
36- let lastLabel = $t012401291._1
37- let restLabels = $t012401291._2
38- if ((size(restLabels) == 0))
39- then $Tuple2(unit, name)
40- else match invoke(registry, "resolver", [lastLabel], nil) {
41- case resolverAddress: String =>
42- $Tuple2(addressFromString(resolverAddress), restLabels)
43- case _ =>
44- $Tuple2(unit, name)
45- }
46- }
47-
48-
4945 @Callable(inv)
5046 func init (registryAddress) = valueOrElse(modifiers([onlyAdmin(inv)]), [StringEntry(key_registry, registryAddress)])
5147
5248
5349
5450 @Callable(inv)
55-func resolve (name,callData) = valueOrElse(modifiers([if ((size(name) > 0))
56- then unit
57- else throw("Name cannot be empty"), if ((size(callData) > 0))
58- then unit
59- else throw("Call data cannot be empty")]), {
60- let $t020132061 = _findResolver(name)
61- let resolver = $t020132061._1
62- let restLabels = $t020132061._2
63- let $t020672205 = match callData {
64- case _ =>
65- if (("addr" == $match0))
66- then $Tuple2("addr", [value(restLabels)])
67- else $Tuple2(unit, unit)
68- }
69- let callFunction = $t020672205._1
70- let callArgs = $t020672205._2
71- let supportsInterface = if (!(isDefined(resolver)))
72- then false
73- else match invoke(value(resolver), "supportsInterface", [callData], nil) {
74- case supportsInterface: Boolean =>
75- supportsInterface
76- case _ =>
77- false
78- }
79- $Tuple2(nil, if (!(supportsInterface))
80- then unit
81- else match invoke(value(resolver), value(callFunction), value(callArgs), nil) {
82- case callbackData: String =>
83- callbackData
84- case _ =>
85- unit
86- })
87- })
51+func supportsInterface (interfaceId) = $Tuple2(nil, _supportsInterface(interfaceId))
52+
53+
54+
55+@Callable(inv)
56+func addr (label) = $Tuple2(nil, _addr(label))
8857
8958

github/deemru/w8io/169f3d6 
26.50 ms