tx · 3kaCHEsuwi2Qu8xRLYax9LAKp3RPFXyeDzjxBU4kZEeu

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03000000 Waves

2023.01.10 13:41 [2398740] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "3kaCHEsuwi2Qu8xRLYax9LAKp3RPFXyeDzjxBU4kZEeu", "fee": 3000000, "feeAssetId": null, "timestamp": 1673347385422, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "5xocRGzfM3PraApHunag4Md8hKHMxxLAXmCfichseJ1NNU3TVERSgyfKgfNPc7Kan3KUcHy7DLKZ6p4wMBQhxZVt" ], "script": "base64:AAIFAAAAAAAAE1IIAhIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgiBlNDQUxFOCIFTVVMVDgiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIiFrZXlBbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2giEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzY1ODM3MjAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIgxwYXJzZUFzc2V0SWQiBWlucHV0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIQZGF0YUZhY3RvcnlDZmdWMyIOc3Rha2luZ0FkZHJlc3MiD2Jvb3N0aW5nQWRkcmVzcyILaWRvQ29udHJhY3QiDHRlYW1Db250cmFjdCIQZW1pc3Npb25Db250cmFjdCIMcmVzdENvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IgtkYW9Db250cmFjdCIRbWFya2V0aW5nQ29udHJhY3QiEmd3eFJld2FyZHNDb250cmFjdCINYmlyZHNDb250cmFjdCIOZGF0YUZhY3RvcnlDZmciC2RhdGFQb29sQ2ZnIgpwb29sU3RhdHVzIglscEFzc2V0SWQiDmFtb3VudEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiD2xwQXNzZXREZWNpbWFscyIIcG9vbFR5cGUiFWRhdGFNYXBwaW5nUG9vbEFzc2V0cyIWaW50ZXJuYWxBbW91bnRBc3NldFN0ciIVaW50ZXJuYWxQcmljZUFzc2V0U3RyIg1nZXRQb29sQ29uZmlnIgpwb29sQXNzZXRzIhpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZSIKYXNzZXRJZFN0ciILaW5jcmVtZW50b3IiD2ludGVybmFsQXNzZXRJZCIYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkIgZyZXN1bHQiEm5ld0ludGVybmFsQXNzZXRJZCIJbXVzdEFkbWluIghhZG1pblBLcyIJaXNNYW5hZ2VyIhZpbnRPckRlZmF1bHRPckZhbGxiYWNrIgprZXlEZWZhdWx0Ig12YWx1ZUZhbGxiYWNrIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sQ29uZmlnIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9k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", "chainId": 84, "height": 2398740, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5S5PDZWKj2ciCSZWZXWKMkuNEsrisGjgb3u9Bv7LrhpH Next: 74s5enjE1kh9cF3KbraDPw1YKP4ZkumNtbR4xW1gL5Qp Diff:
OldNewDifferences
1717
1818 let h = 2000000
1919
20-let i = ((100 * 1000) * 1000)
20+let i = "WAVES"
2121
22-let j = "__"
22+let j = ((100 * 1000) * 1000)
2323
24-let k = ""
24+let k = "__"
2525
26-let l = 1
26+let l = ""
2727
28-let m = 2
28+let m = 1
2929
30-let n = 3
30+let n = 2
3131
32-let o = 4
32+let o = 3
3333
34-let p = 1
34+let p = 4
3535
36-let q = 2
36+let q = 1
3737
38-let r = 3
38+let r = 2
3939
40-let s = 1
40+let s = 3
4141
42-let t = 2
42+let t = 1
4343
44-let u = 3
44+let u = 2
4545
46-let v = 4
46+let v = 3
4747
48-let w = 5
48+let w = 4
4949
50-let x = 6
50+let x = 5
5151
52-let y = 7
52+let y = 6
5353
54-let z = 8
54+let z = 7
5555
56-let A = 9
56+let A = 8
5757
58-let B = 10
58+let B = 9
5959
60-let C = 11
60+let C = 10
6161
62-let D = "WX_EMISSION"
62+let D = 11
6363
64-let E = [D]
64+let E = "WX_EMISSION"
6565
66-func F () = "%s__allowedLpScriptHash"
66+let F = [E]
67+
68+func G () = "%s__allowedLpScriptHash"
6769
6870
69-func G () = "%s__allowedLpStableScriptHash"
71+func H () = "%s__allowedLpStableScriptHash"
7072
7173
72-func H () = "%s__allowedLpStableAddonScriptHash"
74+func I () = "%s__allowedLpStableAddonScriptHash"
7375
7476
75-func I () = "%s__factoryConfig"
77+func J () = "%s__factoryConfig"
7678
7779
78-func J () = "%s__lpTokensList"
80+func K () = "%s__lpTokensList"
7981
8082
81-func K () = "%s%s__pool__scriptHash"
83+func L () = "%s%s__pool__scriptHash"
8284
8385
84-func L () = "%s%s__matcher__publicKey"
86+func M () = "%s%s__matcher__publicKey"
8587
8688
87-func M () = "%s__legacyFactoryContract"
89+func N () = "%s__legacyFactoryContract"
8890
8991
90-func N () = "%s__legacyPools"
92+func O () = "%s__legacyPools"
9193
9294
93-func O () = "%s__managerPublicKey"
95+func P () = "%s__managerPublicKey"
9496
9597
96-func P () = "%s__pendingManagerPublicKey"
98+func Q () = "%s__pendingManagerPublicKey"
9799
98100
99-func Q () = "%s__adminPubKeys"
101+func R () = "%s__adminPubKeys"
100102
101103
102-func R () = "%s__assetsStoreContract"
104+func S () = "%s__assetsStoreContract"
103105
104106
105-func S () = "%s__votingEmissionContract"
107+func T () = "%s__votingEmissionContract"
106108
107109
108-func T () = makeString(["%s", "priceAssets"], j)
110+func U () = makeString(["%s", "priceAssets"], k)
109111
110112
111-func U () = "%s__priceDecimals"
113+func V () = "%s__priceDecimals"
112114
113115
114-func V () = "%s__shutdown"
116+func W () = "%s__shutdown"
115117
116118
117-func W () = "%s__nextInternalAssetId"
119+func X () = "%s__nextInternalAssetId"
118120
119121
120-func X (Y) = ("%s%s__poolWeight__" + Y)
122+func Y (Z) = ("%s%s__poolWeight__" + Z)
121123
122124
123-func Z (Y,aa) = ((("%s%s__poolWeight__" + Y) + "__") + toString(aa))
125+func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
124126
125127
126-func ab (ac) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ac))
128+func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
127129
128130
129-func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
131+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
130132
131133
132-func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
134+func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
133135
134136
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)
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)
140142 }
141143
142144
143-func al () = makeString(["%s", "oneTokenOperationsDisabled"], j)
145+func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
144146
145147
146-func am (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2Pool")
148+func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
147149
148150
149-func ao (ap,aq) = (((("%d%d%s%s__" + ap) + "__") + aq) + "__mappings__PoolAssets2LpAsset")
151+func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
150152
151153
152-func ar (Y) = ("%s%s__spread__" + Y)
154+func as (Z) = ("%s%s__spread__" + Z)
153155
154156
155-func as (at) = (("%s%s%s__" + at) + "__mappings__poolContract2PoolAssets")
157+func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
156158
157159
158-func au (ap,aq) = (((("%d%d%s%s__" + toString(ap)) + "__") + toString(aq)) + "__mappings__poolAssets2PoolContract")
160+func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
159161
160162
161-func av (at) = (("%s%s%s__" + at) + "__mappings__poolContract2LpAsset")
163+func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
162164
163165
164-func aw (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2PoolContract")
166+func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
165167
166168
167-func ax (ay,az) = ((("%s%s%s__wxEmission__" + ay) + "__") + az)
169+func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
168170
169171
170-func aA (Y) = ("%s%s__inFee__" + Y)
172+func aB (Z) = ("%s%s__inFee__" + Z)
171173
172174
173-func aB () = "%s__inFeeDefault"
175+func aC () = "%s__inFeeDefault"
174176
175177
176-func aC (Y) = ("%s%s__outFee__" + Y)
178+func aD (Z) = ("%s%s__outFee__" + Z)
177179
178180
179-func aD () = "%s__outFeeDefault"
181+func aE () = "%s__outFeeDefault"
180182
181183
182-func aE (aF) = valueOrErrorMessage(getString(this, aF), ("No data for this.key=" + aF))
184+func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
183185
184186
185-func aG (aF) = valueOrErrorMessage(getBoolean(this, aF), ("No data for this.key=" + aF))
187+func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
186188
187189
188-func aH (aF) = valueOrErrorMessage(getInteger(this, aF), ("No data for this.key=" + aF))
190+func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
189191
190192
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])
193+func aJ (aK) = if ((aK == i))
194+ then unit
195+ else fromBase58String(aK)
214196
215197
216-func aV (aU) = addressFromStringValue(aU[aM])
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])
217221
218222
219-func aW (aU) = addressFromStringValue(aU[aI])
223+func aY (aX) = addressFromStringValue(aX[aP])
220224
221225
222-func aX (aU) = addressFromStringValue(aU[aR])
226+func aZ (aX) = addressFromStringValue(aX[aL])
223227
224228
225-func aY () = {
226- let aZ = getString(T())
227- if ($isInstanceOf(aZ, "String"))
229+func ba (aX) = addressFromStringValue(aX[aU])
230+
231+
232+func bb () = {
233+ let bc = getString(U())
234+ if ($isInstanceOf(bc, "String"))
228235 then {
229- let ba = aZ
230- if ((size(ba) == 0))
236+ let bd = bc
237+ if ((size(bd) == 0))
231238 then nil
232- else split(ba, j)
239+ else split(bd, k)
233240 }
234241 else nil
235242 }
236243
237244
238-func bb () = {
239- let aZ = getString(O())
240- if ($isInstanceOf(aZ, "String"))
245+func be () = {
246+ let bc = getString(P())
247+ if ($isInstanceOf(bc, "String"))
241248 then {
242- let ba = aZ
243- fromBase58String(ba)
249+ let bd = bc
250+ fromBase58String(bd)
244251 }
245- else if ($isInstanceOf(aZ, "Unit"))
252+ else if ($isInstanceOf(bc, "Unit"))
246253 then unit
247254 else throw("Match error")
248255 }
249256
250257
251-func bc () = {
252- let aZ = getString(P())
253- if ($isInstanceOf(aZ, "String"))
258+func bf () = {
259+ let bc = getString(Q())
260+ if ($isInstanceOf(bc, "String"))
254261 then {
255- let ba = aZ
256- fromBase58String(ba)
262+ let bd = bc
263+ fromBase58String(bd)
257264 }
258- else if ($isInstanceOf(aZ, "Unit"))
265+ else if ($isInstanceOf(bc, "Unit"))
259266 then unit
260267 else throw("Match error")
261268 }
262269
263270
264-let bd = throw("Permission denied")
271+let bg = throw("Permission denied")
265272
266-func be (bf) = if ((bf.caller == this))
273+func bh (bi) = if ((bi.caller == this))
267274 then true
268- else bd
275+ else bg
269276
270277
271-func bg (bf) = {
272- let aZ = bb()
273- if ($isInstanceOf(aZ, "ByteVector"))
278+func bj (bi) = {
279+ let bc = be()
280+ if ($isInstanceOf(bc, "ByteVector"))
274281 then {
275- let bh = aZ
276- if ((bf.callerPublicKey == bh))
282+ let bk = bc
283+ if ((bi.callerPublicKey == bk))
277284 then true
278- else bd
285+ else bg
279286 }
280- else if ($isInstanceOf(aZ, "Unit"))
281- then be(bf)
287+ else if ($isInstanceOf(bc, "Unit"))
288+ then bh(bi)
282289 else throw("Match error")
283290 }
284291
285292
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)
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)
287294
288295
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)
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)
290297
291298
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)
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)
293300
294301
295-func bG (bH,bI) = makeString(["%d%d", toString(bH), toString(bI)], j)
302+func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
296303
297304
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)
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)
303310 }
304311
305312
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))
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))
310317 then {
311- let bR = (bP + bN)
312- $Tuple3(bR, [IntegerEntry(W(), bR), IntegerEntry(ad(bM), bR), StringEntry(ab(bR), bM)], true)
318+ let bU = (bS + bQ)
319+ $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
313320 }
314- else $Tuple3(bO, nil, false)
315- bQ
321+ else $Tuple3(bR, nil, false)
322+ bT
316323 }
317324
318325
319-func bS (bf) = {
320- let bT = split(valueOrElse(getString(Q()), k), j)
321- if (containsElement(bT, toBase58String(bf.callerPublicKey)))
326+func bV (bi) = {
327+ let bW = split(valueOrElse(getString(R()), l), k)
328+ if (containsElement(bW, toBase58String(bi.callerPublicKey)))
322329 then true
323330 else {
324- let bU = bg(bf)
325- if ((bU == bU))
331+ let bX = bj(bi)
332+ if ((bX == bX))
326333 then true
327334 else throw("Strict value is not equal to itself.")
328335 }
329336 }
330337
331338
332-func bV (aF,bW,bX) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bW), bX))
339+func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
333340
334341
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)]
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)]
340347 else throw("Strict value is not equal to itself.")
341348 }
342349
343350
344351
345-@Callable(bf)
346-func constructorV2 (cd) = {
347- let cc = bg(bf)
348- if ((cc == cc))
352+@Callable(bi)
353+func constructorV2 (cg) = {
354+ let cf = bj(bi)
355+ if ((cf == cf))
349356 then {
350- let ce = addressFromPublicKey(fromBase58String(cd))
351- if ((ce == ce))
352- then [StringEntry(L(), cd)]
357+ let ch = addressFromPublicKey(fromBase58String(cg))
358+ if ((ch == ch))
359+ then [StringEntry(M(), cg)]
353360 else throw("Strict value is not equal to itself.")
354361 }
355362 else throw("Strict value is not equal to itself.")
357364
358365
359366
360-@Callable(bf)
361-func constructorV3 (bq,br,bs,bt) = {
362- let cc = bg(bf)
363- if ((cc == cc))
367+@Callable(bi)
368+func constructorV3 (bt,bu,bv,bw) = {
369+ let cf = bj(bi)
370+ if ((cf == cf))
364371 then {
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))]
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))]
367374 }
368375 else throw("Strict value is not equal to itself.")
369376 }
370377
371378
372379
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))]
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))]
378385 else throw("Strict value is not equal to itself.")
379386 }
380387
381388
382389
383-@Callable(bf)
384-func constructorV5 (ch) = {
385- let cc = bg(bf)
386- if ((cc == cc))
387- then [StringEntry(R(), ch)]
390+@Callable(bi)
391+func constructorV5 (ck) = {
392+ let cf = bj(bi)
393+ if ((cf == cf))
394+ then [StringEntry(S(), ck)]
388395 else throw("Strict value is not equal to itself.")
389396 }
390397
391398
392399
393-@Callable(bf)
394-func constructorV6 (ci,cj) = {
395- let ck = [bg(bf), if ((addressFromString(ci) != unit))
400+@Callable(bi)
401+func constructorV6 (cl,cm) = {
402+ let cn = [bj(bi), if ((addressFromString(cl) != unit))
396403 then true
397404 else "invalid voting emission contract address"]
398- if ((ck == ck))
399- then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
405+ if ((cn == cn))
406+ then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
400407 else throw("Strict value is not equal to itself.")
401408 }
402409
403410
404411
405-@Callable(bf)
406-func setManager (cl) = {
407- let cc = bg(bf)
408- if ((cc == cc))
412+@Callable(bi)
413+func setManager (co) = {
414+ let cf = bj(bi)
415+ if ((cf == cf))
409416 then {
410- let cm = fromBase58String(cl)
411- if ((cm == cm))
412- then [StringEntry(P(), cl)]
417+ let cp = fromBase58String(co)
418+ if ((cp == cp))
419+ then [StringEntry(Q(), co)]
413420 else throw("Strict value is not equal to itself.")
414421 }
415422 else throw("Strict value is not equal to itself.")
417424
418425
419426
420-@Callable(bf)
427+@Callable(bi)
421428 func confirmManager () = {
422- let cn = bc()
423- let co = if (isDefined(cn))
429+ let cq = bf()
430+ let cr = if (isDefined(cq))
424431 then true
425432 else throw("No pending manager")
426- if ((co == co))
433+ if ((cr == cr))
427434 then {
428- let cp = if ((bf.callerPublicKey == value(cn)))
435+ let cs = if ((bi.callerPublicKey == value(cq)))
429436 then true
430437 else throw("You are not pending manager")
431- if ((cp == cp))
432- then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
438+ if ((cs == cs))
439+ then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
433440 else throw("Strict value is not equal to itself.")
434441 }
435442 else throw("Strict value is not equal to itself.")
437444
438445
439446
440-@Callable(bf)
441-func setAdmins (cq) = {
442- let cc = bg(bf)
443- if ((cc == cc))
444- then [StringEntry(Q(), makeString(cq, j))]
447+@Callable(bi)
448+func setAdmins (ct) = {
449+ let cf = bj(bi)
450+ if ((cf == cf))
451+ then [StringEntry(R(), makeString(ct, k))]
445452 else throw("Strict value is not equal to itself.")
446453 }
447454
448455
449456
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."))
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."))
456463 else {
457- let cv = bL(by, 1)
458- let cw = cv._1
459- let cx = bL(bz, if (cv._3)
464+ let cy = bO(bB, 1)
465+ let cz = cy._1
466+ let cA = bO(bC, if (cy._3)
460467 then 2
461468 else 1)
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."))
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."))
468475 else {
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"))
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"))
482489 then throw("Pool initialisation error happened.")
483490 else {
484- let ch = addressFromStringValue(aE(R()))
485- let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486- if ((cI == cI))
491+ let ck = addressFromStringValue(aF(S()))
492+ let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493+ if ((cL == cL))
487494 then {
488- let cJ = invoke(ch, "addLabel", [cG, g], nil)
489- if ((cJ == cJ))
495+ let cM = invoke(ck, "addLabel", [cJ, g], nil)
496+ if ((cM == cM))
490497 then {
491- let cK = invoke(ch, "setLogo", [cG, cu], nil)
492- if ((cK == cK))
498+ let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499+ if ((cN == cN))
493500 then {
494- let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495- if ((cL == cL))
501+ let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502+ if ((cO == cO))
496503 then {
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)
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)
500507 else throw("Strict value is not equal to itself.")
501508 }
502509 else throw("Strict value is not equal to itself.")
515522
516523
517524
518-@Callable(bf)
519-func managePool (Y,cN) = {
520- let cc = bg(bf)
521- if ((cc == cc))
525+@Callable(bi)
526+func managePool (Z,cQ) = {
527+ let cf = bj(bi)
528+ if ((cf == cf))
522529 then {
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))]
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))]
535542 }
536543 else throw("Strict value is not equal to itself.")
537544 }
538545
539546
540547
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))
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))
550557 then nil
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")
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")
554561 }
555562
556563
557564
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))
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))
567574 then throw("Invalid asset passed.")
568- else if ((cU != cW))
575+ else if ((cX != cZ))
569576 then throw("Invalid amount passed.")
570577 else {
571- let cT = fromBase58String(cY)
572- $Tuple2([Burn(cT, cU)], "success")
578+ let cW = fromBase58String(db)
579+ $Tuple2([Burn(cW, cX)], "success")
573580 }
574581 }
575582
576583
577584
578-@Callable(bf)
579-func modifyWeight (bx,cZ) = {
580- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
585+@Callable(bi)
586+func modifyWeight (bA,dc) = {
587+ let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
581588 then true
582- else bg(bf)
583- if ((cc == cc))
589+ else bj(bi)
590+ if ((cf == cf))
584591 then {
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))
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))
595602 then {
596- let df = if ((dc == 0))
603+ let di = if ((df == 0))
597604 then nil
598- else [IntegerEntry(db, 0)]
599- let dg = Z(at, 0)
600- let dh = getInteger(dg)
601- let di = if ((dh == unit))
605+ else [IntegerEntry(de, 0)]
606+ let dj = aa(au, 0)
607+ let dk = getInteger(dj)
608+ let dl = if ((dk == unit))
602609 then nil
603- else [DeleteEntry(dg)]
604- (([IntegerEntry(da, dd)] ++ df) ++ di)
610+ else [DeleteEntry(dj)]
611+ (([IntegerEntry(dd, dg)] ++ di) ++ dl)
605612 }
606613 else throw("Strict value is not equal to itself.")
607614 }
610617
611618
612619
613-@Callable(bf)
614-func modifyWeights (dj,dk,dl,dm) = {
615- let cc = bg(bf)
616- if ((cc == cc))
620+@Callable(bi)
621+func modifyWeights (dm,dn,do,dp) = {
622+ let cf = bj(bi)
623+ if ((cf == cf))
617624 then {
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)))
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)))
636643 else {
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))
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))
643650 then {
644- let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645- if ((dF == dF))
651+ let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652+ if ((dI == dI))
646653 then {
647- let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648- if ((dG == dG))
654+ let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655+ if ((dJ == dJ))
649656 then {
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)]
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)]
653660 else throw("Strict value is not equal to itself.")
654661 }
655662 else throw("Strict value is not equal to itself.")
664671
665672
666673
667-@Callable(bf)
668-func checkWxEmissionPoolLabel (ay,az) = {
669- let dI = {
670- let aZ = getBoolean(ax(ay, az))
671- if ($isInstanceOf(aZ, "Boolean"))
674+@Callable(bi)
675+func checkWxEmissionPoolLabel (az,aA) = {
676+ let dL = {
677+ let bc = getBoolean(ay(az, aA))
678+ if ($isInstanceOf(bc, "Boolean"))
672679 then {
673- let dJ = aZ
674- dJ
680+ let dM = bc
681+ dM
675682 }
676683 else false
677684 }
678- $Tuple2(nil, dI)
685+ $Tuple2(nil, dL)
679686 }
680687
681688
682689
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)
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)
688695 else throw("Strict value is not equal to itself.")
689696 }
690697
691698
692699
693-@Callable(bf)
694-func deleteWxEmissionPoolLabel (ay,az) = {
695- let cc = if (be(bf))
700+@Callable(bi)
701+func deleteWxEmissionPoolLabel (az,aA) = {
702+ let cf = if (bh(bi))
696703 then true
697- else bS(bf)
698- if ((cc == cc))
699- then $Tuple2([DeleteEntry(ax(ay, az))], unit)
704+ else bV(bi)
705+ if ((cf == cf))
706+ then $Tuple2([DeleteEntry(ay(az, aA))], unit)
700707 else throw("Strict value is not equal to itself.")
701708 }
702709
703710
704711
705-@Callable(bf)
706-func onVerificationLoss (dK) = {
707- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
712+@Callable(bi)
713+func onVerificationLoss (dN) = {
714+ let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
708715 then true
709- else bg(bf)
710- if ((cc == cc))
716+ else bj(bi)
717+ if ((cf == cf))
711718 then {
712- let cj = aY()
713- let dL = if ((size(cj) > 0))
719+ let cm = bb()
720+ let dO = if ((size(cm) > 0))
714721 then true
715722 else throw("invalid price assets")
716- if ((dL == dL))
723+ if ((dO == dO))
717724 then {
718- func dM (dN,dO) = {
719- let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720- if ((dP == dP))
725+ func dP (dQ,dR) = {
726+ let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727+ if ((dS == dS))
721728 then unit
722729 else throw("Strict value is not equal to itself.")
723730 }
724731
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])
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])
732739
733- func dX (dV,dW) = if ((dW >= dS))
734- then dV
740+ func ea (dY,dZ) = if ((dZ >= dV))
741+ then dY
735742 else throw("List size exceeds 3")
736743
737- dX(dU(dU(dU(dT, 0), 1), 2), 3)
744+ ea(dX(dX(dX(dW, 0), 1), 2), 3)
738745 }
739- if ((dQ == dQ))
746+ if ((dT == dT))
740747 then $Tuple2(nil, unit)
741748 else throw("Strict value is not equal to itself.")
742749 }
747754
748755
749756
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)
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)
757764 then true
758- else dY)
765+ else eb)
759766 }
760767
761768
762769
763-@Callable(bf)
764-func getInFeeREADONLY (Y) = {
765- let ea = bV(aA(Y), aB(), 0)
766- $Tuple2(nil, ea)
770+@Callable(bi)
771+func getInFeeREADONLY (Z) = {
772+ let ed = bY(aB(Z), aC(), 0)
773+ $Tuple2(nil, ed)
767774 }
768775
769776
770777
771-@Callable(bf)
772-func getOutFeeREADONLY (Y) = {
773- let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774- $Tuple2(nil, ea)
778+@Callable(bi)
779+func getOutFeeREADONLY (Z) = {
780+ let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781+ $Tuple2(nil, ed)
775782 }
776783
777784
778-@Verifier(eb)
779-func ec () = {
780- let ed = {
781- let aZ = bb()
782- if ($isInstanceOf(aZ, "ByteVector"))
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"))
783820 then {
784- let bh = aZ
785- bh
821+ let bk = bc
822+ bk
786823 }
787- else if ($isInstanceOf(aZ, "Unit"))
788- then eb.senderPublicKey
824+ else if ($isInstanceOf(bc, "Unit"))
825+ then en.senderPublicKey
789826 else throw("Match error")
790827 }
791- sigVerify(eb.bodyBytes, eb.proofs[0], ed)
828+ sigVerify(en.bodyBytes, en.proofs[0], ep)
792829 }
793830
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 = ((100 * 1000) * 1000)
20+let i = "WAVES"
2121
22-let j = "__"
22+let j = ((100 * 1000) * 1000)
2323
24-let k = ""
24+let k = "__"
2525
26-let l = 1
26+let l = ""
2727
28-let m = 2
28+let m = 1
2929
30-let n = 3
30+let n = 2
3131
32-let o = 4
32+let o = 3
3333
34-let p = 1
34+let p = 4
3535
36-let q = 2
36+let q = 1
3737
38-let r = 3
38+let r = 2
3939
40-let s = 1
40+let s = 3
4141
42-let t = 2
42+let t = 1
4343
44-let u = 3
44+let u = 2
4545
46-let v = 4
46+let v = 3
4747
48-let w = 5
48+let w = 4
4949
50-let x = 6
50+let x = 5
5151
52-let y = 7
52+let y = 6
5353
54-let z = 8
54+let z = 7
5555
56-let A = 9
56+let A = 8
5757
58-let B = 10
58+let B = 9
5959
60-let C = 11
60+let C = 10
6161
62-let D = "WX_EMISSION"
62+let D = 11
6363
64-let E = [D]
64+let E = "WX_EMISSION"
6565
66-func F () = "%s__allowedLpScriptHash"
66+let F = [E]
67+
68+func G () = "%s__allowedLpScriptHash"
6769
6870
69-func G () = "%s__allowedLpStableScriptHash"
71+func H () = "%s__allowedLpStableScriptHash"
7072
7173
72-func H () = "%s__allowedLpStableAddonScriptHash"
74+func I () = "%s__allowedLpStableAddonScriptHash"
7375
7476
75-func I () = "%s__factoryConfig"
77+func J () = "%s__factoryConfig"
7678
7779
78-func J () = "%s__lpTokensList"
80+func K () = "%s__lpTokensList"
7981
8082
81-func K () = "%s%s__pool__scriptHash"
83+func L () = "%s%s__pool__scriptHash"
8284
8385
84-func L () = "%s%s__matcher__publicKey"
86+func M () = "%s%s__matcher__publicKey"
8587
8688
87-func M () = "%s__legacyFactoryContract"
89+func N () = "%s__legacyFactoryContract"
8890
8991
90-func N () = "%s__legacyPools"
92+func O () = "%s__legacyPools"
9193
9294
93-func O () = "%s__managerPublicKey"
95+func P () = "%s__managerPublicKey"
9496
9597
96-func P () = "%s__pendingManagerPublicKey"
98+func Q () = "%s__pendingManagerPublicKey"
9799
98100
99-func Q () = "%s__adminPubKeys"
101+func R () = "%s__adminPubKeys"
100102
101103
102-func R () = "%s__assetsStoreContract"
104+func S () = "%s__assetsStoreContract"
103105
104106
105-func S () = "%s__votingEmissionContract"
107+func T () = "%s__votingEmissionContract"
106108
107109
108-func T () = makeString(["%s", "priceAssets"], j)
110+func U () = makeString(["%s", "priceAssets"], k)
109111
110112
111-func U () = "%s__priceDecimals"
113+func V () = "%s__priceDecimals"
112114
113115
114-func V () = "%s__shutdown"
116+func W () = "%s__shutdown"
115117
116118
117-func W () = "%s__nextInternalAssetId"
119+func X () = "%s__nextInternalAssetId"
118120
119121
120-func X (Y) = ("%s%s__poolWeight__" + Y)
122+func Y (Z) = ("%s%s__poolWeight__" + Z)
121123
122124
123-func Z (Y,aa) = ((("%s%s__poolWeight__" + Y) + "__") + toString(aa))
125+func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
124126
125127
126-func ab (ac) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ac))
128+func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
127129
128130
129-func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
131+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
130132
131133
132-func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
134+func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
133135
134136
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)
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)
140142 }
141143
142144
143-func al () = makeString(["%s", "oneTokenOperationsDisabled"], j)
145+func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
144146
145147
146-func am (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2Pool")
148+func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
147149
148150
149-func ao (ap,aq) = (((("%d%d%s%s__" + ap) + "__") + aq) + "__mappings__PoolAssets2LpAsset")
151+func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
150152
151153
152-func ar (Y) = ("%s%s__spread__" + Y)
154+func as (Z) = ("%s%s__spread__" + Z)
153155
154156
155-func as (at) = (("%s%s%s__" + at) + "__mappings__poolContract2PoolAssets")
157+func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
156158
157159
158-func au (ap,aq) = (((("%d%d%s%s__" + toString(ap)) + "__") + toString(aq)) + "__mappings__poolAssets2PoolContract")
160+func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
159161
160162
161-func av (at) = (("%s%s%s__" + at) + "__mappings__poolContract2LpAsset")
163+func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
162164
163165
164-func aw (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2PoolContract")
166+func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
165167
166168
167-func ax (ay,az) = ((("%s%s%s__wxEmission__" + ay) + "__") + az)
169+func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
168170
169171
170-func aA (Y) = ("%s%s__inFee__" + Y)
172+func aB (Z) = ("%s%s__inFee__" + Z)
171173
172174
173-func aB () = "%s__inFeeDefault"
175+func aC () = "%s__inFeeDefault"
174176
175177
176-func aC (Y) = ("%s%s__outFee__" + Y)
178+func aD (Z) = ("%s%s__outFee__" + Z)
177179
178180
179-func aD () = "%s__outFeeDefault"
181+func aE () = "%s__outFeeDefault"
180182
181183
182-func aE (aF) = valueOrErrorMessage(getString(this, aF), ("No data for this.key=" + aF))
184+func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
183185
184186
185-func aG (aF) = valueOrErrorMessage(getBoolean(this, aF), ("No data for this.key=" + aF))
187+func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
186188
187189
188-func aH (aF) = valueOrErrorMessage(getInteger(this, aF), ("No data for this.key=" + aF))
190+func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
189191
190192
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])
193+func aJ (aK) = if ((aK == i))
194+ then unit
195+ else fromBase58String(aK)
214196
215197
216-func aV (aU) = addressFromStringValue(aU[aM])
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])
217221
218222
219-func aW (aU) = addressFromStringValue(aU[aI])
223+func aY (aX) = addressFromStringValue(aX[aP])
220224
221225
222-func aX (aU) = addressFromStringValue(aU[aR])
226+func aZ (aX) = addressFromStringValue(aX[aL])
223227
224228
225-func aY () = {
226- let aZ = getString(T())
227- if ($isInstanceOf(aZ, "String"))
229+func ba (aX) = addressFromStringValue(aX[aU])
230+
231+
232+func bb () = {
233+ let bc = getString(U())
234+ if ($isInstanceOf(bc, "String"))
228235 then {
229- let ba = aZ
230- if ((size(ba) == 0))
236+ let bd = bc
237+ if ((size(bd) == 0))
231238 then nil
232- else split(ba, j)
239+ else split(bd, k)
233240 }
234241 else nil
235242 }
236243
237244
238-func bb () = {
239- let aZ = getString(O())
240- if ($isInstanceOf(aZ, "String"))
245+func be () = {
246+ let bc = getString(P())
247+ if ($isInstanceOf(bc, "String"))
241248 then {
242- let ba = aZ
243- fromBase58String(ba)
249+ let bd = bc
250+ fromBase58String(bd)
244251 }
245- else if ($isInstanceOf(aZ, "Unit"))
252+ else if ($isInstanceOf(bc, "Unit"))
246253 then unit
247254 else throw("Match error")
248255 }
249256
250257
251-func bc () = {
252- let aZ = getString(P())
253- if ($isInstanceOf(aZ, "String"))
258+func bf () = {
259+ let bc = getString(Q())
260+ if ($isInstanceOf(bc, "String"))
254261 then {
255- let ba = aZ
256- fromBase58String(ba)
262+ let bd = bc
263+ fromBase58String(bd)
257264 }
258- else if ($isInstanceOf(aZ, "Unit"))
265+ else if ($isInstanceOf(bc, "Unit"))
259266 then unit
260267 else throw("Match error")
261268 }
262269
263270
264-let bd = throw("Permission denied")
271+let bg = throw("Permission denied")
265272
266-func be (bf) = if ((bf.caller == this))
273+func bh (bi) = if ((bi.caller == this))
267274 then true
268- else bd
275+ else bg
269276
270277
271-func bg (bf) = {
272- let aZ = bb()
273- if ($isInstanceOf(aZ, "ByteVector"))
278+func bj (bi) = {
279+ let bc = be()
280+ if ($isInstanceOf(bc, "ByteVector"))
274281 then {
275- let bh = aZ
276- if ((bf.callerPublicKey == bh))
282+ let bk = bc
283+ if ((bi.callerPublicKey == bk))
277284 then true
278- else bd
285+ else bg
279286 }
280- else if ($isInstanceOf(aZ, "Unit"))
281- then be(bf)
287+ else if ($isInstanceOf(bc, "Unit"))
288+ then bh(bi)
282289 else throw("Match error")
283290 }
284291
285292
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)
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)
287294
288295
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)
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)
290297
291298
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)
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)
293300
294301
295-func bG (bH,bI) = makeString(["%d%d", toString(bH), toString(bI)], j)
302+func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
296303
297304
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)
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)
303310 }
304311
305312
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))
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))
310317 then {
311- let bR = (bP + bN)
312- $Tuple3(bR, [IntegerEntry(W(), bR), IntegerEntry(ad(bM), bR), StringEntry(ab(bR), bM)], true)
318+ let bU = (bS + bQ)
319+ $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
313320 }
314- else $Tuple3(bO, nil, false)
315- bQ
321+ else $Tuple3(bR, nil, false)
322+ bT
316323 }
317324
318325
319-func bS (bf) = {
320- let bT = split(valueOrElse(getString(Q()), k), j)
321- if (containsElement(bT, toBase58String(bf.callerPublicKey)))
326+func bV (bi) = {
327+ let bW = split(valueOrElse(getString(R()), l), k)
328+ if (containsElement(bW, toBase58String(bi.callerPublicKey)))
322329 then true
323330 else {
324- let bU = bg(bf)
325- if ((bU == bU))
331+ let bX = bj(bi)
332+ if ((bX == bX))
326333 then true
327334 else throw("Strict value is not equal to itself.")
328335 }
329336 }
330337
331338
332-func bV (aF,bW,bX) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bW), bX))
339+func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
333340
334341
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)]
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)]
340347 else throw("Strict value is not equal to itself.")
341348 }
342349
343350
344351
345-@Callable(bf)
346-func constructorV2 (cd) = {
347- let cc = bg(bf)
348- if ((cc == cc))
352+@Callable(bi)
353+func constructorV2 (cg) = {
354+ let cf = bj(bi)
355+ if ((cf == cf))
349356 then {
350- let ce = addressFromPublicKey(fromBase58String(cd))
351- if ((ce == ce))
352- then [StringEntry(L(), cd)]
357+ let ch = addressFromPublicKey(fromBase58String(cg))
358+ if ((ch == ch))
359+ then [StringEntry(M(), cg)]
353360 else throw("Strict value is not equal to itself.")
354361 }
355362 else throw("Strict value is not equal to itself.")
356363 }
357364
358365
359366
360-@Callable(bf)
361-func constructorV3 (bq,br,bs,bt) = {
362- let cc = bg(bf)
363- if ((cc == cc))
367+@Callable(bi)
368+func constructorV3 (bt,bu,bv,bw) = {
369+ let cf = bj(bi)
370+ if ((cf == cf))
364371 then {
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))]
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))]
367374 }
368375 else throw("Strict value is not equal to itself.")
369376 }
370377
371378
372379
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))]
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))]
378385 else throw("Strict value is not equal to itself.")
379386 }
380387
381388
382389
383-@Callable(bf)
384-func constructorV5 (ch) = {
385- let cc = bg(bf)
386- if ((cc == cc))
387- then [StringEntry(R(), ch)]
390+@Callable(bi)
391+func constructorV5 (ck) = {
392+ let cf = bj(bi)
393+ if ((cf == cf))
394+ then [StringEntry(S(), ck)]
388395 else throw("Strict value is not equal to itself.")
389396 }
390397
391398
392399
393-@Callable(bf)
394-func constructorV6 (ci,cj) = {
395- let ck = [bg(bf), if ((addressFromString(ci) != unit))
400+@Callable(bi)
401+func constructorV6 (cl,cm) = {
402+ let cn = [bj(bi), if ((addressFromString(cl) != unit))
396403 then true
397404 else "invalid voting emission contract address"]
398- if ((ck == ck))
399- then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
405+ if ((cn == cn))
406+ then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
400407 else throw("Strict value is not equal to itself.")
401408 }
402409
403410
404411
405-@Callable(bf)
406-func setManager (cl) = {
407- let cc = bg(bf)
408- if ((cc == cc))
412+@Callable(bi)
413+func setManager (co) = {
414+ let cf = bj(bi)
415+ if ((cf == cf))
409416 then {
410- let cm = fromBase58String(cl)
411- if ((cm == cm))
412- then [StringEntry(P(), cl)]
417+ let cp = fromBase58String(co)
418+ if ((cp == cp))
419+ then [StringEntry(Q(), co)]
413420 else throw("Strict value is not equal to itself.")
414421 }
415422 else throw("Strict value is not equal to itself.")
416423 }
417424
418425
419426
420-@Callable(bf)
427+@Callable(bi)
421428 func confirmManager () = {
422- let cn = bc()
423- let co = if (isDefined(cn))
429+ let cq = bf()
430+ let cr = if (isDefined(cq))
424431 then true
425432 else throw("No pending manager")
426- if ((co == co))
433+ if ((cr == cr))
427434 then {
428- let cp = if ((bf.callerPublicKey == value(cn)))
435+ let cs = if ((bi.callerPublicKey == value(cq)))
429436 then true
430437 else throw("You are not pending manager")
431- if ((cp == cp))
432- then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
438+ if ((cs == cs))
439+ then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
433440 else throw("Strict value is not equal to itself.")
434441 }
435442 else throw("Strict value is not equal to itself.")
436443 }
437444
438445
439446
440-@Callable(bf)
441-func setAdmins (cq) = {
442- let cc = bg(bf)
443- if ((cc == cc))
444- then [StringEntry(Q(), makeString(cq, j))]
447+@Callable(bi)
448+func setAdmins (ct) = {
449+ let cf = bj(bi)
450+ if ((cf == cf))
451+ then [StringEntry(R(), makeString(ct, k))]
445452 else throw("Strict value is not equal to itself.")
446453 }
447454
448455
449456
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."))
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."))
456463 else {
457- let cv = bL(by, 1)
458- let cw = cv._1
459- let cx = bL(bz, if (cv._3)
464+ let cy = bO(bB, 1)
465+ let cz = cy._1
466+ let cA = bO(bC, if (cy._3)
460467 then 2
461468 else 1)
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."))
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."))
468475 else {
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"))
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"))
482489 then throw("Pool initialisation error happened.")
483490 else {
484- let ch = addressFromStringValue(aE(R()))
485- let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486- if ((cI == cI))
491+ let ck = addressFromStringValue(aF(S()))
492+ let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493+ if ((cL == cL))
487494 then {
488- let cJ = invoke(ch, "addLabel", [cG, g], nil)
489- if ((cJ == cJ))
495+ let cM = invoke(ck, "addLabel", [cJ, g], nil)
496+ if ((cM == cM))
490497 then {
491- let cK = invoke(ch, "setLogo", [cG, cu], nil)
492- if ((cK == cK))
498+ let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499+ if ((cN == cN))
493500 then {
494- let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495- if ((cL == cL))
501+ let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502+ if ((cO == cO))
496503 then {
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)
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)
500507 else throw("Strict value is not equal to itself.")
501508 }
502509 else throw("Strict value is not equal to itself.")
503510 }
504511 else throw("Strict value is not equal to itself.")
505512 }
506513 else throw("Strict value is not equal to itself.")
507514 }
508515 else throw("Strict value is not equal to itself.")
509516 }
510517 else throw("Strict value is not equal to itself.")
511518 }
512519 }
513520 else throw("Strict value is not equal to itself.")
514521 }
515522
516523
517524
518-@Callable(bf)
519-func managePool (Y,cN) = {
520- let cc = bg(bf)
521- if ((cc == cc))
525+@Callable(bi)
526+func managePool (Z,cQ) = {
527+ let cf = bj(bi)
528+ if ((cf == cf))
522529 then {
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))]
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))]
535542 }
536543 else throw("Strict value is not equal to itself.")
537544 }
538545
539546
540547
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))
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))
550557 then nil
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")
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")
554561 }
555562
556563
557564
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))
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))
567574 then throw("Invalid asset passed.")
568- else if ((cU != cW))
575+ else if ((cX != cZ))
569576 then throw("Invalid amount passed.")
570577 else {
571- let cT = fromBase58String(cY)
572- $Tuple2([Burn(cT, cU)], "success")
578+ let cW = fromBase58String(db)
579+ $Tuple2([Burn(cW, cX)], "success")
573580 }
574581 }
575582
576583
577584
578-@Callable(bf)
579-func modifyWeight (bx,cZ) = {
580- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
585+@Callable(bi)
586+func modifyWeight (bA,dc) = {
587+ let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
581588 then true
582- else bg(bf)
583- if ((cc == cc))
589+ else bj(bi)
590+ if ((cf == cf))
584591 then {
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))
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))
595602 then {
596- let df = if ((dc == 0))
603+ let di = if ((df == 0))
597604 then nil
598- else [IntegerEntry(db, 0)]
599- let dg = Z(at, 0)
600- let dh = getInteger(dg)
601- let di = if ((dh == unit))
605+ else [IntegerEntry(de, 0)]
606+ let dj = aa(au, 0)
607+ let dk = getInteger(dj)
608+ let dl = if ((dk == unit))
602609 then nil
603- else [DeleteEntry(dg)]
604- (([IntegerEntry(da, dd)] ++ df) ++ di)
610+ else [DeleteEntry(dj)]
611+ (([IntegerEntry(dd, dg)] ++ di) ++ dl)
605612 }
606613 else throw("Strict value is not equal to itself.")
607614 }
608615 else throw("Strict value is not equal to itself.")
609616 }
610617
611618
612619
613-@Callable(bf)
614-func modifyWeights (dj,dk,dl,dm) = {
615- let cc = bg(bf)
616- if ((cc == cc))
620+@Callable(bi)
621+func modifyWeights (dm,dn,do,dp) = {
622+ let cf = bj(bi)
623+ if ((cf == cf))
617624 then {
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)))
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)))
636643 else {
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))
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))
643650 then {
644- let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645- if ((dF == dF))
651+ let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652+ if ((dI == dI))
646653 then {
647- let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648- if ((dG == dG))
654+ let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655+ if ((dJ == dJ))
649656 then {
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)]
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)]
653660 else throw("Strict value is not equal to itself.")
654661 }
655662 else throw("Strict value is not equal to itself.")
656663 }
657664 else throw("Strict value is not equal to itself.")
658665 }
659666 else throw("Strict value is not equal to itself.")
660667 }
661668 }
662669 else throw("Strict value is not equal to itself.")
663670 }
664671
665672
666673
667-@Callable(bf)
668-func checkWxEmissionPoolLabel (ay,az) = {
669- let dI = {
670- let aZ = getBoolean(ax(ay, az))
671- if ($isInstanceOf(aZ, "Boolean"))
674+@Callable(bi)
675+func checkWxEmissionPoolLabel (az,aA) = {
676+ let dL = {
677+ let bc = getBoolean(ay(az, aA))
678+ if ($isInstanceOf(bc, "Boolean"))
672679 then {
673- let dJ = aZ
674- dJ
680+ let dM = bc
681+ dM
675682 }
676683 else false
677684 }
678- $Tuple2(nil, dI)
685+ $Tuple2(nil, dL)
679686 }
680687
681688
682689
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)
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)
688695 else throw("Strict value is not equal to itself.")
689696 }
690697
691698
692699
693-@Callable(bf)
694-func deleteWxEmissionPoolLabel (ay,az) = {
695- let cc = if (be(bf))
700+@Callable(bi)
701+func deleteWxEmissionPoolLabel (az,aA) = {
702+ let cf = if (bh(bi))
696703 then true
697- else bS(bf)
698- if ((cc == cc))
699- then $Tuple2([DeleteEntry(ax(ay, az))], unit)
704+ else bV(bi)
705+ if ((cf == cf))
706+ then $Tuple2([DeleteEntry(ay(az, aA))], unit)
700707 else throw("Strict value is not equal to itself.")
701708 }
702709
703710
704711
705-@Callable(bf)
706-func onVerificationLoss (dK) = {
707- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
712+@Callable(bi)
713+func onVerificationLoss (dN) = {
714+ let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
708715 then true
709- else bg(bf)
710- if ((cc == cc))
716+ else bj(bi)
717+ if ((cf == cf))
711718 then {
712- let cj = aY()
713- let dL = if ((size(cj) > 0))
719+ let cm = bb()
720+ let dO = if ((size(cm) > 0))
714721 then true
715722 else throw("invalid price assets")
716- if ((dL == dL))
723+ if ((dO == dO))
717724 then {
718- func dM (dN,dO) = {
719- let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720- if ((dP == dP))
725+ func dP (dQ,dR) = {
726+ let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727+ if ((dS == dS))
721728 then unit
722729 else throw("Strict value is not equal to itself.")
723730 }
724731
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])
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])
732739
733- func dX (dV,dW) = if ((dW >= dS))
734- then dV
740+ func ea (dY,dZ) = if ((dZ >= dV))
741+ then dY
735742 else throw("List size exceeds 3")
736743
737- dX(dU(dU(dU(dT, 0), 1), 2), 3)
744+ ea(dX(dX(dX(dW, 0), 1), 2), 3)
738745 }
739- if ((dQ == dQ))
746+ if ((dT == dT))
740747 then $Tuple2(nil, unit)
741748 else throw("Strict value is not equal to itself.")
742749 }
743750 else throw("Strict value is not equal to itself.")
744751 }
745752 else throw("Strict value is not equal to itself.")
746753 }
747754
748755
749756
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)
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)
757764 then true
758- else dY)
765+ else eb)
759766 }
760767
761768
762769
763-@Callable(bf)
764-func getInFeeREADONLY (Y) = {
765- let ea = bV(aA(Y), aB(), 0)
766- $Tuple2(nil, ea)
770+@Callable(bi)
771+func getInFeeREADONLY (Z) = {
772+ let ed = bY(aB(Z), aC(), 0)
773+ $Tuple2(nil, ed)
767774 }
768775
769776
770777
771-@Callable(bf)
772-func getOutFeeREADONLY (Y) = {
773- let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774- $Tuple2(nil, ea)
778+@Callable(bi)
779+func getOutFeeREADONLY (Z) = {
780+ let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781+ $Tuple2(nil, ed)
775782 }
776783
777784
778-@Verifier(eb)
779-func ec () = {
780- let ed = {
781- let aZ = bb()
782- if ($isInstanceOf(aZ, "ByteVector"))
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"))
783820 then {
784- let bh = aZ
785- bh
821+ let bk = bc
822+ bk
786823 }
787- else if ($isInstanceOf(aZ, "Unit"))
788- then eb.senderPublicKey
824+ else if ($isInstanceOf(bc, "Unit"))
825+ then en.senderPublicKey
789826 else throw("Match error")
790827 }
791- sigVerify(eb.bodyBytes, eb.proofs[0], ed)
828+ sigVerify(en.bodyBytes, en.proofs[0], ep)
792829 }
793830

github/deemru/w8io/169f3d6 
375.02 ms