tx · 8RjQetQA4cy8oj9WGAeKET421UoZpRuvWX8UfZx7NUtb

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03000000 Waves

2022.12.29 09:56 [2381231] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "8RjQetQA4cy8oj9WGAeKET421UoZpRuvWX8UfZx7NUtb", "fee": 3000000, "feeAssetId": null, "timestamp": 1672297010962, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "4mjHvwKJ39hPcmugLNZrDbf5MQirnnfiAzuh2u2ZMSSP3o2QQLCvP8M1kjuoX2LunorquLoCmYpD1vQkSDNr4pAx" ], "script": "base64:AAIFAAAAAAAAE0gIAhIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM2NTgzNzIwIiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbENvbmZpZyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdl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", "chainId": 84, "height": 2381231, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8sLTTQfNidMCCkRK8U6ms4jJ6XFVT9wB85uCf4KYebG4 Next: 8W92edKYgcZGMDSk79ftMft89WSuSERcCtTuhArTR6w2 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
778785
779-@Callable(bf)
780-func getPoolStatusREADONLY (Y) = {
781- let bK = split(aE(as(Y)), j)
782- let ag = bK[1]
783- let ah = bK[2]
784- let eb = split(aE(af(ag, ah)), j)
785- $Tuple2(nil, parseIntValue(eb[t]))
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)
786801 }
787802
788803
789-@Verifier(ec)
790-func ed () = {
791- let ee = {
792- let aZ = bb()
793- if ($isInstanceOf(aZ, "ByteVector"))
804+@Verifier(em)
805+func en () = {
806+ let eo = {
807+ let bc = be()
808+ if ($isInstanceOf(bc, "ByteVector"))
794809 then {
795- let bh = aZ
796- bh
810+ let bk = bc
811+ bk
797812 }
798- else if ($isInstanceOf(aZ, "Unit"))
799- then ec.senderPublicKey
813+ else if ($isInstanceOf(bc, "Unit"))
814+ then em.senderPublicKey
800815 else throw("Match error")
801816 }
802- sigVerify(ec.bodyBytes, ec.proofs[0], ee)
817+ sigVerify(em.bodyBytes, em.proofs[0], eo)
803818 }
804819
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
778785
779-@Callable(bf)
780-func getPoolStatusREADONLY (Y) = {
781- let bK = split(aE(as(Y)), j)
782- let ag = bK[1]
783- let ah = bK[2]
784- let eb = split(aE(af(ag, ah)), j)
785- $Tuple2(nil, parseIntValue(eb[t]))
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)
786801 }
787802
788803
789-@Verifier(ec)
790-func ed () = {
791- let ee = {
792- let aZ = bb()
793- if ($isInstanceOf(aZ, "ByteVector"))
804+@Verifier(em)
805+func en () = {
806+ let eo = {
807+ let bc = be()
808+ if ($isInstanceOf(bc, "ByteVector"))
794809 then {
795- let bh = aZ
796- bh
810+ let bk = bc
811+ bk
797812 }
798- else if ($isInstanceOf(aZ, "Unit"))
799- then ec.senderPublicKey
813+ else if ($isInstanceOf(bc, "Unit"))
814+ then em.senderPublicKey
800815 else throw("Match error")
801816 }
802- sigVerify(ec.bodyBytes, ec.proofs[0], ee)
817+ sigVerify(em.bodyBytes, em.proofs[0], eo)
803818 }
804819

github/deemru/w8io/169f3d6 
362.42 ms