tx · BNDzSNQXvUnyPAzTcfbGCsrgBWhwuAstRndoxk4bpbbc

3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA:  -0.03000000 Waves

2022.07.09 19:11 [2132387] smart account 3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA > SELF 0.00000000 Waves

{ "type": 13, "id": "BNDzSNQXvUnyPAzTcfbGCsrgBWhwuAstRndoxk4bpbbc", "fee": 3000000, "feeAssetId": null, "timestamp": 1657383006077, "version": 2, "chainId": 84, "sender": "3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA", "senderPublicKey": "FA2TFZp55AkfpLAK7toKNNdufbHH3cY6aCSSMFcFPafT", "proofs": [ "Zvvqah4ZysY82pqz1Da9LSFmMbQ2rj8wsiYdywnGCmGu4vqLd53mXGnuiDitKNkoCDw7oXQVq8xmJ2AbWcsg8S5" ], "script": "base64:AAIFAAAAAAAAAFkIAhILCgkICAgICAgBAQQSAwoBBBIFCgMEBAQSAwoBARIDCgEEEgMKAQESAwoBCBIGCgQICAgEEgUKAwQICBIGCgQECAgBEgQKAggIEgUKAwgIARIECgIICAAAACcAAAAABG1haW4CAAAACm1haW5fYXNzZXQAAAAAAWwCAAAACWxwX2Fzc2V0XwAAAAADYWExAgAAAAZwb29sX18AAAAAAnNhAgAAAA9TVEFLSU5HX0FNT1VOVF8AAAAAAmxhAgAAAA1MRUFTRV9BTU9VTlRfAAAAAAJpeAIAAAADSURfAAAAAAdyYXRlRmVlAgAAABNwZXJjZW50YWdlX3JhdGVfZmVlAAAAAA5kZXBvc2l0X2hlaWdodAIAAAASRGVwb3NpdF9IZWlnaHRfT2ZfAAAAAAJEOAAAAAAABfXhAAAAAAACRDYAAAAAAAAPQkAAAAAAD2NvbnRyYWN0QWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABCAUAAAAEdGhpcwAAAAVieXRlcwAAAAAMZXhjaGFuZ2VSYXRlAAAAAAAAAAAFAQAAABFnZXRBZGRyZXNzSWZWYWxpZAAAAAEAAAAHYWRkcmVzcwkABCUAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAHYWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAADENhbid0IHBhcnNlIAUAAAAHYWRkcmVzcwIAAAALIGFzIGFkZHJlc3MBAAAAD2dldEFzc2V0SWZWYWxpZAAAAAEAAAAHYXNzZXRJZAkAAlgAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAAAAAJpZAkAASwAAAACCQABLAAAAAICAAAACkFzc2V0IElkOiAFAAAAB2Fzc2V0SWQCAAAADCBpcyBpbnZhbGlkLgEAAAATZ2V0QW1vdW50QmxvY2tBc3NldAAAAAEAAAAHYXNzZXRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAHYXNzZXRJZAAAAAAAAAAAAAEAAAAMZ2V0QXNzZXROYW1lAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwCQAD7AAAAAEFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAVhc3NldAUAAAAHJG1hdGNoMAgFAAAABWFzc2V0AAAABG5hbWUJAAACAAAAAQIAAAAQQ2FuJ3QgZmluZCBhc3NldAAAAAACYWMCAAAACGFjdGl2YXRlAAAAAAZwb29sQWMCAAAADmFjdGl2YXRlX3Bvb2xzAAAAAAZzd2FwQWMCAAAADWFjdGl2YXRlX3N3YXAAAAAAC2xpcXVpZGl0eUFjAgAAABJhY3RpdmF0ZV9saXF1aWRpdHkAAAAAA2JjRAIAAAATYmxvY2tfZGlzdHJpYnVpdGlvbgAAAAAMdG90YWxfbG9ja2VkAgAAABRUb3RhbF9Ub2tlbnNfTG9ja2VkXwAAAAAEdXNkbgIAAAAKdXNkbl9hc3NldAAAAAAEdXNkdAIAAAAKdXNkdF9hc3NldAAAAAAEdXNkYwIAAAAKdXNkY19hc3NldAAAAAAEbmdubgIAAAAKbmdubl9hc3NldAAAAAAEZXVybgIAAAAKZXVybl9hc3NldAAAAAAFd2F2ZXMCAAAABVdBVkVTAAAAAAZhV2F2ZXMCAAAADGFjY2VwdF93YXZlcwAAAAAFV0FWRVMFAAAABHVuaXQBAAAAAmtwAAAAAgAAAAZhc3NldDEAAAAGYXNzZXQyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAANhYTEFAAAABmFzc2V0MQIAAAABXwUAAAAGYXNzZXQyAQAAAAp2YWxpZFBvb2xLAAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAAAAAAAAAAQAAAAlrcEFkZHJlc3MAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAADa2V5AgAAAAFfBQAAAAdhZGRyZXNzAAAAAAAAAAAAAQAAAAZwb29sQUEAAAADAAAAB2FkZHJlc3MAAAADa2V5AAAABWFzc2V0CQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAA2tleQIAAAABXwUAAAAHYWRkcmVzcwIAAAABXwUAAAAFYXNzZXQAAAAAAAAAAAEBAAAABmFzc2V0UAAAAAIAAAADa2V5AAAABWFzc2V0CQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAADa2V5AgAAAAFfBQAAAAVhc3NldAAAAAAAAAAAAQEAAAAEcGtleQAAAAMAAAAGQXNzZXQxAAAABkFzc2V0MgAAAAdhZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA5kZXBvc2l0X2hlaWdodAkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDICAAAAAV8FAAAAB2FkZHJlc3MBAAAACWxwQmxvY2tlZAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACVNUQUtFX0xQXwUAAAAHYWRkcmVzcwIAAAABXwUAAAADa2V5AAAAAAAAAAAAAQAAABFhZG1pblZlcmlmaWNhdGlvbgAAAAAEAAAAByRtYXRjaDAJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAABWFkbWluAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAF0BQAAAAR0aGlzAQAAAA12YWxpZGF0ZUFzc2V0AAAAAwAAAAZhc3NldFMAAAALc3RyaW5nQXNzZXQAAAAHYWNXYXZlcwMDCQAAAAAAAAIFAAAABmFzc2V0UwUAAAAFV0FWRVMJAAAAAAAAAgUAAAALc3RyaW5nQXNzZXQCAAAABVdBVkVTBwMFAAAAB2FjV2F2ZXMGCQAAAgAAAAECAAAANFRoZSBzbWFydCBjb250cmFjdCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBXYXZlcy4DCQAAAAAAAAIFAAAABmFzc2V0UwkAAlkAAAABBQAAAAtzdHJpbmdBc3NldAYHAAAADQAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAkAAAALTWFpbkFzc2V0SWQAAAALVXNkbkFzc2V0SWQAAAALVXNkdEFzc2V0SWQAAAALVXNkY0Fzc2V0SWQAAAALTmdubkFzc2V0SWQAAAALRXVybkFzc2V0SWQAAAAScGVyY2VudGFnZVJhdGVTd2FwAAAAEWJsb2NrRGlzdHJpYnV0aW9uAAAAC2FjY2VwdFdhdmVzAwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAABFhZG1pblZlcmlmaWNhdGlvbgAAAAAEAAAAD2tleVBvb2xVc2RuVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkblVzZGMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtVc2RjQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5OZ25uCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2R0V2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZHRNYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHRFdXJuCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xOZ25uV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbE5nbm5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbE5nbm5FdXJuCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xNYWluV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC01haW5Bc3NldElkBQAAAAV3YXZlcwQAAAAPa2V5UG9vbE1haW5FdXJuCQEAAAACa3AAAAACBQAAAAtNYWluQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xFdXJuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC0V1cm5Bc3NldElkBQAAAAV3YXZlcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAARtYWluBQAAAAtNYWluQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAR1c2RuBQAAAAtVc2RuQXNzZXRJZAkABEwA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c3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQxBAAAABNjdXJyZW50QW1vdW50QXNzZXQyCQEAAAAGcG9vbEFBAAAAAwUAAAAKY3VycmVudEtleQkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDIFAAAABkFzc2V0MgQAAAAWbmV3Y3VycmVudEFtb3VudEFzc2V0MQkAAGUAAAACBQAAABNjdXJyZW50QW1vdW50QXNzZXQxBQAAAA1yZWNlaXZlQXNzZXQxBAAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQyCQAAZQAAAAIFAAAAE2N1cnJlbnRBbW91bnRBc3NldDIFAAAADXJlY2VpdmVBc3NldDIEAAAAEG5ld2N1cnJlbnRBbW91bnQJAABlAAAAAgUAAAANY3VycmVudEFtb3VudAUAAAAGQW1vdW50BAAAAA1uZXdhc3NldDFwb29sCQAAZQAAAAIFAAAACmFzc2V0MXBvb2wFAAAADXJlY2VpdmVBc3NldDEEAAAADW5ld2Fzc2V0MnBvb2wJAABlAAAAAgUAAAAKYXNzZXQycG9vbAUAAAANcmVjZWl2ZUFzc2V0MgkABEwAAAACCQEAAAAEQnVybgAAAAIJAAJZAAAAAQUAAAAJbHBBc3NldElkBQAAAAZBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAA1yZWNlaXZlQXNzZXQxBQAAAAZhc3NldDEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAA1yZWNlaXZlQXNzZXQyBQAAAAZhc3NldDIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAARwa2V5AAAAAwUAAAAGQXNzZXQxBQAAAAZBc3NldDIFAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAAAFfCQEA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", "height": 2132387, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3VH31pGdBfKNC6LE3wkTFiqCmDC9UsXA59JJSFxataKi Next: 6WeFiUyG35JVjvDt1qxLroreSAmFHWa7oTRshMNk6Zan Diff:
OldNewDifferences
3434 func q (p) = valueOrElse(getIntegerValue(this, p), 0)
3535
3636
37-let r = "activate"
38-
39-let s = "activate_pools"
40-
41-let t = "activate_swap"
42-
43-let u = "activate_liquidity"
44-
45-let v = "block_distribuition"
46-
47-let w = "Total_Tokens_Locked_"
48-
49-let x = "usdn_asset"
50-
51-let y = "usdt_asset"
52-
53-let z = "usdc_asset"
54-
55-let A = "ngnn_asset"
56-
57-let B = "eurn_asset"
58-
59-let C = "WAVES"
60-
61-let D = "accept_waves"
62-
63-let E = unit
64-
65-func F (G,H) = (((c + G) + "_") + H)
37+func r (p) = {
38+ let s = assetInfo(p)
39+ if ($isInstanceOf(s, "Asset"))
40+ then {
41+ let t = s
42+ t.name
43+ }
44+ else throw("Can't find asset")
45+ }
6646
6747
68-func I (J) = valueOrElse(getInteger(this, J), 0)
48+let u = "activate"
49+
50+let v = "activate_pools"
51+
52+let w = "activate_swap"
53+
54+let x = "activate_liquidity"
55+
56+let y = "block_distribuition"
57+
58+let z = "Total_Tokens_Locked_"
59+
60+let A = "usdn_asset"
61+
62+let B = "usdt_asset"
63+
64+let C = "usdc_asset"
65+
66+let D = "ngnn_asset"
67+
68+let E = "eurn_asset"
69+
70+let F = "WAVES"
71+
72+let G = "accept_waves"
73+
74+let H = unit
75+
76+func I (J,K) = (((c + J) + "_") + K)
6977
7078
71-func K (n,J) = valueOrElse(getIntegerValue(this, ((J + "_") + n)), 0)
79+func L (M) = valueOrElse(getInteger(this, M), 0)
7280
7381
74-func L (n,J,M) = valueOrElse(getIntegerValue(this, ((((J + "_") + n) + "_") + M)), 1)
82+func N (n,M) = valueOrElse(getIntegerValue(this, ((M + "_") + n)), 0)
7583
7684
77-func N (J,M) = valueOrElse(getIntegerValue(this, ((J + "_") + M)), 1)
85+func O (n,M,t) = valueOrElse(getIntegerValue(this, ((((M + "_") + n) + "_") + t)), 1)
7886
7987
80-func O (P,Q,n) = (((h + F(P, Q)) + "_") + n)
88+func P (M,t) = valueOrElse(getIntegerValue(this, ((M + "_") + t)), 1)
8189
8290
83-func R (n,J) = valueOrElse(getIntegerValue(this, ((("STAKE_LP_" + n) + "_") + J)), 0)
91+func Q (R,S,n) = (((h + I(R, S)) + "_") + n)
8492
8593
86-func S () = {
87- let T = getStringValue(this, "admin")
88- if ($isInstanceOf(T, "String"))
94+func T (n,M) = valueOrElse(getIntegerValue(this, ((("STAKE_LP_" + n) + "_") + M)), 0)
95+
96+
97+func U () = {
98+ let s = getStringValue(this, "admin")
99+ if ($isInstanceOf(s, "String"))
89100 then {
90- let U = T
91- Address(fromBase58String(U))
101+ let V = s
102+ Address(fromBase58String(V))
92103 }
93104 else this
94105 }
95106
96107
97-func V (W,X,Y) = if (if ((W == E))
98- then (X == "WAVES")
108+func W (X,Y,Z) = if (if ((X == H))
109+ then (Y == "WAVES")
99110 else false)
100- then if (Y)
111+ then if (Z)
101112 then true
102113 else throw("The smart contract does not currently support Waves.")
103- else if ((W == fromBase58String(X)))
114+ else if ((X == fromBase58String(Y)))
104115 then true
105116 else false
106117
107118
108-@Callable(Z)
109-func constructor (aa,ab,ac,ad,ae,af,ag,ah,ai) = if (if ((Z.caller == this))
119+@Callable(aa)
120+func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj) = if (if ((aa.caller == this))
110121 then true
111- else (Z.caller == S()))
122+ else (aa.caller == U()))
112123 then {
113- let aj = F(ab, ac)
114- let ak = F(ab, ad)
115- let al = F(ab, ae)
116- let am = F(ab, C)
117- let an = F(ab, aa)
118- let ao = F(ab, af)
119- let ap = F(ad, ac)
120- let aq = F(ad, ae)
121- let ar = F(ad, C)
122- let as = F(ad, aa)
123- let at = F(ad, af)
124- let au = F(ac, ae)
125- let av = F(ac, C)
126- let aw = F(ac, aa)
127- let ax = F(ac, af)
128- let ay = F(ae, C)
129- let az = F(ae, aa)
130- let aA = F(ae, af)
131- let aB = F(aa, C)
132- let aC = F(aa, af)
133- let aD = F(af, C)
134-[StringEntry(a, aa), StringEntry(x, ab), StringEntry(z, ad), StringEntry(y, ac), StringEntry(A, ae), BooleanEntry(D, ai), IntegerEntry(g, ag), BooleanEntry(r, true), BooleanEntry(t, false), BooleanEntry(s, false), BooleanEntry(u, false), IntegerEntry(v, ah), IntegerEntry(aj, 1), IntegerEntry(am, 1), IntegerEntry(ak, 1), IntegerEntry(al, 1), IntegerEntry(an, 1), IntegerEntry(ap, 1), IntegerEntry(aq, 1), IntegerEntry(ar, 1), IntegerEntry(aw, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(ay, 1), IntegerEntry(az, 1), IntegerEntry(aB, 1), IntegerEntry(aD, 1), IntegerEntry(aC, 1), IntegerEntry(aA, 1), IntegerEntry(at, 1), IntegerEntry(ao, 1), IntegerEntry(ax, 1), StringEntry(B, af)]
124+ let ak = I(ac, ad)
125+ let al = I(ac, ae)
126+ let am = I(ac, af)
127+ let an = I(ac, F)
128+ let ao = I(ac, ab)
129+ let ap = I(ac, ag)
130+ let aq = I(ae, ad)
131+ let ar = I(ae, af)
132+ let as = I(ae, F)
133+ let at = I(ae, ab)
134+ let au = I(ae, ag)
135+ let av = I(ad, af)
136+ let aw = I(ad, F)
137+ let ax = I(ad, ab)
138+ let ay = I(ad, ag)
139+ let az = I(af, F)
140+ let aA = I(af, ab)
141+ let aB = I(af, ag)
142+ let aC = I(ab, F)
143+ let aD = I(ab, ag)
144+ let aE = I(ag, F)
145+[StringEntry(a, ab), StringEntry(A, ac), StringEntry(C, ae), StringEntry(B, ad), StringEntry(D, af), BooleanEntry(G, aj), IntegerEntry(g, ah), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, ai), IntegerEntry(ak, 1), IntegerEntry(an, 1), IntegerEntry(al, 1), IntegerEntry(am, 1), IntegerEntry(ao, 1), IntegerEntry(aq, 1), IntegerEntry(ar, 1), IntegerEntry(as, 1), IntegerEntry(ax, 1), IntegerEntry(av, 1), IntegerEntry(aw, 1), IntegerEntry(az, 1), IntegerEntry(aA, 1), IntegerEntry(aC, 1), IntegerEntry(aE, 1), IntegerEntry(aD, 1), IntegerEntry(aB, 1), IntegerEntry(au, 1), IntegerEntry(ap, 1), IntegerEntry(ay, 1), StringEntry(E, ag)]
135146 }
136147 else throw("Only the Admin itself can invoke this function")
137148
138149
139150
140-@Callable(Z)
141-func activate (aE) = if (if ((Z.caller == this))
151+@Callable(aa)
152+func activate (aF) = if (if ((aa.caller == this))
142153 then true
143- else (Z.caller == S()))
144- then [BooleanEntry(r, aE)]
154+ else (aa.caller == U()))
155+ then [BooleanEntry(u, aF)]
145156 else throw("Only the Admin itself can invoke this function")
146157
147158
148159
149-@Callable(Z)
150-func maintenance (aF,aG,aH) = if (if ((Z.caller == this))
160+@Callable(aa)
161+func maintenance (aG,aH,aI) = if (if ((aa.caller == this))
151162 then true
152- else (Z.caller == S()))
153- then [BooleanEntry(s, aF), BooleanEntry(t, aG), BooleanEntry(u, aH)]
163+ else (aa.caller == U()))
164+ then [BooleanEntry(v, aG), BooleanEntry(w, aH), BooleanEntry(x, aI)]
154165 else throw("Only the Admin itself can invoke this function")
155166
156167
157168
158-@Callable(Z)
159-func percentualRateFeeSwapEdit (aI) = if (if ((Z.caller == this))
169+@Callable(aa)
170+func percentualRateFeeSwapEdit (aJ) = if (if ((aa.caller == this))
160171 then true
161- else (Z.caller == S()))
162- then [IntegerEntry(g, aI)]
172+ else (aa.caller == U()))
173+ then [IntegerEntry(g, aJ)]
163174 else throw("Only the Admin itself can invoke this function")
164175
165176
166177
167-@Callable(Z)
168-func acceptWaves (aJ) = if (if ((Z.caller == this))
178+@Callable(aa)
179+func acceptWaves (aK) = if (if ((aa.caller == this))
169180 then true
170- else (Z.caller == S()))
171- then [BooleanEntry(D, aJ)]
181+ else (aa.caller == U()))
182+ then [BooleanEntry(G, aK)]
172183 else throw("Only the Admin itself can invoke this function")
173184
174185
175186
176-@Callable(Z)
177-func blockDistribution (aK) = if (if ((Z.caller == this))
187+@Callable(aa)
188+func blockDistribution (aL) = if (if ((aa.caller == this))
178189 then true
179- else (Z.caller == S()))
180- then [IntegerEntry(v, aK)]
190+ else (aa.caller == U()))
191+ then [IntegerEntry(y, aL)]
181192 else throw("Only the Admin itself can invoke this function")
182193
183194
184195
185-@Callable(Z)
186-func addAdmin (n) = if (if ((Z.caller == this))
196+@Callable(aa)
197+func addAdmin (n) = if (if ((aa.caller == this))
187198 then true
188- else (Z.caller == S()))
199+ else (aa.caller == U()))
189200 then [StringEntry("admin", n)]
190201 else throw("Only the Admin itself can invoke this function")
191202
192203
193204
194-@Callable(Z)
195-func lpAssetCreateForPairPool (G,H,aL) = {
196- let J = I(F(G, H))
197- if (if ((Z.caller == this))
205+@Callable(aa)
206+func lpAssetCreateForPairPool (J,K,aM,aN) = {
207+ let aO = if ((J == F))
208+ then F
209+ else r(fromBase58String(J))
210+ let aP = if ((K == F))
211+ then F
212+ else r(fromBase58String(K))
213+ let aQ = if (aN)
214+ then aM
215+ else ((aO + "_") + aP)
216+ let M = L(I(J, K))
217+ if (if ((aa.caller == this))
198218 then true
199- else (Z.caller == S()))
200- then if (!((J == 0)))
219+ else (aa.caller == U()))
220+ then if (!((M == 0)))
201221 then {
202- let aM = Issue(("LP_" + aL), ((("LP asset for pool liquidity in AxAi Swap pair " + G) + "_") + H), 1, 8, true)
203- let aN = calculateAssetId(aM)
204-[StringEntry((b + F(G, H)), toBase58String(aN)), aM]
222+ let aR = Issue(aQ, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), 1, 8, true)
223+ let aS = calculateAssetId(aR)
224+[StringEntry((b + I(J, K)), toBase58String(aS)), aR]
205225 }
206226 else throw("Invalid Pool Key. Try inverting the assets")
207227 else throw("Only the Admin itself can invoke this function")
209229
210230
211231
212-@Callable(Z)
213-func deposit (aO,P,Q) = {
214- let aP = getBooleanValue(this, r)
215- let aQ = getBooleanValue(this, u)
216- let aR = getStringValue(this, a)
217- let aS = if (aO)
218- then getStringValue(this, (b + F(P, Q)))
219- else aR
220- if (aP)
221- then if (!(aQ))
222- then if ((Z.payments[0].assetId != fromBase58String(aS)))
223- then throw((("Invalid asset! Kindly Deposit Only " + aR) + " or valid asset lp"))
224- else if (!(aO))
232+@Callable(aa)
233+func deposit (aT,R,S) = {
234+ let aU = getBooleanValue(this, u)
235+ let aV = getBooleanValue(this, x)
236+ let aW = getStringValue(this, a)
237+ let aX = if (aT)
238+ then getStringValue(this, (b + I(R, S)))
239+ else aW
240+ if (aU)
241+ then if (!(aV))
242+ then if ((aa.payments[0].assetId != fromBase58String(aX)))
243+ then throw((("Invalid asset! Kindly Deposit Only " + aW) + " or valid asset lp"))
244+ else if (!(aT))
225245 then {
226- let aT = toBase58String(Z.caller.bytes)
227- let aU = {
228- let T = getInteger(this, aT)
229- if ($isInstanceOf(T, "Int"))
246+ let aY = toBase58String(aa.caller.bytes)
247+ let aZ = {
248+ let s = getInteger(this, aY)
249+ if ($isInstanceOf(s, "Int"))
230250 then {
231- let aV = T
232- aV
251+ let ba = s
252+ ba
233253 }
234254 else 0
235255 }
236- let aW = (aU + Z.payments[0].amount)
237- let aX = IntegerEntry(aT, aW)
238- let aY = IntegerEntry((h + aT), height)
239- let aZ = {
240- let T = getInteger(this, "Total_Tokens_Locked:")
241- if ($isInstanceOf(T, "Int"))
256+ let bb = (aZ + aa.payments[0].amount)
257+ let bc = IntegerEntry(aY, bb)
258+ let bd = IntegerEntry((h + aY), height)
259+ let be = {
260+ let s = getInteger(this, "Total_Tokens_Locked:")
261+ if ($isInstanceOf(s, "Int"))
242262 then {
243- let aV = T
244- aV
263+ let ba = s
264+ ba
245265 }
246266 else 0
247267 }
248- let ba = (aZ + Z.payments[0].amount)
249- let bb = IntegerEntry("Total_Tokens_Locked:", ba)
250-[aX, aY, bb]
268+ let bf = (be + aa.payments[0].amount)
269+ let bg = IntegerEntry("Total_Tokens_Locked:", bf)
270+[bc, bd, bg]
251271 }
252272 else {
253- let bc = F(P, Q)
254- let J = I(bc)
255- if (!((J == 0)))
273+ let bh = I(R, S)
274+ let M = L(bh)
275+ if (!((M == 0)))
256276 then {
257- let aT = toBase58String(Z.caller.bytes)
258- let aU = {
259- let T = getInteger(this, ((("STAKE_LP_" + aT) + "_") + bc))
260- if ($isInstanceOf(T, "Int"))
277+ let aY = toBase58String(aa.caller.bytes)
278+ let aZ = {
279+ let s = getInteger(this, ((("STAKE_LP_" + aY) + "_") + bh))
280+ if ($isInstanceOf(s, "Int"))
261281 then {
262- let aV = T
263- aV
282+ let ba = s
283+ ba
264284 }
265285 else 0
266286 }
267- let aW = (aU + Z.payments[0].amount)
268- let aX = IntegerEntry(((("STAKE_LP_" + aT) + "_") + bc), aW)
269- let aY = IntegerEntry(((((h + "_") + aT) + "_") + bc), height)
270- let aZ = {
271- let T = getInteger(this, ("Total_Tokens_LP_Locked_" + bc))
272- if ($isInstanceOf(T, "Int"))
287+ let bb = (aZ + aa.payments[0].amount)
288+ let bc = IntegerEntry(((("STAKE_LP_" + aY) + "_") + bh), bb)
289+ let bd = IntegerEntry(((((h + "_") + aY) + "_") + bh), height)
290+ let be = {
291+ let s = getInteger(this, ("Total_Tokens_LP_Locked_" + bh))
292+ if ($isInstanceOf(s, "Int"))
273293 then {
274- let aV = T
275- aV
294+ let ba = s
295+ ba
276296 }
277297 else 0
278298 }
279- let ba = (aZ + Z.payments[0].amount)
280- let bb = IntegerEntry(("Total_Tokens_LP_Locked_" + bc), ba)
281-[aX, aY, bb]
299+ let bf = (be + aa.payments[0].amount)
300+ let bg = IntegerEntry(("Total_Tokens_LP_Locked_" + bh), bf)
301+[bc, bd, bg]
282302 }
283303 else throw("Invalid Pool key.")
284304 }
288308
289309
290310
291-@Callable(Z)
292-func remove (aO,P,Q,bd) = {
293- let aP = getBooleanValue(this, r)
294- let aQ = getBooleanValue(this, u)
295- let be = Z.payments[0]
296- let aR = fromBase58String(getStringValue(this, a))
297- if (aP)
298- then if (!(aQ))
311+@Callable(aa)
312+func remove (aT,R,S,bi) = {
313+ let aU = getBooleanValue(this, u)
314+ let aV = getBooleanValue(this, x)
315+ let bj = aa.payments[0]
316+ let aW = fromBase58String(getStringValue(this, a))
317+ if (aU)
318+ then if (!(aV))
299319 then {
300- let aT = toBase58String(Z.caller.bytes)
301- let aU = valueOrElse(if (aO)
302- then getIntegerValue(this, ((("STAKE_LP_" + aT) + "_") + F(P, Q)))
303- else getInteger(this, aT), 0)
304- let bf = if (aO)
305- then ((((h + "_") + aT) + "_") + F(P, Q))
306- else (h + aT)
307- let aZ = if (aO)
308- then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + F(P, Q)))
320+ let aY = toBase58String(aa.caller.bytes)
321+ let aZ = valueOrElse(if (aT)
322+ then getIntegerValue(this, ((("STAKE_LP_" + aY) + "_") + I(R, S)))
323+ else getInteger(this, aY), 0)
324+ let bk = if (aT)
325+ then ((((h + "_") + aY) + "_") + I(R, S))
326+ else (h + aY)
327+ let be = if (aT)
328+ then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(R, S)))
309329 else getIntegerValue(this, "Total_Tokens_Locked:")
310- let ba = (aZ - bd)
311- let bg = (height - getIntegerValue(this, bf))
312- let bh = getIntegerValue(this, v)
313- let bi = ((bg * bh) * i)
314- let bj = (bi / (aZ / bd))
315- if ((0 > bd))
316- then throw(if (aO)
317- then (((("Can't withdraw negative " + P) + "/") + Q) + " amount")
330+ let bf = (be - bi)
331+ let bl = (height - getIntegerValue(this, bk))
332+ let bm = getIntegerValue(this, y)
333+ let bn = ((bl * bm) * i)
334+ let bo = (bn / (be / bi))
335+ if ((0 > bi))
336+ then throw(if (aT)
337+ then (((("Can't withdraw negative " + R) + "/") + S) + " amount")
318338 else "Can't withdraw negative AxAi amount")
319339 else {
320- let aW = (aU - bd)
321- if ((0 > aW))
322- then throw(if (aO)
323- then (((("Not enough Asset Lp " + P) + "/") + Q) + " balance")
340+ let bb = (aZ - bi)
341+ if ((0 > bb))
342+ then throw(if (aT)
343+ then (((("Not enough Asset Lp " + R) + "/") + S) + " balance")
324344 else "Not enough AxAi balance")
325- else [IntegerEntry(if (aO)
326- then ((("STAKE_LP_" + aT) + "_") + F(P, Q))
327- else aT, aW), IntegerEntry(if (aO)
328- then ("Total_Tokens_LP_Locked_" + F(P, Q))
329- else "Total_Tokens_Locked:", ba), ScriptTransfer(Z.caller, bd, if (aO)
330- then fromBase58String(getStringValue(this, (b + F(P, Q))))
331- else aR), ScriptTransfer(Z.caller, bj, aR)]
345+ else [IntegerEntry(if (aT)
346+ then ((("STAKE_LP_" + aY) + "_") + I(R, S))
347+ else aY, bb), IntegerEntry(if (aT)
348+ then ("Total_Tokens_LP_Locked_" + I(R, S))
349+ else "Total_Tokens_Locked:", bf), ScriptTransfer(aa.caller, bi, if (aT)
350+ then fromBase58String(getStringValue(this, (b + I(R, S))))
351+ else aW), ScriptTransfer(aa.caller, bo, aW)]
332352 }
333353 }
334354 else throw("liquidity is currently under maintenance.")
337357
338358
339359
340-@Callable(Z)
341-func addLiquidity (P,Q) = {
342- let aP = getBooleanValue(this, r)
343- let bk = getBooleanValue(this, s)
344- let Y = getBooleanValue(this, D)
345- let J = I(F(P, Q))
346- let G = Z.payments[0].assetId
347- let H = Z.payments[1].assetId
348- let bl = toBytes(getStringValue(this, x))
349- let bm = toBytes(getStringValue(this, z))
350- let bn = toBytes(getStringValue(this, y))
351- let bo = toBytes(getStringValue(this, A))
352- let bp = toBytes(getStringValue(this, B))
353- let aR = fromBase58String(getStringValue(this, a))
354- let aS = getStringValue(this, (b + F(P, Q)))
355- if (aP)
356- then if (!(bk))
357- then if (if (if (!((G == H)))
358- then V(G, P, Y)
360+@Callable(aa)
361+func addLiquidity (R,S) = {
362+ let aU = getBooleanValue(this, u)
363+ let bp = getBooleanValue(this, v)
364+ let Z = getBooleanValue(this, G)
365+ let M = L(I(R, S))
366+ let J = aa.payments[0].assetId
367+ let K = aa.payments[1].assetId
368+ let bq = toBytes(getStringValue(this, A))
369+ let br = toBytes(getStringValue(this, C))
370+ let bs = toBytes(getStringValue(this, B))
371+ let bt = toBytes(getStringValue(this, D))
372+ let bu = toBytes(getStringValue(this, E))
373+ let aW = fromBase58String(getStringValue(this, a))
374+ let aX = getStringValue(this, (b + I(R, S)))
375+ if (aU)
376+ then if (!(bp))
377+ then if (if (if (!((J == K)))
378+ then W(J, R, Z)
359379 else false)
360- then V(H, Q, Y)
380+ then W(K, S, Z)
361381 else false)
362- then if (if (if (if (if (if (if (if ((G == bl))
382+ then if (if (if (if (if (if (if (if ((J == bq))
363383 then true
364- else (G == bm))
384+ else (J == br))
365385 then true
366- else (G == bn))
386+ else (J == bs))
367387 then true
368- else (G == bo))
388+ else (J == bt))
369389 then true
370- else (G == aR))
390+ else (J == aW))
371391 then true
372- else (G == E))
392+ else (J == H))
373393 then true
374- else (G == bp))
375- then if (if (if (if (if (if ((H == bl))
394+ else (J == bu))
395+ then if (if (if (if (if (if ((K == bq))
376396 then true
377- else (H == bm))
397+ else (K == br))
378398 then true
379- else (H == bn))
399+ else (K == bs))
380400 then true
381- else (H == bo))
401+ else (K == bt))
382402 then true
383- else (H == aR))
403+ else (K == aW))
384404 then true
385- else (H == E))
405+ else (K == H))
386406 then true
387- else (H == bp)
407+ else (K == bu)
388408 else false)
389- then if (!((J == 0)))
409+ then if (!((M == 0)))
390410 then {
391- let aT = toBase58String(Z.caller.bytes)
392- let aU = K(aT, F(P, Q))
393- let bq = L(aT, F(P, Q), P)
394- let br = L(aT, F(P, Q), Q)
395- let bs = N(F(P, Q), P)
396- let bt = N(F(P, Q), Q)
397- let bu = (bs / bt)
398- let bv = (bq + Z.payments[0].amount)
399- let bw = (br + Z.payments[1].amount)
400- let bx = (aU + bu)
401- let by = (bs + Z.payments[0].amount)
402- let bz = (bt + Z.payments[1].amount)
403-[Reissue(fromBase58String(aS), bu, true), ScriptTransfer(Address(Z.caller.bytes), bu, fromBase58String(aS)), IntegerEntry(O(P, Q, aT), height), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + P), bv), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + Q), bw), IntegerEntry(((F(P, Q) + "_") + aT), bx), IntegerEntry(((F(P, Q) + "_") + P), by), IntegerEntry(((F(P, Q) + "_") + Q), bz), IntegerEntry(P, (q(P) + Z.payments[0].amount)), IntegerEntry(Q, (q(Q) + Z.payments[1].amount)), IntegerEntry(aS, (q(aS) + bu))]
411+ let aY = toBase58String(aa.caller.bytes)
412+ let aZ = N(aY, I(R, S))
413+ let bv = O(aY, I(R, S), R)
414+ let bw = O(aY, I(R, S), S)
415+ let bx = P(I(R, S), R)
416+ let by = P(I(R, S), S)
417+ let bz = (bx / by)
418+ let bA = (bv + aa.payments[0].amount)
419+ let bB = (bw + aa.payments[1].amount)
420+ let bC = (aZ + bz)
421+ let bD = (bx + aa.payments[0].amount)
422+ let bE = (by + aa.payments[1].amount)
423+[Reissue(fromBase58String(aX), bz, true), ScriptTransfer(Address(aa.caller.bytes), bz, fromBase58String(aX)), IntegerEntry(Q(R, S, aY), height), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + R), bA), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + S), bB), IntegerEntry(((I(R, S) + "_") + aY), bC), IntegerEntry(((I(R, S) + "_") + R), bD), IntegerEntry(((I(R, S) + "_") + S), bE), IntegerEntry(R, (q(R) + aa.payments[0].amount)), IntegerEntry(S, (q(S) + aa.payments[1].amount)), IntegerEntry(aX, (q(aX) + bz))]
404424 }
405425 else throw("Invalid Pool Key.")
406426 else throw("Invalid Asset1 or Asset2!")
411431
412432
413433
414-@Callable(Z)
415-func removeLiquidity (P,Q,bA) = {
416- let aT = toBase58String(Z.caller.bytes)
417- let aP = getBooleanValue(this, r)
418- let bk = getBooleanValue(this, s)
419- let Y = getBooleanValue(this, D)
420- let bc = F(P, Q)
421- let J = I(bc)
422- let G = if ((P == C))
423- then if (Y)
424- then E
434+@Callable(aa)
435+func removeLiquidity (R,S,bF) = {
436+ let aY = toBase58String(aa.caller.bytes)
437+ let aU = getBooleanValue(this, u)
438+ let bp = getBooleanValue(this, v)
439+ let Z = getBooleanValue(this, G)
440+ let bh = I(R, S)
441+ let M = L(bh)
442+ let J = if ((R == F))
443+ then if (Z)
444+ then H
425445 else throw("The smart contract does not currently support Waves.")
426- else fromBase58String(P)
427- let H = if ((Q == C))
428- then if (Y)
429- then E
446+ else fromBase58String(R)
447+ let K = if ((S == F))
448+ then if (Z)
449+ then H
430450 else throw("The smart contract does not currently support Waves.")
431- else fromBase58String(Q)
432- let bl = toBytes(getStringValue(this, x))
433- let bm = toBytes(getStringValue(this, z))
434- let bn = toBytes(getStringValue(this, y))
435- let bo = toBytes(getStringValue(this, A))
436- let aR = fromBase58String(getStringValue(this, a))
437- let bp = toBytes(getStringValue(this, B))
438- let aS = getStringValue(this, (b + F(P, Q)))
439- let aU = K(aT, F(P, Q))
440- let bB = R(aT, bc)
441- let bC = getIntegerValue(this, aS)
442- let bD = getIntegerValue(this, ((F(P, Q) + "_") + P))
443- let bE = getIntegerValue(this, ((F(P, Q) + "_") + Q))
444- if (aP)
445- then if (!(bk))
446- then if (!((P == Q)))
447- then if (if (if (if (if (if (if (if ((G == bl))
451+ else fromBase58String(S)
452+ let bq = toBytes(getStringValue(this, A))
453+ let br = toBytes(getStringValue(this, C))
454+ let bs = toBytes(getStringValue(this, B))
455+ let bt = toBytes(getStringValue(this, D))
456+ let aW = fromBase58String(getStringValue(this, a))
457+ let bu = toBytes(getStringValue(this, E))
458+ let aX = getStringValue(this, (b + I(R, S)))
459+ let aZ = N(aY, I(R, S))
460+ let bG = T(aY, bh)
461+ let bH = getIntegerValue(this, aX)
462+ let bI = getIntegerValue(this, ((I(R, S) + "_") + R))
463+ let bJ = getIntegerValue(this, ((I(R, S) + "_") + S))
464+ if (aU)
465+ then if (!(bp))
466+ then if (!((R == S)))
467+ then if (if (if (if (if (if (if (if ((J == bq))
448468 then true
449- else (G == bm))
469+ else (J == br))
450470 then true
451- else (G == bn))
471+ else (J == bs))
452472 then true
453- else (G == bo))
473+ else (J == bt))
454474 then true
455- else (G == aR))
475+ else (J == aW))
456476 then true
457- else (G == E))
477+ else (J == H))
458478 then true
459- else (G == bp))
460- then if (if (if (if (if (if ((H == bl))
479+ else (J == bu))
480+ then if (if (if (if (if (if ((K == bq))
461481 then true
462- else (H == bm))
482+ else (K == br))
463483 then true
464- else (H == bn))
484+ else (K == bs))
465485 then true
466- else (H == bo))
486+ else (K == bt))
467487 then true
468- else (H == aR))
488+ else (K == aW))
469489 then true
470- else (H == E))
490+ else (K == H))
471491 then true
472- else (H == bp)
492+ else (K == bu)
473493 else false)
474- then if (!((J == 0)))
475- then if (!((aU == 0)))
476- then if (((aU - bB) >= bA))
494+ then if (!((M == 0)))
495+ then if (!((aZ == 0)))
496+ then if (((aZ - bG) >= bF))
477497 then {
478- let bF = (bA / bC)
479- let bG = (bF * bD)
480- let bH = (bF * bE)
481- let bs = N(F(P, Q), P)
482- let bt = N(F(P, Q), Q)
483- let bq = L(aT, F(P, Q), P)
484- let br = L(aT, F(P, Q), Q)
485- let bv = (bq - bG)
486- let bw = (br - bH)
487- let bx = (aU - bA)
488- let by = (bs - bG)
489- let bz = (bt - bH)
490-[Burn(fromBase58String(aS), bA), ScriptTransfer(Address(Z.caller.bytes), bG, G), ScriptTransfer(Address(Z.caller.bytes), bH, H), IntegerEntry(O(P, Q, aT), height), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + P), bv), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + Q), bw), IntegerEntry(((F(P, Q) + "_") + aT), bx), IntegerEntry(((F(P, Q) + "_") + P), by), IntegerEntry(((F(P, Q) + "_") + Q), bz), IntegerEntry(P, (q(P) - bG)), IntegerEntry(Q, (q(Q) - bH)), IntegerEntry(aS, (q(aS) - bA))]
498+ let bK = (bF / bH)
499+ let bL = (bK * bI)
500+ let bM = (bK * bJ)
501+ let bx = P(I(R, S), R)
502+ let by = P(I(R, S), S)
503+ let bv = O(aY, I(R, S), R)
504+ let bw = O(aY, I(R, S), S)
505+ let bA = (bv - bL)
506+ let bB = (bw - bM)
507+ let bC = (aZ - bF)
508+ let bD = (bx - bL)
509+ let bE = (by - bM)
510+[Burn(fromBase58String(aX), bF), ScriptTransfer(Address(aa.caller.bytes), bL, J), ScriptTransfer(Address(aa.caller.bytes), bM, K), IntegerEntry(Q(R, S, aY), height), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + R), bA), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + S), bB), IntegerEntry(((I(R, S) + "_") + aY), bC), IntegerEntry(((I(R, S) + "_") + R), bD), IntegerEntry(((I(R, S) + "_") + S), bE), IntegerEntry(R, (q(R) - bL)), IntegerEntry(S, (q(S) - bM)), IntegerEntry(aX, (q(aX) - bF))]
491511 }
492512 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
493513 else throw("You have no locked values ​​in the pool")
500520
501521
502522
503-@Callable(Z)
504-func swap (P,Q) = {
505- let aT = toBase58String(Z.caller.bytes)
506- let Y = getBooleanValue(this, D)
507- let aP = getBooleanValue(this, r)
508- let bI = getBooleanValue(this, t)
509- let bc = F(P, Q)
510- let J = I(bc)
511- let G = Z.payments[0].assetId
512- let bl = toBytes(getStringValue(this, x))
513- let bm = toBytes(getStringValue(this, z))
514- let bn = toBytes(getStringValue(this, y))
515- let bo = toBytes(getStringValue(this, A))
516- let aR = fromBase58String(getStringValue(this, a))
517- let bp = toBytes(getStringValue(this, B))
518- let bJ = getIntegerValue(this, ((F(P, Q) + "_") + P))
519- let bK = getIntegerValue(this, ((F(P, Q) + "_") + Q))
520- let bL = getIntegerValue(this, g)
521- if (aP)
522- then if (!(bI))
523- then if (if (!((P == Q)))
524- then if (V(G, P, Y))
523+@Callable(aa)
524+func swap (R,S) = {
525+ let aY = toBase58String(aa.caller.bytes)
526+ let Z = getBooleanValue(this, G)
527+ let aU = getBooleanValue(this, u)
528+ let bN = getBooleanValue(this, w)
529+ let bh = I(R, S)
530+ let M = L(bh)
531+ let J = aa.payments[0].assetId
532+ let bq = toBytes(getStringValue(this, A))
533+ let br = toBytes(getStringValue(this, C))
534+ let bs = toBytes(getStringValue(this, B))
535+ let bt = toBytes(getStringValue(this, D))
536+ let aW = fromBase58String(getStringValue(this, a))
537+ let bu = toBytes(getStringValue(this, E))
538+ let bO = getIntegerValue(this, ((I(R, S) + "_") + R))
539+ let bP = getIntegerValue(this, ((I(R, S) + "_") + S))
540+ let bQ = getIntegerValue(this, g)
541+ if (aU)
542+ then if (!(bN))
543+ then if (if (!((R == S)))
544+ then if (W(J, R, Z))
525545 then true
526- else V(G, Q, Y)
546+ else W(J, S, Z)
527547 else false)
528- then if (if (if (if (if (if (if ((G == bl))
548+ then if (if (if (if (if (if (if ((J == bq))
529549 then true
530- else (G == bm))
550+ else (J == br))
531551 then true
532- else (G == bn))
552+ else (J == bs))
533553 then true
534- else (G == bo))
554+ else (J == bt))
535555 then true
536- else (G == aR))
556+ else (J == aW))
537557 then true
538- else (G == bp))
558+ else (J == bu))
539559 then true
540- else (G == E))
541- then if (!((J == 0)))
542- then if ((Z.payments[1].assetId == aR))
543- then if ((Z.payments[1].amount == 300000))
560+ else (J == H))
561+ then if (!((M == 0)))
562+ then if ((aa.payments[1].assetId == aW))
563+ then if ((aa.payments[1].amount == 300000))
544564 then {
545- let bM = if (!((G == fromBase58String(P))))
546- then (bJ / bK)
547- else (bK / bJ)
548- let aK = (Z.payments[0].amount - ((Z.payments[0].amount * bL) / (100 * i)))
549- let bN = (aK * bM)
550-[ScriptTransfer(Address(Z.caller.bytes), bN, if ((Q == C))
551- then E
552- else fromBase58String(Q)), IntegerEntry(Q, (q(Q) - bN)), IntegerEntry(((F(P, Q) + "_") + Q), (N(F(P, Q), Q) - bN))]
565+ let bR = if (!((J == fromBase58String(R))))
566+ then (bO / bP)
567+ else (bP / bO)
568+ let aL = (aa.payments[0].amount - ((aa.payments[0].amount * bQ) / (100 * i)))
569+ let bS = (aL * bR)
570+[ScriptTransfer(Address(aa.caller.bytes), bS, if ((S == F))
571+ then H
572+ else fromBase58String(S)), IntegerEntry(S, (q(S) - bS)), IntegerEntry(((I(R, S) + "_") + S), (P(I(R, S), S) - bS))]
553573 }
554574 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
555575 else throw("Invalid rate asset")
561581 }
562582
563583
564-@Verifier(bO)
565-func bP () = {
566- let T = bO
567- if ($isInstanceOf(T, "Order"))
584+@Verifier(bT)
585+func bU () = {
586+ let s = bT
587+ if ($isInstanceOf(s, "Order"))
568588 then {
569- let bQ = T
589+ let bV = s
570590 true
571591 }
572- else if ($isInstanceOf(T, "ExchangeTransaction"))
592+ else if ($isInstanceOf(s, "ExchangeTransaction"))
573593 then {
574- let bR = T
594+ let bW = s
575595 true
576596 }
577- else sigVerify(bO.bodyBytes, bO.proofs[0], bO.senderPublicKey)
597+ else sigVerify(bT.bodyBytes, bT.proofs[0], bT.senderPublicKey)
578598 }
579599
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "main_asset"
55
66 let b = "lp_asset_"
77
88 let c = "pool__"
99
1010 let d = "STAKING_AMOUNT_"
1111
1212 let e = "LEASE_AMOUNT_"
1313
1414 let f = "ID_"
1515
1616 let g = "percentage_rate_fee"
1717
1818 let h = "Deposit_Height_Of_"
1919
2020 let i = 100000000
2121
2222 let j = 1000000
2323
2424 let k = Address(this.bytes)
2525
2626 let l = 5
2727
2828 func m (n) = toString(valueOrErrorMessage(addressFromString(n), (("Can't parse " + n) + " as address")))
2929
3030
3131 func o (p) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(p))).id, (("Asset Id: " + p) + " is invalid.")))
3232
3333
3434 func q (p) = valueOrElse(getIntegerValue(this, p), 0)
3535
3636
37-let r = "activate"
38-
39-let s = "activate_pools"
40-
41-let t = "activate_swap"
42-
43-let u = "activate_liquidity"
44-
45-let v = "block_distribuition"
46-
47-let w = "Total_Tokens_Locked_"
48-
49-let x = "usdn_asset"
50-
51-let y = "usdt_asset"
52-
53-let z = "usdc_asset"
54-
55-let A = "ngnn_asset"
56-
57-let B = "eurn_asset"
58-
59-let C = "WAVES"
60-
61-let D = "accept_waves"
62-
63-let E = unit
64-
65-func F (G,H) = (((c + G) + "_") + H)
37+func r (p) = {
38+ let s = assetInfo(p)
39+ if ($isInstanceOf(s, "Asset"))
40+ then {
41+ let t = s
42+ t.name
43+ }
44+ else throw("Can't find asset")
45+ }
6646
6747
68-func I (J) = valueOrElse(getInteger(this, J), 0)
48+let u = "activate"
49+
50+let v = "activate_pools"
51+
52+let w = "activate_swap"
53+
54+let x = "activate_liquidity"
55+
56+let y = "block_distribuition"
57+
58+let z = "Total_Tokens_Locked_"
59+
60+let A = "usdn_asset"
61+
62+let B = "usdt_asset"
63+
64+let C = "usdc_asset"
65+
66+let D = "ngnn_asset"
67+
68+let E = "eurn_asset"
69+
70+let F = "WAVES"
71+
72+let G = "accept_waves"
73+
74+let H = unit
75+
76+func I (J,K) = (((c + J) + "_") + K)
6977
7078
71-func K (n,J) = valueOrElse(getIntegerValue(this, ((J + "_") + n)), 0)
79+func L (M) = valueOrElse(getInteger(this, M), 0)
7280
7381
74-func L (n,J,M) = valueOrElse(getIntegerValue(this, ((((J + "_") + n) + "_") + M)), 1)
82+func N (n,M) = valueOrElse(getIntegerValue(this, ((M + "_") + n)), 0)
7583
7684
77-func N (J,M) = valueOrElse(getIntegerValue(this, ((J + "_") + M)), 1)
85+func O (n,M,t) = valueOrElse(getIntegerValue(this, ((((M + "_") + n) + "_") + t)), 1)
7886
7987
80-func O (P,Q,n) = (((h + F(P, Q)) + "_") + n)
88+func P (M,t) = valueOrElse(getIntegerValue(this, ((M + "_") + t)), 1)
8189
8290
83-func R (n,J) = valueOrElse(getIntegerValue(this, ((("STAKE_LP_" + n) + "_") + J)), 0)
91+func Q (R,S,n) = (((h + I(R, S)) + "_") + n)
8492
8593
86-func S () = {
87- let T = getStringValue(this, "admin")
88- if ($isInstanceOf(T, "String"))
94+func T (n,M) = valueOrElse(getIntegerValue(this, ((("STAKE_LP_" + n) + "_") + M)), 0)
95+
96+
97+func U () = {
98+ let s = getStringValue(this, "admin")
99+ if ($isInstanceOf(s, "String"))
89100 then {
90- let U = T
91- Address(fromBase58String(U))
101+ let V = s
102+ Address(fromBase58String(V))
92103 }
93104 else this
94105 }
95106
96107
97-func V (W,X,Y) = if (if ((W == E))
98- then (X == "WAVES")
108+func W (X,Y,Z) = if (if ((X == H))
109+ then (Y == "WAVES")
99110 else false)
100- then if (Y)
111+ then if (Z)
101112 then true
102113 else throw("The smart contract does not currently support Waves.")
103- else if ((W == fromBase58String(X)))
114+ else if ((X == fromBase58String(Y)))
104115 then true
105116 else false
106117
107118
108-@Callable(Z)
109-func constructor (aa,ab,ac,ad,ae,af,ag,ah,ai) = if (if ((Z.caller == this))
119+@Callable(aa)
120+func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj) = if (if ((aa.caller == this))
110121 then true
111- else (Z.caller == S()))
122+ else (aa.caller == U()))
112123 then {
113- let aj = F(ab, ac)
114- let ak = F(ab, ad)
115- let al = F(ab, ae)
116- let am = F(ab, C)
117- let an = F(ab, aa)
118- let ao = F(ab, af)
119- let ap = F(ad, ac)
120- let aq = F(ad, ae)
121- let ar = F(ad, C)
122- let as = F(ad, aa)
123- let at = F(ad, af)
124- let au = F(ac, ae)
125- let av = F(ac, C)
126- let aw = F(ac, aa)
127- let ax = F(ac, af)
128- let ay = F(ae, C)
129- let az = F(ae, aa)
130- let aA = F(ae, af)
131- let aB = F(aa, C)
132- let aC = F(aa, af)
133- let aD = F(af, C)
134-[StringEntry(a, aa), StringEntry(x, ab), StringEntry(z, ad), StringEntry(y, ac), StringEntry(A, ae), BooleanEntry(D, ai), IntegerEntry(g, ag), BooleanEntry(r, true), BooleanEntry(t, false), BooleanEntry(s, false), BooleanEntry(u, false), IntegerEntry(v, ah), IntegerEntry(aj, 1), IntegerEntry(am, 1), IntegerEntry(ak, 1), IntegerEntry(al, 1), IntegerEntry(an, 1), IntegerEntry(ap, 1), IntegerEntry(aq, 1), IntegerEntry(ar, 1), IntegerEntry(aw, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(ay, 1), IntegerEntry(az, 1), IntegerEntry(aB, 1), IntegerEntry(aD, 1), IntegerEntry(aC, 1), IntegerEntry(aA, 1), IntegerEntry(at, 1), IntegerEntry(ao, 1), IntegerEntry(ax, 1), StringEntry(B, af)]
124+ let ak = I(ac, ad)
125+ let al = I(ac, ae)
126+ let am = I(ac, af)
127+ let an = I(ac, F)
128+ let ao = I(ac, ab)
129+ let ap = I(ac, ag)
130+ let aq = I(ae, ad)
131+ let ar = I(ae, af)
132+ let as = I(ae, F)
133+ let at = I(ae, ab)
134+ let au = I(ae, ag)
135+ let av = I(ad, af)
136+ let aw = I(ad, F)
137+ let ax = I(ad, ab)
138+ let ay = I(ad, ag)
139+ let az = I(af, F)
140+ let aA = I(af, ab)
141+ let aB = I(af, ag)
142+ let aC = I(ab, F)
143+ let aD = I(ab, ag)
144+ let aE = I(ag, F)
145+[StringEntry(a, ab), StringEntry(A, ac), StringEntry(C, ae), StringEntry(B, ad), StringEntry(D, af), BooleanEntry(G, aj), IntegerEntry(g, ah), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, ai), IntegerEntry(ak, 1), IntegerEntry(an, 1), IntegerEntry(al, 1), IntegerEntry(am, 1), IntegerEntry(ao, 1), IntegerEntry(aq, 1), IntegerEntry(ar, 1), IntegerEntry(as, 1), IntegerEntry(ax, 1), IntegerEntry(av, 1), IntegerEntry(aw, 1), IntegerEntry(az, 1), IntegerEntry(aA, 1), IntegerEntry(aC, 1), IntegerEntry(aE, 1), IntegerEntry(aD, 1), IntegerEntry(aB, 1), IntegerEntry(au, 1), IntegerEntry(ap, 1), IntegerEntry(ay, 1), StringEntry(E, ag)]
135146 }
136147 else throw("Only the Admin itself can invoke this function")
137148
138149
139150
140-@Callable(Z)
141-func activate (aE) = if (if ((Z.caller == this))
151+@Callable(aa)
152+func activate (aF) = if (if ((aa.caller == this))
142153 then true
143- else (Z.caller == S()))
144- then [BooleanEntry(r, aE)]
154+ else (aa.caller == U()))
155+ then [BooleanEntry(u, aF)]
145156 else throw("Only the Admin itself can invoke this function")
146157
147158
148159
149-@Callable(Z)
150-func maintenance (aF,aG,aH) = if (if ((Z.caller == this))
160+@Callable(aa)
161+func maintenance (aG,aH,aI) = if (if ((aa.caller == this))
151162 then true
152- else (Z.caller == S()))
153- then [BooleanEntry(s, aF), BooleanEntry(t, aG), BooleanEntry(u, aH)]
163+ else (aa.caller == U()))
164+ then [BooleanEntry(v, aG), BooleanEntry(w, aH), BooleanEntry(x, aI)]
154165 else throw("Only the Admin itself can invoke this function")
155166
156167
157168
158-@Callable(Z)
159-func percentualRateFeeSwapEdit (aI) = if (if ((Z.caller == this))
169+@Callable(aa)
170+func percentualRateFeeSwapEdit (aJ) = if (if ((aa.caller == this))
160171 then true
161- else (Z.caller == S()))
162- then [IntegerEntry(g, aI)]
172+ else (aa.caller == U()))
173+ then [IntegerEntry(g, aJ)]
163174 else throw("Only the Admin itself can invoke this function")
164175
165176
166177
167-@Callable(Z)
168-func acceptWaves (aJ) = if (if ((Z.caller == this))
178+@Callable(aa)
179+func acceptWaves (aK) = if (if ((aa.caller == this))
169180 then true
170- else (Z.caller == S()))
171- then [BooleanEntry(D, aJ)]
181+ else (aa.caller == U()))
182+ then [BooleanEntry(G, aK)]
172183 else throw("Only the Admin itself can invoke this function")
173184
174185
175186
176-@Callable(Z)
177-func blockDistribution (aK) = if (if ((Z.caller == this))
187+@Callable(aa)
188+func blockDistribution (aL) = if (if ((aa.caller == this))
178189 then true
179- else (Z.caller == S()))
180- then [IntegerEntry(v, aK)]
190+ else (aa.caller == U()))
191+ then [IntegerEntry(y, aL)]
181192 else throw("Only the Admin itself can invoke this function")
182193
183194
184195
185-@Callable(Z)
186-func addAdmin (n) = if (if ((Z.caller == this))
196+@Callable(aa)
197+func addAdmin (n) = if (if ((aa.caller == this))
187198 then true
188- else (Z.caller == S()))
199+ else (aa.caller == U()))
189200 then [StringEntry("admin", n)]
190201 else throw("Only the Admin itself can invoke this function")
191202
192203
193204
194-@Callable(Z)
195-func lpAssetCreateForPairPool (G,H,aL) = {
196- let J = I(F(G, H))
197- if (if ((Z.caller == this))
205+@Callable(aa)
206+func lpAssetCreateForPairPool (J,K,aM,aN) = {
207+ let aO = if ((J == F))
208+ then F
209+ else r(fromBase58String(J))
210+ let aP = if ((K == F))
211+ then F
212+ else r(fromBase58String(K))
213+ let aQ = if (aN)
214+ then aM
215+ else ((aO + "_") + aP)
216+ let M = L(I(J, K))
217+ if (if ((aa.caller == this))
198218 then true
199- else (Z.caller == S()))
200- then if (!((J == 0)))
219+ else (aa.caller == U()))
220+ then if (!((M == 0)))
201221 then {
202- let aM = Issue(("LP_" + aL), ((("LP asset for pool liquidity in AxAi Swap pair " + G) + "_") + H), 1, 8, true)
203- let aN = calculateAssetId(aM)
204-[StringEntry((b + F(G, H)), toBase58String(aN)), aM]
222+ let aR = Issue(aQ, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), 1, 8, true)
223+ let aS = calculateAssetId(aR)
224+[StringEntry((b + I(J, K)), toBase58String(aS)), aR]
205225 }
206226 else throw("Invalid Pool Key. Try inverting the assets")
207227 else throw("Only the Admin itself can invoke this function")
208228 }
209229
210230
211231
212-@Callable(Z)
213-func deposit (aO,P,Q) = {
214- let aP = getBooleanValue(this, r)
215- let aQ = getBooleanValue(this, u)
216- let aR = getStringValue(this, a)
217- let aS = if (aO)
218- then getStringValue(this, (b + F(P, Q)))
219- else aR
220- if (aP)
221- then if (!(aQ))
222- then if ((Z.payments[0].assetId != fromBase58String(aS)))
223- then throw((("Invalid asset! Kindly Deposit Only " + aR) + " or valid asset lp"))
224- else if (!(aO))
232+@Callable(aa)
233+func deposit (aT,R,S) = {
234+ let aU = getBooleanValue(this, u)
235+ let aV = getBooleanValue(this, x)
236+ let aW = getStringValue(this, a)
237+ let aX = if (aT)
238+ then getStringValue(this, (b + I(R, S)))
239+ else aW
240+ if (aU)
241+ then if (!(aV))
242+ then if ((aa.payments[0].assetId != fromBase58String(aX)))
243+ then throw((("Invalid asset! Kindly Deposit Only " + aW) + " or valid asset lp"))
244+ else if (!(aT))
225245 then {
226- let aT = toBase58String(Z.caller.bytes)
227- let aU = {
228- let T = getInteger(this, aT)
229- if ($isInstanceOf(T, "Int"))
246+ let aY = toBase58String(aa.caller.bytes)
247+ let aZ = {
248+ let s = getInteger(this, aY)
249+ if ($isInstanceOf(s, "Int"))
230250 then {
231- let aV = T
232- aV
251+ let ba = s
252+ ba
233253 }
234254 else 0
235255 }
236- let aW = (aU + Z.payments[0].amount)
237- let aX = IntegerEntry(aT, aW)
238- let aY = IntegerEntry((h + aT), height)
239- let aZ = {
240- let T = getInteger(this, "Total_Tokens_Locked:")
241- if ($isInstanceOf(T, "Int"))
256+ let bb = (aZ + aa.payments[0].amount)
257+ let bc = IntegerEntry(aY, bb)
258+ let bd = IntegerEntry((h + aY), height)
259+ let be = {
260+ let s = getInteger(this, "Total_Tokens_Locked:")
261+ if ($isInstanceOf(s, "Int"))
242262 then {
243- let aV = T
244- aV
263+ let ba = s
264+ ba
245265 }
246266 else 0
247267 }
248- let ba = (aZ + Z.payments[0].amount)
249- let bb = IntegerEntry("Total_Tokens_Locked:", ba)
250-[aX, aY, bb]
268+ let bf = (be + aa.payments[0].amount)
269+ let bg = IntegerEntry("Total_Tokens_Locked:", bf)
270+[bc, bd, bg]
251271 }
252272 else {
253- let bc = F(P, Q)
254- let J = I(bc)
255- if (!((J == 0)))
273+ let bh = I(R, S)
274+ let M = L(bh)
275+ if (!((M == 0)))
256276 then {
257- let aT = toBase58String(Z.caller.bytes)
258- let aU = {
259- let T = getInteger(this, ((("STAKE_LP_" + aT) + "_") + bc))
260- if ($isInstanceOf(T, "Int"))
277+ let aY = toBase58String(aa.caller.bytes)
278+ let aZ = {
279+ let s = getInteger(this, ((("STAKE_LP_" + aY) + "_") + bh))
280+ if ($isInstanceOf(s, "Int"))
261281 then {
262- let aV = T
263- aV
282+ let ba = s
283+ ba
264284 }
265285 else 0
266286 }
267- let aW = (aU + Z.payments[0].amount)
268- let aX = IntegerEntry(((("STAKE_LP_" + aT) + "_") + bc), aW)
269- let aY = IntegerEntry(((((h + "_") + aT) + "_") + bc), height)
270- let aZ = {
271- let T = getInteger(this, ("Total_Tokens_LP_Locked_" + bc))
272- if ($isInstanceOf(T, "Int"))
287+ let bb = (aZ + aa.payments[0].amount)
288+ let bc = IntegerEntry(((("STAKE_LP_" + aY) + "_") + bh), bb)
289+ let bd = IntegerEntry(((((h + "_") + aY) + "_") + bh), height)
290+ let be = {
291+ let s = getInteger(this, ("Total_Tokens_LP_Locked_" + bh))
292+ if ($isInstanceOf(s, "Int"))
273293 then {
274- let aV = T
275- aV
294+ let ba = s
295+ ba
276296 }
277297 else 0
278298 }
279- let ba = (aZ + Z.payments[0].amount)
280- let bb = IntegerEntry(("Total_Tokens_LP_Locked_" + bc), ba)
281-[aX, aY, bb]
299+ let bf = (be + aa.payments[0].amount)
300+ let bg = IntegerEntry(("Total_Tokens_LP_Locked_" + bh), bf)
301+[bc, bd, bg]
282302 }
283303 else throw("Invalid Pool key.")
284304 }
285305 else throw("liquidity is currently under maintenance.")
286306 else throw("dApp is currently under maintenance.")
287307 }
288308
289309
290310
291-@Callable(Z)
292-func remove (aO,P,Q,bd) = {
293- let aP = getBooleanValue(this, r)
294- let aQ = getBooleanValue(this, u)
295- let be = Z.payments[0]
296- let aR = fromBase58String(getStringValue(this, a))
297- if (aP)
298- then if (!(aQ))
311+@Callable(aa)
312+func remove (aT,R,S,bi) = {
313+ let aU = getBooleanValue(this, u)
314+ let aV = getBooleanValue(this, x)
315+ let bj = aa.payments[0]
316+ let aW = fromBase58String(getStringValue(this, a))
317+ if (aU)
318+ then if (!(aV))
299319 then {
300- let aT = toBase58String(Z.caller.bytes)
301- let aU = valueOrElse(if (aO)
302- then getIntegerValue(this, ((("STAKE_LP_" + aT) + "_") + F(P, Q)))
303- else getInteger(this, aT), 0)
304- let bf = if (aO)
305- then ((((h + "_") + aT) + "_") + F(P, Q))
306- else (h + aT)
307- let aZ = if (aO)
308- then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + F(P, Q)))
320+ let aY = toBase58String(aa.caller.bytes)
321+ let aZ = valueOrElse(if (aT)
322+ then getIntegerValue(this, ((("STAKE_LP_" + aY) + "_") + I(R, S)))
323+ else getInteger(this, aY), 0)
324+ let bk = if (aT)
325+ then ((((h + "_") + aY) + "_") + I(R, S))
326+ else (h + aY)
327+ let be = if (aT)
328+ then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(R, S)))
309329 else getIntegerValue(this, "Total_Tokens_Locked:")
310- let ba = (aZ - bd)
311- let bg = (height - getIntegerValue(this, bf))
312- let bh = getIntegerValue(this, v)
313- let bi = ((bg * bh) * i)
314- let bj = (bi / (aZ / bd))
315- if ((0 > bd))
316- then throw(if (aO)
317- then (((("Can't withdraw negative " + P) + "/") + Q) + " amount")
330+ let bf = (be - bi)
331+ let bl = (height - getIntegerValue(this, bk))
332+ let bm = getIntegerValue(this, y)
333+ let bn = ((bl * bm) * i)
334+ let bo = (bn / (be / bi))
335+ if ((0 > bi))
336+ then throw(if (aT)
337+ then (((("Can't withdraw negative " + R) + "/") + S) + " amount")
318338 else "Can't withdraw negative AxAi amount")
319339 else {
320- let aW = (aU - bd)
321- if ((0 > aW))
322- then throw(if (aO)
323- then (((("Not enough Asset Lp " + P) + "/") + Q) + " balance")
340+ let bb = (aZ - bi)
341+ if ((0 > bb))
342+ then throw(if (aT)
343+ then (((("Not enough Asset Lp " + R) + "/") + S) + " balance")
324344 else "Not enough AxAi balance")
325- else [IntegerEntry(if (aO)
326- then ((("STAKE_LP_" + aT) + "_") + F(P, Q))
327- else aT, aW), IntegerEntry(if (aO)
328- then ("Total_Tokens_LP_Locked_" + F(P, Q))
329- else "Total_Tokens_Locked:", ba), ScriptTransfer(Z.caller, bd, if (aO)
330- then fromBase58String(getStringValue(this, (b + F(P, Q))))
331- else aR), ScriptTransfer(Z.caller, bj, aR)]
345+ else [IntegerEntry(if (aT)
346+ then ((("STAKE_LP_" + aY) + "_") + I(R, S))
347+ else aY, bb), IntegerEntry(if (aT)
348+ then ("Total_Tokens_LP_Locked_" + I(R, S))
349+ else "Total_Tokens_Locked:", bf), ScriptTransfer(aa.caller, bi, if (aT)
350+ then fromBase58String(getStringValue(this, (b + I(R, S))))
351+ else aW), ScriptTransfer(aa.caller, bo, aW)]
332352 }
333353 }
334354 else throw("liquidity is currently under maintenance.")
335355 else throw("dApp is currently under maintenance.")
336356 }
337357
338358
339359
340-@Callable(Z)
341-func addLiquidity (P,Q) = {
342- let aP = getBooleanValue(this, r)
343- let bk = getBooleanValue(this, s)
344- let Y = getBooleanValue(this, D)
345- let J = I(F(P, Q))
346- let G = Z.payments[0].assetId
347- let H = Z.payments[1].assetId
348- let bl = toBytes(getStringValue(this, x))
349- let bm = toBytes(getStringValue(this, z))
350- let bn = toBytes(getStringValue(this, y))
351- let bo = toBytes(getStringValue(this, A))
352- let bp = toBytes(getStringValue(this, B))
353- let aR = fromBase58String(getStringValue(this, a))
354- let aS = getStringValue(this, (b + F(P, Q)))
355- if (aP)
356- then if (!(bk))
357- then if (if (if (!((G == H)))
358- then V(G, P, Y)
360+@Callable(aa)
361+func addLiquidity (R,S) = {
362+ let aU = getBooleanValue(this, u)
363+ let bp = getBooleanValue(this, v)
364+ let Z = getBooleanValue(this, G)
365+ let M = L(I(R, S))
366+ let J = aa.payments[0].assetId
367+ let K = aa.payments[1].assetId
368+ let bq = toBytes(getStringValue(this, A))
369+ let br = toBytes(getStringValue(this, C))
370+ let bs = toBytes(getStringValue(this, B))
371+ let bt = toBytes(getStringValue(this, D))
372+ let bu = toBytes(getStringValue(this, E))
373+ let aW = fromBase58String(getStringValue(this, a))
374+ let aX = getStringValue(this, (b + I(R, S)))
375+ if (aU)
376+ then if (!(bp))
377+ then if (if (if (!((J == K)))
378+ then W(J, R, Z)
359379 else false)
360- then V(H, Q, Y)
380+ then W(K, S, Z)
361381 else false)
362- then if (if (if (if (if (if (if (if ((G == bl))
382+ then if (if (if (if (if (if (if (if ((J == bq))
363383 then true
364- else (G == bm))
384+ else (J == br))
365385 then true
366- else (G == bn))
386+ else (J == bs))
367387 then true
368- else (G == bo))
388+ else (J == bt))
369389 then true
370- else (G == aR))
390+ else (J == aW))
371391 then true
372- else (G == E))
392+ else (J == H))
373393 then true
374- else (G == bp))
375- then if (if (if (if (if (if ((H == bl))
394+ else (J == bu))
395+ then if (if (if (if (if (if ((K == bq))
376396 then true
377- else (H == bm))
397+ else (K == br))
378398 then true
379- else (H == bn))
399+ else (K == bs))
380400 then true
381- else (H == bo))
401+ else (K == bt))
382402 then true
383- else (H == aR))
403+ else (K == aW))
384404 then true
385- else (H == E))
405+ else (K == H))
386406 then true
387- else (H == bp)
407+ else (K == bu)
388408 else false)
389- then if (!((J == 0)))
409+ then if (!((M == 0)))
390410 then {
391- let aT = toBase58String(Z.caller.bytes)
392- let aU = K(aT, F(P, Q))
393- let bq = L(aT, F(P, Q), P)
394- let br = L(aT, F(P, Q), Q)
395- let bs = N(F(P, Q), P)
396- let bt = N(F(P, Q), Q)
397- let bu = (bs / bt)
398- let bv = (bq + Z.payments[0].amount)
399- let bw = (br + Z.payments[1].amount)
400- let bx = (aU + bu)
401- let by = (bs + Z.payments[0].amount)
402- let bz = (bt + Z.payments[1].amount)
403-[Reissue(fromBase58String(aS), bu, true), ScriptTransfer(Address(Z.caller.bytes), bu, fromBase58String(aS)), IntegerEntry(O(P, Q, aT), height), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + P), bv), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + Q), bw), IntegerEntry(((F(P, Q) + "_") + aT), bx), IntegerEntry(((F(P, Q) + "_") + P), by), IntegerEntry(((F(P, Q) + "_") + Q), bz), IntegerEntry(P, (q(P) + Z.payments[0].amount)), IntegerEntry(Q, (q(Q) + Z.payments[1].amount)), IntegerEntry(aS, (q(aS) + bu))]
411+ let aY = toBase58String(aa.caller.bytes)
412+ let aZ = N(aY, I(R, S))
413+ let bv = O(aY, I(R, S), R)
414+ let bw = O(aY, I(R, S), S)
415+ let bx = P(I(R, S), R)
416+ let by = P(I(R, S), S)
417+ let bz = (bx / by)
418+ let bA = (bv + aa.payments[0].amount)
419+ let bB = (bw + aa.payments[1].amount)
420+ let bC = (aZ + bz)
421+ let bD = (bx + aa.payments[0].amount)
422+ let bE = (by + aa.payments[1].amount)
423+[Reissue(fromBase58String(aX), bz, true), ScriptTransfer(Address(aa.caller.bytes), bz, fromBase58String(aX)), IntegerEntry(Q(R, S, aY), height), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + R), bA), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + S), bB), IntegerEntry(((I(R, S) + "_") + aY), bC), IntegerEntry(((I(R, S) + "_") + R), bD), IntegerEntry(((I(R, S) + "_") + S), bE), IntegerEntry(R, (q(R) + aa.payments[0].amount)), IntegerEntry(S, (q(S) + aa.payments[1].amount)), IntegerEntry(aX, (q(aX) + bz))]
404424 }
405425 else throw("Invalid Pool Key.")
406426 else throw("Invalid Asset1 or Asset2!")
407427 else throw("Asset1 cannot be equal to Asset2")
408428 else throw("liquidity is currently under maintenance.")
409429 else throw("dApp is currently under maintenance.")
410430 }
411431
412432
413433
414-@Callable(Z)
415-func removeLiquidity (P,Q,bA) = {
416- let aT = toBase58String(Z.caller.bytes)
417- let aP = getBooleanValue(this, r)
418- let bk = getBooleanValue(this, s)
419- let Y = getBooleanValue(this, D)
420- let bc = F(P, Q)
421- let J = I(bc)
422- let G = if ((P == C))
423- then if (Y)
424- then E
434+@Callable(aa)
435+func removeLiquidity (R,S,bF) = {
436+ let aY = toBase58String(aa.caller.bytes)
437+ let aU = getBooleanValue(this, u)
438+ let bp = getBooleanValue(this, v)
439+ let Z = getBooleanValue(this, G)
440+ let bh = I(R, S)
441+ let M = L(bh)
442+ let J = if ((R == F))
443+ then if (Z)
444+ then H
425445 else throw("The smart contract does not currently support Waves.")
426- else fromBase58String(P)
427- let H = if ((Q == C))
428- then if (Y)
429- then E
446+ else fromBase58String(R)
447+ let K = if ((S == F))
448+ then if (Z)
449+ then H
430450 else throw("The smart contract does not currently support Waves.")
431- else fromBase58String(Q)
432- let bl = toBytes(getStringValue(this, x))
433- let bm = toBytes(getStringValue(this, z))
434- let bn = toBytes(getStringValue(this, y))
435- let bo = toBytes(getStringValue(this, A))
436- let aR = fromBase58String(getStringValue(this, a))
437- let bp = toBytes(getStringValue(this, B))
438- let aS = getStringValue(this, (b + F(P, Q)))
439- let aU = K(aT, F(P, Q))
440- let bB = R(aT, bc)
441- let bC = getIntegerValue(this, aS)
442- let bD = getIntegerValue(this, ((F(P, Q) + "_") + P))
443- let bE = getIntegerValue(this, ((F(P, Q) + "_") + Q))
444- if (aP)
445- then if (!(bk))
446- then if (!((P == Q)))
447- then if (if (if (if (if (if (if (if ((G == bl))
451+ else fromBase58String(S)
452+ let bq = toBytes(getStringValue(this, A))
453+ let br = toBytes(getStringValue(this, C))
454+ let bs = toBytes(getStringValue(this, B))
455+ let bt = toBytes(getStringValue(this, D))
456+ let aW = fromBase58String(getStringValue(this, a))
457+ let bu = toBytes(getStringValue(this, E))
458+ let aX = getStringValue(this, (b + I(R, S)))
459+ let aZ = N(aY, I(R, S))
460+ let bG = T(aY, bh)
461+ let bH = getIntegerValue(this, aX)
462+ let bI = getIntegerValue(this, ((I(R, S) + "_") + R))
463+ let bJ = getIntegerValue(this, ((I(R, S) + "_") + S))
464+ if (aU)
465+ then if (!(bp))
466+ then if (!((R == S)))
467+ then if (if (if (if (if (if (if (if ((J == bq))
448468 then true
449- else (G == bm))
469+ else (J == br))
450470 then true
451- else (G == bn))
471+ else (J == bs))
452472 then true
453- else (G == bo))
473+ else (J == bt))
454474 then true
455- else (G == aR))
475+ else (J == aW))
456476 then true
457- else (G == E))
477+ else (J == H))
458478 then true
459- else (G == bp))
460- then if (if (if (if (if (if ((H == bl))
479+ else (J == bu))
480+ then if (if (if (if (if (if ((K == bq))
461481 then true
462- else (H == bm))
482+ else (K == br))
463483 then true
464- else (H == bn))
484+ else (K == bs))
465485 then true
466- else (H == bo))
486+ else (K == bt))
467487 then true
468- else (H == aR))
488+ else (K == aW))
469489 then true
470- else (H == E))
490+ else (K == H))
471491 then true
472- else (H == bp)
492+ else (K == bu)
473493 else false)
474- then if (!((J == 0)))
475- then if (!((aU == 0)))
476- then if (((aU - bB) >= bA))
494+ then if (!((M == 0)))
495+ then if (!((aZ == 0)))
496+ then if (((aZ - bG) >= bF))
477497 then {
478- let bF = (bA / bC)
479- let bG = (bF * bD)
480- let bH = (bF * bE)
481- let bs = N(F(P, Q), P)
482- let bt = N(F(P, Q), Q)
483- let bq = L(aT, F(P, Q), P)
484- let br = L(aT, F(P, Q), Q)
485- let bv = (bq - bG)
486- let bw = (br - bH)
487- let bx = (aU - bA)
488- let by = (bs - bG)
489- let bz = (bt - bH)
490-[Burn(fromBase58String(aS), bA), ScriptTransfer(Address(Z.caller.bytes), bG, G), ScriptTransfer(Address(Z.caller.bytes), bH, H), IntegerEntry(O(P, Q, aT), height), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + P), bv), IntegerEntry(((((aT + "_") + F(P, Q)) + "_") + Q), bw), IntegerEntry(((F(P, Q) + "_") + aT), bx), IntegerEntry(((F(P, Q) + "_") + P), by), IntegerEntry(((F(P, Q) + "_") + Q), bz), IntegerEntry(P, (q(P) - bG)), IntegerEntry(Q, (q(Q) - bH)), IntegerEntry(aS, (q(aS) - bA))]
498+ let bK = (bF / bH)
499+ let bL = (bK * bI)
500+ let bM = (bK * bJ)
501+ let bx = P(I(R, S), R)
502+ let by = P(I(R, S), S)
503+ let bv = O(aY, I(R, S), R)
504+ let bw = O(aY, I(R, S), S)
505+ let bA = (bv - bL)
506+ let bB = (bw - bM)
507+ let bC = (aZ - bF)
508+ let bD = (bx - bL)
509+ let bE = (by - bM)
510+[Burn(fromBase58String(aX), bF), ScriptTransfer(Address(aa.caller.bytes), bL, J), ScriptTransfer(Address(aa.caller.bytes), bM, K), IntegerEntry(Q(R, S, aY), height), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + R), bA), IntegerEntry(((((aY + "_") + I(R, S)) + "_") + S), bB), IntegerEntry(((I(R, S) + "_") + aY), bC), IntegerEntry(((I(R, S) + "_") + R), bD), IntegerEntry(((I(R, S) + "_") + S), bE), IntegerEntry(R, (q(R) - bL)), IntegerEntry(S, (q(S) - bM)), IntegerEntry(aX, (q(aX) - bF))]
491511 }
492512 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
493513 else throw("You have no locked values ​​in the pool")
494514 else throw("Invalid Pool Key.")
495515 else throw("Invalid Asset1 or Asset2!")
496516 else throw("Asset1 cannot be equal to Asset2")
497517 else throw("liquidity is currently under maintenance.")
498518 else throw("dApp is currently under maintenance.")
499519 }
500520
501521
502522
503-@Callable(Z)
504-func swap (P,Q) = {
505- let aT = toBase58String(Z.caller.bytes)
506- let Y = getBooleanValue(this, D)
507- let aP = getBooleanValue(this, r)
508- let bI = getBooleanValue(this, t)
509- let bc = F(P, Q)
510- let J = I(bc)
511- let G = Z.payments[0].assetId
512- let bl = toBytes(getStringValue(this, x))
513- let bm = toBytes(getStringValue(this, z))
514- let bn = toBytes(getStringValue(this, y))
515- let bo = toBytes(getStringValue(this, A))
516- let aR = fromBase58String(getStringValue(this, a))
517- let bp = toBytes(getStringValue(this, B))
518- let bJ = getIntegerValue(this, ((F(P, Q) + "_") + P))
519- let bK = getIntegerValue(this, ((F(P, Q) + "_") + Q))
520- let bL = getIntegerValue(this, g)
521- if (aP)
522- then if (!(bI))
523- then if (if (!((P == Q)))
524- then if (V(G, P, Y))
523+@Callable(aa)
524+func swap (R,S) = {
525+ let aY = toBase58String(aa.caller.bytes)
526+ let Z = getBooleanValue(this, G)
527+ let aU = getBooleanValue(this, u)
528+ let bN = getBooleanValue(this, w)
529+ let bh = I(R, S)
530+ let M = L(bh)
531+ let J = aa.payments[0].assetId
532+ let bq = toBytes(getStringValue(this, A))
533+ let br = toBytes(getStringValue(this, C))
534+ let bs = toBytes(getStringValue(this, B))
535+ let bt = toBytes(getStringValue(this, D))
536+ let aW = fromBase58String(getStringValue(this, a))
537+ let bu = toBytes(getStringValue(this, E))
538+ let bO = getIntegerValue(this, ((I(R, S) + "_") + R))
539+ let bP = getIntegerValue(this, ((I(R, S) + "_") + S))
540+ let bQ = getIntegerValue(this, g)
541+ if (aU)
542+ then if (!(bN))
543+ then if (if (!((R == S)))
544+ then if (W(J, R, Z))
525545 then true
526- else V(G, Q, Y)
546+ else W(J, S, Z)
527547 else false)
528- then if (if (if (if (if (if (if ((G == bl))
548+ then if (if (if (if (if (if (if ((J == bq))
529549 then true
530- else (G == bm))
550+ else (J == br))
531551 then true
532- else (G == bn))
552+ else (J == bs))
533553 then true
534- else (G == bo))
554+ else (J == bt))
535555 then true
536- else (G == aR))
556+ else (J == aW))
537557 then true
538- else (G == bp))
558+ else (J == bu))
539559 then true
540- else (G == E))
541- then if (!((J == 0)))
542- then if ((Z.payments[1].assetId == aR))
543- then if ((Z.payments[1].amount == 300000))
560+ else (J == H))
561+ then if (!((M == 0)))
562+ then if ((aa.payments[1].assetId == aW))
563+ then if ((aa.payments[1].amount == 300000))
544564 then {
545- let bM = if (!((G == fromBase58String(P))))
546- then (bJ / bK)
547- else (bK / bJ)
548- let aK = (Z.payments[0].amount - ((Z.payments[0].amount * bL) / (100 * i)))
549- let bN = (aK * bM)
550-[ScriptTransfer(Address(Z.caller.bytes), bN, if ((Q == C))
551- then E
552- else fromBase58String(Q)), IntegerEntry(Q, (q(Q) - bN)), IntegerEntry(((F(P, Q) + "_") + Q), (N(F(P, Q), Q) - bN))]
565+ let bR = if (!((J == fromBase58String(R))))
566+ then (bO / bP)
567+ else (bP / bO)
568+ let aL = (aa.payments[0].amount - ((aa.payments[0].amount * bQ) / (100 * i)))
569+ let bS = (aL * bR)
570+[ScriptTransfer(Address(aa.caller.bytes), bS, if ((S == F))
571+ then H
572+ else fromBase58String(S)), IntegerEntry(S, (q(S) - bS)), IntegerEntry(((I(R, S) + "_") + S), (P(I(R, S), S) - bS))]
553573 }
554574 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
555575 else throw("Invalid rate asset")
556576 else throw("Invalid Swap Key.")
557577 else throw("Invalid Asset1 or Asset2!")
558578 else throw("Asset1 cannot be equal to Asset2")
559579 else throw("Swap is currently under maintenance.")
560580 else throw("dApp is currently under maintenance.")
561581 }
562582
563583
564-@Verifier(bO)
565-func bP () = {
566- let T = bO
567- if ($isInstanceOf(T, "Order"))
584+@Verifier(bT)
585+func bU () = {
586+ let s = bT
587+ if ($isInstanceOf(s, "Order"))
568588 then {
569- let bQ = T
589+ let bV = s
570590 true
571591 }
572- else if ($isInstanceOf(T, "ExchangeTransaction"))
592+ else if ($isInstanceOf(s, "ExchangeTransaction"))
573593 then {
574- let bR = T
594+ let bW = s
575595 true
576596 }
577- else sigVerify(bO.bodyBytes, bO.proofs[0], bO.senderPublicKey)
597+ else sigVerify(bT.bodyBytes, bT.proofs[0], bT.senderPublicKey)
578598 }
579599

github/deemru/w8io/169f3d6 
247.21 ms