tx · 3ft8CfRSD4WVmKQ5zMUNZwjzzHBgLsZwrmTyLb8tWqF5

3N9ZoipEVJyQhhijNYxkcomvgGrrEeDhPvN:  -0.01000000 Waves

2023.02.25 18:43 [2465400] smart account 3N9ZoipEVJyQhhijNYxkcomvgGrrEeDhPvN > SELF 0.00000000 Waves

{ "type": 13, "id": "3ft8CfRSD4WVmKQ5zMUNZwjzzHBgLsZwrmTyLb8tWqF5", "fee": 1000000, "feeAssetId": null, "timestamp": 1677339809818, "version": 2, "chainId": 84, "sender": "3N9ZoipEVJyQhhijNYxkcomvgGrrEeDhPvN", "senderPublicKey": "2Gtgx295VLiew3CzXqh9eXfFZBTEpDW2nLsrJZ1C4i9J", "proofs": [ "4Eh14z91xyzn971wv64xuSkXoBVa6WH4im2ThR77Ry2ztTCnYhZVSvbJuxzwkvqDg7GhrypcjUrXP99nkp4MoTu8" ], "script": "base64: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AAARb3RoZXJDaGFpbkFzc2V0VE4DCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAuT25seSB0aGUgb3duZXIgZGFwcCBjYW4gYWRkIGFkZGl0aW9uYWwgYXNzZXRzIQMJAQAAAAIhPQAAAAIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAObmF0aXZlQXNzZXRLZXkAAAABBQAAAAtuYXRpdmVBc3NldAIAAAAACQAAAgAAAAECAAAAHE5hdGl2ZSBBc3NldCBhbHJlYWR5IGxpc3RlZCEDCQEAAAACIT0AAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAEm90aGVyQ2hhaW5Bc3NldEtleQAAAAEFAAAAD290aGVyQ2hhaW5Bc3NldAIAAAAACQAAAgAAAAECAAAAG090aGVyIEFzc2V0IGFscmVhZHkgbGlzdGVkIQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAObmF0aXZlQXNzZXRLZXkAAAABBQAAAAtuYXRpdmVBc3NldAUAAAAPb3RoZXJDaGFpbkFzc2V0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJvdGhlckNoYWluQXNzZXRLZXkAAAABBQAAAA9vdGhlckNoYWluQXNzZXQFAAAAC25hdGl2ZUFzc2V0CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAALcmVpc3N1ZWFibGUAAAABBQAAAAtuYXRpdmVBc3NldAUAAAAWbmF0aXZlQXNzZXRSZWlzc3VlYWJsZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAC3JlaXNzdWVhYmxlAAAAAQUAAAAPb3RoZXJDaGFpbkFzc2V0BQAAABpvdGhlckNoYWluQXNzZXRSZWlzc3VlYWJsZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAB3RuQXNzZXQAAAABBQAAAAtuYXRpdmVBc3NldAUAAAANbmF0aXZlQXNzZXRUTgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkBAAAAB3RuQXNzZXQAAAABBQAAAA9vdGhlckNoYWluQXNzZXQFAAAAEW90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", "height": 2465400, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4qVhh5TQteQcmy1BaQQZ6zJ5i7KbEgfKAkMVGDNNvT93 Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = ["3N9QZnXfu8oGhsvZ9BdizNuVJP7trXyMUp5", "3ND6eWcMiGMX15X4H4WmGTTdNwLhtWhQ2DR"]
4+func a () = "oraclesList"
55
6-let b = 1
76
8-let c = 1000
7+func b () = split(getStringValue(this, a()), ",")
98
10-func d (e,f) = {
11- let g = getString(e, f)
12- if ($isInstanceOf(g, "String"))
9+
10+let c = 2
11+
12+let d = 1000
13+
14+func e (f,g) = {
15+ let h = getString(f, g)
16+ if ($isInstanceOf(h, "String"))
1317 then {
14- let h = g
15- h
18+ let i = h
19+ i
1620 }
1721 else ""
1822 }
1923
2024
21-func i (e,f) = {
22- let g = getInteger(e, f)
23- if ($isInstanceOf(g, "Int"))
25+func j (f,g) = {
26+ let h = getInteger(f, g)
27+ if ($isInstanceOf(h, "Int"))
2428 then {
25- let j = g
26- j
29+ let k = h
30+ k
2731 }
2832 else 0
2933 }
3034
3135
32-func k (f) = d(this, f)
36+func l (g) = e(this, g)
3337
3438
35-func l (f) = i(this, f)
39+func m (g) = j(this, g)
3640
3741
38-func m (f) = {
39- let g = getBoolean(this, f)
40- if ($isInstanceOf(g, "Boolean"))
42+func n (g) = {
43+ let h = getBoolean(this, g)
44+ if ($isInstanceOf(h, "Boolean"))
4145 then {
42- let j = g
43- j
46+ let k = h
47+ k
4448 }
4549 else false
4650 }
4751
4852
49-func n (o) = toBase58String(value(o))
53+func o (p) = toBase58String(value(p))
5054
5155
52-func p (q) = ("nativeAsset_" + q)
56+func q (r) = ("nativeAsset_" + r)
5357
5458
55-func r (s) = ("otherChainAsset_" + s)
59+func s (t) = ("otherChainAsset_" + t)
5660
5761
58-func t (u) = ("reissueable_" + u)
62+func u (p) = ("tn_asset_" + p)
5963
6064
61-func v (w) = {
62- let x = value(w)
63- if (!(isDefined(x.assetId)))
65+func v (w) = ("reissueable_" + w)
66+
67+
68+func x (y) = {
69+ let z = value(y)
70+ if (!(isDefined(z.assetId)))
6471 then throw("It needs to be an asset")
6572 else {
66- let y = value(assetInfo(value(x.assetId)))
67- if ((1 > x.amount))
73+ let A = value(assetInfo(value(z.assetId)))
74+ if ((1 > z.amount))
6875 then throw("You didnt attached a payment!")
69- else n(x.assetId)
76+ else o(z.assetId)
7077 }
7178 }
7279
7380
74-func z (o,A) = {
75- let B = fraction(A, b, c, DOWN)
76- let C = fraction(B, 1, size(a), DOWN)
77- func D (E,F) = (E ++ [ScriptTransfer(addressFromStringValue(F), C, fromBase58String(o))])
81+func B (p,C) = {
82+ let D = fraction(C, c, d, DOWN)
83+ let E = fraction(D, 1, size(b()), DOWN)
84+ func F (G,H) = (G ++ [ScriptTransfer(addressFromStringValue(H), E, fromBase58String(p))])
7885
79- let G = {
80- let H = a
81- let I = size(H)
82- let J = nil
83- func K (L,M) = if ((M >= I))
84- then L
85- else D(L, H[M])
86+ let I = {
87+ let J = b()
88+ let K = size(J)
89+ let L = nil
90+ func M (N,O) = if ((O >= K))
91+ then N
92+ else F(N, J[O])
8693
87- func N (L,M) = if ((M >= I))
88- then L
94+ func P (N,O) = if ((O >= K))
95+ then N
8996 else throw("List size exceeds 5")
9097
91- N(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5)
98+ P(M(M(M(M(M(L, 0), 1), 2), 3), 4), 5)
9299 }
93- $Tuple2(G, B)
100+ $Tuple2(I, D)
94101 }
95102
96103
97-func O (f,P) = {
98- func Q (E,F) = {
99- let g = P
100- if ($isInstanceOf(g, "String"))
104+func Q (g,R) = {
105+ func S (G,H) = {
106+ let h = R
107+ if ($isInstanceOf(h, "String"))
101108 then {
102- let j = g
103- let G = d(addressFromStringValue(F), f)
104- if ((G != P))
105- then throw(("String Key not matching in " + F))
109+ let k = h
110+ let I = e(addressFromStringValue(H), g)
111+ if ((I != R))
112+ then throw(("String Key not matching in " + H))
106113 else true
107114 }
108- else if ($isInstanceOf(g, "Int"))
115+ else if ($isInstanceOf(h, "Int"))
109116 then {
110- let j = g
111- let G = i(addressFromStringValue(F), f)
112- if ((G != P))
113- then throw(("Integer Key not matching in " + F))
117+ let k = h
118+ let I = j(addressFromStringValue(H), g)
119+ if ((I != R))
120+ then throw(("Integer Key not matching in " + H))
114121 else true
115122 }
116123 else throw("Invalid Value!")
117124 }
118125
119- let H = a
120- let I = size(H)
121- let J = true
122- func K (L,M) = if ((M >= I))
123- then L
124- else Q(L, H[M])
126+ let J = b()
127+ let K = size(J)
128+ let L = true
129+ func M (N,O) = if ((O >= K))
130+ then N
131+ else S(N, J[O])
125132
126- func N (L,M) = if ((M >= I))
127- then L
133+ func P (N,O) = if ((O >= K))
134+ then N
128135 else throw("List size exceeds 5")
129136
130- N(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5)
137+ P(M(M(M(M(M(L, 0), 1), 2), 3), 4), 5)
131138 }
132139
133140
134-@Callable(R)
135-func initiateAssets (q,S,s,T) = if ((R.caller != this))
141+@Callable(T)
142+func initiateAssets (r,U,V,t,W,X) = if ((T.caller != this))
136143 then throw("Only the owner dapp can add additional assets!")
137- else if ((k(p(q)) != ""))
144+ else if ((l(q(r)) != ""))
138145 then throw("Native Asset already listed!")
139- else if ((k(r(s)) != ""))
146+ else if ((l(s(t)) != ""))
140147 then throw("Other Asset already listed!")
141- else [StringEntry(p(q), s), StringEntry(r(s), q), BooleanEntry(t(q), S), BooleanEntry(t(s), T)]
148+ else [StringEntry(q(r), t), StringEntry(s(t), r), BooleanEntry(v(r), U), BooleanEntry(v(t), W), BooleanEntry(u(r), V), BooleanEntry(u(t), X)]
142149
143150
144151
145-@Callable(R)
146-func initiateOutGoingTx (U) = {
147- let w = R.payments
148- if ((size(w) != 1))
152+@Callable(T)
153+func initiateOutGoingTx (Y) = {
154+ let y = T.payments
155+ if ((size(y) != 1))
149156 then throw("Invalid payment added!")
150- else if ((1 > w[0].amount))
157+ else if ((1 > y[0].amount))
151158 then throw("Invalid amount added!")
152- else if (!(contains(U, "3")))
159+ else if (!(contains(Y, "3")))
153160 then throw("Please make sure your destination is correctly")
154161 else {
155- let o = v(w[0])
156- let V = if (m(t(o)))
157- then [Burn(fromBase58String(o), w[0].amount), StringEntry((("tx_" + toBase58String(R.transactionId)) + "_asset_to_receive"), k(r(o)))]
158- else [StringEntry((("tx_" + toBase58String(R.transactionId)) + "_asset_to_receive"), k(p(o)))]
159- ([StringEntry((("tx_" + toBase58String(R.transactionId)) + "_dest"), U), StringEntry((("tx_" + toBase58String(R.transactionId)) + "_status"), "UNPROCESSED")] ++ V)
162+ let p = x(y[0])
163+ let Z = if (n(v(p)))
164+ then [Burn(fromBase58String(p), y[0].amount), StringEntry((("tx_" + toBase58String(T.transactionId)) + "_asset_to_receive"), l(s(p)))]
165+ else [StringEntry((("tx_" + toBase58String(T.transactionId)) + "_asset_to_receive"), l(q(p)))]
166+ ([StringEntry((("tx_" + toBase58String(T.transactionId)) + "_dest"), Y), StringEntry((("tx_" + toBase58String(T.transactionId)) + "_status"), "UNPROCESSED")] ++ Z)
160167 }
161168 }
162169
163170
164171
165-@Callable(R)
166-func storeDataIncomingTx (W,U,o,X,Y) = if (if (if (if (if ((W == ""))
172+@Callable(T)
173+func storeDataIncomingTx (aa,Y,p,ab,ac) = if (if ((l((("tx_" + aa) + "_status")) != ""))
167174 then true
168- else !(contains(U, "3")))
169- then true
170- else (o == ""))
171- then true
172- else (X == 0))
173- then true
174- else (Y == ""))
175- then throw("Parameters seem wrong!")
176- else if (if ((k((("tx_" + W) + "_status")) != ""))
175+ else (l((("tx_" + aa) + "_dest")) != ""))
176+ then throw((aa + " is already stored!"))
177+ else if (if (if (if (if ((aa == ""))
177178 then true
178- else (k((("tx_" + W) + "_dest")) != ""))
179- then throw((W + " is already stored!"))
179+ else !(contains(Y, "3")))
180+ then true
181+ else (p == ""))
182+ then true
183+ else (ab == 0))
184+ then true
185+ else (ac == ""))
186+ then throw("Parameters seem wrong!")
180187 else {
181- let Z = O((("tx_" + W) + "_dest"), U)
182- let aa = O((("tx_" + W) + "_status"), "UNPROCESSED")
183- let ab = O((("tx_" + W) + "_assetId"), o)
184- let ac = O((("tx_" + W) + "_assetId_to_receive"), Y)
185- let ad = O((("tx_" + W) + "_amount"), X)
186- if (!(if (if (if (if (Z)
187- then aa
188+ let ad = Q((("tx_" + aa) + "_dest"), Y)
189+ let ae = Q((("tx_" + aa) + "_status"), "UNPROCESSED")
190+ let af = Q((("tx_" + aa) + "_assetId"), p)
191+ let ag = Q((("tx_" + aa) + "_assetId_to_receive"), ac)
192+ let ah = Q((("tx_" + aa) + "_amount"), ab)
193+ if (!(if (if (if (if (ad)
194+ then ae
188195 else false)
189- then ab
196+ then af
190197 else false)
191- then ac
198+ then ag
192199 else false)
193- then ad
200+ then ah
194201 else false))
195202 then throw("Dirty hacker!")
196- else [StringEntry((("tx_" + W) + "_dest"), U), StringEntry((("tx_" + W) + "_status"), "UNPROCESSED"), StringEntry((("tx_" + W) + "_assetId"), o), StringEntry((("tx_" + W) + "_assetId_to_receive"), Y), IntegerEntry((("tx_" + W) + "_amount"), X)]
203+ else [StringEntry((("tx_" + aa) + "_dest"), Y), StringEntry((("tx_" + aa) + "_status"), "UNPROCESSED"), StringEntry((("tx_" + aa) + "_assetId"), p), StringEntry((("tx_" + aa) + "_assetId_to_receive"), ac), IntegerEntry((("tx_" + aa) + "_amount"), ab)]
197204 }
198205
199206
200207
201-@Callable(R)
202-func releaseIncomingTx (W) = if ((W == ""))
208+@Callable(T)
209+func releaseIncomingTx (aa) = if ((aa == ""))
203210 then throw("Invalid data!")
204211 else {
205- let ae = k((("tx_" + W) + "_status"))
206- if ((ae == ""))
212+ let ai = l((("tx_" + aa) + "_status"))
213+ if ((ai == ""))
207214 then throw("No such txid found!")
208- else if ((ae == "PROCESSED"))
215+ else if ((ai == "PROCESSED"))
209216 then throw("Already processed!")
210217 else {
211- let Y = k((("tx_" + W) + "_assetId_to_receive"))
212- let U = k((("tx_" + W) + "_dest"))
213- let X = l((("tx_" + W) + "_amount"))
214- let o = k((("tx_" + W) + "_assetId"))
215- let V = if (m(t(Y)))
216- then if ((k(p(o)) != Y))
218+ let ac = l((("tx_" + aa) + "_assetId_to_receive"))
219+ let Y = l((("tx_" + aa) + "_dest"))
220+ let ab = m((("tx_" + aa) + "_amount"))
221+ let p = l((("tx_" + aa) + "_assetId"))
222+ let Z = if (n(v(ac)))
223+ then if ((l(q(p)) != ac))
217224 then throw("RE: Skipping tx, corrupt data!")
218- else [Reissue(fromBase58String(Y), X, true)]
219- else if ((k(r(o)) != Y))
225+ else [Reissue(fromBase58String(ac), ab, true)]
226+ else if ((l(s(p)) != ac))
220227 then throw("URE: Skipping tx, corrupt data!")
221228 else nil
222- ((V ++ [ScriptTransfer(addressFromStringValue(U), (X - z(Y, X)._2), fromBase58String(Y)), StringEntry((("tx_" + W) + "_status"), "PROCESSED"), StringEntry((("tx_" + W) + "_otherId"), toBase58String(R.transactionId))]) ++ z(Y, X)._1)
229+ ((Z ++ [ScriptTransfer(addressFromStringValue(Y), (ab - B(ac, ab)._2), fromBase58String(ac)), StringEntry((("tx_" + aa) + "_status"), "PROCESSED"), StringEntry((("tx_" + aa) + "_otherId"), toBase58String(T.transactionId))]) ++ B(ac, ab)._1)
223230 }
224231 }
225232
226233
227234
228-@Callable(R)
229-func finalizeOutgoingTx (W,af) = if (if ((W == ""))
235+@Callable(T)
236+func finalizeOutgoingTx (aa,aj) = if (if ((aa == ""))
230237 then true
231- else (af == ""))
238+ else (aj == ""))
232239 then throw("Broken data!")
233240 else {
234- let Z = O((("tx_" + W) + "_otherId"), af)
235- let aa = O((("tx_" + W) + "_status"), "PROCESSED")
236- if ((k((("tx_" + W) + "_otherId")) != ""))
237- then throw((W + " is already fully processed!"))
238- else if (!(if (Z)
239- then aa
241+ let ad = Q((("tx_" + aa) + "_otherId"), aj)
242+ let ae = Q((("tx_" + aa) + "_status"), "PROCESSED")
243+ if ((l((("tx_" + aa) + "_otherId")) != ""))
244+ then throw((aa + " is already fully processed!"))
245+ else if (!(if (ad)
246+ then ae
240247 else false))
241248 then throw("Dirty hacker!")
242249 else {
243- let o = k((("tx_" + W) + "_assetId"))
244- let X = l((("tx_" + W) + "_amount"))
245- (z(o, X)._1 ++ [StringEntry((("tx_" + W) + "_status"), "PROCESSED"), StringEntry((("tx_" + W) + "_otherId"), af)])
250+ let p = l((("tx_" + aa) + "_assetId"))
251+ let ab = m((("tx_" + aa) + "_amount"))
252+ (B(p, ab)._1 ++ [StringEntry((("tx_" + aa) + "_status"), "PROCESSED"), StringEntry((("tx_" + aa) + "_otherId"), aj)])
246253 }
247254 }
248255
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = ["3N9QZnXfu8oGhsvZ9BdizNuVJP7trXyMUp5", "3ND6eWcMiGMX15X4H4WmGTTdNwLhtWhQ2DR"]
4+func a () = "oraclesList"
55
6-let b = 1
76
8-let c = 1000
7+func b () = split(getStringValue(this, a()), ",")
98
10-func d (e,f) = {
11- let g = getString(e, f)
12- if ($isInstanceOf(g, "String"))
9+
10+let c = 2
11+
12+let d = 1000
13+
14+func e (f,g) = {
15+ let h = getString(f, g)
16+ if ($isInstanceOf(h, "String"))
1317 then {
14- let h = g
15- h
18+ let i = h
19+ i
1620 }
1721 else ""
1822 }
1923
2024
21-func i (e,f) = {
22- let g = getInteger(e, f)
23- if ($isInstanceOf(g, "Int"))
25+func j (f,g) = {
26+ let h = getInteger(f, g)
27+ if ($isInstanceOf(h, "Int"))
2428 then {
25- let j = g
26- j
29+ let k = h
30+ k
2731 }
2832 else 0
2933 }
3034
3135
32-func k (f) = d(this, f)
36+func l (g) = e(this, g)
3337
3438
35-func l (f) = i(this, f)
39+func m (g) = j(this, g)
3640
3741
38-func m (f) = {
39- let g = getBoolean(this, f)
40- if ($isInstanceOf(g, "Boolean"))
42+func n (g) = {
43+ let h = getBoolean(this, g)
44+ if ($isInstanceOf(h, "Boolean"))
4145 then {
42- let j = g
43- j
46+ let k = h
47+ k
4448 }
4549 else false
4650 }
4751
4852
49-func n (o) = toBase58String(value(o))
53+func o (p) = toBase58String(value(p))
5054
5155
52-func p (q) = ("nativeAsset_" + q)
56+func q (r) = ("nativeAsset_" + r)
5357
5458
55-func r (s) = ("otherChainAsset_" + s)
59+func s (t) = ("otherChainAsset_" + t)
5660
5761
58-func t (u) = ("reissueable_" + u)
62+func u (p) = ("tn_asset_" + p)
5963
6064
61-func v (w) = {
62- let x = value(w)
63- if (!(isDefined(x.assetId)))
65+func v (w) = ("reissueable_" + w)
66+
67+
68+func x (y) = {
69+ let z = value(y)
70+ if (!(isDefined(z.assetId)))
6471 then throw("It needs to be an asset")
6572 else {
66- let y = value(assetInfo(value(x.assetId)))
67- if ((1 > x.amount))
73+ let A = value(assetInfo(value(z.assetId)))
74+ if ((1 > z.amount))
6875 then throw("You didnt attached a payment!")
69- else n(x.assetId)
76+ else o(z.assetId)
7077 }
7178 }
7279
7380
74-func z (o,A) = {
75- let B = fraction(A, b, c, DOWN)
76- let C = fraction(B, 1, size(a), DOWN)
77- func D (E,F) = (E ++ [ScriptTransfer(addressFromStringValue(F), C, fromBase58String(o))])
81+func B (p,C) = {
82+ let D = fraction(C, c, d, DOWN)
83+ let E = fraction(D, 1, size(b()), DOWN)
84+ func F (G,H) = (G ++ [ScriptTransfer(addressFromStringValue(H), E, fromBase58String(p))])
7885
79- let G = {
80- let H = a
81- let I = size(H)
82- let J = nil
83- func K (L,M) = if ((M >= I))
84- then L
85- else D(L, H[M])
86+ let I = {
87+ let J = b()
88+ let K = size(J)
89+ let L = nil
90+ func M (N,O) = if ((O >= K))
91+ then N
92+ else F(N, J[O])
8693
87- func N (L,M) = if ((M >= I))
88- then L
94+ func P (N,O) = if ((O >= K))
95+ then N
8996 else throw("List size exceeds 5")
9097
91- N(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5)
98+ P(M(M(M(M(M(L, 0), 1), 2), 3), 4), 5)
9299 }
93- $Tuple2(G, B)
100+ $Tuple2(I, D)
94101 }
95102
96103
97-func O (f,P) = {
98- func Q (E,F) = {
99- let g = P
100- if ($isInstanceOf(g, "String"))
104+func Q (g,R) = {
105+ func S (G,H) = {
106+ let h = R
107+ if ($isInstanceOf(h, "String"))
101108 then {
102- let j = g
103- let G = d(addressFromStringValue(F), f)
104- if ((G != P))
105- then throw(("String Key not matching in " + F))
109+ let k = h
110+ let I = e(addressFromStringValue(H), g)
111+ if ((I != R))
112+ then throw(("String Key not matching in " + H))
106113 else true
107114 }
108- else if ($isInstanceOf(g, "Int"))
115+ else if ($isInstanceOf(h, "Int"))
109116 then {
110- let j = g
111- let G = i(addressFromStringValue(F), f)
112- if ((G != P))
113- then throw(("Integer Key not matching in " + F))
117+ let k = h
118+ let I = j(addressFromStringValue(H), g)
119+ if ((I != R))
120+ then throw(("Integer Key not matching in " + H))
114121 else true
115122 }
116123 else throw("Invalid Value!")
117124 }
118125
119- let H = a
120- let I = size(H)
121- let J = true
122- func K (L,M) = if ((M >= I))
123- then L
124- else Q(L, H[M])
126+ let J = b()
127+ let K = size(J)
128+ let L = true
129+ func M (N,O) = if ((O >= K))
130+ then N
131+ else S(N, J[O])
125132
126- func N (L,M) = if ((M >= I))
127- then L
133+ func P (N,O) = if ((O >= K))
134+ then N
128135 else throw("List size exceeds 5")
129136
130- N(K(K(K(K(K(J, 0), 1), 2), 3), 4), 5)
137+ P(M(M(M(M(M(L, 0), 1), 2), 3), 4), 5)
131138 }
132139
133140
134-@Callable(R)
135-func initiateAssets (q,S,s,T) = if ((R.caller != this))
141+@Callable(T)
142+func initiateAssets (r,U,V,t,W,X) = if ((T.caller != this))
136143 then throw("Only the owner dapp can add additional assets!")
137- else if ((k(p(q)) != ""))
144+ else if ((l(q(r)) != ""))
138145 then throw("Native Asset already listed!")
139- else if ((k(r(s)) != ""))
146+ else if ((l(s(t)) != ""))
140147 then throw("Other Asset already listed!")
141- else [StringEntry(p(q), s), StringEntry(r(s), q), BooleanEntry(t(q), S), BooleanEntry(t(s), T)]
148+ else [StringEntry(q(r), t), StringEntry(s(t), r), BooleanEntry(v(r), U), BooleanEntry(v(t), W), BooleanEntry(u(r), V), BooleanEntry(u(t), X)]
142149
143150
144151
145-@Callable(R)
146-func initiateOutGoingTx (U) = {
147- let w = R.payments
148- if ((size(w) != 1))
152+@Callable(T)
153+func initiateOutGoingTx (Y) = {
154+ let y = T.payments
155+ if ((size(y) != 1))
149156 then throw("Invalid payment added!")
150- else if ((1 > w[0].amount))
157+ else if ((1 > y[0].amount))
151158 then throw("Invalid amount added!")
152- else if (!(contains(U, "3")))
159+ else if (!(contains(Y, "3")))
153160 then throw("Please make sure your destination is correctly")
154161 else {
155- let o = v(w[0])
156- let V = if (m(t(o)))
157- then [Burn(fromBase58String(o), w[0].amount), StringEntry((("tx_" + toBase58String(R.transactionId)) + "_asset_to_receive"), k(r(o)))]
158- else [StringEntry((("tx_" + toBase58String(R.transactionId)) + "_asset_to_receive"), k(p(o)))]
159- ([StringEntry((("tx_" + toBase58String(R.transactionId)) + "_dest"), U), StringEntry((("tx_" + toBase58String(R.transactionId)) + "_status"), "UNPROCESSED")] ++ V)
162+ let p = x(y[0])
163+ let Z = if (n(v(p)))
164+ then [Burn(fromBase58String(p), y[0].amount), StringEntry((("tx_" + toBase58String(T.transactionId)) + "_asset_to_receive"), l(s(p)))]
165+ else [StringEntry((("tx_" + toBase58String(T.transactionId)) + "_asset_to_receive"), l(q(p)))]
166+ ([StringEntry((("tx_" + toBase58String(T.transactionId)) + "_dest"), Y), StringEntry((("tx_" + toBase58String(T.transactionId)) + "_status"), "UNPROCESSED")] ++ Z)
160167 }
161168 }
162169
163170
164171
165-@Callable(R)
166-func storeDataIncomingTx (W,U,o,X,Y) = if (if (if (if (if ((W == ""))
172+@Callable(T)
173+func storeDataIncomingTx (aa,Y,p,ab,ac) = if (if ((l((("tx_" + aa) + "_status")) != ""))
167174 then true
168- else !(contains(U, "3")))
169- then true
170- else (o == ""))
171- then true
172- else (X == 0))
173- then true
174- else (Y == ""))
175- then throw("Parameters seem wrong!")
176- else if (if ((k((("tx_" + W) + "_status")) != ""))
175+ else (l((("tx_" + aa) + "_dest")) != ""))
176+ then throw((aa + " is already stored!"))
177+ else if (if (if (if (if ((aa == ""))
177178 then true
178- else (k((("tx_" + W) + "_dest")) != ""))
179- then throw((W + " is already stored!"))
179+ else !(contains(Y, "3")))
180+ then true
181+ else (p == ""))
182+ then true
183+ else (ab == 0))
184+ then true
185+ else (ac == ""))
186+ then throw("Parameters seem wrong!")
180187 else {
181- let Z = O((("tx_" + W) + "_dest"), U)
182- let aa = O((("tx_" + W) + "_status"), "UNPROCESSED")
183- let ab = O((("tx_" + W) + "_assetId"), o)
184- let ac = O((("tx_" + W) + "_assetId_to_receive"), Y)
185- let ad = O((("tx_" + W) + "_amount"), X)
186- if (!(if (if (if (if (Z)
187- then aa
188+ let ad = Q((("tx_" + aa) + "_dest"), Y)
189+ let ae = Q((("tx_" + aa) + "_status"), "UNPROCESSED")
190+ let af = Q((("tx_" + aa) + "_assetId"), p)
191+ let ag = Q((("tx_" + aa) + "_assetId_to_receive"), ac)
192+ let ah = Q((("tx_" + aa) + "_amount"), ab)
193+ if (!(if (if (if (if (ad)
194+ then ae
188195 else false)
189- then ab
196+ then af
190197 else false)
191- then ac
198+ then ag
192199 else false)
193- then ad
200+ then ah
194201 else false))
195202 then throw("Dirty hacker!")
196- else [StringEntry((("tx_" + W) + "_dest"), U), StringEntry((("tx_" + W) + "_status"), "UNPROCESSED"), StringEntry((("tx_" + W) + "_assetId"), o), StringEntry((("tx_" + W) + "_assetId_to_receive"), Y), IntegerEntry((("tx_" + W) + "_amount"), X)]
203+ else [StringEntry((("tx_" + aa) + "_dest"), Y), StringEntry((("tx_" + aa) + "_status"), "UNPROCESSED"), StringEntry((("tx_" + aa) + "_assetId"), p), StringEntry((("tx_" + aa) + "_assetId_to_receive"), ac), IntegerEntry((("tx_" + aa) + "_amount"), ab)]
197204 }
198205
199206
200207
201-@Callable(R)
202-func releaseIncomingTx (W) = if ((W == ""))
208+@Callable(T)
209+func releaseIncomingTx (aa) = if ((aa == ""))
203210 then throw("Invalid data!")
204211 else {
205- let ae = k((("tx_" + W) + "_status"))
206- if ((ae == ""))
212+ let ai = l((("tx_" + aa) + "_status"))
213+ if ((ai == ""))
207214 then throw("No such txid found!")
208- else if ((ae == "PROCESSED"))
215+ else if ((ai == "PROCESSED"))
209216 then throw("Already processed!")
210217 else {
211- let Y = k((("tx_" + W) + "_assetId_to_receive"))
212- let U = k((("tx_" + W) + "_dest"))
213- let X = l((("tx_" + W) + "_amount"))
214- let o = k((("tx_" + W) + "_assetId"))
215- let V = if (m(t(Y)))
216- then if ((k(p(o)) != Y))
218+ let ac = l((("tx_" + aa) + "_assetId_to_receive"))
219+ let Y = l((("tx_" + aa) + "_dest"))
220+ let ab = m((("tx_" + aa) + "_amount"))
221+ let p = l((("tx_" + aa) + "_assetId"))
222+ let Z = if (n(v(ac)))
223+ then if ((l(q(p)) != ac))
217224 then throw("RE: Skipping tx, corrupt data!")
218- else [Reissue(fromBase58String(Y), X, true)]
219- else if ((k(r(o)) != Y))
225+ else [Reissue(fromBase58String(ac), ab, true)]
226+ else if ((l(s(p)) != ac))
220227 then throw("URE: Skipping tx, corrupt data!")
221228 else nil
222- ((V ++ [ScriptTransfer(addressFromStringValue(U), (X - z(Y, X)._2), fromBase58String(Y)), StringEntry((("tx_" + W) + "_status"), "PROCESSED"), StringEntry((("tx_" + W) + "_otherId"), toBase58String(R.transactionId))]) ++ z(Y, X)._1)
229+ ((Z ++ [ScriptTransfer(addressFromStringValue(Y), (ab - B(ac, ab)._2), fromBase58String(ac)), StringEntry((("tx_" + aa) + "_status"), "PROCESSED"), StringEntry((("tx_" + aa) + "_otherId"), toBase58String(T.transactionId))]) ++ B(ac, ab)._1)
223230 }
224231 }
225232
226233
227234
228-@Callable(R)
229-func finalizeOutgoingTx (W,af) = if (if ((W == ""))
235+@Callable(T)
236+func finalizeOutgoingTx (aa,aj) = if (if ((aa == ""))
230237 then true
231- else (af == ""))
238+ else (aj == ""))
232239 then throw("Broken data!")
233240 else {
234- let Z = O((("tx_" + W) + "_otherId"), af)
235- let aa = O((("tx_" + W) + "_status"), "PROCESSED")
236- if ((k((("tx_" + W) + "_otherId")) != ""))
237- then throw((W + " is already fully processed!"))
238- else if (!(if (Z)
239- then aa
241+ let ad = Q((("tx_" + aa) + "_otherId"), aj)
242+ let ae = Q((("tx_" + aa) + "_status"), "PROCESSED")
243+ if ((l((("tx_" + aa) + "_otherId")) != ""))
244+ then throw((aa + " is already fully processed!"))
245+ else if (!(if (ad)
246+ then ae
240247 else false))
241248 then throw("Dirty hacker!")
242249 else {
243- let o = k((("tx_" + W) + "_assetId"))
244- let X = l((("tx_" + W) + "_amount"))
245- (z(o, X)._1 ++ [StringEntry((("tx_" + W) + "_status"), "PROCESSED"), StringEntry((("tx_" + W) + "_otherId"), af)])
250+ let p = l((("tx_" + aa) + "_assetId"))
251+ let ab = m((("tx_" + aa) + "_amount"))
252+ (B(p, ab)._1 ++ [StringEntry((("tx_" + aa) + "_status"), "PROCESSED"), StringEntry((("tx_" + aa) + "_otherId"), aj)])
246253 }
247254 }
248255
249256

github/deemru/w8io/169f3d6 
92.19 ms