tx · BAWPnR9zMtZLLujJbrdjgQeQ2jTV34rbJEs5Ux4t1NKe

3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh:  -0.00500000 Waves

2022.10.09 19:22 [2265026] smart account 3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh > SELF 0.00000000 Waves

{ "type": 13, "id": "BAWPnR9zMtZLLujJbrdjgQeQ2jTV34rbJEs5Ux4t1NKe", "fee": 500000, "feeAssetId": null, "timestamp": 1665332639326, "version": 2, "chainId": 84, "sender": "3MvP7BWqZinx23VpQeJBrhL4nED8MWdtcRh", "senderPublicKey": "7BvYKnVkbABXoQwqVQAsEXRQN9bt7H7QxxhXqMhW44oa", "proofs": [ "yYn5gxKA5vZmxLVEcDfojhV7i8qpdofw9S46eDuxAwLL4UrA8tiDtBV1gX6Ldw16VD7VsWZdJetkqkRfU6kLfWW" ], "script": "base64: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", "height": 2265026, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 84EB2zo6T6EyqyQvsEkfC7UYYWLzqFRYpyZN4ZxtFNaY Next: G9SV5ByW65w6VM79QtSdSUp3sG1s5hoH8rs1CnDHTF2V Diff:
OldNewDifferences
4949 let v = m(n)
5050 let w = v._1
5151 let r = v._2
52- if (!(isDefined(w)))
52+ if (if (!(isDefined(w)))
53+ then true
54+ else (size(r) == 0))
5355 then $Tuple2(nil, unit)
5456 else $Tuple2(nil, {
5557 let s = invoke(value(w), "resolve", [value(r)], nil)
7173 let y = m(n)
7274 let w = y._1
7375 let r = y._2
74- if (!(isDefined(w)))
76+ if (if (!(isDefined(w)))
77+ then true
78+ else (size(r) == 0))
7579 then $Tuple2(nil, $Tuple5(unit, unit, unit, unit, unit))
7680 else $Tuple2(nil, {
7781 let s = invoke(value(w), "whoIs", [value(r)], nil)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
55
66
77 func d (e) = valueOrErrorMessage(addressFromString(e), (("Can't parse address from '" + e) + "'"))
88
99
1010 let f = "registry"
1111
1212 let g = d(a(this, f))
1313
1414 func h (i) = (i.caller == this)
1515
1616
1717 func j (k) = unit
1818
1919
2020 func l (i) = if (h(i))
2121 then unit
2222 else throw("Permission denied")
2323
2424
2525 func m (n) = {
2626 let o = split(n, ".")
2727 let p = (size(o) - 1)
2828 let q = o[p]
2929 let r = makeString(removeByIndex(o, p), ".")
3030 let s = invoke(g, "resolver", [q], nil)
3131 if ($isInstanceOf(s, "String"))
3232 then {
3333 let t = s
3434 $Tuple2(addressFromString(t), r)
3535 }
3636 else $Tuple2(unit, n)
3737 }
3838
3939
4040 @Callable(i)
4141 func init (u) = valueOrElse(j([l(i)]), [StringEntry(f, u)])
4242
4343
4444
4545 @Callable(i)
4646 func resolve (n) = valueOrElse(j([if ((size(n) > 0))
4747 then unit
4848 else throw("Name cannot be empty")]), {
4949 let v = m(n)
5050 let w = v._1
5151 let r = v._2
52- if (!(isDefined(w)))
52+ if (if (!(isDefined(w)))
53+ then true
54+ else (size(r) == 0))
5355 then $Tuple2(nil, unit)
5456 else $Tuple2(nil, {
5557 let s = invoke(value(w), "resolve", [value(r)], nil)
5658 if ($isInstanceOf(s, "String"))
5759 then {
5860 let x = s
5961 x
6062 }
6163 else unit
6264 })
6365 })
6466
6567
6668
6769 @Callable(i)
6870 func whoIs (n) = valueOrElse(j([if ((size(n) > 0))
6971 then unit
7072 else throw("Name cannot be empty")]), {
7173 let y = m(n)
7274 let w = y._1
7375 let r = y._2
74- if (!(isDefined(w)))
76+ if (if (!(isDefined(w)))
77+ then true
78+ else (size(r) == 0))
7579 then $Tuple2(nil, $Tuple5(unit, unit, unit, unit, unit))
7680 else $Tuple2(nil, {
7781 let s = invoke(value(w), "whoIs", [value(r)], nil)
7882 if (if (if (if ($isInstanceOf(s._1, "String"))
7983 then true
8084 else $isInstanceOf(s._1, "Unit"))
8185 then if (if ($isInstanceOf(s._2, "String"))
8286 then true
8387 else $isInstanceOf(s._2, "Unit"))
8488 then if (if ($isInstanceOf(s._3, "Int"))
8589 then true
8690 else $isInstanceOf(s._3, "Unit"))
8791 then if (if ($isInstanceOf(s._4, "Int"))
8892 then true
8993 else $isInstanceOf(s._4, "Unit"))
9094 then if ($isInstanceOf(s._5, "String"))
9195 then true
9296 else $isInstanceOf(s._5, "Unit")
9397 else false
9498 else false
9599 else false
96100 else false)
97101 then if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if ($isInstanceOf(s, "(Unit, Unit, Unit, Unit, Unit)"))
98102 then true
99103 else $isInstanceOf(s, "(Unit, Unit, Unit, Unit, String)"))
100104 then true
101105 else $isInstanceOf(s, "(Unit, Unit, Unit, Int, Unit)"))
102106 then true
103107 else $isInstanceOf(s, "(Unit, Unit, Unit, Int, String)"))
104108 then true
105109 else $isInstanceOf(s, "(Unit, Unit, Int, Unit, Unit)"))
106110 then true
107111 else $isInstanceOf(s, "(Unit, Unit, Int, Unit, String)"))
108112 then true
109113 else $isInstanceOf(s, "(Unit, Unit, Int, Int, Unit)"))
110114 then true
111115 else $isInstanceOf(s, "(Unit, Unit, Int, Int, String)"))
112116 then true
113117 else $isInstanceOf(s, "(Unit, String, Unit, Unit, Unit)"))
114118 then true
115119 else $isInstanceOf(s, "(Unit, String, Unit, Unit, String)"))
116120 then true
117121 else $isInstanceOf(s, "(Unit, String, Unit, Int, Unit)"))
118122 then true
119123 else $isInstanceOf(s, "(Unit, String, Unit, Int, String)"))
120124 then true
121125 else $isInstanceOf(s, "(Unit, String, Int, Unit, Unit)"))
122126 then true
123127 else $isInstanceOf(s, "(Unit, String, Int, Unit, String)"))
124128 then true
125129 else $isInstanceOf(s, "(Unit, String, Int, Int, Unit)"))
126130 then true
127131 else $isInstanceOf(s, "(Unit, String, Int, Int, String)"))
128132 then true
129133 else $isInstanceOf(s, "(String, Unit, Unit, Unit, Unit)"))
130134 then true
131135 else $isInstanceOf(s, "(String, Unit, Unit, Unit, String)"))
132136 then true
133137 else $isInstanceOf(s, "(String, Unit, Unit, Int, Unit)"))
134138 then true
135139 else $isInstanceOf(s, "(String, Unit, Unit, Int, String)"))
136140 then true
137141 else $isInstanceOf(s, "(String, Unit, Int, Unit, Unit)"))
138142 then true
139143 else $isInstanceOf(s, "(String, Unit, Int, Unit, String)"))
140144 then true
141145 else $isInstanceOf(s, "(String, Unit, Int, Int, Unit)"))
142146 then true
143147 else $isInstanceOf(s, "(String, Unit, Int, Int, String)"))
144148 then true
145149 else $isInstanceOf(s, "(String, String, Unit, Unit, Unit)"))
146150 then true
147151 else $isInstanceOf(s, "(String, String, Unit, Unit, String)"))
148152 then true
149153 else $isInstanceOf(s, "(String, String, Unit, Int, Unit)"))
150154 then true
151155 else $isInstanceOf(s, "(String, String, Unit, Int, String)"))
152156 then true
153157 else $isInstanceOf(s, "(String, String, Int, Unit, Unit)"))
154158 then true
155159 else $isInstanceOf(s, "(String, String, Int, Unit, String)"))
156160 then true
157161 else $isInstanceOf(s, "(String, String, Int, Int, Unit)"))
158162 then true
159163 else $isInstanceOf(s, "(String, String, Int, Int, String)")
160164 else false)
161165 then {
162166 let z = s._1
163167 let A = s._2
164168 let B = s._3
165169 let C = s._4
166170 let D = s._5
167171 $Tuple5(z, A, B, C, D)
168172 }
169173 else unit
170174 })
171175 })
172176
173177

github/deemru/w8io/169f3d6 
34.86 ms