tx · 5S5PDZWKj2ciCSZWZXWKMkuNEsrisGjgb3u9Bv7LrhpH

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02900000 Waves

2023.01.10 13:35 [2398735] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "5S5PDZWKj2ciCSZWZXWKMkuNEsrisGjgb3u9Bv7LrhpH", "fee": 2900000, "feeAssetId": null, "timestamp": 1673346956213, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "2hzEb5DykHvEhptRmjKXugqX23Bj7AGdztivSaMqdAuKQ387VFMAcKz96KfoTW6R1KbubhmvZNf1ygK1c7rfhb5U" ], "script": "base64:AAIFAAAAAAAAEoIIAhIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIiFrZXlBbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2giEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzYzMjM2OTQiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIQZGF0YUZhY3RvcnlDZmdWMyIOc3Rha2luZ0FkZHJlc3MiD2Jvb3N0aW5nQWRkcmVzcyILaWRvQ29udHJhY3QiDHRlYW1Db250cmFjdCIQZW1pc3Npb25Db250cmFjdCIMcmVzdENvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IgtkYW9Db250cmFjdCIRbWFya2V0aW5nQ29udHJhY3QiEmd3eFJld2FyZHNDb250cmFjdCINYmlyZHNDb250cmFjdCIOZGF0YUZhY3RvcnlDZmciC2RhdGFQb29sQ2ZnIgpwb29sU3RhdHVzIglscEFzc2V0SWQiDmFtb3VudEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiD2xwQXNzZXREZWNpbWFscyIIcG9vbFR5cGUiFWRhdGFNYXBwaW5nUG9vbEFzc2V0cyIWaW50ZXJuYWxBbW91bnRBc3NldFN0ciIVaW50ZXJuYWxQcmljZUFzc2V0U3RyIg1nZXRQb29sQ29uZmlnIgpwb29sQXNzZXRzIhpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZSIKYXNzZXRJZFN0ciILaW5jcmVtZW50b3IiD2ludGVybmFsQXNzZXRJZCIYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkIgZyZXN1bHQiEm5ld0ludGVybmFsQXNzZXRJZCIJbXVzdEFkbWluIghhZG1pblBLcyIJaXNNYW5hZ2VyIhZpbnRPckRlZmF1bHRPckZhbGxiYWNrIgprZXlEZWZhdWx0Ig12YWx1ZUZhbGxiYWNrIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sQ29uZmlnIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9kaWZ5V2VpZ2h0QnRjIhFvbk1vZGlmeVdlaWdodEV0aCIUb25Nb2RpZnlXZWln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", "chainId": 84, "height": 2398735, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8cpUo8jjuZgnGgso8KiudAdfjk4u6mJXJKoAKDzKCmDx Next: 3kaCHEsuwi2Qu8xRLYax9LAKp3RPFXyeDzjxBU4kZEeu Diff:
OldNewDifferences
1717
1818 let h = 2000000
1919
20-let i = "WAVES"
20+let i = ((100 * 1000) * 1000)
2121
22-let j = ((100 * 1000) * 1000)
22+let j = "__"
2323
24-let k = "__"
24+let k = ""
2525
26-let l = ""
26+let l = 1
2727
28-let m = 1
28+let m = 2
2929
30-let n = 2
30+let n = 3
3131
32-let o = 3
32+let o = 4
3333
34-let p = 4
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 1
4141
42-let t = 1
42+let t = 2
4343
44-let u = 2
44+let u = 3
4545
46-let v = 3
46+let v = 4
4747
48-let w = 4
48+let w = 5
4949
50-let x = 5
50+let x = 6
5151
52-let y = 6
52+let y = 7
5353
54-let z = 7
54+let z = 8
5555
56-let A = 8
56+let A = 9
5757
58-let B = 9
58+let B = 10
5959
60-let C = 10
60+let C = 11
6161
62-let D = 11
62+let D = "WX_EMISSION"
6363
64-let E = "WX_EMISSION"
64+let E = [D]
6565
66-let F = [E]
67-
68-func G () = "%s__allowedLpScriptHash"
66+func F () = "%s__allowedLpScriptHash"
6967
7068
71-func H () = "%s__allowedLpStableScriptHash"
69+func G () = "%s__allowedLpStableScriptHash"
7270
7371
74-func I () = "%s__allowedLpStableAddonScriptHash"
72+func H () = "%s__allowedLpStableAddonScriptHash"
7573
7674
77-func J () = "%s__factoryConfig"
75+func I () = "%s__factoryConfig"
7876
7977
80-func K () = "%s__lpTokensList"
78+func J () = "%s__lpTokensList"
8179
8280
83-func L () = "%s%s__pool__scriptHash"
81+func K () = "%s%s__pool__scriptHash"
8482
8583
86-func M () = "%s%s__matcher__publicKey"
84+func L () = "%s%s__matcher__publicKey"
8785
8886
89-func N () = "%s__legacyFactoryContract"
87+func M () = "%s__legacyFactoryContract"
9088
9189
92-func O () = "%s__legacyPools"
90+func N () = "%s__legacyPools"
9391
9492
95-func P () = "%s__managerPublicKey"
93+func O () = "%s__managerPublicKey"
9694
9795
98-func Q () = "%s__pendingManagerPublicKey"
96+func P () = "%s__pendingManagerPublicKey"
9997
10098
101-func R () = "%s__adminPubKeys"
99+func Q () = "%s__adminPubKeys"
102100
103101
104-func S () = "%s__assetsStoreContract"
102+func R () = "%s__assetsStoreContract"
105103
106104
107-func T () = "%s__votingEmissionContract"
105+func S () = "%s__votingEmissionContract"
108106
109107
110-func U () = makeString(["%s", "priceAssets"], k)
108+func T () = makeString(["%s", "priceAssets"], j)
111109
112110
113-func V () = "%s__priceDecimals"
111+func U () = "%s__priceDecimals"
114112
115113
116-func W () = "%s__shutdown"
114+func V () = "%s__shutdown"
117115
118116
119-func X () = "%s__nextInternalAssetId"
117+func W () = "%s__nextInternalAssetId"
120118
121119
122-func Y (Z) = ("%s%s__poolWeight__" + Z)
120+func X (Y) = ("%s%s__poolWeight__" + Y)
123121
124122
125-func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
123+func Z (Y,aa) = ((("%s%s__poolWeight__" + Y) + "__") + toString(aa))
126124
127125
128-func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
126+func ab (ac) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ac))
129127
130128
131-func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
129+func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
132130
133131
134-func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
132+func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
135133
136134
137-func aj (ak) = {
138- let al = ak
139- let ah = al._1
140- let ai = al._2
141- makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], k)
135+func ai (aj) = {
136+ let ak = aj
137+ let ag = ak._1
138+ let ah = ak._2
139+ makeString(["%d%d%s", toString(ag), toString(ah), "oneTokenOperationsDisabled"], j)
142140 }
143141
144142
145-func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
143+func al () = makeString(["%s", "oneTokenOperationsDisabled"], j)
146144
147145
148-func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
146+func am (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2Pool")
149147
150148
151-func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
149+func ao (ap,aq) = (((("%d%d%s%s__" + ap) + "__") + aq) + "__mappings__PoolAssets2LpAsset")
152150
153151
154-func as (Z) = ("%s%s__spread__" + Z)
152+func ar (Y) = ("%s%s__spread__" + Y)
155153
156154
157-func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
155+func as (at) = (("%s%s%s__" + at) + "__mappings__poolContract2PoolAssets")
158156
159157
160-func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
158+func au (ap,aq) = (((("%d%d%s%s__" + toString(ap)) + "__") + toString(aq)) + "__mappings__poolAssets2PoolContract")
161159
162160
163-func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
161+func av (at) = (("%s%s%s__" + at) + "__mappings__poolContract2LpAsset")
164162
165163
166-func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
164+func aw (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2PoolContract")
167165
168166
169-func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
167+func ax (ay,az) = ((("%s%s%s__wxEmission__" + ay) + "__") + az)
170168
171169
172-func aB (Z) = ("%s%s__inFee__" + Z)
170+func aA (Y) = ("%s%s__inFee__" + Y)
173171
174172
175-func aC () = "%s__inFeeDefault"
173+func aB () = "%s__inFeeDefault"
176174
177175
178-func aD (Z) = ("%s%s__outFee__" + Z)
176+func aC (Y) = ("%s%s__outFee__" + Y)
179177
180178
181-func aE () = "%s__outFeeDefault"
179+func aD () = "%s__outFeeDefault"
182180
183181
184-func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
182+func aE (aF) = valueOrErrorMessage(getString(this, aF), ("No data for this.key=" + aF))
185183
186184
187-func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
185+func aG (aF) = valueOrErrorMessage(getBoolean(this, aF), ("No data for this.key=" + aF))
188186
189187
190-func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
188+func aH (aF) = valueOrErrorMessage(getInteger(this, aF), ("No data for this.key=" + aF))
191189
192190
193-func aJ (aK) = if ((aK == i))
194- then unit
195- else fromBase58String(aK)
191+let aI = 1
192+
193+let aJ = 2
194+
195+let aK = 3
196+
197+let aL = 4
198+
199+let aM = 5
200+
201+let aN = 6
202+
203+let aO = 7
204+
205+let aP = 8
206+
207+let aQ = 9
208+
209+let aR = 10
210+
211+let aS = 11
212+
213+func aT (aU) = addressFromStringValue(aU[aJ])
196214
197215
198-let aL = 1
199-
200-let aM = 2
201-
202-let aN = 3
203-
204-let aO = 4
205-
206-let aP = 5
207-
208-let aQ = 6
209-
210-let aR = 7
211-
212-let aS = 8
213-
214-let aT = 9
215-
216-let aU = 10
217-
218-let aV = 11
219-
220-func aW (aX) = addressFromStringValue(aX[aM])
216+func aV (aU) = addressFromStringValue(aU[aM])
221217
222218
223-func aY (aX) = addressFromStringValue(aX[aP])
219+func aW (aU) = addressFromStringValue(aU[aI])
224220
225221
226-func aZ (aX) = addressFromStringValue(aX[aL])
222+func aX (aU) = addressFromStringValue(aU[aR])
227223
228224
229-func ba (aX) = addressFromStringValue(aX[aU])
230-
231-
232-func bb () = {
233- let bc = getString(U())
234- if ($isInstanceOf(bc, "String"))
225+func aY () = {
226+ let aZ = getString(T())
227+ if ($isInstanceOf(aZ, "String"))
235228 then {
236- let bd = bc
237- if ((size(bd) == 0))
229+ let ba = aZ
230+ if ((size(ba) == 0))
238231 then nil
239- else split(bd, k)
232+ else split(ba, j)
240233 }
241234 else nil
242235 }
243236
244237
245-func be () = {
246- let bc = getString(P())
247- if ($isInstanceOf(bc, "String"))
238+func bb () = {
239+ let aZ = getString(O())
240+ if ($isInstanceOf(aZ, "String"))
248241 then {
249- let bd = bc
250- fromBase58String(bd)
242+ let ba = aZ
243+ fromBase58String(ba)
251244 }
252- else if ($isInstanceOf(bc, "Unit"))
245+ else if ($isInstanceOf(aZ, "Unit"))
253246 then unit
254247 else throw("Match error")
255248 }
256249
257250
258-func bf () = {
259- let bc = getString(Q())
260- if ($isInstanceOf(bc, "String"))
251+func bc () = {
252+ let aZ = getString(P())
253+ if ($isInstanceOf(aZ, "String"))
261254 then {
262- let bd = bc
263- fromBase58String(bd)
255+ let ba = aZ
256+ fromBase58String(ba)
264257 }
265- else if ($isInstanceOf(bc, "Unit"))
258+ else if ($isInstanceOf(aZ, "Unit"))
266259 then unit
267260 else throw("Match error")
268261 }
269262
270263
271-let bg = throw("Permission denied")
264+let bd = throw("Permission denied")
272265
273-func bh (bi) = if ((bi.caller == this))
266+func be (bf) = if ((bf.caller == this))
274267 then true
275- else bg
268+ else bd
276269
277270
278-func bj (bi) = {
279- let bc = be()
280- if ($isInstanceOf(bc, "ByteVector"))
271+func bg (bf) = {
272+ let aZ = bb()
273+ if ($isInstanceOf(aZ, "ByteVector"))
281274 then {
282- let bk = bc
283- if ((bi.callerPublicKey == bk))
275+ let bh = aZ
276+ if ((bf.callerPublicKey == bh))
284277 then true
285- else bg
278+ else bd
286279 }
287- else if ($isInstanceOf(bc, "Unit"))
288- then bh(bi)
280+ else if ($isInstanceOf(aZ, "Unit"))
281+ then be(bf)
289282 else throw("Match error")
290283 }
291284
292285
293-func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw], k)
286+func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt], j)
294287
295288
296-func bx (bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs], k)
289+func bu (bj,bk,bl,bm,bn,bo,bp) = makeString(["%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp], j)
297290
298291
299-func by (Z,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bz, bA, bB, bC, toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), bI], k)
292+func bv (Y,bw,bx,by,bz,bA,bB,bC,bD,bE,bF) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bw, bx, by, bz, toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), bF], j)
300293
301294
302-func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
295+func bG (bH,bI) = makeString(["%d%d", toString(bH), toString(bI)], j)
303296
304297
305-func bM (Z) = {
306- let bN = split(aF(at(Z)), k)
307- let ah = bN[1]
308- let ai = bN[2]
309- split(aF(ag(ah, ai)), k)
298+func bJ (Y) = {
299+ let bK = split(aE(as(Y)), j)
300+ let ag = bK[1]
301+ let ah = bK[2]
302+ split(aE(af(ag, ah)), j)
310303 }
311304
312305
313-func bO (bP,bQ) = {
314- let bR = valueOrElse(getInteger(this, ae(bP)), 0)
315- let bS = valueOrElse(getInteger(this, X()), 0)
316- let bT = if ((bR == 0))
306+func bL (bM,bN) = {
307+ let bO = valueOrElse(getInteger(this, ad(bM)), 0)
308+ let bP = valueOrElse(getInteger(this, W()), 0)
309+ let bQ = if ((bO == 0))
317310 then {
318- let bU = (bS + bQ)
319- $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
311+ let bR = (bP + bN)
312+ $Tuple3(bR, [IntegerEntry(W(), bR), IntegerEntry(ad(bM), bR), StringEntry(ab(bR), bM)], true)
320313 }
321- else $Tuple3(bR, nil, false)
322- bT
314+ else $Tuple3(bO, nil, false)
315+ bQ
323316 }
324317
325318
326-func bV (bi) = {
327- let bW = split(valueOrElse(getString(R()), l), k)
328- if (containsElement(bW, toBase58String(bi.callerPublicKey)))
319+func bS (bf) = {
320+ let bT = split(valueOrElse(getString(Q()), k), j)
321+ if (containsElement(bT, toBase58String(bf.callerPublicKey)))
329322 then true
330323 else {
331- let bX = bj(bi)
332- if ((bX == bX))
324+ let bU = bg(bf)
325+ if ((bU == bU))
333326 then true
334327 else throw("Strict value is not equal to itself.")
335328 }
336329 }
337330
338331
339-func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
332+func bV (aF,bW,bX) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bW), bX))
340333
341334
342-@Callable(bi)
343-func constructor (cb,cc,bo,bp,bq,br,cd,ce) = {
344- let cf = bj(bi)
345- if ((cf == cf))
346- then [StringEntry(J(), bx(cb, cc, bo, bp, bq, br, cd)), IntegerEntry(V(), ce)]
335+@Callable(bf)
336+func constructor (bY,bZ,bl,bm,bn,bo,ca,cb) = {
337+ let cc = bg(bf)
338+ if ((cc == cc))
339+ then [StringEntry(I(), bu(bY, bZ, bl, bm, bn, bo, ca)), IntegerEntry(U(), cb)]
347340 else throw("Strict value is not equal to itself.")
348341 }
349342
350343
351344
352-@Callable(bi)
353-func constructorV2 (cg) = {
354- let cf = bj(bi)
355- if ((cf == cf))
345+@Callable(bf)
346+func constructorV2 (cd) = {
347+ let cc = bg(bf)
348+ if ((cc == cc))
356349 then {
357- let ch = addressFromPublicKey(fromBase58String(cg))
358- if ((ch == ch))
359- then [StringEntry(M(), cg)]
350+ let ce = addressFromPublicKey(fromBase58String(cd))
351+ if ((ce == ce))
352+ then [StringEntry(L(), cd)]
360353 else throw("Strict value is not equal to itself.")
361354 }
362355 else throw("Strict value is not equal to itself.")
364357
365358
366359
367-@Callable(bi)
368-func constructorV3 (bt,bu,bv,bw) = {
369- let cf = bj(bi)
370- if ((cf == cf))
360+@Callable(bf)
361+func constructorV3 (bq,br,bs,bt) = {
362+ let cc = bg(bf)
363+ if ((cc == cc))
371364 then {
372- let aX = split(aF(J()), k)
373-[StringEntry(J(), bl(aX[1], aX[2], aX[3], aX[4], aX[5], aX[6], aX[7], bt, bu, bv, bw))]
365+ let aU = split(aE(I()), j)
366+[StringEntry(I(), bi(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], bq, br, bs, bt))]
374367 }
375368 else throw("Strict value is not equal to itself.")
376369 }
377370
378371
379372
380-@Callable(bi)
381-func constructorV4 (ci,cj) = {
382- let cf = bj(bi)
383- if ((cf == cf))
384- then [StringEntry(N(), ci), StringEntry(O(), makeString(cj, k))]
373+@Callable(bf)
374+func constructorV4 (cf,cg) = {
375+ let cc = bg(bf)
376+ if ((cc == cc))
377+ then [StringEntry(M(), cf), StringEntry(N(), makeString(cg, j))]
385378 else throw("Strict value is not equal to itself.")
386379 }
387380
388381
389382
390-@Callable(bi)
391-func constructorV5 (ck) = {
392- let cf = bj(bi)
393- if ((cf == cf))
394- then [StringEntry(S(), ck)]
383+@Callable(bf)
384+func constructorV5 (ch) = {
385+ let cc = bg(bf)
386+ if ((cc == cc))
387+ then [StringEntry(R(), ch)]
395388 else throw("Strict value is not equal to itself.")
396389 }
397390
398391
399392
400-@Callable(bi)
401-func constructorV6 (cl,cm) = {
402- let cn = [bj(bi), if ((addressFromString(cl) != unit))
393+@Callable(bf)
394+func constructorV6 (ci,cj) = {
395+ let ck = [bg(bf), if ((addressFromString(ci) != unit))
403396 then true
404397 else "invalid voting emission contract address"]
405- if ((cn == cn))
406- then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
398+ if ((ck == ck))
399+ then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
407400 else throw("Strict value is not equal to itself.")
408401 }
409402
410403
411404
412-@Callable(bi)
413-func setManager (co) = {
414- let cf = bj(bi)
415- if ((cf == cf))
405+@Callable(bf)
406+func setManager (cl) = {
407+ let cc = bg(bf)
408+ if ((cc == cc))
416409 then {
417- let cp = fromBase58String(co)
418- if ((cp == cp))
419- then [StringEntry(Q(), co)]
410+ let cm = fromBase58String(cl)
411+ if ((cm == cm))
412+ then [StringEntry(P(), cl)]
420413 else throw("Strict value is not equal to itself.")
421414 }
422415 else throw("Strict value is not equal to itself.")
424417
425418
426419
427-@Callable(bi)
420+@Callable(bf)
428421 func confirmManager () = {
429- let cq = bf()
430- let cr = if (isDefined(cq))
422+ let cn = bc()
423+ let co = if (isDefined(cn))
431424 then true
432425 else throw("No pending manager")
433- if ((cr == cr))
426+ if ((co == co))
434427 then {
435- let cs = if ((bi.callerPublicKey == value(cq)))
428+ let cp = if ((bf.callerPublicKey == value(cn)))
436429 then true
437430 else throw("You are not pending manager")
438- if ((cs == cs))
439- then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
431+ if ((cp == cp))
432+ then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
440433 else throw("Strict value is not equal to itself.")
441434 }
442435 else throw("Strict value is not equal to itself.")
444437
445438
446439
447-@Callable(bi)
448-func setAdmins (ct) = {
449- let cf = bj(bi)
450- if ((cf == cf))
451- then [StringEntry(R(), makeString(ct, k))]
440+@Callable(bf)
441+func setAdmins (cq) = {
442+ let cc = bg(bf)
443+ if ((cc == cc))
444+ then [StringEntry(Q(), makeString(cq, j))]
452445 else throw("Strict value is not equal to itself.")
453446 }
454447
455448
456449
457-@Callable(bi)
458-func activateNewPool (Z,bB,bC,cu,cv,cw,bI,cx) = {
459- let cf = bV(bi)
460- if ((cf == cf))
461- then if (isDefined(getString(at(Z))))
462- then throw((("Pool address " + Z) + " already registered."))
450+@Callable(bf)
451+func activateNewPool (Y,by,bz,cr,cs,ct,bF,cu) = {
452+ let cc = bS(bf)
453+ if ((cc == cc))
454+ then if (isDefined(getString(as(Y))))
455+ then throw((("Pool address " + Y) + " already registered."))
463456 else {
464- let cy = bO(bB, 1)
465- let cz = cy._1
466- let cA = bO(bC, if (cy._3)
457+ let cv = bL(by, 1)
458+ let cw = cv._1
459+ let cx = bL(bz, if (cv._3)
467460 then 2
468461 else 1)
469- let cB = cA._1
470- let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
471- let cD = getBinaryValue(L())
472- let cE = getString(this, ag(toString(cz), toString(cB)))
473- if (isDefined(cE))
474- then throw((((("Pool " + bB) + "/") + bC) + " has already been activated."))
462+ let cy = cx._1
463+ let cz = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
464+ let cA = getBinaryValue(K())
465+ let cB = getString(this, af(toString(cw), toString(cy)))
466+ if (isDefined(cB))
467+ then throw((((("Pool " + by) + "/") + bz) + " has already been activated."))
475468 else {
476- let cF = value(getString(this, ag(toString(cz), toString(cB))))
477- let cG = if ((bB == "WAVES"))
478- then j
479- else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
480- let cH = if ((bC == "WAVES"))
481- then j
482- else pow(10, 0, value(assetInfo(fromBase58String(bC))).decimals, 0, 0, DOWN)
483- let cI = Issue(cu, cv, 1, 8, true)
484- let bA = calculateAssetId(cI)
485- let cJ = toBase58String(bA)
486- let cK = invoke(addressFromStringValue(Z), "activate", [bB, bC], nil)
487- if ((cK == cK))
488- then if ((cK != "success"))
469+ let cC = value(getString(this, af(toString(cw), toString(cy))))
470+ let cD = if ((by == "WAVES"))
471+ then i
472+ else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
473+ let cE = if ((bz == "WAVES"))
474+ then i
475+ else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
476+ let cF = Issue(cr, cs, 1, 8, true)
477+ let bx = calculateAssetId(cF)
478+ let cG = toBase58String(bx)
479+ let cH = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
480+ if ((cH == cH))
481+ then if ((cH != "success"))
489482 then throw("Pool initialisation error happened.")
490483 else {
491- let ck = addressFromStringValue(aF(S()))
492- let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493- if ((cL == cL))
484+ let ch = addressFromStringValue(aE(R()))
485+ let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486+ if ((cI == cI))
494487 then {
495- let cM = invoke(ck, "addLabel", [cJ, g], nil)
496- if ((cM == cM))
488+ let cJ = invoke(ch, "addLabel", [cG, g], nil)
489+ if ((cJ == cJ))
497490 then {
498- let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499- if ((cN == cN))
491+ let cK = invoke(ch, "setLogo", [cG, cu], nil)
492+ if ((cK == cK))
500493 then {
501- let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502- if ((cO == cO))
494+ let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495+ if ((cL == cL))
503496 then {
504- let cP = invoke(ck, "increaseAssetPoolsNumber", [bB], nil)
505- if ((cP == cP))
506- then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bA, 1), StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(m), cJ, bB, bC, cG, cH, cz, cB, j, bI)), StringEntry(an(cJ), bJ(cz, cB)), StringEntry(ap(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(at(Z), bJ(cz, cB)), StringEntry(av(cz, cB), Z), StringEntry(ax(cJ), Z), StringEntry(aw(Z), cJ), IntegerEntry(Y(Z), cw), IntegerEntry(as(Z), h)]), cJ)
497+ let cM = invoke(ch, "increaseAssetPoolsNumber", [by], nil)
498+ if ((cM == cM))
499+ then $Tuple2(((cv._2 ++ cx._2) ++ [cF, Burn(bx, 1), StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(l), cG, by, bz, cD, cE, cw, cy, i, bF)), StringEntry(am(cG), bG(cw, cy)), StringEntry(ao(toString(cw), toString(cy)), ("%s__" + cG)), StringEntry(as(Y), bG(cw, cy)), StringEntry(au(cw, cy), Y), StringEntry(aw(cG), Y), StringEntry(av(Y), cG), IntegerEntry(X(Y), ct), IntegerEntry(ar(Y), h)]), cG)
507500 else throw("Strict value is not equal to itself.")
508501 }
509502 else throw("Strict value is not equal to itself.")
522515
523516
524517
525-@Callable(bi)
526-func managePool (Z,cQ) = {
527- let cf = bj(bi)
528- if ((cf == cf))
518+@Callable(bf)
519+func managePool (Y,cN) = {
520+ let cc = bg(bf)
521+ if ((cc == cc))
529522 then {
530- let cE = bM(Z)
531- let bz = cE[u]
532- let cJ = cE[v]
533- let bB = cE[w]
534- let bC = cE[x]
535- let cG = parseIntValue(cE[y])
536- let cH = parseIntValue(cE[z])
537- let cz = parseIntValue(cE[A])
538- let cB = parseIntValue(cE[B])
539- let cR = parseIntValue(cE[C])
540- let bI = cE[D]
541-[StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(cQ), cJ, bB, bC, cG, cH, cz, cB, cR, bI))]
523+ let cB = bJ(Y)
524+ let bw = cB[t]
525+ let cG = cB[u]
526+ let by = cB[v]
527+ let bz = cB[w]
528+ let cD = parseIntValue(cB[x])
529+ let cE = parseIntValue(cB[y])
530+ let cw = parseIntValue(cB[z])
531+ let cy = parseIntValue(cB[A])
532+ let cO = parseIntValue(cB[B])
533+ let bF = cB[C]
534+[StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(cN), cG, by, bz, cD, cE, cw, cy, cO, bF))]
542535 }
543536 else throw("Strict value is not equal to itself.")
544537 }
545538
546539
547540
548-@Callable(bi)
549-func emit (cS) = {
550- let cT = bi.caller
551- let cU = bi.originCaller
552- let cV = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
553- let cW = fromBase58String(cV)
554- let cj = split(valueOrElse(getString(O()), l), k)
555- let ci = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
556- if ((0 >= cS))
541+@Callable(bf)
542+func emit (cP) = {
543+ let cQ = bf.caller
544+ let cR = bf.originCaller
545+ let cS = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
546+ let cT = fromBase58String(cS)
547+ let cg = split(valueOrElse(getString(N()), k), j)
548+ let cf = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
549+ if ((0 >= cP))
557550 then nil
558- else if (containsElement(cj, toString(cT)))
559- then $Tuple2(nil, ci)
560- else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bi.caller, cS, cW)], "success")
551+ else if (containsElement(cg, toString(cQ)))
552+ then $Tuple2(nil, cf)
553+ else $Tuple2([Reissue(cT, cP, true), ScriptTransfer(bf.caller, cP, cT)], "success")
561554 }
562555
563556
564557
565-@Callable(bi)
566-func burn (cX) = {
567- let cT = bi.caller
568- let cU = bi.originCaller
569- let cY = value(bi.payments[0])
570- let cZ = value(cY.amount)
571- let da = toBase58String(value(cY.assetId))
572- let db = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
573- if ((da != db))
558+@Callable(bf)
559+func burn (cU) = {
560+ let cQ = bf.caller
561+ let cR = bf.originCaller
562+ let cV = value(bf.payments[0])
563+ let cW = value(cV.amount)
564+ let cX = toBase58String(value(cV.assetId))
565+ let cY = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
566+ if ((cX != cY))
574567 then throw("Invalid asset passed.")
575- else if ((cX != cZ))
568+ else if ((cU != cW))
576569 then throw("Invalid amount passed.")
577570 else {
578- let cW = fromBase58String(db)
579- $Tuple2([Burn(cW, cX)], "success")
571+ let cT = fromBase58String(cY)
572+ $Tuple2([Burn(cT, cU)], "success")
580573 }
581574 }
582575
583576
584577
585-@Callable(bi)
586-func modifyWeight (bA,dc) = {
587- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
578+@Callable(bf)
579+func modifyWeight (bx,cZ) = {
580+ let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
588581 then true
589- else bj(bi)
590- if ((cf == cf))
582+ else bg(bf)
583+ if ((cc == cc))
591584 then {
592- let au = aF(ax(bA))
593- let dd = Y(au)
594- let de = Y(f)
595- let df = valueOrElse(getInteger(de), 0)
596- let cw = valueOrElse(getInteger(dd), 0)
597- let dg = dc
598- let aX = split(aF(J()), k)
599- let cb = aZ(aX)
600- let dh = invoke(cb, "onModifyWeight", [bA, au], nil)
601- if ((dh == dh))
585+ let at = aE(aw(bx))
586+ let da = X(at)
587+ let db = X(f)
588+ let dc = valueOrElse(getInteger(db), 0)
589+ let ct = valueOrElse(getInteger(da), 0)
590+ let dd = cZ
591+ let aU = split(aE(I()), j)
592+ let bY = aW(aU)
593+ let de = invoke(bY, "onModifyWeight", [bx, at], nil)
594+ if ((de == de))
602595 then {
603- let di = if ((df == 0))
596+ let df = if ((dc == 0))
604597 then nil
605- else [IntegerEntry(de, 0)]
606- let dj = aa(au, 0)
607- let dk = getInteger(dj)
608- let dl = if ((dk == unit))
598+ else [IntegerEntry(db, 0)]
599+ let dg = Z(at, 0)
600+ let dh = getInteger(dg)
601+ let di = if ((dh == unit))
609602 then nil
610- else [DeleteEntry(dj)]
611- (([IntegerEntry(dd, dg)] ++ di) ++ dl)
603+ else [DeleteEntry(dg)]
604+ (([IntegerEntry(da, dd)] ++ df) ++ di)
612605 }
613606 else throw("Strict value is not equal to itself.")
614607 }
617610
618611
619612
620-@Callable(bi)
621-func modifyWeights (dm,dn,do,dp) = {
622- let cf = bj(bi)
623- if ((cf == cf))
613+@Callable(bf)
614+func modifyWeights (dj,dk,dl,dm) = {
615+ let cc = bg(bf)
616+ if ((cc == cc))
624617 then {
625- let dq = ((5 * e) / 100)
626- let dr = ((5 * e) / 100)
627- let ds = ((5 * e) / 100)
628- let aX = split(aF(J()), k)
629- let dt = aZ(aX)
630- let du = ba(aX)
631- let dv = Y(dm)
632- let dw = Y(dn)
633- let dx = Y(do)
634- let dy = Y(dp)
635- let dz = aI(dv)
636- let dA = aI(dw)
637- let dB = (dz - ds)
638- let dC = (dA - ds)
639- if ((0 >= dB))
640- then throw(("invalid btcWeightNew: " + toString(dB)))
641- else if ((0 >= dC))
642- then throw(("invalid ethWeightNew: " + toString(dC)))
618+ let dn = ((5 * e) / 100)
619+ let do = ((5 * e) / 100)
620+ let dp = ((5 * e) / 100)
621+ let aU = split(aE(I()), j)
622+ let dq = aW(aU)
623+ let dr = aX(aU)
624+ let ds = X(dj)
625+ let dt = X(dk)
626+ let du = X(dl)
627+ let dv = X(dm)
628+ let dw = aH(ds)
629+ let dx = aH(dt)
630+ let dy = (dw - dp)
631+ let dz = (dx - dp)
632+ if ((0 >= dy))
633+ then throw(("invalid btcWeightNew: " + toString(dy)))
634+ else if ((0 >= dz))
635+ then throw(("invalid ethWeightNew: " + toString(dz)))
643636 else {
644- let dD = aF(aw(dm))
645- let dE = aF(aw(dn))
646- let dF = aF(aw(do))
647- let dG = aF(aw(dp))
648- let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
649- if ((dH == dH))
637+ let dA = aE(av(dj))
638+ let dB = aE(av(dk))
639+ let dC = aE(av(dl))
640+ let dD = aE(av(dm))
641+ let dE = invoke(dq, "onModifyWeight", [dA, dj], nil)
642+ if ((dE == dE))
650643 then {
651- let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652- if ((dI == dI))
644+ let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645+ if ((dF == dF))
653646 then {
654- let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655- if ((dJ == dJ))
647+ let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648+ if ((dG == dG))
656649 then {
657- let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
658- if ((dK == dK))
659- then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(aa(dm, 0), dz), IntegerEntry(aa(dn, 0), dA), IntegerEntry(aa(do, 0), dq), IntegerEntry(aa(dp, 0), dr)]
650+ let dH = invoke(dq, "onModifyWeight", [dD, dm], nil)
651+ if ((dH == dH))
652+ then [IntegerEntry(ds, dy), IntegerEntry(dt, dz), IntegerEntry(du, dn), IntegerEntry(dv, do), IntegerEntry(Z(dj, 0), dw), IntegerEntry(Z(dk, 0), dx), IntegerEntry(Z(dl, 0), dn), IntegerEntry(Z(dm, 0), do)]
660653 else throw("Strict value is not equal to itself.")
661654 }
662655 else throw("Strict value is not equal to itself.")
671664
672665
673666
674-@Callable(bi)
675-func checkWxEmissionPoolLabel (az,aA) = {
676- let dL = {
677- let bc = getBoolean(ay(az, aA))
678- if ($isInstanceOf(bc, "Boolean"))
667+@Callable(bf)
668+func checkWxEmissionPoolLabel (ay,az) = {
669+ let dI = {
670+ let aZ = getBoolean(ax(ay, az))
671+ if ($isInstanceOf(aZ, "Boolean"))
679672 then {
680- let dM = bc
681- dM
673+ let dJ = aZ
674+ dJ
682675 }
683676 else false
684677 }
685- $Tuple2(nil, dL)
678+ $Tuple2(nil, dI)
686679 }
687680
688681
689682
690-@Callable(bi)
691-func setWxEmissionPoolLabel (az,aA) = {
692- let cf = bV(bi)
693- if ((cf == cf))
694- then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
683+@Callable(bf)
684+func setWxEmissionPoolLabel (ay,az) = {
685+ let cc = bS(bf)
686+ if ((cc == cc))
687+ then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
695688 else throw("Strict value is not equal to itself.")
696689 }
697690
698691
699692
700-@Callable(bi)
701-func deleteWxEmissionPoolLabel (az,aA) = {
702- let cf = if (bh(bi))
693+@Callable(bf)
694+func deleteWxEmissionPoolLabel (ay,az) = {
695+ let cc = if (be(bf))
703696 then true
704- else bV(bi)
705- if ((cf == cf))
706- then $Tuple2([DeleteEntry(ay(az, aA))], unit)
697+ else bS(bf)
698+ if ((cc == cc))
699+ then $Tuple2([DeleteEntry(ax(ay, az))], unit)
707700 else throw("Strict value is not equal to itself.")
708701 }
709702
710703
711704
712-@Callable(bi)
713-func onVerificationLoss (dN) = {
714- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
705+@Callable(bf)
706+func onVerificationLoss (dK) = {
707+ let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
715708 then true
716- else bj(bi)
717- if ((cf == cf))
709+ else bg(bf)
710+ if ((cc == cc))
718711 then {
719- let cm = bb()
720- let dO = if ((size(cm) > 0))
712+ let cj = aY()
713+ let dL = if ((size(cj) > 0))
721714 then true
722715 else throw("invalid price assets")
723- if ((dO == dO))
716+ if ((dL == dL))
724717 then {
725- func dP (dQ,dR) = {
726- let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727- if ((dS == dS))
718+ func dM (dN,dO) = {
719+ let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720+ if ((dP == dP))
728721 then unit
729722 else throw("Strict value is not equal to itself.")
730723 }
731724
732- let dT = {
733- let dU = cm
734- let dV = size(dU)
735- let dW = unit
736- func dX (dY,dZ) = if ((dZ >= dV))
737- then dY
738- else dP(dY, dU[dZ])
725+ let dQ = {
726+ let dR = cj
727+ let dS = size(dR)
728+ let dT = unit
729+ func dU (dV,dW) = if ((dW >= dS))
730+ then dV
731+ else dM(dV, dR[dW])
739732
740- func ea (dY,dZ) = if ((dZ >= dV))
741- then dY
733+ func dX (dV,dW) = if ((dW >= dS))
734+ then dV
742735 else throw("List size exceeds 3")
743736
744- ea(dX(dX(dX(dW, 0), 1), 2), 3)
737+ dX(dU(dU(dU(dT, 0), 1), 2), 3)
745738 }
746- if ((dT == dT))
739+ if ((dQ == dQ))
747740 then $Tuple2(nil, unit)
748741 else throw("Strict value is not equal to itself.")
749742 }
754747
755748
756749
757-@Callable(bi)
758-func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
759- let cE = bM(Z)
760- let ak = $Tuple2(parseIntValue(cE[A]), parseIntValue(cE[B]))
761- let eb = valueOrElse(getBoolean(aj(ak)), false)
762- let ec = valueOrElse(getBoolean(am()), false)
763- $Tuple2(nil, if (ec)
750+@Callable(bf)
751+func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
752+ let cB = bJ(Y)
753+ let aj = $Tuple2(parseIntValue(cB[z]), parseIntValue(cB[A]))
754+ let dY = valueOrElse(getBoolean(ai(aj)), false)
755+ let dZ = valueOrElse(getBoolean(al()), false)
756+ $Tuple2(nil, if (dZ)
764757 then true
765- else eb)
758+ else dY)
766759 }
767760
768761
769762
770-@Callable(bi)
771-func getInFeeREADONLY (Z) = {
772- let ed = bY(aB(Z), aC(), 0)
773- $Tuple2(nil, ed)
763+@Callable(bf)
764+func getInFeeREADONLY (Y) = {
765+ let ea = bV(aA(Y), aB(), 0)
766+ $Tuple2(nil, ea)
774767 }
775768
776769
777770
778-@Callable(bi)
779-func getOutFeeREADONLY (Z) = {
780- let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781- $Tuple2(nil, ed)
771+@Callable(bf)
772+func getOutFeeREADONLY (Y) = {
773+ let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774+ $Tuple2(nil, ea)
782775 }
783776
784777
785-
786-@Callable(bi)
787-func poolInfoREADONLY (ee,ef) = {
788- let eg = getInteger(this, ae(ee))
789- let eh = getInteger(this, ae(ef))
790- let ei = getString(this, av(value(eg), value(eh)))
791- let ej = getString(this, aw(value(ei)))
792- let ek = if (if (isDefined(eg))
793- then isDefined(eh)
794- else false)
795- then isDefined(ei)
796- else false
797- let el = if (ek)
798- then $Tuple2(addressFromStringValue(value(ei)), aJ(value(ej)))
799- else unit
800- $Tuple2(nil, el)
801- }
802-
803-
804-
805-@Callable(bi)
806-func getPoolStatusREADONLY (Z) = {
807- let bN = split(aF(at(Z)), k)
808- let ah = bN[1]
809- let ai = bN[2]
810- let em = split(aF(ag(ah, ai)), k)
811- $Tuple2(nil, parseIntValue(em[u]))
812- }
813-
814-
815-@Verifier(en)
816-func eo () = {
817- let ep = {
818- let bc = be()
819- if ($isInstanceOf(bc, "ByteVector"))
778+@Verifier(eb)
779+func ec () = {
780+ let ed = {
781+ let aZ = bb()
782+ if ($isInstanceOf(aZ, "ByteVector"))
820783 then {
821- let bk = bc
822- bk
784+ let bh = aZ
785+ bh
823786 }
824- else if ($isInstanceOf(bc, "Unit"))
825- then en.senderPublicKey
787+ else if ($isInstanceOf(aZ, "Unit"))
788+ then eb.senderPublicKey
826789 else throw("Match error")
827790 }
828- sigVerify(en.bodyBytes, en.proofs[0], ep)
791+ sigVerify(eb.bodyBytes, eb.proofs[0], ed)
829792 }
830793
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
20-let i = "WAVES"
20+let i = ((100 * 1000) * 1000)
2121
22-let j = ((100 * 1000) * 1000)
22+let j = "__"
2323
24-let k = "__"
24+let k = ""
2525
26-let l = ""
26+let l = 1
2727
28-let m = 1
28+let m = 2
2929
30-let n = 2
30+let n = 3
3131
32-let o = 3
32+let o = 4
3333
34-let p = 4
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 1
4141
42-let t = 1
42+let t = 2
4343
44-let u = 2
44+let u = 3
4545
46-let v = 3
46+let v = 4
4747
48-let w = 4
48+let w = 5
4949
50-let x = 5
50+let x = 6
5151
52-let y = 6
52+let y = 7
5353
54-let z = 7
54+let z = 8
5555
56-let A = 8
56+let A = 9
5757
58-let B = 9
58+let B = 10
5959
60-let C = 10
60+let C = 11
6161
62-let D = 11
62+let D = "WX_EMISSION"
6363
64-let E = "WX_EMISSION"
64+let E = [D]
6565
66-let F = [E]
67-
68-func G () = "%s__allowedLpScriptHash"
66+func F () = "%s__allowedLpScriptHash"
6967
7068
71-func H () = "%s__allowedLpStableScriptHash"
69+func G () = "%s__allowedLpStableScriptHash"
7270
7371
74-func I () = "%s__allowedLpStableAddonScriptHash"
72+func H () = "%s__allowedLpStableAddonScriptHash"
7573
7674
77-func J () = "%s__factoryConfig"
75+func I () = "%s__factoryConfig"
7876
7977
80-func K () = "%s__lpTokensList"
78+func J () = "%s__lpTokensList"
8179
8280
83-func L () = "%s%s__pool__scriptHash"
81+func K () = "%s%s__pool__scriptHash"
8482
8583
86-func M () = "%s%s__matcher__publicKey"
84+func L () = "%s%s__matcher__publicKey"
8785
8886
89-func N () = "%s__legacyFactoryContract"
87+func M () = "%s__legacyFactoryContract"
9088
9189
92-func O () = "%s__legacyPools"
90+func N () = "%s__legacyPools"
9391
9492
95-func P () = "%s__managerPublicKey"
93+func O () = "%s__managerPublicKey"
9694
9795
98-func Q () = "%s__pendingManagerPublicKey"
96+func P () = "%s__pendingManagerPublicKey"
9997
10098
101-func R () = "%s__adminPubKeys"
99+func Q () = "%s__adminPubKeys"
102100
103101
104-func S () = "%s__assetsStoreContract"
102+func R () = "%s__assetsStoreContract"
105103
106104
107-func T () = "%s__votingEmissionContract"
105+func S () = "%s__votingEmissionContract"
108106
109107
110-func U () = makeString(["%s", "priceAssets"], k)
108+func T () = makeString(["%s", "priceAssets"], j)
111109
112110
113-func V () = "%s__priceDecimals"
111+func U () = "%s__priceDecimals"
114112
115113
116-func W () = "%s__shutdown"
114+func V () = "%s__shutdown"
117115
118116
119-func X () = "%s__nextInternalAssetId"
117+func W () = "%s__nextInternalAssetId"
120118
121119
122-func Y (Z) = ("%s%s__poolWeight__" + Z)
120+func X (Y) = ("%s%s__poolWeight__" + Y)
123121
124122
125-func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
123+func Z (Y,aa) = ((("%s%s__poolWeight__" + Y) + "__") + toString(aa))
126124
127125
128-func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
126+func ab (ac) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ac))
129127
130128
131-func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
129+func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
132130
133131
134-func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
132+func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
135133
136134
137-func aj (ak) = {
138- let al = ak
139- let ah = al._1
140- let ai = al._2
141- makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], k)
135+func ai (aj) = {
136+ let ak = aj
137+ let ag = ak._1
138+ let ah = ak._2
139+ makeString(["%d%d%s", toString(ag), toString(ah), "oneTokenOperationsDisabled"], j)
142140 }
143141
144142
145-func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
143+func al () = makeString(["%s", "oneTokenOperationsDisabled"], j)
146144
147145
148-func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
146+func am (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2Pool")
149147
150148
151-func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
149+func ao (ap,aq) = (((("%d%d%s%s__" + ap) + "__") + aq) + "__mappings__PoolAssets2LpAsset")
152150
153151
154-func as (Z) = ("%s%s__spread__" + Z)
152+func ar (Y) = ("%s%s__spread__" + Y)
155153
156154
157-func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
155+func as (at) = (("%s%s%s__" + at) + "__mappings__poolContract2PoolAssets")
158156
159157
160-func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
158+func au (ap,aq) = (((("%d%d%s%s__" + toString(ap)) + "__") + toString(aq)) + "__mappings__poolAssets2PoolContract")
161159
162160
163-func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
161+func av (at) = (("%s%s%s__" + at) + "__mappings__poolContract2LpAsset")
164162
165163
166-func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
164+func aw (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2PoolContract")
167165
168166
169-func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
167+func ax (ay,az) = ((("%s%s%s__wxEmission__" + ay) + "__") + az)
170168
171169
172-func aB (Z) = ("%s%s__inFee__" + Z)
170+func aA (Y) = ("%s%s__inFee__" + Y)
173171
174172
175-func aC () = "%s__inFeeDefault"
173+func aB () = "%s__inFeeDefault"
176174
177175
178-func aD (Z) = ("%s%s__outFee__" + Z)
176+func aC (Y) = ("%s%s__outFee__" + Y)
179177
180178
181-func aE () = "%s__outFeeDefault"
179+func aD () = "%s__outFeeDefault"
182180
183181
184-func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
182+func aE (aF) = valueOrErrorMessage(getString(this, aF), ("No data for this.key=" + aF))
185183
186184
187-func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
185+func aG (aF) = valueOrErrorMessage(getBoolean(this, aF), ("No data for this.key=" + aF))
188186
189187
190-func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
188+func aH (aF) = valueOrErrorMessage(getInteger(this, aF), ("No data for this.key=" + aF))
191189
192190
193-func aJ (aK) = if ((aK == i))
194- then unit
195- else fromBase58String(aK)
191+let aI = 1
192+
193+let aJ = 2
194+
195+let aK = 3
196+
197+let aL = 4
198+
199+let aM = 5
200+
201+let aN = 6
202+
203+let aO = 7
204+
205+let aP = 8
206+
207+let aQ = 9
208+
209+let aR = 10
210+
211+let aS = 11
212+
213+func aT (aU) = addressFromStringValue(aU[aJ])
196214
197215
198-let aL = 1
199-
200-let aM = 2
201-
202-let aN = 3
203-
204-let aO = 4
205-
206-let aP = 5
207-
208-let aQ = 6
209-
210-let aR = 7
211-
212-let aS = 8
213-
214-let aT = 9
215-
216-let aU = 10
217-
218-let aV = 11
219-
220-func aW (aX) = addressFromStringValue(aX[aM])
216+func aV (aU) = addressFromStringValue(aU[aM])
221217
222218
223-func aY (aX) = addressFromStringValue(aX[aP])
219+func aW (aU) = addressFromStringValue(aU[aI])
224220
225221
226-func aZ (aX) = addressFromStringValue(aX[aL])
222+func aX (aU) = addressFromStringValue(aU[aR])
227223
228224
229-func ba (aX) = addressFromStringValue(aX[aU])
230-
231-
232-func bb () = {
233- let bc = getString(U())
234- if ($isInstanceOf(bc, "String"))
225+func aY () = {
226+ let aZ = getString(T())
227+ if ($isInstanceOf(aZ, "String"))
235228 then {
236- let bd = bc
237- if ((size(bd) == 0))
229+ let ba = aZ
230+ if ((size(ba) == 0))
238231 then nil
239- else split(bd, k)
232+ else split(ba, j)
240233 }
241234 else nil
242235 }
243236
244237
245-func be () = {
246- let bc = getString(P())
247- if ($isInstanceOf(bc, "String"))
238+func bb () = {
239+ let aZ = getString(O())
240+ if ($isInstanceOf(aZ, "String"))
248241 then {
249- let bd = bc
250- fromBase58String(bd)
242+ let ba = aZ
243+ fromBase58String(ba)
251244 }
252- else if ($isInstanceOf(bc, "Unit"))
245+ else if ($isInstanceOf(aZ, "Unit"))
253246 then unit
254247 else throw("Match error")
255248 }
256249
257250
258-func bf () = {
259- let bc = getString(Q())
260- if ($isInstanceOf(bc, "String"))
251+func bc () = {
252+ let aZ = getString(P())
253+ if ($isInstanceOf(aZ, "String"))
261254 then {
262- let bd = bc
263- fromBase58String(bd)
255+ let ba = aZ
256+ fromBase58String(ba)
264257 }
265- else if ($isInstanceOf(bc, "Unit"))
258+ else if ($isInstanceOf(aZ, "Unit"))
266259 then unit
267260 else throw("Match error")
268261 }
269262
270263
271-let bg = throw("Permission denied")
264+let bd = throw("Permission denied")
272265
273-func bh (bi) = if ((bi.caller == this))
266+func be (bf) = if ((bf.caller == this))
274267 then true
275- else bg
268+ else bd
276269
277270
278-func bj (bi) = {
279- let bc = be()
280- if ($isInstanceOf(bc, "ByteVector"))
271+func bg (bf) = {
272+ let aZ = bb()
273+ if ($isInstanceOf(aZ, "ByteVector"))
281274 then {
282- let bk = bc
283- if ((bi.callerPublicKey == bk))
275+ let bh = aZ
276+ if ((bf.callerPublicKey == bh))
284277 then true
285- else bg
278+ else bd
286279 }
287- else if ($isInstanceOf(bc, "Unit"))
288- then bh(bi)
280+ else if ($isInstanceOf(aZ, "Unit"))
281+ then be(bf)
289282 else throw("Match error")
290283 }
291284
292285
293-func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw], k)
286+func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt], j)
294287
295288
296-func bx (bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs], k)
289+func bu (bj,bk,bl,bm,bn,bo,bp) = makeString(["%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp], j)
297290
298291
299-func by (Z,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bz, bA, bB, bC, toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), bI], k)
292+func bv (Y,bw,bx,by,bz,bA,bB,bC,bD,bE,bF) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bw, bx, by, bz, toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), bF], j)
300293
301294
302-func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
295+func bG (bH,bI) = makeString(["%d%d", toString(bH), toString(bI)], j)
303296
304297
305-func bM (Z) = {
306- let bN = split(aF(at(Z)), k)
307- let ah = bN[1]
308- let ai = bN[2]
309- split(aF(ag(ah, ai)), k)
298+func bJ (Y) = {
299+ let bK = split(aE(as(Y)), j)
300+ let ag = bK[1]
301+ let ah = bK[2]
302+ split(aE(af(ag, ah)), j)
310303 }
311304
312305
313-func bO (bP,bQ) = {
314- let bR = valueOrElse(getInteger(this, ae(bP)), 0)
315- let bS = valueOrElse(getInteger(this, X()), 0)
316- let bT = if ((bR == 0))
306+func bL (bM,bN) = {
307+ let bO = valueOrElse(getInteger(this, ad(bM)), 0)
308+ let bP = valueOrElse(getInteger(this, W()), 0)
309+ let bQ = if ((bO == 0))
317310 then {
318- let bU = (bS + bQ)
319- $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
311+ let bR = (bP + bN)
312+ $Tuple3(bR, [IntegerEntry(W(), bR), IntegerEntry(ad(bM), bR), StringEntry(ab(bR), bM)], true)
320313 }
321- else $Tuple3(bR, nil, false)
322- bT
314+ else $Tuple3(bO, nil, false)
315+ bQ
323316 }
324317
325318
326-func bV (bi) = {
327- let bW = split(valueOrElse(getString(R()), l), k)
328- if (containsElement(bW, toBase58String(bi.callerPublicKey)))
319+func bS (bf) = {
320+ let bT = split(valueOrElse(getString(Q()), k), j)
321+ if (containsElement(bT, toBase58String(bf.callerPublicKey)))
329322 then true
330323 else {
331- let bX = bj(bi)
332- if ((bX == bX))
324+ let bU = bg(bf)
325+ if ((bU == bU))
333326 then true
334327 else throw("Strict value is not equal to itself.")
335328 }
336329 }
337330
338331
339-func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
332+func bV (aF,bW,bX) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bW), bX))
340333
341334
342-@Callable(bi)
343-func constructor (cb,cc,bo,bp,bq,br,cd,ce) = {
344- let cf = bj(bi)
345- if ((cf == cf))
346- then [StringEntry(J(), bx(cb, cc, bo, bp, bq, br, cd)), IntegerEntry(V(), ce)]
335+@Callable(bf)
336+func constructor (bY,bZ,bl,bm,bn,bo,ca,cb) = {
337+ let cc = bg(bf)
338+ if ((cc == cc))
339+ then [StringEntry(I(), bu(bY, bZ, bl, bm, bn, bo, ca)), IntegerEntry(U(), cb)]
347340 else throw("Strict value is not equal to itself.")
348341 }
349342
350343
351344
352-@Callable(bi)
353-func constructorV2 (cg) = {
354- let cf = bj(bi)
355- if ((cf == cf))
345+@Callable(bf)
346+func constructorV2 (cd) = {
347+ let cc = bg(bf)
348+ if ((cc == cc))
356349 then {
357- let ch = addressFromPublicKey(fromBase58String(cg))
358- if ((ch == ch))
359- then [StringEntry(M(), cg)]
350+ let ce = addressFromPublicKey(fromBase58String(cd))
351+ if ((ce == ce))
352+ then [StringEntry(L(), cd)]
360353 else throw("Strict value is not equal to itself.")
361354 }
362355 else throw("Strict value is not equal to itself.")
363356 }
364357
365358
366359
367-@Callable(bi)
368-func constructorV3 (bt,bu,bv,bw) = {
369- let cf = bj(bi)
370- if ((cf == cf))
360+@Callable(bf)
361+func constructorV3 (bq,br,bs,bt) = {
362+ let cc = bg(bf)
363+ if ((cc == cc))
371364 then {
372- let aX = split(aF(J()), k)
373-[StringEntry(J(), bl(aX[1], aX[2], aX[3], aX[4], aX[5], aX[6], aX[7], bt, bu, bv, bw))]
365+ let aU = split(aE(I()), j)
366+[StringEntry(I(), bi(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], bq, br, bs, bt))]
374367 }
375368 else throw("Strict value is not equal to itself.")
376369 }
377370
378371
379372
380-@Callable(bi)
381-func constructorV4 (ci,cj) = {
382- let cf = bj(bi)
383- if ((cf == cf))
384- then [StringEntry(N(), ci), StringEntry(O(), makeString(cj, k))]
373+@Callable(bf)
374+func constructorV4 (cf,cg) = {
375+ let cc = bg(bf)
376+ if ((cc == cc))
377+ then [StringEntry(M(), cf), StringEntry(N(), makeString(cg, j))]
385378 else throw("Strict value is not equal to itself.")
386379 }
387380
388381
389382
390-@Callable(bi)
391-func constructorV5 (ck) = {
392- let cf = bj(bi)
393- if ((cf == cf))
394- then [StringEntry(S(), ck)]
383+@Callable(bf)
384+func constructorV5 (ch) = {
385+ let cc = bg(bf)
386+ if ((cc == cc))
387+ then [StringEntry(R(), ch)]
395388 else throw("Strict value is not equal to itself.")
396389 }
397390
398391
399392
400-@Callable(bi)
401-func constructorV6 (cl,cm) = {
402- let cn = [bj(bi), if ((addressFromString(cl) != unit))
393+@Callable(bf)
394+func constructorV6 (ci,cj) = {
395+ let ck = [bg(bf), if ((addressFromString(ci) != unit))
403396 then true
404397 else "invalid voting emission contract address"]
405- if ((cn == cn))
406- then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
398+ if ((ck == ck))
399+ then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
407400 else throw("Strict value is not equal to itself.")
408401 }
409402
410403
411404
412-@Callable(bi)
413-func setManager (co) = {
414- let cf = bj(bi)
415- if ((cf == cf))
405+@Callable(bf)
406+func setManager (cl) = {
407+ let cc = bg(bf)
408+ if ((cc == cc))
416409 then {
417- let cp = fromBase58String(co)
418- if ((cp == cp))
419- then [StringEntry(Q(), co)]
410+ let cm = fromBase58String(cl)
411+ if ((cm == cm))
412+ then [StringEntry(P(), cl)]
420413 else throw("Strict value is not equal to itself.")
421414 }
422415 else throw("Strict value is not equal to itself.")
423416 }
424417
425418
426419
427-@Callable(bi)
420+@Callable(bf)
428421 func confirmManager () = {
429- let cq = bf()
430- let cr = if (isDefined(cq))
422+ let cn = bc()
423+ let co = if (isDefined(cn))
431424 then true
432425 else throw("No pending manager")
433- if ((cr == cr))
426+ if ((co == co))
434427 then {
435- let cs = if ((bi.callerPublicKey == value(cq)))
428+ let cp = if ((bf.callerPublicKey == value(cn)))
436429 then true
437430 else throw("You are not pending manager")
438- if ((cs == cs))
439- then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
431+ if ((cp == cp))
432+ then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
440433 else throw("Strict value is not equal to itself.")
441434 }
442435 else throw("Strict value is not equal to itself.")
443436 }
444437
445438
446439
447-@Callable(bi)
448-func setAdmins (ct) = {
449- let cf = bj(bi)
450- if ((cf == cf))
451- then [StringEntry(R(), makeString(ct, k))]
440+@Callable(bf)
441+func setAdmins (cq) = {
442+ let cc = bg(bf)
443+ if ((cc == cc))
444+ then [StringEntry(Q(), makeString(cq, j))]
452445 else throw("Strict value is not equal to itself.")
453446 }
454447
455448
456449
457-@Callable(bi)
458-func activateNewPool (Z,bB,bC,cu,cv,cw,bI,cx) = {
459- let cf = bV(bi)
460- if ((cf == cf))
461- then if (isDefined(getString(at(Z))))
462- then throw((("Pool address " + Z) + " already registered."))
450+@Callable(bf)
451+func activateNewPool (Y,by,bz,cr,cs,ct,bF,cu) = {
452+ let cc = bS(bf)
453+ if ((cc == cc))
454+ then if (isDefined(getString(as(Y))))
455+ then throw((("Pool address " + Y) + " already registered."))
463456 else {
464- let cy = bO(bB, 1)
465- let cz = cy._1
466- let cA = bO(bC, if (cy._3)
457+ let cv = bL(by, 1)
458+ let cw = cv._1
459+ let cx = bL(bz, if (cv._3)
467460 then 2
468461 else 1)
469- let cB = cA._1
470- let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
471- let cD = getBinaryValue(L())
472- let cE = getString(this, ag(toString(cz), toString(cB)))
473- if (isDefined(cE))
474- then throw((((("Pool " + bB) + "/") + bC) + " has already been activated."))
462+ let cy = cx._1
463+ let cz = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
464+ let cA = getBinaryValue(K())
465+ let cB = getString(this, af(toString(cw), toString(cy)))
466+ if (isDefined(cB))
467+ then throw((((("Pool " + by) + "/") + bz) + " has already been activated."))
475468 else {
476- let cF = value(getString(this, ag(toString(cz), toString(cB))))
477- let cG = if ((bB == "WAVES"))
478- then j
479- else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
480- let cH = if ((bC == "WAVES"))
481- then j
482- else pow(10, 0, value(assetInfo(fromBase58String(bC))).decimals, 0, 0, DOWN)
483- let cI = Issue(cu, cv, 1, 8, true)
484- let bA = calculateAssetId(cI)
485- let cJ = toBase58String(bA)
486- let cK = invoke(addressFromStringValue(Z), "activate", [bB, bC], nil)
487- if ((cK == cK))
488- then if ((cK != "success"))
469+ let cC = value(getString(this, af(toString(cw), toString(cy))))
470+ let cD = if ((by == "WAVES"))
471+ then i
472+ else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
473+ let cE = if ((bz == "WAVES"))
474+ then i
475+ else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
476+ let cF = Issue(cr, cs, 1, 8, true)
477+ let bx = calculateAssetId(cF)
478+ let cG = toBase58String(bx)
479+ let cH = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
480+ if ((cH == cH))
481+ then if ((cH != "success"))
489482 then throw("Pool initialisation error happened.")
490483 else {
491- let ck = addressFromStringValue(aF(S()))
492- let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493- if ((cL == cL))
484+ let ch = addressFromStringValue(aE(R()))
485+ let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486+ if ((cI == cI))
494487 then {
495- let cM = invoke(ck, "addLabel", [cJ, g], nil)
496- if ((cM == cM))
488+ let cJ = invoke(ch, "addLabel", [cG, g], nil)
489+ if ((cJ == cJ))
497490 then {
498- let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499- if ((cN == cN))
491+ let cK = invoke(ch, "setLogo", [cG, cu], nil)
492+ if ((cK == cK))
500493 then {
501- let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502- if ((cO == cO))
494+ let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495+ if ((cL == cL))
503496 then {
504- let cP = invoke(ck, "increaseAssetPoolsNumber", [bB], nil)
505- if ((cP == cP))
506- then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bA, 1), StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(m), cJ, bB, bC, cG, cH, cz, cB, j, bI)), StringEntry(an(cJ), bJ(cz, cB)), StringEntry(ap(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(at(Z), bJ(cz, cB)), StringEntry(av(cz, cB), Z), StringEntry(ax(cJ), Z), StringEntry(aw(Z), cJ), IntegerEntry(Y(Z), cw), IntegerEntry(as(Z), h)]), cJ)
497+ let cM = invoke(ch, "increaseAssetPoolsNumber", [by], nil)
498+ if ((cM == cM))
499+ then $Tuple2(((cv._2 ++ cx._2) ++ [cF, Burn(bx, 1), StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(l), cG, by, bz, cD, cE, cw, cy, i, bF)), StringEntry(am(cG), bG(cw, cy)), StringEntry(ao(toString(cw), toString(cy)), ("%s__" + cG)), StringEntry(as(Y), bG(cw, cy)), StringEntry(au(cw, cy), Y), StringEntry(aw(cG), Y), StringEntry(av(Y), cG), IntegerEntry(X(Y), ct), IntegerEntry(ar(Y), h)]), cG)
507500 else throw("Strict value is not equal to itself.")
508501 }
509502 else throw("Strict value is not equal to itself.")
510503 }
511504 else throw("Strict value is not equal to itself.")
512505 }
513506 else throw("Strict value is not equal to itself.")
514507 }
515508 else throw("Strict value is not equal to itself.")
516509 }
517510 else throw("Strict value is not equal to itself.")
518511 }
519512 }
520513 else throw("Strict value is not equal to itself.")
521514 }
522515
523516
524517
525-@Callable(bi)
526-func managePool (Z,cQ) = {
527- let cf = bj(bi)
528- if ((cf == cf))
518+@Callable(bf)
519+func managePool (Y,cN) = {
520+ let cc = bg(bf)
521+ if ((cc == cc))
529522 then {
530- let cE = bM(Z)
531- let bz = cE[u]
532- let cJ = cE[v]
533- let bB = cE[w]
534- let bC = cE[x]
535- let cG = parseIntValue(cE[y])
536- let cH = parseIntValue(cE[z])
537- let cz = parseIntValue(cE[A])
538- let cB = parseIntValue(cE[B])
539- let cR = parseIntValue(cE[C])
540- let bI = cE[D]
541-[StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(cQ), cJ, bB, bC, cG, cH, cz, cB, cR, bI))]
523+ let cB = bJ(Y)
524+ let bw = cB[t]
525+ let cG = cB[u]
526+ let by = cB[v]
527+ let bz = cB[w]
528+ let cD = parseIntValue(cB[x])
529+ let cE = parseIntValue(cB[y])
530+ let cw = parseIntValue(cB[z])
531+ let cy = parseIntValue(cB[A])
532+ let cO = parseIntValue(cB[B])
533+ let bF = cB[C]
534+[StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(cN), cG, by, bz, cD, cE, cw, cy, cO, bF))]
542535 }
543536 else throw("Strict value is not equal to itself.")
544537 }
545538
546539
547540
548-@Callable(bi)
549-func emit (cS) = {
550- let cT = bi.caller
551- let cU = bi.originCaller
552- let cV = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
553- let cW = fromBase58String(cV)
554- let cj = split(valueOrElse(getString(O()), l), k)
555- let ci = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
556- if ((0 >= cS))
541+@Callable(bf)
542+func emit (cP) = {
543+ let cQ = bf.caller
544+ let cR = bf.originCaller
545+ let cS = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
546+ let cT = fromBase58String(cS)
547+ let cg = split(valueOrElse(getString(N()), k), j)
548+ let cf = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
549+ if ((0 >= cP))
557550 then nil
558- else if (containsElement(cj, toString(cT)))
559- then $Tuple2(nil, ci)
560- else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bi.caller, cS, cW)], "success")
551+ else if (containsElement(cg, toString(cQ)))
552+ then $Tuple2(nil, cf)
553+ else $Tuple2([Reissue(cT, cP, true), ScriptTransfer(bf.caller, cP, cT)], "success")
561554 }
562555
563556
564557
565-@Callable(bi)
566-func burn (cX) = {
567- let cT = bi.caller
568- let cU = bi.originCaller
569- let cY = value(bi.payments[0])
570- let cZ = value(cY.amount)
571- let da = toBase58String(value(cY.assetId))
572- let db = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
573- if ((da != db))
558+@Callable(bf)
559+func burn (cU) = {
560+ let cQ = bf.caller
561+ let cR = bf.originCaller
562+ let cV = value(bf.payments[0])
563+ let cW = value(cV.amount)
564+ let cX = toBase58String(value(cV.assetId))
565+ let cY = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
566+ if ((cX != cY))
574567 then throw("Invalid asset passed.")
575- else if ((cX != cZ))
568+ else if ((cU != cW))
576569 then throw("Invalid amount passed.")
577570 else {
578- let cW = fromBase58String(db)
579- $Tuple2([Burn(cW, cX)], "success")
571+ let cT = fromBase58String(cY)
572+ $Tuple2([Burn(cT, cU)], "success")
580573 }
581574 }
582575
583576
584577
585-@Callable(bi)
586-func modifyWeight (bA,dc) = {
587- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
578+@Callable(bf)
579+func modifyWeight (bx,cZ) = {
580+ let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
588581 then true
589- else bj(bi)
590- if ((cf == cf))
582+ else bg(bf)
583+ if ((cc == cc))
591584 then {
592- let au = aF(ax(bA))
593- let dd = Y(au)
594- let de = Y(f)
595- let df = valueOrElse(getInteger(de), 0)
596- let cw = valueOrElse(getInteger(dd), 0)
597- let dg = dc
598- let aX = split(aF(J()), k)
599- let cb = aZ(aX)
600- let dh = invoke(cb, "onModifyWeight", [bA, au], nil)
601- if ((dh == dh))
585+ let at = aE(aw(bx))
586+ let da = X(at)
587+ let db = X(f)
588+ let dc = valueOrElse(getInteger(db), 0)
589+ let ct = valueOrElse(getInteger(da), 0)
590+ let dd = cZ
591+ let aU = split(aE(I()), j)
592+ let bY = aW(aU)
593+ let de = invoke(bY, "onModifyWeight", [bx, at], nil)
594+ if ((de == de))
602595 then {
603- let di = if ((df == 0))
596+ let df = if ((dc == 0))
604597 then nil
605- else [IntegerEntry(de, 0)]
606- let dj = aa(au, 0)
607- let dk = getInteger(dj)
608- let dl = if ((dk == unit))
598+ else [IntegerEntry(db, 0)]
599+ let dg = Z(at, 0)
600+ let dh = getInteger(dg)
601+ let di = if ((dh == unit))
609602 then nil
610- else [DeleteEntry(dj)]
611- (([IntegerEntry(dd, dg)] ++ di) ++ dl)
603+ else [DeleteEntry(dg)]
604+ (([IntegerEntry(da, dd)] ++ df) ++ di)
612605 }
613606 else throw("Strict value is not equal to itself.")
614607 }
615608 else throw("Strict value is not equal to itself.")
616609 }
617610
618611
619612
620-@Callable(bi)
621-func modifyWeights (dm,dn,do,dp) = {
622- let cf = bj(bi)
623- if ((cf == cf))
613+@Callable(bf)
614+func modifyWeights (dj,dk,dl,dm) = {
615+ let cc = bg(bf)
616+ if ((cc == cc))
624617 then {
625- let dq = ((5 * e) / 100)
626- let dr = ((5 * e) / 100)
627- let ds = ((5 * e) / 100)
628- let aX = split(aF(J()), k)
629- let dt = aZ(aX)
630- let du = ba(aX)
631- let dv = Y(dm)
632- let dw = Y(dn)
633- let dx = Y(do)
634- let dy = Y(dp)
635- let dz = aI(dv)
636- let dA = aI(dw)
637- let dB = (dz - ds)
638- let dC = (dA - ds)
639- if ((0 >= dB))
640- then throw(("invalid btcWeightNew: " + toString(dB)))
641- else if ((0 >= dC))
642- then throw(("invalid ethWeightNew: " + toString(dC)))
618+ let dn = ((5 * e) / 100)
619+ let do = ((5 * e) / 100)
620+ let dp = ((5 * e) / 100)
621+ let aU = split(aE(I()), j)
622+ let dq = aW(aU)
623+ let dr = aX(aU)
624+ let ds = X(dj)
625+ let dt = X(dk)
626+ let du = X(dl)
627+ let dv = X(dm)
628+ let dw = aH(ds)
629+ let dx = aH(dt)
630+ let dy = (dw - dp)
631+ let dz = (dx - dp)
632+ if ((0 >= dy))
633+ then throw(("invalid btcWeightNew: " + toString(dy)))
634+ else if ((0 >= dz))
635+ then throw(("invalid ethWeightNew: " + toString(dz)))
643636 else {
644- let dD = aF(aw(dm))
645- let dE = aF(aw(dn))
646- let dF = aF(aw(do))
647- let dG = aF(aw(dp))
648- let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
649- if ((dH == dH))
637+ let dA = aE(av(dj))
638+ let dB = aE(av(dk))
639+ let dC = aE(av(dl))
640+ let dD = aE(av(dm))
641+ let dE = invoke(dq, "onModifyWeight", [dA, dj], nil)
642+ if ((dE == dE))
650643 then {
651- let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652- if ((dI == dI))
644+ let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645+ if ((dF == dF))
653646 then {
654- let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655- if ((dJ == dJ))
647+ let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648+ if ((dG == dG))
656649 then {
657- let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
658- if ((dK == dK))
659- then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(aa(dm, 0), dz), IntegerEntry(aa(dn, 0), dA), IntegerEntry(aa(do, 0), dq), IntegerEntry(aa(dp, 0), dr)]
650+ let dH = invoke(dq, "onModifyWeight", [dD, dm], nil)
651+ if ((dH == dH))
652+ then [IntegerEntry(ds, dy), IntegerEntry(dt, dz), IntegerEntry(du, dn), IntegerEntry(dv, do), IntegerEntry(Z(dj, 0), dw), IntegerEntry(Z(dk, 0), dx), IntegerEntry(Z(dl, 0), dn), IntegerEntry(Z(dm, 0), do)]
660653 else throw("Strict value is not equal to itself.")
661654 }
662655 else throw("Strict value is not equal to itself.")
663656 }
664657 else throw("Strict value is not equal to itself.")
665658 }
666659 else throw("Strict value is not equal to itself.")
667660 }
668661 }
669662 else throw("Strict value is not equal to itself.")
670663 }
671664
672665
673666
674-@Callable(bi)
675-func checkWxEmissionPoolLabel (az,aA) = {
676- let dL = {
677- let bc = getBoolean(ay(az, aA))
678- if ($isInstanceOf(bc, "Boolean"))
667+@Callable(bf)
668+func checkWxEmissionPoolLabel (ay,az) = {
669+ let dI = {
670+ let aZ = getBoolean(ax(ay, az))
671+ if ($isInstanceOf(aZ, "Boolean"))
679672 then {
680- let dM = bc
681- dM
673+ let dJ = aZ
674+ dJ
682675 }
683676 else false
684677 }
685- $Tuple2(nil, dL)
678+ $Tuple2(nil, dI)
686679 }
687680
688681
689682
690-@Callable(bi)
691-func setWxEmissionPoolLabel (az,aA) = {
692- let cf = bV(bi)
693- if ((cf == cf))
694- then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
683+@Callable(bf)
684+func setWxEmissionPoolLabel (ay,az) = {
685+ let cc = bS(bf)
686+ if ((cc == cc))
687+ then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
695688 else throw("Strict value is not equal to itself.")
696689 }
697690
698691
699692
700-@Callable(bi)
701-func deleteWxEmissionPoolLabel (az,aA) = {
702- let cf = if (bh(bi))
693+@Callable(bf)
694+func deleteWxEmissionPoolLabel (ay,az) = {
695+ let cc = if (be(bf))
703696 then true
704- else bV(bi)
705- if ((cf == cf))
706- then $Tuple2([DeleteEntry(ay(az, aA))], unit)
697+ else bS(bf)
698+ if ((cc == cc))
699+ then $Tuple2([DeleteEntry(ax(ay, az))], unit)
707700 else throw("Strict value is not equal to itself.")
708701 }
709702
710703
711704
712-@Callable(bi)
713-func onVerificationLoss (dN) = {
714- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
705+@Callable(bf)
706+func onVerificationLoss (dK) = {
707+ let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
715708 then true
716- else bj(bi)
717- if ((cf == cf))
709+ else bg(bf)
710+ if ((cc == cc))
718711 then {
719- let cm = bb()
720- let dO = if ((size(cm) > 0))
712+ let cj = aY()
713+ let dL = if ((size(cj) > 0))
721714 then true
722715 else throw("invalid price assets")
723- if ((dO == dO))
716+ if ((dL == dL))
724717 then {
725- func dP (dQ,dR) = {
726- let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727- if ((dS == dS))
718+ func dM (dN,dO) = {
719+ let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720+ if ((dP == dP))
728721 then unit
729722 else throw("Strict value is not equal to itself.")
730723 }
731724
732- let dT = {
733- let dU = cm
734- let dV = size(dU)
735- let dW = unit
736- func dX (dY,dZ) = if ((dZ >= dV))
737- then dY
738- else dP(dY, dU[dZ])
725+ let dQ = {
726+ let dR = cj
727+ let dS = size(dR)
728+ let dT = unit
729+ func dU (dV,dW) = if ((dW >= dS))
730+ then dV
731+ else dM(dV, dR[dW])
739732
740- func ea (dY,dZ) = if ((dZ >= dV))
741- then dY
733+ func dX (dV,dW) = if ((dW >= dS))
734+ then dV
742735 else throw("List size exceeds 3")
743736
744- ea(dX(dX(dX(dW, 0), 1), 2), 3)
737+ dX(dU(dU(dU(dT, 0), 1), 2), 3)
745738 }
746- if ((dT == dT))
739+ if ((dQ == dQ))
747740 then $Tuple2(nil, unit)
748741 else throw("Strict value is not equal to itself.")
749742 }
750743 else throw("Strict value is not equal to itself.")
751744 }
752745 else throw("Strict value is not equal to itself.")
753746 }
754747
755748
756749
757-@Callable(bi)
758-func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
759- let cE = bM(Z)
760- let ak = $Tuple2(parseIntValue(cE[A]), parseIntValue(cE[B]))
761- let eb = valueOrElse(getBoolean(aj(ak)), false)
762- let ec = valueOrElse(getBoolean(am()), false)
763- $Tuple2(nil, if (ec)
750+@Callable(bf)
751+func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
752+ let cB = bJ(Y)
753+ let aj = $Tuple2(parseIntValue(cB[z]), parseIntValue(cB[A]))
754+ let dY = valueOrElse(getBoolean(ai(aj)), false)
755+ let dZ = valueOrElse(getBoolean(al()), false)
756+ $Tuple2(nil, if (dZ)
764757 then true
765- else eb)
758+ else dY)
766759 }
767760
768761
769762
770-@Callable(bi)
771-func getInFeeREADONLY (Z) = {
772- let ed = bY(aB(Z), aC(), 0)
773- $Tuple2(nil, ed)
763+@Callable(bf)
764+func getInFeeREADONLY (Y) = {
765+ let ea = bV(aA(Y), aB(), 0)
766+ $Tuple2(nil, ea)
774767 }
775768
776769
777770
778-@Callable(bi)
779-func getOutFeeREADONLY (Z) = {
780- let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781- $Tuple2(nil, ed)
771+@Callable(bf)
772+func getOutFeeREADONLY (Y) = {
773+ let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774+ $Tuple2(nil, ea)
782775 }
783776
784777
785-
786-@Callable(bi)
787-func poolInfoREADONLY (ee,ef) = {
788- let eg = getInteger(this, ae(ee))
789- let eh = getInteger(this, ae(ef))
790- let ei = getString(this, av(value(eg), value(eh)))
791- let ej = getString(this, aw(value(ei)))
792- let ek = if (if (isDefined(eg))
793- then isDefined(eh)
794- else false)
795- then isDefined(ei)
796- else false
797- let el = if (ek)
798- then $Tuple2(addressFromStringValue(value(ei)), aJ(value(ej)))
799- else unit
800- $Tuple2(nil, el)
801- }
802-
803-
804-
805-@Callable(bi)
806-func getPoolStatusREADONLY (Z) = {
807- let bN = split(aF(at(Z)), k)
808- let ah = bN[1]
809- let ai = bN[2]
810- let em = split(aF(ag(ah, ai)), k)
811- $Tuple2(nil, parseIntValue(em[u]))
812- }
813-
814-
815-@Verifier(en)
816-func eo () = {
817- let ep = {
818- let bc = be()
819- if ($isInstanceOf(bc, "ByteVector"))
778+@Verifier(eb)
779+func ec () = {
780+ let ed = {
781+ let aZ = bb()
782+ if ($isInstanceOf(aZ, "ByteVector"))
820783 then {
821- let bk = bc
822- bk
784+ let bh = aZ
785+ bh
823786 }
824- else if ($isInstanceOf(bc, "Unit"))
825- then en.senderPublicKey
787+ else if ($isInstanceOf(aZ, "Unit"))
788+ then eb.senderPublicKey
826789 else throw("Match error")
827790 }
828- sigVerify(en.bodyBytes, en.proofs[0], ep)
791+ sigVerify(eb.bodyBytes, eb.proofs[0], ed)
829792 }
830793

github/deemru/w8io/026f985 
284.20 ms