tx · 7Qgzuj2XekvVrfT835ebFy3NbaXpx1oHGd4sY2jrUsNz

3MvVeqqFHW9M6r9ggG3Ma5Que4Rqgb4BjJE:  -0.01000000 Waves

2022.10.20 09:43 [2280369] smart account 3MvVeqqFHW9M6r9ggG3Ma5Que4Rqgb4BjJE > SELF 0.00000000 Waves

{ "type": 13, "id": "7Qgzuj2XekvVrfT835ebFy3NbaXpx1oHGd4sY2jrUsNz", "fee": 1000000, "feeAssetId": null, "timestamp": 1666248307749, "version": 2, "chainId": 84, "sender": "3MvVeqqFHW9M6r9ggG3Ma5Que4Rqgb4BjJE", "senderPublicKey": "3nPFqmiV1yaNvmSrQdE1QHbTAF8bfJB1GjbegBWbNNCK", "proofs": [ "3CaaXHmmAv8H5BqMivxrxNULwNMEwLxa7urbBffU4ypVzi3yY22hRM1KHP9pZSusKm1LT1kjfwnzCEQjik1Ef7S9" ], "script": "base64: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", "height": 2280369, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4j575PixthHe3uJ3ydGM91uLNoEx9dUiAWb9Acw7nXqr Next: 83XR9igMH8K8pQfcZ9TNQ6GtsLDBAhxzgwgDEiAXKtA4 Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func key_owner (subName) = ("owner_" + subName)
5+
6+
7+func key_registrar (subName) = ("registrar_" + subName)
58
69
710 func _getOwner (subName) = getString(this, key_owner(subName))
1013 func _setOwner (subName,owner) = [StringEntry(key_owner(subName), owner)]
1114
1215
16+func _getRegistrar (subName) = getString(this, key_owner(subName))
17+
18+
19+func _setRegistrar (subName,registrar) = [StringEntry(key_registrar(subName), registrar)]
20+
21+
1322 func key_address (name) = ("address_" + name)
1423
1524
16-let registrar = this
25+let registry = this
1726
1827 func isOwner (inv,name) = if ((inv.caller == this))
1928 then true
20- else match invoke(registrar, "owner", [name], nil) {
29+ else match invoke(registry, "owner", [name], nil) {
2130 case owner: String =>
2231 (owner == toString(inv.caller))
2332 case _ =>
2736
2837 @Callable(inv)
2938 func owner (subName) = $Tuple2(nil, _getOwner(subName))
39+
40+
41+
42+@Callable(inv)
43+func registrar (subName) = $Tuple2(nil, _getRegistrar(subName))
3044
3145
3246
4155
4256
4357 @Callable(inv)
44-func supportsInterface (interfaceId) = $Tuple2(nil, (interfaceId == "addr"))
58+func supportsInterface (interfaceId) = $Tuple2(nil, containsElement(["addr", "owner", "registrar"], interfaceId))
4559
4660
4761
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func key_owner (subName) = ("owner_" + subName)
5+
6+
7+func key_registrar (subName) = ("registrar_" + subName)
58
69
710 func _getOwner (subName) = getString(this, key_owner(subName))
811
912
1013 func _setOwner (subName,owner) = [StringEntry(key_owner(subName), owner)]
1114
1215
16+func _getRegistrar (subName) = getString(this, key_owner(subName))
17+
18+
19+func _setRegistrar (subName,registrar) = [StringEntry(key_registrar(subName), registrar)]
20+
21+
1322 func key_address (name) = ("address_" + name)
1423
1524
16-let registrar = this
25+let registry = this
1726
1827 func isOwner (inv,name) = if ((inv.caller == this))
1928 then true
20- else match invoke(registrar, "owner", [name], nil) {
29+ else match invoke(registry, "owner", [name], nil) {
2130 case owner: String =>
2231 (owner == toString(inv.caller))
2332 case _ =>
2433 false
2534 }
2635
2736
2837 @Callable(inv)
2938 func owner (subName) = $Tuple2(nil, _getOwner(subName))
39+
40+
41+
42+@Callable(inv)
43+func registrar (subName) = $Tuple2(nil, _getRegistrar(subName))
3044
3145
3246
3347 @Callable(inv)
3448 func register (subName,owner) = {
3549 let currentOwner = _getOwner(subName)
3650 if (isDefined(currentOwner))
3751 then throw((("`" + subName) + "` already registered"))
3852 else _setOwner(subName, owner)
3953 }
4054
4155
4256
4357 @Callable(inv)
44-func supportsInterface (interfaceId) = $Tuple2(nil, (interfaceId == "addr"))
58+func supportsInterface (interfaceId) = $Tuple2(nil, containsElement(["addr", "owner", "registrar"], interfaceId))
4559
4660
4761
4862 @Callable(inv)
4963 func setAddr (name,address) = if (!(isOwner(inv, name)))
5064 then throw("Permission denied")
5165 else [StringEntry(key_address(name), address)]
5266
5367
5468
5569 @Callable(inv)
5670 func addr (name) = $Tuple2(nil, getString(this, key_address(name)))
5771
5872

github/deemru/w8io/c3f4982 
24.24 ms