tx · CQGAaEsjB8TFkkesFjuu1z4EUgaXyPpgyJmW2MexXFtB

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02900000 Waves

2022.12.27 12:18 [2378492] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "CQGAaEsjB8TFkkesFjuu1z4EUgaXyPpgyJmW2MexXFtB", "fee": 2900000, "feeAssetId": null, "timestamp": 1672132704186, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "3gcjsPvK7otEELPRgQP6RbWyFHthhk79cJTje8MNVHGBsLrL3uuvoLvFcCXThttnxKYtxeyuSec6JTR6bXUEaQBx" ], "script": "base64:AAIFAAAAAAAAEs4IAhIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSBAoCCAgiBlNDQUxFOCIFTVVMVDgiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIiFrZXlBbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2giEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzY1ODM3MjAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbENvbmZpZyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdlaWdodEJ0YyIRb25Nb2RpZnlXZWlnaHRFdGgiFG9uTW9kaWZ5V2VpZ2h0RXRoQnRjIhZvbk1vZGlmeVdlaWdodFVzZGNVc2R0IgloYXZlTGFiZWwiAWIiB2Fzc2V0SWQiFGNoZWNrUHJpY2VBc3NldHNTaXpl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", "chainId": 84, "height": 2378492, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 21Vi3DZQp74rr6QerjCV9tb7qX1uyV8MvPvRyAi7zxL7 Next: EpY1JQSdippez1HHY59nydr9AGgFZ1xMuz1m4BbEJkLh 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 (aB) = valueOrErrorMessage(getString(this, aB), ("No data for this.key=" + aB))
172+func aB (aC) = valueOrErrorMessage(getString(this, aC), ("No data for this.key=" + aC))
171173
172174
173-func aC (aB) = valueOrErrorMessage(getBoolean(this, aB), ("No data for this.key=" + aB))
175+func aD (aC) = valueOrErrorMessage(getBoolean(this, aC), ("No data for this.key=" + aC))
174176
175177
176-func aD (aB) = valueOrErrorMessage(getInteger(this, aB), ("No data for this.key=" + aB))
178+func aE (aC) = valueOrErrorMessage(getInteger(this, aC), ("No data for this.key=" + aC))
177179
178180
179-let aE = 1
180-
181-let aF = 2
182-
183-let aG = 3
184-
185-let aH = 4
186-
187-let aI = 5
188-
189-let aJ = 6
190-
191-let aK = 7
192-
193-let aL = 8
194-
195-let aM = 9
196-
197-let aN = 10
198-
199-let aO = 11
200-
201-func aP (aQ) = addressFromStringValue(aQ[aF])
181+func aF (aG) = if ((aG == i))
182+ then unit
183+ else fromBase58String(aG)
202184
203185
204-func aR (aQ) = addressFromStringValue(aQ[aI])
186+let aH = 1
187+
188+let aI = 2
189+
190+let aJ = 3
191+
192+let aK = 4
193+
194+let aL = 5
195+
196+let aM = 6
197+
198+let aN = 7
199+
200+let aO = 8
201+
202+let aP = 9
203+
204+let aQ = 10
205+
206+let aR = 11
207+
208+func aS (aT) = addressFromStringValue(aT[aI])
205209
206210
207-func aS (aQ) = addressFromStringValue(aQ[aE])
211+func aU (aT) = addressFromStringValue(aT[aL])
208212
209213
210-func aT (aQ) = addressFromStringValue(aQ[aN])
214+func aV (aT) = addressFromStringValue(aT[aH])
211215
212216
213-func aU () = {
214- let aV = getString(T())
215- if ($isInstanceOf(aV, "String"))
217+func aW (aT) = addressFromStringValue(aT[aQ])
218+
219+
220+func aX () = {
221+ let aY = getString(U())
222+ if ($isInstanceOf(aY, "String"))
216223 then {
217- let aW = aV
218- if ((size(aW) == 0))
224+ let aZ = aY
225+ if ((size(aZ) == 0))
219226 then nil
220- else split(aW, j)
227+ else split(aZ, k)
221228 }
222229 else nil
223230 }
224231
225232
226-func aX () = {
227- let aV = getString(O())
228- if ($isInstanceOf(aV, "String"))
233+func ba () = {
234+ let aY = getString(P())
235+ if ($isInstanceOf(aY, "String"))
229236 then {
230- let aW = aV
231- fromBase58String(aW)
237+ let aZ = aY
238+ fromBase58String(aZ)
232239 }
233- else if ($isInstanceOf(aV, "Unit"))
240+ else if ($isInstanceOf(aY, "Unit"))
234241 then unit
235242 else throw("Match error")
236243 }
237244
238245
239-func aY () = {
240- let aV = getString(P())
241- if ($isInstanceOf(aV, "String"))
246+func bb () = {
247+ let aY = getString(Q())
248+ if ($isInstanceOf(aY, "String"))
242249 then {
243- let aW = aV
244- fromBase58String(aW)
250+ let aZ = aY
251+ fromBase58String(aZ)
245252 }
246- else if ($isInstanceOf(aV, "Unit"))
253+ else if ($isInstanceOf(aY, "Unit"))
247254 then unit
248255 else throw("Match error")
249256 }
250257
251258
252-let aZ = throw("Permission denied")
259+let bc = throw("Permission denied")
253260
254-func ba (bb) = if ((bb.caller == this))
261+func bd (be) = if ((be.caller == this))
255262 then true
256- else aZ
263+ else bc
257264
258265
259-func bc (bb) = {
260- let aV = aX()
261- if ($isInstanceOf(aV, "ByteVector"))
266+func bf (be) = {
267+ let aY = ba()
268+ if ($isInstanceOf(aY, "ByteVector"))
262269 then {
263- let bd = aV
264- if ((bb.callerPublicKey == bd))
270+ let bg = aY
271+ if ((be.callerPublicKey == bg))
265272 then true
266- else aZ
273+ else bc
267274 }
268- else if ($isInstanceOf(aV, "Unit"))
269- then ba(bb)
275+ else if ($isInstanceOf(aY, "Unit"))
276+ then bd(be)
270277 else throw("Match error")
271278 }
272279
273280
274-func be (bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp], j)
281+func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs], k)
275282
276283
277-func bq (bf,bg,bh,bi,bj,bk,bl) = makeString(["%s%s%s%s%s%s", bf, bg, bh, bi, bj, bk, bl], j)
284+func bt (bi,bj,bk,bl,bm,bn,bo) = makeString(["%s%s%s%s%s%s", bi, bj, bk, bl, bm, bn, bo], k)
278285
279286
280-func br (Y,bs,bt,bu,bv,bw,bx,by,bz,bA,bB) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bs, bt, bu, bv, toString(bw), toString(bx), toString(by), toString(bz), toString(bA), bB], j)
287+func bu (Z,bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bv, bw, bx, by, toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), bE], k)
281288
282289
283-func bC (bD,bE) = makeString(["%d%d", toString(bD), toString(bE)], j)
290+func bF (bG,bH) = makeString(["%d%d", toString(bG), toString(bH)], k)
284291
285292
286-func bF (Y) = {
287- let bG = split(aA(as(Y)), j)
288- let ag = bG[1]
289- let ah = bG[2]
290- split(aA(af(ag, ah)), j)
293+func bI (Z) = {
294+ let bJ = split(aB(at(Z)), k)
295+ let ah = bJ[1]
296+ let ai = bJ[2]
297+ split(aB(ag(ah, ai)), k)
291298 }
292299
293300
294-func bH (bI,bJ) = {
295- let bK = valueOrElse(getInteger(this, ad(bI)), 0)
296- let bL = valueOrElse(getInteger(this, W()), 0)
297- let bM = if ((bK == 0))
301+func bK (bL,bM) = {
302+ let bN = valueOrElse(getInteger(this, ae(bL)), 0)
303+ let bO = valueOrElse(getInteger(this, X()), 0)
304+ let bP = if ((bN == 0))
298305 then {
299- let bN = (bL + bJ)
300- $Tuple3(bN, [IntegerEntry(W(), bN), IntegerEntry(ad(bI), bN), StringEntry(ab(bN), bI)], true)
306+ let bQ = (bO + bM)
307+ $Tuple3(bQ, [IntegerEntry(X(), bQ), IntegerEntry(ae(bL), bQ), StringEntry(ac(bQ), bL)], true)
301308 }
302- else $Tuple3(bK, nil, false)
303- bM
309+ else $Tuple3(bN, nil, false)
310+ bP
304311 }
305312
306313
307-func bO (bb) = {
308- let bP = split(valueOrElse(getString(Q()), k), j)
309- if (containsElement(bP, toBase58String(bb.callerPublicKey)))
314+func bR (be) = {
315+ let bS = split(valueOrElse(getString(R()), l), k)
316+ if (containsElement(bS, toBase58String(be.callerPublicKey)))
310317 then true
311318 else {
312- let bQ = bc(bb)
313- if ((bQ == bQ))
319+ let bT = bf(be)
320+ if ((bT == bT))
314321 then true
315322 else throw("Strict value is not equal to itself.")
316323 }
317324 }
318325
319326
320-@Callable(bb)
321-func constructor (bR,bS,bh,bi,bj,bk,bT,bU) = {
322- let bV = bc(bb)
323- if ((bV == bV))
324- then [StringEntry(I(), bq(bR, bS, bh, bi, bj, bk, bT)), IntegerEntry(U(), bU)]
327+@Callable(be)
328+func constructor (bU,bV,bk,bl,bm,bn,bW,bX) = {
329+ let bY = bf(be)
330+ if ((bY == bY))
331+ then [StringEntry(J(), bt(bU, bV, bk, bl, bm, bn, bW)), IntegerEntry(V(), bX)]
325332 else throw("Strict value is not equal to itself.")
326333 }
327334
328335
329336
330-@Callable(bb)
331-func constructorV2 (bW) = {
332- let bV = bc(bb)
333- if ((bV == bV))
337+@Callable(be)
338+func constructorV2 (bZ) = {
339+ let bY = bf(be)
340+ if ((bY == bY))
334341 then {
335- let bX = addressFromPublicKey(fromBase58String(bW))
336- if ((bX == bX))
337- then [StringEntry(L(), bW)]
342+ let ca = addressFromPublicKey(fromBase58String(bZ))
343+ if ((ca == ca))
344+ then [StringEntry(M(), bZ)]
338345 else throw("Strict value is not equal to itself.")
339346 }
340347 else throw("Strict value is not equal to itself.")
342349
343350
344351
345-@Callable(bb)
346-func constructorV3 (bm,bn,bo,bp) = {
347- let bV = bc(bb)
348- if ((bV == bV))
352+@Callable(be)
353+func constructorV3 (bp,bq,br,bs) = {
354+ let bY = bf(be)
355+ if ((bY == bY))
349356 then {
350- let aQ = split(aA(I()), j)
351-[StringEntry(I(), be(aQ[1], aQ[2], aQ[3], aQ[4], aQ[5], aQ[6], aQ[7], bm, bn, bo, bp))]
357+ let aT = split(aB(J()), k)
358+[StringEntry(J(), bh(aT[1], aT[2], aT[3], aT[4], aT[5], aT[6], aT[7], bp, bq, br, bs))]
352359 }
353360 else throw("Strict value is not equal to itself.")
354361 }
355362
356363
357364
358-@Callable(bb)
359-func constructorV4 (bY,bZ) = {
360- let bV = bc(bb)
361- if ((bV == bV))
362- then [StringEntry(M(), bY), StringEntry(N(), makeString(bZ, j))]
365+@Callable(be)
366+func constructorV4 (cb,cc) = {
367+ let bY = bf(be)
368+ if ((bY == bY))
369+ then [StringEntry(N(), cb), StringEntry(O(), makeString(cc, k))]
363370 else throw("Strict value is not equal to itself.")
364371 }
365372
366373
367374
368-@Callable(bb)
369-func constructorV5 (ca) = {
370- let bV = bc(bb)
371- if ((bV == bV))
372- then [StringEntry(R(), ca)]
375+@Callable(be)
376+func constructorV5 (cd) = {
377+ let bY = bf(be)
378+ if ((bY == bY))
379+ then [StringEntry(S(), cd)]
373380 else throw("Strict value is not equal to itself.")
374381 }
375382
376383
377384
378-@Callable(bb)
379-func constructorV6 (cb,cc) = {
380- let cd = [bc(bb), if ((addressFromString(cb) != unit))
385+@Callable(be)
386+func constructorV6 (ce,cf) = {
387+ let cg = [bf(be), if ((addressFromString(ce) != unit))
381388 then true
382389 else "invalid voting emission contract address"]
383- if ((cd == cd))
384- then [StringEntry(S(), cb), StringEntry(T(), makeString(cc, j))]
390+ if ((cg == cg))
391+ then [StringEntry(T(), ce), StringEntry(U(), makeString(cf, k))]
385392 else throw("Strict value is not equal to itself.")
386393 }
387394
388395
389396
390-@Callable(bb)
391-func setManager (ce) = {
392- let bV = bc(bb)
393- if ((bV == bV))
397+@Callable(be)
398+func setManager (ch) = {
399+ let bY = bf(be)
400+ if ((bY == bY))
394401 then {
395- let cf = fromBase58String(ce)
396- if ((cf == cf))
397- then [StringEntry(P(), ce)]
402+ let ci = fromBase58String(ch)
403+ if ((ci == ci))
404+ then [StringEntry(Q(), ch)]
398405 else throw("Strict value is not equal to itself.")
399406 }
400407 else throw("Strict value is not equal to itself.")
402409
403410
404411
405-@Callable(bb)
412+@Callable(be)
406413 func confirmManager () = {
407- let cg = aY()
408- let ch = if (isDefined(cg))
414+ let cj = bb()
415+ let ck = if (isDefined(cj))
409416 then true
410417 else throw("No pending manager")
411- if ((ch == ch))
418+ if ((ck == ck))
412419 then {
413- let ci = if ((bb.callerPublicKey == value(cg)))
420+ let cl = if ((be.callerPublicKey == value(cj)))
414421 then true
415422 else throw("You are not pending manager")
416- if ((ci == ci))
417- then [StringEntry(O(), toBase58String(value(cg))), DeleteEntry(P())]
423+ if ((cl == cl))
424+ then [StringEntry(P(), toBase58String(value(cj))), DeleteEntry(Q())]
418425 else throw("Strict value is not equal to itself.")
419426 }
420427 else throw("Strict value is not equal to itself.")
422429
423430
424431
425-@Callable(bb)
426-func setAdmins (cj) = {
427- let bV = bc(bb)
428- if ((bV == bV))
429- then [StringEntry(Q(), makeString(cj, j))]
432+@Callable(be)
433+func setAdmins (cm) = {
434+ let bY = bf(be)
435+ if ((bY == bY))
436+ then [StringEntry(R(), makeString(cm, k))]
430437 else throw("Strict value is not equal to itself.")
431438 }
432439
433440
434441
435-@Callable(bb)
436-func activateNewPool (Y,bu,bv,ck,cl,cm,bB,cn) = {
437- let bV = bO(bb)
438- if ((bV == bV))
439- then if (isDefined(getString(as(Y))))
440- then throw((("Pool address " + Y) + " already registered."))
442+@Callable(be)
443+func activateNewPool (Z,bx,by,cn,co,cp,bE,cq) = {
444+ let bY = bR(be)
445+ if ((bY == bY))
446+ then if (isDefined(getString(at(Z))))
447+ then throw((("Pool address " + Z) + " already registered."))
441448 else {
442- let co = bH(bu, 1)
443- let cp = co._1
444- let cq = bH(bv, if (co._3)
449+ let cr = bK(bx, 1)
450+ let cs = cr._1
451+ let ct = bK(by, if (cr._3)
445452 then 2
446453 else 1)
447- let cr = cq._1
448- let cs = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
449- let ct = getBinaryValue(K())
450- let cu = getString(this, af(toString(cp), toString(cr)))
451- if (isDefined(cu))
452- then throw((((("Pool " + bu) + "/") + bv) + " has already been activated."))
454+ let cu = ct._1
455+ let cv = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
456+ let cw = getBinaryValue(L())
457+ let cx = getString(this, ag(toString(cs), toString(cu)))
458+ if (isDefined(cx))
459+ then throw((((("Pool " + bx) + "/") + by) + " has already been activated."))
453460 else {
454- let cv = value(getString(this, af(toString(cp), toString(cr))))
455- let cw = if ((bu == "WAVES"))
456- then i
457- else pow(10, 0, value(assetInfo(fromBase58String(bu))).decimals, 0, 0, DOWN)
458- let cx = if ((bv == "WAVES"))
459- then i
460- else pow(10, 0, value(assetInfo(fromBase58String(bv))).decimals, 0, 0, DOWN)
461- let cy = Issue(ck, cl, 1, 8, true)
462- let bt = calculateAssetId(cy)
463- let cz = toBase58String(bt)
464- let cA = invoke(addressFromStringValue(Y), "activate", [bu, bv], nil)
465- if ((cA == cA))
466- then if ((cA != "success"))
461+ let cy = value(getString(this, ag(toString(cs), toString(cu))))
462+ let cz = if ((bx == "WAVES"))
463+ then j
464+ else pow(10, 0, value(assetInfo(fromBase58String(bx))).decimals, 0, 0, DOWN)
465+ let cA = if ((by == "WAVES"))
466+ then j
467+ else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
468+ let cB = Issue(cn, co, 1, 8, true)
469+ let bw = calculateAssetId(cB)
470+ let cC = toBase58String(bw)
471+ let cD = invoke(addressFromStringValue(Z), "activate", [bx, by], nil)
472+ if ((cD == cD))
473+ then if ((cD != "success"))
467474 then throw("Pool initialisation error happened.")
468475 else {
469- let ca = addressFromStringValue(aA(R()))
470- let cB = invoke(ca, "createOrUpdate", [cz, ck, false], nil)
471- if ((cB == cB))
476+ let cd = addressFromStringValue(aB(S()))
477+ let cE = invoke(cd, "createOrUpdate", [cC, cn, false], nil)
478+ if ((cE == cE))
472479 then {
473- let cC = invoke(ca, "addLabel", [cz, g], nil)
474- if ((cC == cC))
480+ let cF = invoke(cd, "addLabel", [cC, g], nil)
481+ if ((cF == cF))
475482 then {
476- let cD = invoke(ca, "setLogo", [cz, cn], nil)
477- if ((cD == cD))
483+ let cG = invoke(cd, "setLogo", [cC, cq], nil)
484+ if ((cG == cG))
478485 then {
479- let cE = invoke(ca, "addAssetsLink", [bu, bv, cz], nil)
480- if ((cE == cE))
486+ let cH = invoke(cd, "addAssetsLink", [bx, by, cC], nil)
487+ if ((cH == cH))
481488 then {
482- let cF = invoke(ca, "increaseAssetPoolsNumber", [bu], nil)
483- if ((cF == cF))
484- then $Tuple2(((co._2 ++ cq._2) ++ [cy, Burn(bt, 1), StringEntry(af(toString(cp), toString(cr)), br(Y, toString(l), cz, bu, bv, cw, cx, cp, cr, i, bB)), StringEntry(am(cz), bC(cp, cr)), StringEntry(ao(toString(cp), toString(cr)), ("%s__" + cz)), StringEntry(as(Y), bC(cp, cr)), StringEntry(au(cp, cr), Y), StringEntry(aw(cz), Y), StringEntry(av(Y), cz), IntegerEntry(X(Y), cm), IntegerEntry(ar(Y), h)]), cz)
489+ let cI = invoke(cd, "increaseAssetPoolsNumber", [bx], nil)
490+ if ((cI == cI))
491+ then $Tuple2(((cr._2 ++ ct._2) ++ [cB, Burn(bw, 1), StringEntry(ag(toString(cs), toString(cu)), bu(Z, toString(m), cC, bx, by, cz, cA, cs, cu, j, bE)), StringEntry(an(cC), bF(cs, cu)), StringEntry(ap(toString(cs), toString(cu)), ("%s__" + cC)), StringEntry(at(Z), bF(cs, cu)), StringEntry(av(cs, cu), Z), StringEntry(ax(cC), Z), StringEntry(aw(Z), cC), IntegerEntry(Y(Z), cp), IntegerEntry(as(Z), h)]), cC)
485492 else throw("Strict value is not equal to itself.")
486493 }
487494 else throw("Strict value is not equal to itself.")
500507
501508
502509
503-@Callable(bb)
504-func managePool (Y,cG) = {
505- let bV = bc(bb)
506- if ((bV == bV))
510+@Callable(be)
511+func managePool (Z,cJ) = {
512+ let bY = bf(be)
513+ if ((bY == bY))
507514 then {
508- let cu = bF(Y)
509- let bs = cu[t]
510- let cz = cu[u]
511- let bu = cu[v]
512- let bv = cu[w]
513- let cw = parseIntValue(cu[x])
514- let cx = parseIntValue(cu[y])
515- let cp = parseIntValue(cu[z])
516- let cr = parseIntValue(cu[A])
517- let cH = parseIntValue(cu[B])
518- let bB = cu[C]
519-[StringEntry(af(toString(cp), toString(cr)), br(Y, toString(cG), cz, bu, bv, cw, cx, cp, cr, cH, bB))]
515+ let cx = bI(Z)
516+ let bv = cx[u]
517+ let cC = cx[v]
518+ let bx = cx[w]
519+ let by = cx[x]
520+ let cz = parseIntValue(cx[y])
521+ let cA = parseIntValue(cx[z])
522+ let cs = parseIntValue(cx[A])
523+ let cu = parseIntValue(cx[B])
524+ let cK = parseIntValue(cx[C])
525+ let bE = cx[D]
526+[StringEntry(ag(toString(cs), toString(cu)), bu(Z, toString(cJ), cC, bx, by, cz, cA, cs, cu, cK, bE))]
520527 }
521528 else throw("Strict value is not equal to itself.")
522529 }
523530
524531
525532
526-@Callable(bb)
527-func emit (cI) = {
528- let cJ = bb.caller
529- let cK = bb.originCaller
530- let cL = valueOrErrorMessage(getString(av(toString(cJ))), "Invalid LP address called me.")
531- let cM = fromBase58String(cL)
532- let bZ = split(valueOrElse(getString(N()), k), j)
533- let bY = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
534- if ((0 >= cI))
533+@Callable(be)
534+func emit (cL) = {
535+ let cM = be.caller
536+ let cN = be.originCaller
537+ let cO = valueOrErrorMessage(getString(aw(toString(cM))), "Invalid LP address called me.")
538+ let cP = fromBase58String(cO)
539+ let cc = split(valueOrElse(getString(O()), l), k)
540+ let cb = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
541+ if ((0 >= cL))
535542 then nil
536- else if (containsElement(bZ, toString(cJ)))
537- then $Tuple2(nil, bY)
538- else $Tuple2([Reissue(cM, cI, true), ScriptTransfer(bb.caller, cI, cM)], "success")
543+ else if (containsElement(cc, toString(cM)))
544+ then $Tuple2(nil, cb)
545+ else $Tuple2([Reissue(cP, cL, true), ScriptTransfer(be.caller, cL, cP)], "success")
539546 }
540547
541548
542549
543-@Callable(bb)
544-func burn (cN) = {
545- let cJ = bb.caller
546- let cK = bb.originCaller
547- let cO = value(bb.payments[0])
548- let cP = value(cO.amount)
549- let cQ = toBase58String(value(cO.assetId))
550- let cR = valueOrErrorMessage(getString(av(toString(cJ))), "Invalid LP address called me.")
551- if ((cQ != cR))
550+@Callable(be)
551+func burn (cQ) = {
552+ let cM = be.caller
553+ let cN = be.originCaller
554+ let cR = value(be.payments[0])
555+ let cS = value(cR.amount)
556+ let cT = toBase58String(value(cR.assetId))
557+ let cU = valueOrErrorMessage(getString(aw(toString(cM))), "Invalid LP address called me.")
558+ if ((cT != cU))
552559 then throw("Invalid asset passed.")
553- else if ((cN != cP))
560+ else if ((cQ != cS))
554561 then throw("Invalid amount passed.")
555562 else {
556- let cM = fromBase58String(cR)
557- $Tuple2([Burn(cM, cN)], "success")
563+ let cP = fromBase58String(cU)
564+ $Tuple2([Burn(cP, cQ)], "success")
558565 }
559566 }
560567
561568
562569
563-@Callable(bb)
564-func modifyWeight (bt,cS) = {
565- let bV = if ((toBase58String(bb.caller.bytes) == valueOrElse(getString(this, S()), "")))
570+@Callable(be)
571+func modifyWeight (bw,cV) = {
572+ let bY = if ((toBase58String(be.caller.bytes) == valueOrElse(getString(this, T()), "")))
566573 then true
567- else bc(bb)
568- if ((bV == bV))
574+ else bf(be)
575+ if ((bY == bY))
569576 then {
570- let at = aA(aw(bt))
571- let cT = X(at)
572- let cU = X(f)
573- let cV = valueOrElse(getInteger(cU), 0)
574- let cm = valueOrElse(getInteger(cT), 0)
575- let cW = cS
576- let aQ = split(aA(I()), j)
577- let bR = aS(aQ)
578- let cX = invoke(bR, "onModifyWeight", [bt, at], nil)
579- if ((cX == cX))
577+ let au = aB(ax(bw))
578+ let cW = Y(au)
579+ let cX = Y(f)
580+ let cY = valueOrElse(getInteger(cX), 0)
581+ let cp = valueOrElse(getInteger(cW), 0)
582+ let cZ = cV
583+ let aT = split(aB(J()), k)
584+ let bU = aV(aT)
585+ let da = invoke(bU, "onModifyWeight", [bw, au], nil)
586+ if ((da == da))
580587 then {
581- let cY = if ((cV == 0))
588+ let db = if ((cY == 0))
582589 then nil
583- else [IntegerEntry(cU, 0)]
584- let cZ = Z(at, 0)
585- let da = getInteger(cZ)
586- let db = if ((da == unit))
590+ else [IntegerEntry(cX, 0)]
591+ let dc = aa(au, 0)
592+ let dd = getInteger(dc)
593+ let de = if ((dd == unit))
587594 then nil
588- else [DeleteEntry(cZ)]
589- (([IntegerEntry(cT, cW)] ++ cY) ++ db)
595+ else [DeleteEntry(dc)]
596+ (([IntegerEntry(cW, cZ)] ++ db) ++ de)
590597 }
591598 else throw("Strict value is not equal to itself.")
592599 }
595602
596603
597604
598-@Callable(bb)
599-func modifyWeights (dc,dd,de,df) = {
600- let bV = bc(bb)
601- if ((bV == bV))
605+@Callable(be)
606+func modifyWeights (df,dg,dh,di) = {
607+ let bY = bf(be)
608+ if ((bY == bY))
602609 then {
603- let dg = ((5 * e) / 100)
604- let dh = ((5 * e) / 100)
605- let di = ((5 * e) / 100)
606- let aQ = split(aA(I()), j)
607- let dj = aS(aQ)
608- let dk = aT(aQ)
609- let dl = X(dc)
610- let dm = X(dd)
611- let dn = X(de)
612- let do = X(df)
613- let dp = aD(dl)
614- let dq = aD(dm)
615- let dr = (dp - di)
616- let ds = (dq - di)
617- if ((0 >= dr))
618- then throw(("invalid btcWeightNew: " + toString(dr)))
619- else if ((0 >= ds))
620- then throw(("invalid ethWeightNew: " + toString(ds)))
610+ let dj = ((5 * e) / 100)
611+ let dk = ((5 * e) / 100)
612+ let dl = ((5 * e) / 100)
613+ let aT = split(aB(J()), k)
614+ let dm = aV(aT)
615+ let dn = aW(aT)
616+ let do = Y(df)
617+ let dp = Y(dg)
618+ let dq = Y(dh)
619+ let dr = Y(di)
620+ let ds = aE(do)
621+ let dt = aE(dp)
622+ let du = (ds - dl)
623+ let dv = (dt - dl)
624+ if ((0 >= du))
625+ then throw(("invalid btcWeightNew: " + toString(du)))
626+ else if ((0 >= dv))
627+ then throw(("invalid ethWeightNew: " + toString(dv)))
621628 else {
622- let dt = aA(av(dc))
623- let du = aA(av(dd))
624- let dv = aA(av(de))
625- let dw = aA(av(df))
626- let dx = invoke(dj, "onModifyWeight", [dt, dc], nil)
627- if ((dx == dx))
629+ let dw = aB(aw(df))
630+ let dx = aB(aw(dg))
631+ let dy = aB(aw(dh))
632+ let dz = aB(aw(di))
633+ let dA = invoke(dm, "onModifyWeight", [dw, df], nil)
634+ if ((dA == dA))
628635 then {
629- let dy = invoke(dj, "onModifyWeight", [du, dd], nil)
630- if ((dy == dy))
636+ let dB = invoke(dm, "onModifyWeight", [dx, dg], nil)
637+ if ((dB == dB))
631638 then {
632- let dz = invoke(dj, "onModifyWeight", [dv, de], nil)
633- if ((dz == dz))
639+ let dC = invoke(dm, "onModifyWeight", [dy, dh], nil)
640+ if ((dC == dC))
634641 then {
635- let dA = invoke(dj, "onModifyWeight", [dw, df], nil)
636- if ((dA == dA))
637- then [IntegerEntry(dl, dr), IntegerEntry(dm, ds), IntegerEntry(dn, dg), IntegerEntry(do, dh), IntegerEntry(Z(dc, 0), dp), IntegerEntry(Z(dd, 0), dq), IntegerEntry(Z(de, 0), dg), IntegerEntry(Z(df, 0), dh)]
642+ let dD = invoke(dm, "onModifyWeight", [dz, di], nil)
643+ if ((dD == dD))
644+ then [IntegerEntry(do, du), IntegerEntry(dp, dv), IntegerEntry(dq, dj), IntegerEntry(dr, dk), IntegerEntry(aa(df, 0), ds), IntegerEntry(aa(dg, 0), dt), IntegerEntry(aa(dh, 0), dj), IntegerEntry(aa(di, 0), dk)]
638645 else throw("Strict value is not equal to itself.")
639646 }
640647 else throw("Strict value is not equal to itself.")
649656
650657
651658
652-@Callable(bb)
653-func checkWxEmissionPoolLabel (ay,az) = {
654- let dB = {
655- let aV = getBoolean(ax(ay, az))
656- if ($isInstanceOf(aV, "Boolean"))
659+@Callable(be)
660+func checkWxEmissionPoolLabel (az,aA) = {
661+ let dE = {
662+ let aY = getBoolean(ay(az, aA))
663+ if ($isInstanceOf(aY, "Boolean"))
657664 then {
658- let dC = aV
659- dC
665+ let dF = aY
666+ dF
660667 }
661668 else false
662669 }
663- $Tuple2(nil, dB)
670+ $Tuple2(nil, dE)
664671 }
665672
666673
667674
668-@Callable(bb)
669-func setWxEmissionPoolLabel (ay,az) = {
670- let bV = bO(bb)
671- if ((bV == bV))
672- then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
675+@Callable(be)
676+func setWxEmissionPoolLabel (az,aA) = {
677+ let bY = bR(be)
678+ if ((bY == bY))
679+ then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
673680 else throw("Strict value is not equal to itself.")
674681 }
675682
676683
677684
678-@Callable(bb)
679-func deleteWxEmissionPoolLabel (ay,az) = {
680- let bV = if (ba(bb))
685+@Callable(be)
686+func deleteWxEmissionPoolLabel (az,aA) = {
687+ let bY = if (bd(be))
681688 then true
682- else bO(bb)
683- if ((bV == bV))
684- then $Tuple2([DeleteEntry(ax(ay, az))], unit)
689+ else bR(be)
690+ if ((bY == bY))
691+ then $Tuple2([DeleteEntry(ay(az, aA))], unit)
685692 else throw("Strict value is not equal to itself.")
686693 }
687694
688695
689696
690-@Callable(bb)
691-func onVerificationLoss (dD) = {
692- let bV = if ((toBase58String(bb.caller.bytes) == valueOrElse(getString(this, R()), "")))
697+@Callable(be)
698+func onVerificationLoss (dG) = {
699+ let bY = if ((toBase58String(be.caller.bytes) == valueOrElse(getString(this, S()), "")))
693700 then true
694- else bc(bb)
695- if ((bV == bV))
701+ else bf(be)
702+ if ((bY == bY))
696703 then {
697- let cc = aU()
698- let dE = if ((size(cc) > 0))
704+ let cf = aX()
705+ let dH = if ((size(cf) > 0))
699706 then true
700707 else throw("invalid price assets")
701- if ((dE == dE))
708+ if ((dH == dH))
702709 then {
703- func dF (dG,dH) = {
704- let dI = invoke(this, "deleteWxEmissionPoolLabel", [dD, dH], nil)
705- if ((dI == dI))
710+ func dI (dJ,dK) = {
711+ let dL = invoke(this, "deleteWxEmissionPoolLabel", [dG, dK], nil)
712+ if ((dL == dL))
706713 then unit
707714 else throw("Strict value is not equal to itself.")
708715 }
709716
710- let dJ = {
711- let dK = cc
712- let dL = size(dK)
713- let dM = unit
714- func dN (dO,dP) = if ((dP >= dL))
715- then dO
716- else dF(dO, dK[dP])
717+ let dM = {
718+ let dN = cf
719+ let dO = size(dN)
720+ let dP = unit
721+ func dQ (dR,dS) = if ((dS >= dO))
722+ then dR
723+ else dI(dR, dN[dS])
717724
718- func dQ (dO,dP) = if ((dP >= dL))
719- then dO
725+ func dT (dR,dS) = if ((dS >= dO))
726+ then dR
720727 else throw("List size exceeds 3")
721728
722- dQ(dN(dN(dN(dM, 0), 1), 2), 3)
729+ dT(dQ(dQ(dQ(dP, 0), 1), 2), 3)
723730 }
724- if ((dJ == dJ))
731+ if ((dM == dM))
725732 then $Tuple2(nil, unit)
726733 else throw("Strict value is not equal to itself.")
727734 }
732739
733740
734741
735-@Callable(bb)
736-func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
737- let cu = bF(Y)
738- let aj = $Tuple2(parseIntValue(cu[z]), parseIntValue(cu[A]))
739- let dR = valueOrElse(getBoolean(ai(aj)), false)
740- let dS = valueOrElse(getBoolean(al()), false)
741- $Tuple2(nil, if (dS)
742+@Callable(be)
743+func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
744+ let cx = bI(Z)
745+ let ak = $Tuple2(parseIntValue(cx[A]), parseIntValue(cx[B]))
746+ let dU = valueOrElse(getBoolean(aj(ak)), false)
747+ let dV = valueOrElse(getBoolean(am()), false)
748+ $Tuple2(nil, if (dV)
742749 then true
743- else dR)
750+ else dU)
744751 }
745752
746753
747-@Verifier(dT)
748-func dU () = {
749- let dV = {
750- let aV = aX()
751- if ($isInstanceOf(aV, "ByteVector"))
754+
755+@Callable(be)
756+func poolInfoREADONLY (dW,dX) = {
757+ let dY = getInteger(this, ae(dW))
758+ let dZ = getInteger(this, ae(dX))
759+ let ea = getString(this, av(value(dY), value(dZ)))
760+ let eb = getString(this, aw(value(ea)))
761+ let ec = if (if (isDefined(dY))
762+ then isDefined(dZ)
763+ else false)
764+ then isDefined(ea)
765+ else false
766+ let ed = if (ec)
767+ then $Tuple2(addressFromStringValue(value(ea)), aF(value(eb)))
768+ else unit
769+ $Tuple2(nil, ed)
770+ }
771+
772+
773+@Verifier(ee)
774+func ef () = {
775+ let eg = {
776+ let aY = ba()
777+ if ($isInstanceOf(aY, "ByteVector"))
752778 then {
753- let bd = aV
754- bd
779+ let bg = aY
780+ bg
755781 }
756- else if ($isInstanceOf(aV, "Unit"))
757- then dT.senderPublicKey
782+ else if ($isInstanceOf(aY, "Unit"))
783+ then ee.senderPublicKey
758784 else throw("Match error")
759785 }
760- sigVerify(dT.bodyBytes, dT.proofs[0], dV)
786+ sigVerify(ee.bodyBytes, ee.proofs[0], eg)
761787 }
762788
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 (aB) = valueOrErrorMessage(getString(this, aB), ("No data for this.key=" + aB))
172+func aB (aC) = valueOrErrorMessage(getString(this, aC), ("No data for this.key=" + aC))
171173
172174
173-func aC (aB) = valueOrErrorMessage(getBoolean(this, aB), ("No data for this.key=" + aB))
175+func aD (aC) = valueOrErrorMessage(getBoolean(this, aC), ("No data for this.key=" + aC))
174176
175177
176-func aD (aB) = valueOrErrorMessage(getInteger(this, aB), ("No data for this.key=" + aB))
178+func aE (aC) = valueOrErrorMessage(getInteger(this, aC), ("No data for this.key=" + aC))
177179
178180
179-let aE = 1
180-
181-let aF = 2
182-
183-let aG = 3
184-
185-let aH = 4
186-
187-let aI = 5
188-
189-let aJ = 6
190-
191-let aK = 7
192-
193-let aL = 8
194-
195-let aM = 9
196-
197-let aN = 10
198-
199-let aO = 11
200-
201-func aP (aQ) = addressFromStringValue(aQ[aF])
181+func aF (aG) = if ((aG == i))
182+ then unit
183+ else fromBase58String(aG)
202184
203185
204-func aR (aQ) = addressFromStringValue(aQ[aI])
186+let aH = 1
187+
188+let aI = 2
189+
190+let aJ = 3
191+
192+let aK = 4
193+
194+let aL = 5
195+
196+let aM = 6
197+
198+let aN = 7
199+
200+let aO = 8
201+
202+let aP = 9
203+
204+let aQ = 10
205+
206+let aR = 11
207+
208+func aS (aT) = addressFromStringValue(aT[aI])
205209
206210
207-func aS (aQ) = addressFromStringValue(aQ[aE])
211+func aU (aT) = addressFromStringValue(aT[aL])
208212
209213
210-func aT (aQ) = addressFromStringValue(aQ[aN])
214+func aV (aT) = addressFromStringValue(aT[aH])
211215
212216
213-func aU () = {
214- let aV = getString(T())
215- if ($isInstanceOf(aV, "String"))
217+func aW (aT) = addressFromStringValue(aT[aQ])
218+
219+
220+func aX () = {
221+ let aY = getString(U())
222+ if ($isInstanceOf(aY, "String"))
216223 then {
217- let aW = aV
218- if ((size(aW) == 0))
224+ let aZ = aY
225+ if ((size(aZ) == 0))
219226 then nil
220- else split(aW, j)
227+ else split(aZ, k)
221228 }
222229 else nil
223230 }
224231
225232
226-func aX () = {
227- let aV = getString(O())
228- if ($isInstanceOf(aV, "String"))
233+func ba () = {
234+ let aY = getString(P())
235+ if ($isInstanceOf(aY, "String"))
229236 then {
230- let aW = aV
231- fromBase58String(aW)
237+ let aZ = aY
238+ fromBase58String(aZ)
232239 }
233- else if ($isInstanceOf(aV, "Unit"))
240+ else if ($isInstanceOf(aY, "Unit"))
234241 then unit
235242 else throw("Match error")
236243 }
237244
238245
239-func aY () = {
240- let aV = getString(P())
241- if ($isInstanceOf(aV, "String"))
246+func bb () = {
247+ let aY = getString(Q())
248+ if ($isInstanceOf(aY, "String"))
242249 then {
243- let aW = aV
244- fromBase58String(aW)
250+ let aZ = aY
251+ fromBase58String(aZ)
245252 }
246- else if ($isInstanceOf(aV, "Unit"))
253+ else if ($isInstanceOf(aY, "Unit"))
247254 then unit
248255 else throw("Match error")
249256 }
250257
251258
252-let aZ = throw("Permission denied")
259+let bc = throw("Permission denied")
253260
254-func ba (bb) = if ((bb.caller == this))
261+func bd (be) = if ((be.caller == this))
255262 then true
256- else aZ
263+ else bc
257264
258265
259-func bc (bb) = {
260- let aV = aX()
261- if ($isInstanceOf(aV, "ByteVector"))
266+func bf (be) = {
267+ let aY = ba()
268+ if ($isInstanceOf(aY, "ByteVector"))
262269 then {
263- let bd = aV
264- if ((bb.callerPublicKey == bd))
270+ let bg = aY
271+ if ((be.callerPublicKey == bg))
265272 then true
266- else aZ
273+ else bc
267274 }
268- else if ($isInstanceOf(aV, "Unit"))
269- then ba(bb)
275+ else if ($isInstanceOf(aY, "Unit"))
276+ then bd(be)
270277 else throw("Match error")
271278 }
272279
273280
274-func be (bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp], j)
281+func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs], k)
275282
276283
277-func bq (bf,bg,bh,bi,bj,bk,bl) = makeString(["%s%s%s%s%s%s", bf, bg, bh, bi, bj, bk, bl], j)
284+func bt (bi,bj,bk,bl,bm,bn,bo) = makeString(["%s%s%s%s%s%s", bi, bj, bk, bl, bm, bn, bo], k)
278285
279286
280-func br (Y,bs,bt,bu,bv,bw,bx,by,bz,bA,bB) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bs, bt, bu, bv, toString(bw), toString(bx), toString(by), toString(bz), toString(bA), bB], j)
287+func bu (Z,bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bv, bw, bx, by, toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), bE], k)
281288
282289
283-func bC (bD,bE) = makeString(["%d%d", toString(bD), toString(bE)], j)
290+func bF (bG,bH) = makeString(["%d%d", toString(bG), toString(bH)], k)
284291
285292
286-func bF (Y) = {
287- let bG = split(aA(as(Y)), j)
288- let ag = bG[1]
289- let ah = bG[2]
290- split(aA(af(ag, ah)), j)
293+func bI (Z) = {
294+ let bJ = split(aB(at(Z)), k)
295+ let ah = bJ[1]
296+ let ai = bJ[2]
297+ split(aB(ag(ah, ai)), k)
291298 }
292299
293300
294-func bH (bI,bJ) = {
295- let bK = valueOrElse(getInteger(this, ad(bI)), 0)
296- let bL = valueOrElse(getInteger(this, W()), 0)
297- let bM = if ((bK == 0))
301+func bK (bL,bM) = {
302+ let bN = valueOrElse(getInteger(this, ae(bL)), 0)
303+ let bO = valueOrElse(getInteger(this, X()), 0)
304+ let bP = if ((bN == 0))
298305 then {
299- let bN = (bL + bJ)
300- $Tuple3(bN, [IntegerEntry(W(), bN), IntegerEntry(ad(bI), bN), StringEntry(ab(bN), bI)], true)
306+ let bQ = (bO + bM)
307+ $Tuple3(bQ, [IntegerEntry(X(), bQ), IntegerEntry(ae(bL), bQ), StringEntry(ac(bQ), bL)], true)
301308 }
302- else $Tuple3(bK, nil, false)
303- bM
309+ else $Tuple3(bN, nil, false)
310+ bP
304311 }
305312
306313
307-func bO (bb) = {
308- let bP = split(valueOrElse(getString(Q()), k), j)
309- if (containsElement(bP, toBase58String(bb.callerPublicKey)))
314+func bR (be) = {
315+ let bS = split(valueOrElse(getString(R()), l), k)
316+ if (containsElement(bS, toBase58String(be.callerPublicKey)))
310317 then true
311318 else {
312- let bQ = bc(bb)
313- if ((bQ == bQ))
319+ let bT = bf(be)
320+ if ((bT == bT))
314321 then true
315322 else throw("Strict value is not equal to itself.")
316323 }
317324 }
318325
319326
320-@Callable(bb)
321-func constructor (bR,bS,bh,bi,bj,bk,bT,bU) = {
322- let bV = bc(bb)
323- if ((bV == bV))
324- then [StringEntry(I(), bq(bR, bS, bh, bi, bj, bk, bT)), IntegerEntry(U(), bU)]
327+@Callable(be)
328+func constructor (bU,bV,bk,bl,bm,bn,bW,bX) = {
329+ let bY = bf(be)
330+ if ((bY == bY))
331+ then [StringEntry(J(), bt(bU, bV, bk, bl, bm, bn, bW)), IntegerEntry(V(), bX)]
325332 else throw("Strict value is not equal to itself.")
326333 }
327334
328335
329336
330-@Callable(bb)
331-func constructorV2 (bW) = {
332- let bV = bc(bb)
333- if ((bV == bV))
337+@Callable(be)
338+func constructorV2 (bZ) = {
339+ let bY = bf(be)
340+ if ((bY == bY))
334341 then {
335- let bX = addressFromPublicKey(fromBase58String(bW))
336- if ((bX == bX))
337- then [StringEntry(L(), bW)]
342+ let ca = addressFromPublicKey(fromBase58String(bZ))
343+ if ((ca == ca))
344+ then [StringEntry(M(), bZ)]
338345 else throw("Strict value is not equal to itself.")
339346 }
340347 else throw("Strict value is not equal to itself.")
341348 }
342349
343350
344351
345-@Callable(bb)
346-func constructorV3 (bm,bn,bo,bp) = {
347- let bV = bc(bb)
348- if ((bV == bV))
352+@Callable(be)
353+func constructorV3 (bp,bq,br,bs) = {
354+ let bY = bf(be)
355+ if ((bY == bY))
349356 then {
350- let aQ = split(aA(I()), j)
351-[StringEntry(I(), be(aQ[1], aQ[2], aQ[3], aQ[4], aQ[5], aQ[6], aQ[7], bm, bn, bo, bp))]
357+ let aT = split(aB(J()), k)
358+[StringEntry(J(), bh(aT[1], aT[2], aT[3], aT[4], aT[5], aT[6], aT[7], bp, bq, br, bs))]
352359 }
353360 else throw("Strict value is not equal to itself.")
354361 }
355362
356363
357364
358-@Callable(bb)
359-func constructorV4 (bY,bZ) = {
360- let bV = bc(bb)
361- if ((bV == bV))
362- then [StringEntry(M(), bY), StringEntry(N(), makeString(bZ, j))]
365+@Callable(be)
366+func constructorV4 (cb,cc) = {
367+ let bY = bf(be)
368+ if ((bY == bY))
369+ then [StringEntry(N(), cb), StringEntry(O(), makeString(cc, k))]
363370 else throw("Strict value is not equal to itself.")
364371 }
365372
366373
367374
368-@Callable(bb)
369-func constructorV5 (ca) = {
370- let bV = bc(bb)
371- if ((bV == bV))
372- then [StringEntry(R(), ca)]
375+@Callable(be)
376+func constructorV5 (cd) = {
377+ let bY = bf(be)
378+ if ((bY == bY))
379+ then [StringEntry(S(), cd)]
373380 else throw("Strict value is not equal to itself.")
374381 }
375382
376383
377384
378-@Callable(bb)
379-func constructorV6 (cb,cc) = {
380- let cd = [bc(bb), if ((addressFromString(cb) != unit))
385+@Callable(be)
386+func constructorV6 (ce,cf) = {
387+ let cg = [bf(be), if ((addressFromString(ce) != unit))
381388 then true
382389 else "invalid voting emission contract address"]
383- if ((cd == cd))
384- then [StringEntry(S(), cb), StringEntry(T(), makeString(cc, j))]
390+ if ((cg == cg))
391+ then [StringEntry(T(), ce), StringEntry(U(), makeString(cf, k))]
385392 else throw("Strict value is not equal to itself.")
386393 }
387394
388395
389396
390-@Callable(bb)
391-func setManager (ce) = {
392- let bV = bc(bb)
393- if ((bV == bV))
397+@Callable(be)
398+func setManager (ch) = {
399+ let bY = bf(be)
400+ if ((bY == bY))
394401 then {
395- let cf = fromBase58String(ce)
396- if ((cf == cf))
397- then [StringEntry(P(), ce)]
402+ let ci = fromBase58String(ch)
403+ if ((ci == ci))
404+ then [StringEntry(Q(), ch)]
398405 else throw("Strict value is not equal to itself.")
399406 }
400407 else throw("Strict value is not equal to itself.")
401408 }
402409
403410
404411
405-@Callable(bb)
412+@Callable(be)
406413 func confirmManager () = {
407- let cg = aY()
408- let ch = if (isDefined(cg))
414+ let cj = bb()
415+ let ck = if (isDefined(cj))
409416 then true
410417 else throw("No pending manager")
411- if ((ch == ch))
418+ if ((ck == ck))
412419 then {
413- let ci = if ((bb.callerPublicKey == value(cg)))
420+ let cl = if ((be.callerPublicKey == value(cj)))
414421 then true
415422 else throw("You are not pending manager")
416- if ((ci == ci))
417- then [StringEntry(O(), toBase58String(value(cg))), DeleteEntry(P())]
423+ if ((cl == cl))
424+ then [StringEntry(P(), toBase58String(value(cj))), DeleteEntry(Q())]
418425 else throw("Strict value is not equal to itself.")
419426 }
420427 else throw("Strict value is not equal to itself.")
421428 }
422429
423430
424431
425-@Callable(bb)
426-func setAdmins (cj) = {
427- let bV = bc(bb)
428- if ((bV == bV))
429- then [StringEntry(Q(), makeString(cj, j))]
432+@Callable(be)
433+func setAdmins (cm) = {
434+ let bY = bf(be)
435+ if ((bY == bY))
436+ then [StringEntry(R(), makeString(cm, k))]
430437 else throw("Strict value is not equal to itself.")
431438 }
432439
433440
434441
435-@Callable(bb)
436-func activateNewPool (Y,bu,bv,ck,cl,cm,bB,cn) = {
437- let bV = bO(bb)
438- if ((bV == bV))
439- then if (isDefined(getString(as(Y))))
440- then throw((("Pool address " + Y) + " already registered."))
442+@Callable(be)
443+func activateNewPool (Z,bx,by,cn,co,cp,bE,cq) = {
444+ let bY = bR(be)
445+ if ((bY == bY))
446+ then if (isDefined(getString(at(Z))))
447+ then throw((("Pool address " + Z) + " already registered."))
441448 else {
442- let co = bH(bu, 1)
443- let cp = co._1
444- let cq = bH(bv, if (co._3)
449+ let cr = bK(bx, 1)
450+ let cs = cr._1
451+ let ct = bK(by, if (cr._3)
445452 then 2
446453 else 1)
447- let cr = cq._1
448- let cs = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
449- let ct = getBinaryValue(K())
450- let cu = getString(this, af(toString(cp), toString(cr)))
451- if (isDefined(cu))
452- then throw((((("Pool " + bu) + "/") + bv) + " has already been activated."))
454+ let cu = ct._1
455+ let cv = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
456+ let cw = getBinaryValue(L())
457+ let cx = getString(this, ag(toString(cs), toString(cu)))
458+ if (isDefined(cx))
459+ then throw((((("Pool " + bx) + "/") + by) + " has already been activated."))
453460 else {
454- let cv = value(getString(this, af(toString(cp), toString(cr))))
455- let cw = if ((bu == "WAVES"))
456- then i
457- else pow(10, 0, value(assetInfo(fromBase58String(bu))).decimals, 0, 0, DOWN)
458- let cx = if ((bv == "WAVES"))
459- then i
460- else pow(10, 0, value(assetInfo(fromBase58String(bv))).decimals, 0, 0, DOWN)
461- let cy = Issue(ck, cl, 1, 8, true)
462- let bt = calculateAssetId(cy)
463- let cz = toBase58String(bt)
464- let cA = invoke(addressFromStringValue(Y), "activate", [bu, bv], nil)
465- if ((cA == cA))
466- then if ((cA != "success"))
461+ let cy = value(getString(this, ag(toString(cs), toString(cu))))
462+ let cz = if ((bx == "WAVES"))
463+ then j
464+ else pow(10, 0, value(assetInfo(fromBase58String(bx))).decimals, 0, 0, DOWN)
465+ let cA = if ((by == "WAVES"))
466+ then j
467+ else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
468+ let cB = Issue(cn, co, 1, 8, true)
469+ let bw = calculateAssetId(cB)
470+ let cC = toBase58String(bw)
471+ let cD = invoke(addressFromStringValue(Z), "activate", [bx, by], nil)
472+ if ((cD == cD))
473+ then if ((cD != "success"))
467474 then throw("Pool initialisation error happened.")
468475 else {
469- let ca = addressFromStringValue(aA(R()))
470- let cB = invoke(ca, "createOrUpdate", [cz, ck, false], nil)
471- if ((cB == cB))
476+ let cd = addressFromStringValue(aB(S()))
477+ let cE = invoke(cd, "createOrUpdate", [cC, cn, false], nil)
478+ if ((cE == cE))
472479 then {
473- let cC = invoke(ca, "addLabel", [cz, g], nil)
474- if ((cC == cC))
480+ let cF = invoke(cd, "addLabel", [cC, g], nil)
481+ if ((cF == cF))
475482 then {
476- let cD = invoke(ca, "setLogo", [cz, cn], nil)
477- if ((cD == cD))
483+ let cG = invoke(cd, "setLogo", [cC, cq], nil)
484+ if ((cG == cG))
478485 then {
479- let cE = invoke(ca, "addAssetsLink", [bu, bv, cz], nil)
480- if ((cE == cE))
486+ let cH = invoke(cd, "addAssetsLink", [bx, by, cC], nil)
487+ if ((cH == cH))
481488 then {
482- let cF = invoke(ca, "increaseAssetPoolsNumber", [bu], nil)
483- if ((cF == cF))
484- then $Tuple2(((co._2 ++ cq._2) ++ [cy, Burn(bt, 1), StringEntry(af(toString(cp), toString(cr)), br(Y, toString(l), cz, bu, bv, cw, cx, cp, cr, i, bB)), StringEntry(am(cz), bC(cp, cr)), StringEntry(ao(toString(cp), toString(cr)), ("%s__" + cz)), StringEntry(as(Y), bC(cp, cr)), StringEntry(au(cp, cr), Y), StringEntry(aw(cz), Y), StringEntry(av(Y), cz), IntegerEntry(X(Y), cm), IntegerEntry(ar(Y), h)]), cz)
489+ let cI = invoke(cd, "increaseAssetPoolsNumber", [bx], nil)
490+ if ((cI == cI))
491+ then $Tuple2(((cr._2 ++ ct._2) ++ [cB, Burn(bw, 1), StringEntry(ag(toString(cs), toString(cu)), bu(Z, toString(m), cC, bx, by, cz, cA, cs, cu, j, bE)), StringEntry(an(cC), bF(cs, cu)), StringEntry(ap(toString(cs), toString(cu)), ("%s__" + cC)), StringEntry(at(Z), bF(cs, cu)), StringEntry(av(cs, cu), Z), StringEntry(ax(cC), Z), StringEntry(aw(Z), cC), IntegerEntry(Y(Z), cp), IntegerEntry(as(Z), h)]), cC)
485492 else throw("Strict value is not equal to itself.")
486493 }
487494 else throw("Strict value is not equal to itself.")
488495 }
489496 else throw("Strict value is not equal to itself.")
490497 }
491498 else throw("Strict value is not equal to itself.")
492499 }
493500 else throw("Strict value is not equal to itself.")
494501 }
495502 else throw("Strict value is not equal to itself.")
496503 }
497504 }
498505 else throw("Strict value is not equal to itself.")
499506 }
500507
501508
502509
503-@Callable(bb)
504-func managePool (Y,cG) = {
505- let bV = bc(bb)
506- if ((bV == bV))
510+@Callable(be)
511+func managePool (Z,cJ) = {
512+ let bY = bf(be)
513+ if ((bY == bY))
507514 then {
508- let cu = bF(Y)
509- let bs = cu[t]
510- let cz = cu[u]
511- let bu = cu[v]
512- let bv = cu[w]
513- let cw = parseIntValue(cu[x])
514- let cx = parseIntValue(cu[y])
515- let cp = parseIntValue(cu[z])
516- let cr = parseIntValue(cu[A])
517- let cH = parseIntValue(cu[B])
518- let bB = cu[C]
519-[StringEntry(af(toString(cp), toString(cr)), br(Y, toString(cG), cz, bu, bv, cw, cx, cp, cr, cH, bB))]
515+ let cx = bI(Z)
516+ let bv = cx[u]
517+ let cC = cx[v]
518+ let bx = cx[w]
519+ let by = cx[x]
520+ let cz = parseIntValue(cx[y])
521+ let cA = parseIntValue(cx[z])
522+ let cs = parseIntValue(cx[A])
523+ let cu = parseIntValue(cx[B])
524+ let cK = parseIntValue(cx[C])
525+ let bE = cx[D]
526+[StringEntry(ag(toString(cs), toString(cu)), bu(Z, toString(cJ), cC, bx, by, cz, cA, cs, cu, cK, bE))]
520527 }
521528 else throw("Strict value is not equal to itself.")
522529 }
523530
524531
525532
526-@Callable(bb)
527-func emit (cI) = {
528- let cJ = bb.caller
529- let cK = bb.originCaller
530- let cL = valueOrErrorMessage(getString(av(toString(cJ))), "Invalid LP address called me.")
531- let cM = fromBase58String(cL)
532- let bZ = split(valueOrElse(getString(N()), k), j)
533- let bY = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
534- if ((0 >= cI))
533+@Callable(be)
534+func emit (cL) = {
535+ let cM = be.caller
536+ let cN = be.originCaller
537+ let cO = valueOrErrorMessage(getString(aw(toString(cM))), "Invalid LP address called me.")
538+ let cP = fromBase58String(cO)
539+ let cc = split(valueOrElse(getString(O()), l), k)
540+ let cb = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
541+ if ((0 >= cL))
535542 then nil
536- else if (containsElement(bZ, toString(cJ)))
537- then $Tuple2(nil, bY)
538- else $Tuple2([Reissue(cM, cI, true), ScriptTransfer(bb.caller, cI, cM)], "success")
543+ else if (containsElement(cc, toString(cM)))
544+ then $Tuple2(nil, cb)
545+ else $Tuple2([Reissue(cP, cL, true), ScriptTransfer(be.caller, cL, cP)], "success")
539546 }
540547
541548
542549
543-@Callable(bb)
544-func burn (cN) = {
545- let cJ = bb.caller
546- let cK = bb.originCaller
547- let cO = value(bb.payments[0])
548- let cP = value(cO.amount)
549- let cQ = toBase58String(value(cO.assetId))
550- let cR = valueOrErrorMessage(getString(av(toString(cJ))), "Invalid LP address called me.")
551- if ((cQ != cR))
550+@Callable(be)
551+func burn (cQ) = {
552+ let cM = be.caller
553+ let cN = be.originCaller
554+ let cR = value(be.payments[0])
555+ let cS = value(cR.amount)
556+ let cT = toBase58String(value(cR.assetId))
557+ let cU = valueOrErrorMessage(getString(aw(toString(cM))), "Invalid LP address called me.")
558+ if ((cT != cU))
552559 then throw("Invalid asset passed.")
553- else if ((cN != cP))
560+ else if ((cQ != cS))
554561 then throw("Invalid amount passed.")
555562 else {
556- let cM = fromBase58String(cR)
557- $Tuple2([Burn(cM, cN)], "success")
563+ let cP = fromBase58String(cU)
564+ $Tuple2([Burn(cP, cQ)], "success")
558565 }
559566 }
560567
561568
562569
563-@Callable(bb)
564-func modifyWeight (bt,cS) = {
565- let bV = if ((toBase58String(bb.caller.bytes) == valueOrElse(getString(this, S()), "")))
570+@Callable(be)
571+func modifyWeight (bw,cV) = {
572+ let bY = if ((toBase58String(be.caller.bytes) == valueOrElse(getString(this, T()), "")))
566573 then true
567- else bc(bb)
568- if ((bV == bV))
574+ else bf(be)
575+ if ((bY == bY))
569576 then {
570- let at = aA(aw(bt))
571- let cT = X(at)
572- let cU = X(f)
573- let cV = valueOrElse(getInteger(cU), 0)
574- let cm = valueOrElse(getInteger(cT), 0)
575- let cW = cS
576- let aQ = split(aA(I()), j)
577- let bR = aS(aQ)
578- let cX = invoke(bR, "onModifyWeight", [bt, at], nil)
579- if ((cX == cX))
577+ let au = aB(ax(bw))
578+ let cW = Y(au)
579+ let cX = Y(f)
580+ let cY = valueOrElse(getInteger(cX), 0)
581+ let cp = valueOrElse(getInteger(cW), 0)
582+ let cZ = cV
583+ let aT = split(aB(J()), k)
584+ let bU = aV(aT)
585+ let da = invoke(bU, "onModifyWeight", [bw, au], nil)
586+ if ((da == da))
580587 then {
581- let cY = if ((cV == 0))
588+ let db = if ((cY == 0))
582589 then nil
583- else [IntegerEntry(cU, 0)]
584- let cZ = Z(at, 0)
585- let da = getInteger(cZ)
586- let db = if ((da == unit))
590+ else [IntegerEntry(cX, 0)]
591+ let dc = aa(au, 0)
592+ let dd = getInteger(dc)
593+ let de = if ((dd == unit))
587594 then nil
588- else [DeleteEntry(cZ)]
589- (([IntegerEntry(cT, cW)] ++ cY) ++ db)
595+ else [DeleteEntry(dc)]
596+ (([IntegerEntry(cW, cZ)] ++ db) ++ de)
590597 }
591598 else throw("Strict value is not equal to itself.")
592599 }
593600 else throw("Strict value is not equal to itself.")
594601 }
595602
596603
597604
598-@Callable(bb)
599-func modifyWeights (dc,dd,de,df) = {
600- let bV = bc(bb)
601- if ((bV == bV))
605+@Callable(be)
606+func modifyWeights (df,dg,dh,di) = {
607+ let bY = bf(be)
608+ if ((bY == bY))
602609 then {
603- let dg = ((5 * e) / 100)
604- let dh = ((5 * e) / 100)
605- let di = ((5 * e) / 100)
606- let aQ = split(aA(I()), j)
607- let dj = aS(aQ)
608- let dk = aT(aQ)
609- let dl = X(dc)
610- let dm = X(dd)
611- let dn = X(de)
612- let do = X(df)
613- let dp = aD(dl)
614- let dq = aD(dm)
615- let dr = (dp - di)
616- let ds = (dq - di)
617- if ((0 >= dr))
618- then throw(("invalid btcWeightNew: " + toString(dr)))
619- else if ((0 >= ds))
620- then throw(("invalid ethWeightNew: " + toString(ds)))
610+ let dj = ((5 * e) / 100)
611+ let dk = ((5 * e) / 100)
612+ let dl = ((5 * e) / 100)
613+ let aT = split(aB(J()), k)
614+ let dm = aV(aT)
615+ let dn = aW(aT)
616+ let do = Y(df)
617+ let dp = Y(dg)
618+ let dq = Y(dh)
619+ let dr = Y(di)
620+ let ds = aE(do)
621+ let dt = aE(dp)
622+ let du = (ds - dl)
623+ let dv = (dt - dl)
624+ if ((0 >= du))
625+ then throw(("invalid btcWeightNew: " + toString(du)))
626+ else if ((0 >= dv))
627+ then throw(("invalid ethWeightNew: " + toString(dv)))
621628 else {
622- let dt = aA(av(dc))
623- let du = aA(av(dd))
624- let dv = aA(av(de))
625- let dw = aA(av(df))
626- let dx = invoke(dj, "onModifyWeight", [dt, dc], nil)
627- if ((dx == dx))
629+ let dw = aB(aw(df))
630+ let dx = aB(aw(dg))
631+ let dy = aB(aw(dh))
632+ let dz = aB(aw(di))
633+ let dA = invoke(dm, "onModifyWeight", [dw, df], nil)
634+ if ((dA == dA))
628635 then {
629- let dy = invoke(dj, "onModifyWeight", [du, dd], nil)
630- if ((dy == dy))
636+ let dB = invoke(dm, "onModifyWeight", [dx, dg], nil)
637+ if ((dB == dB))
631638 then {
632- let dz = invoke(dj, "onModifyWeight", [dv, de], nil)
633- if ((dz == dz))
639+ let dC = invoke(dm, "onModifyWeight", [dy, dh], nil)
640+ if ((dC == dC))
634641 then {
635- let dA = invoke(dj, "onModifyWeight", [dw, df], nil)
636- if ((dA == dA))
637- then [IntegerEntry(dl, dr), IntegerEntry(dm, ds), IntegerEntry(dn, dg), IntegerEntry(do, dh), IntegerEntry(Z(dc, 0), dp), IntegerEntry(Z(dd, 0), dq), IntegerEntry(Z(de, 0), dg), IntegerEntry(Z(df, 0), dh)]
642+ let dD = invoke(dm, "onModifyWeight", [dz, di], nil)
643+ if ((dD == dD))
644+ then [IntegerEntry(do, du), IntegerEntry(dp, dv), IntegerEntry(dq, dj), IntegerEntry(dr, dk), IntegerEntry(aa(df, 0), ds), IntegerEntry(aa(dg, 0), dt), IntegerEntry(aa(dh, 0), dj), IntegerEntry(aa(di, 0), dk)]
638645 else throw("Strict value is not equal to itself.")
639646 }
640647 else throw("Strict value is not equal to itself.")
641648 }
642649 else throw("Strict value is not equal to itself.")
643650 }
644651 else throw("Strict value is not equal to itself.")
645652 }
646653 }
647654 else throw("Strict value is not equal to itself.")
648655 }
649656
650657
651658
652-@Callable(bb)
653-func checkWxEmissionPoolLabel (ay,az) = {
654- let dB = {
655- let aV = getBoolean(ax(ay, az))
656- if ($isInstanceOf(aV, "Boolean"))
659+@Callable(be)
660+func checkWxEmissionPoolLabel (az,aA) = {
661+ let dE = {
662+ let aY = getBoolean(ay(az, aA))
663+ if ($isInstanceOf(aY, "Boolean"))
657664 then {
658- let dC = aV
659- dC
665+ let dF = aY
666+ dF
660667 }
661668 else false
662669 }
663- $Tuple2(nil, dB)
670+ $Tuple2(nil, dE)
664671 }
665672
666673
667674
668-@Callable(bb)
669-func setWxEmissionPoolLabel (ay,az) = {
670- let bV = bO(bb)
671- if ((bV == bV))
672- then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
675+@Callable(be)
676+func setWxEmissionPoolLabel (az,aA) = {
677+ let bY = bR(be)
678+ if ((bY == bY))
679+ then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
673680 else throw("Strict value is not equal to itself.")
674681 }
675682
676683
677684
678-@Callable(bb)
679-func deleteWxEmissionPoolLabel (ay,az) = {
680- let bV = if (ba(bb))
685+@Callable(be)
686+func deleteWxEmissionPoolLabel (az,aA) = {
687+ let bY = if (bd(be))
681688 then true
682- else bO(bb)
683- if ((bV == bV))
684- then $Tuple2([DeleteEntry(ax(ay, az))], unit)
689+ else bR(be)
690+ if ((bY == bY))
691+ then $Tuple2([DeleteEntry(ay(az, aA))], unit)
685692 else throw("Strict value is not equal to itself.")
686693 }
687694
688695
689696
690-@Callable(bb)
691-func onVerificationLoss (dD) = {
692- let bV = if ((toBase58String(bb.caller.bytes) == valueOrElse(getString(this, R()), "")))
697+@Callable(be)
698+func onVerificationLoss (dG) = {
699+ let bY = if ((toBase58String(be.caller.bytes) == valueOrElse(getString(this, S()), "")))
693700 then true
694- else bc(bb)
695- if ((bV == bV))
701+ else bf(be)
702+ if ((bY == bY))
696703 then {
697- let cc = aU()
698- let dE = if ((size(cc) > 0))
704+ let cf = aX()
705+ let dH = if ((size(cf) > 0))
699706 then true
700707 else throw("invalid price assets")
701- if ((dE == dE))
708+ if ((dH == dH))
702709 then {
703- func dF (dG,dH) = {
704- let dI = invoke(this, "deleteWxEmissionPoolLabel", [dD, dH], nil)
705- if ((dI == dI))
710+ func dI (dJ,dK) = {
711+ let dL = invoke(this, "deleteWxEmissionPoolLabel", [dG, dK], nil)
712+ if ((dL == dL))
706713 then unit
707714 else throw("Strict value is not equal to itself.")
708715 }
709716
710- let dJ = {
711- let dK = cc
712- let dL = size(dK)
713- let dM = unit
714- func dN (dO,dP) = if ((dP >= dL))
715- then dO
716- else dF(dO, dK[dP])
717+ let dM = {
718+ let dN = cf
719+ let dO = size(dN)
720+ let dP = unit
721+ func dQ (dR,dS) = if ((dS >= dO))
722+ then dR
723+ else dI(dR, dN[dS])
717724
718- func dQ (dO,dP) = if ((dP >= dL))
719- then dO
725+ func dT (dR,dS) = if ((dS >= dO))
726+ then dR
720727 else throw("List size exceeds 3")
721728
722- dQ(dN(dN(dN(dM, 0), 1), 2), 3)
729+ dT(dQ(dQ(dQ(dP, 0), 1), 2), 3)
723730 }
724- if ((dJ == dJ))
731+ if ((dM == dM))
725732 then $Tuple2(nil, unit)
726733 else throw("Strict value is not equal to itself.")
727734 }
728735 else throw("Strict value is not equal to itself.")
729736 }
730737 else throw("Strict value is not equal to itself.")
731738 }
732739
733740
734741
735-@Callable(bb)
736-func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
737- let cu = bF(Y)
738- let aj = $Tuple2(parseIntValue(cu[z]), parseIntValue(cu[A]))
739- let dR = valueOrElse(getBoolean(ai(aj)), false)
740- let dS = valueOrElse(getBoolean(al()), false)
741- $Tuple2(nil, if (dS)
742+@Callable(be)
743+func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
744+ let cx = bI(Z)
745+ let ak = $Tuple2(parseIntValue(cx[A]), parseIntValue(cx[B]))
746+ let dU = valueOrElse(getBoolean(aj(ak)), false)
747+ let dV = valueOrElse(getBoolean(am()), false)
748+ $Tuple2(nil, if (dV)
742749 then true
743- else dR)
750+ else dU)
744751 }
745752
746753
747-@Verifier(dT)
748-func dU () = {
749- let dV = {
750- let aV = aX()
751- if ($isInstanceOf(aV, "ByteVector"))
754+
755+@Callable(be)
756+func poolInfoREADONLY (dW,dX) = {
757+ let dY = getInteger(this, ae(dW))
758+ let dZ = getInteger(this, ae(dX))
759+ let ea = getString(this, av(value(dY), value(dZ)))
760+ let eb = getString(this, aw(value(ea)))
761+ let ec = if (if (isDefined(dY))
762+ then isDefined(dZ)
763+ else false)
764+ then isDefined(ea)
765+ else false
766+ let ed = if (ec)
767+ then $Tuple2(addressFromStringValue(value(ea)), aF(value(eb)))
768+ else unit
769+ $Tuple2(nil, ed)
770+ }
771+
772+
773+@Verifier(ee)
774+func ef () = {
775+ let eg = {
776+ let aY = ba()
777+ if ($isInstanceOf(aY, "ByteVector"))
752778 then {
753- let bd = aV
754- bd
779+ let bg = aY
780+ bg
755781 }
756- else if ($isInstanceOf(aV, "Unit"))
757- then dT.senderPublicKey
782+ else if ($isInstanceOf(aY, "Unit"))
783+ then ee.senderPublicKey
758784 else throw("Match error")
759785 }
760- sigVerify(dT.bodyBytes, dT.proofs[0], dV)
786+ sigVerify(ee.bodyBytes, ee.proofs[0], eg)
761787 }
762788

github/deemru/w8io/169f3d6 
295.54 ms