tx · GynaDwFtznPBH3sNGNqLgtbaBeBekz5nYV2yW5QMLnWD

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2021.11.05 17:23 [1777801] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "GynaDwFtznPBH3sNGNqLgtbaBeBekz5nYV2yW5QMLnWD", "fee": 1400000, "feeAssetId": null, "timestamp": 1636122291619, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "y3FYeT3NoMuPhYnC3bQeVCM3yiNuuNXqGFRSndz2gUnBHGq122emGCevxn8kNqB87nZsSLTRQgxNyoYnvA2jwua" ], "script": "base64:AAIFAAAAAAAAABkIAhIAEgYKBBgYGBESABIDCgEIEgQKAggBAAAAAwAAAAAKZGVwb3NpdEZlZQAAAAAAAAAD6AAAAAANY29udHJvbGxlckZlZQAAAAAAAAAnEAAAAAALcGxhdGZvcm1GZWUAAAAAAAAAJxAAAAAFAAAAAmE4AQAAAARpbml0AAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAxM1BQSDd4N2lxb2JXNXppeWlSQ2ljMTlyUXFLcjZuUFlhSzFfYXNzZXRfYmFsYW5jZQAAAAAAAG3UrQUAAAADbmlsAAAAAWkBAAAACGFkZFBvb2xzAAAABAAAAAVwb29scwAAAA9saXF1aWRpdHlUb2tlbnMAAAANc2VydmljZVRva2VucwAAABZsaXF1aWRpdHlUb2tlbkRlY2ltYWxzCgEAAAAQZ2VuZXJhdGVQb29sS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAAA5fYXNzZXRfYmFsYW5jZQAAAAAAAAAAAAUAAAALYWNjdW11bGF0ZWQKAQAAAB5nZW5lcmF0ZVBvb2xMaXF1aWRpdHlUb2tlbktleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAObGlxdWlkaXR5VG9rZW4JAAGRAAAAAgUAAAAPbGlxdWlkaXR5VG9rZW5zBQAAAAlwb29sSW5kZXgJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAABBfbGlxdWlkaXR5X3Rva2VuBQAAAA5saXF1aWRpdHlUb2tlbgUAAAALYWNjdW11bGF0ZWQKAQAAABxnZW5lcmF0ZVBvb2xTZXJ2aWNlVG9rZW5LZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAAlwb29sSW5kZXgJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAFcG9vbHMFAAAABHBvb2wEAAAADmxpcXVpZGl0eVRva2VuCQABkQAAAAIF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AABlAAAAAgUAAAAGYW1vdW50CQEAAAAIZnJhY3Rpb24AAAAEBQAAAAZhbW91bnQAAAAAAAAAAAEFAAAACmRlcG9zaXRGZWUFAAAABkhBTEZVUAkBAAAACGZyYWN0aW9uAAAABAUAAAAGYW1vdW50AAAAAAAAAAABBQAAAA1jb250cm9sbGVyRmVlBQAAAAZIQUxGVVAEAAAAEW5ld1VzZXJQb29sQW1vdW50CQAAZAAAAAIFAAAACnVzZXJBbW91bnQFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwkAAlkAAAABBQAAABBkQXBwQXNzZXRBZGRyZXNzBQAAABR1c2VyQW1vdW50V2l0aG91dEZlZQYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABR1c2VyQW1vdW50V2l0aG91dEZlZQkAAlkAAAABBQAAABBkQXBwQXNzZXRBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1wb29sQW1vdW50S2V5BQAAAA1uZXdQb29sQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABF1c2VyUG9vbEFtb3VudEtleQUAAAARbmV3VXNlclBvb2xBbW91bnQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAEcG9vbAAAAAp1c2VyRWFybmVkBAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAHYXNzZXRJZAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAANcG9vbEFtb3VudEtleQkAASwAAAACBQAAAARwb29sAgAAAA5fYXNzZXRfYmFsYW5jZQQAAAALdXNlckFkZHJlc3MJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABF1c2VyUG9vbEFtb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwUAAAALdXNlckFkZHJlc3MCAAAADl9hc3NldF9iYWxhbmNlBAAAABF1c2VyUG9vbEVhcm5lZEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwUAAAALdXNlckFkZHJlc3MCAAAAB19lYXJuZWQEAAAACnBvb2xBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAADXBvb2xBbW91bnRLZXkEAAAACnVzZXJBbW91bnQEAAAAByRtYXRjaDAJAAQfAAAAAQUAAAARdXNlclBvb2xBbW91bnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAAAAAAAAAAAAAEAAAAEHVzZXJFYXJuZWRCZWZvcmUEAAAAByRtYXRjaDAJAAQfAAAAAQUAAAARdXNlclBvb2xFYXJuZWRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAAAAAAAAAAAAAEAAAAFWxpcXVpZHV0eUFzc2V0QWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sAgAAABBfbGlxdWlkaXR5X3Rva2VuBAAAABVsaXF1aWRpdHlUb2tlbkRlY2ltYWwEAAAAByRtYXRjaDAJAAPsAAAAAQkAAlkAAAABBQAAABVsaXF1aWR1dHlBc3NldEFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAVhc3NldAUAAAAHJG1hdGNoMAgFAAAABWFzc2V0AAAACGRlY2ltYWxzCQAAAgAAAAECAAAAEENhbid0IGZpbmQgYXNzZXQEAAAAEGRBcHBBc3NldEFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAEcG9vbAIAAAAOX3NlcnZpY2VfdG9rZW4EAAAAD3VzZXJFYXJuZWRUb3RhbAkAAGQAAAACBQAAAAp1c2VyRWFybmVkBQAAABB1c2VyRWFybmVkQmVmb3JlBAAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIJAABlAAAAAgUAAAAGYW1vdW50CQEAAAAIZnJhY3Rpb24AAAAEBQAAAAZhbW91bnQAAAAAAAAAAAEFAAAAC3BsYXRmb3JtRmVlBQAAAAZIQUxGVVAJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAANY29udHJvbGxlckZlZQUAAAAGSEFMRlVQBAAAAA1uZXdQb29sQW1vdW50CQAAZQAAAAIFAAAACnBvb2xBbW91bnQFAAAAEGFtb3VudFdpdGhvdXRGZWUDCQAAZwAAAAIFAAAACnVzZXJBbW91bnQFAAAABmFtb3VudAQAAAARbmV3VXNlclBvb2xBbW91bnQJAABlAAAAAgUAAAAKdXNlckFtb3VudAUAAAAQYW1vdW50V2l0aG91dEZlZQkABEwAAAACCQEAAAAEQnVybgAAAAIJAAJZAAAAAQUAAAAQZEFwcEFzc2V0QWRkcmVzcwUAAAAQYW1vdW50V2l0aG91dEZlZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEGFtb3VudFdpdGhvdXRGZWUJAAJZAAAAAQUAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1wb29sQW1vdW50S2V5BQAAAA1uZXdQb29sQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABF1c2VyUG9vbEFtb3VudEtleQUAAAARbmV3VXNlclBvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sRWFybmVkS2V5BQAAAA91c2VyRWFybmVkVG90YWwFAAAAA25pbAkAAAIAAAABAgAAACZZb3UgaGF2ZSBub3Qgc3VjaCBiYWxhbmNlIGZvciB3aXRoZHJhdwAAAAEAAAACYjYBAAAAAmI3AAAAAAkAAfQAAAADCAUAAAACYjYAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJiNgAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJiNgAAAA9zZW5kZXJQdWJsaWNLZXnaaitB", "height": 1777801, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CqhVUdawARc4KnboWZVw9oBpmTksMUSXzxAfz8zzbnF9 Next: BsTRcwfFnAp7nzp6mDB92k5PmDQPy5GybQXCuXhiVYSt Diff:
OldNewDifferences
1919 func generatePoolLiquidityTokenKeys (accumulated,pool) = {
2020 let poolIndex = value(indexOf(pools, pool))
2121 let liquidityToken = liquidityTokens[poolIndex]
22- StringEntry((pool + "_liquidity_token"), liquidityToken)
22+StringEntry((pool + "_liquidity_token"), liquidityToken) :: accumulated
2323 }
2424
2525 func generatePoolServiceTokenKeys (accumulated,pool) = {
2626 let poolIndex = value(indexOf(pools, pool))
2727 let liquidityToken = serviceTokens[poolIndex]
28- StringEntry((pool + "_service_token"), liquidityToken)
28+StringEntry((pool + "_service_token"), liquidityToken) :: accumulated
2929 }
3030
3131 func generatePoolLiquidityTokenDecimalKeys (accumulated,pool) = {
3232 let poolIndex = value(indexOf(pools, pool))
3333 let liquidityToken = liquidityTokenDecimals[poolIndex]
34- IntegerEntry((pool + "_service_token"), liquidityToken)
34+IntegerEntry((pool + "_service_token"), liquidityToken) :: accumulated
3535 }
3636
37- func generatePoolActiveKeys (accumulated,pool) = BooleanEntry((pool + "_active"), true)
37+ func generatePoolActiveKeys (accumulated,pool) = BooleanEntry((pool + "_active"), true) :: accumulated
3838
39+ let poolBalanceKeys = {
40+ let $l = pools
41+ let $s = size($l)
42+ let $acc0 = nil
43+ func 1 ($a,$i) = if (($i >= $s))
44+ then $a
45+ else generatePoolKeys($a, $l[$i])
46+
47+ func 2 ($a,$i) = if (($i >= $s))
48+ then $a
49+ else throw("List size exceeds 20")
50+
51+ 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
52+ }
53+ let poolLiquidityTokenKeys = {
54+ let $l = pools
55+ let $s = size($l)
56+ let $acc0 = nil
57+ func 1 ($a,$i) = if (($i >= $s))
58+ then $a
59+ else generatePoolLiquidityTokenKeys($a, $l[$i])
60+
61+ func 2 ($a,$i) = if (($i >= $s))
62+ then $a
63+ else throw("List size exceeds 20")
64+
65+ 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
66+ }
3967 let poolServiceTokenKeys = {
4068 let $l = pools
4169 let $s = size($l)
78106
79107 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
80108 }
81- poolActiveKeys
109+ ((((poolBalanceKeys ++ poolLiquidityTokenKeys) ++ poolServiceTokenKeys) ++ poolLiquidityTokenDecimalKeys) ++ poolActiveKeys)
82110 }
83111
84112
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let depositFee = 1000
55
66 let controllerFee = 10000
77
88 let platformFee = 10000
99
1010 @Callable(a8)
1111 func init () = [IntegerEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_asset_balance", 7197869)]
1212
1313
1414
1515 @Callable(i)
1616 func addPools (pools,liquidityTokens,serviceTokens,liquidityTokenDecimals) = {
1717 func generatePoolKeys (accumulated,pool) = IntegerEntry((pool + "_asset_balance"), 0) :: accumulated
1818
1919 func generatePoolLiquidityTokenKeys (accumulated,pool) = {
2020 let poolIndex = value(indexOf(pools, pool))
2121 let liquidityToken = liquidityTokens[poolIndex]
22- StringEntry((pool + "_liquidity_token"), liquidityToken)
22+StringEntry((pool + "_liquidity_token"), liquidityToken) :: accumulated
2323 }
2424
2525 func generatePoolServiceTokenKeys (accumulated,pool) = {
2626 let poolIndex = value(indexOf(pools, pool))
2727 let liquidityToken = serviceTokens[poolIndex]
28- StringEntry((pool + "_service_token"), liquidityToken)
28+StringEntry((pool + "_service_token"), liquidityToken) :: accumulated
2929 }
3030
3131 func generatePoolLiquidityTokenDecimalKeys (accumulated,pool) = {
3232 let poolIndex = value(indexOf(pools, pool))
3333 let liquidityToken = liquidityTokenDecimals[poolIndex]
34- IntegerEntry((pool + "_service_token"), liquidityToken)
34+IntegerEntry((pool + "_service_token"), liquidityToken) :: accumulated
3535 }
3636
37- func generatePoolActiveKeys (accumulated,pool) = BooleanEntry((pool + "_active"), true)
37+ func generatePoolActiveKeys (accumulated,pool) = BooleanEntry((pool + "_active"), true) :: accumulated
3838
39+ let poolBalanceKeys = {
40+ let $l = pools
41+ let $s = size($l)
42+ let $acc0 = nil
43+ func 1 ($a,$i) = if (($i >= $s))
44+ then $a
45+ else generatePoolKeys($a, $l[$i])
46+
47+ func 2 ($a,$i) = if (($i >= $s))
48+ then $a
49+ else throw("List size exceeds 20")
50+
51+ 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
52+ }
53+ let poolLiquidityTokenKeys = {
54+ let $l = pools
55+ let $s = size($l)
56+ let $acc0 = nil
57+ func 1 ($a,$i) = if (($i >= $s))
58+ then $a
59+ else generatePoolLiquidityTokenKeys($a, $l[$i])
60+
61+ func 2 ($a,$i) = if (($i >= $s))
62+ then $a
63+ else throw("List size exceeds 20")
64+
65+ 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
66+ }
3967 let poolServiceTokenKeys = {
4068 let $l = pools
4169 let $s = size($l)
4270 let $acc0 = nil
4371 func 1 ($a,$i) = if (($i >= $s))
4472 then $a
4573 else generatePoolServiceTokenKeys($a, $l[$i])
4674
4775 func 2 ($a,$i) = if (($i >= $s))
4876 then $a
4977 else throw("List size exceeds 20")
5078
5179 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
5280 }
5381 let poolLiquidityTokenDecimalKeys = {
5482 let $l = pools
5583 let $s = size($l)
5684 let $acc0 = nil
5785 func 1 ($a,$i) = if (($i >= $s))
5886 then $a
5987 else generatePoolLiquidityTokenDecimalKeys($a, $l[$i])
6088
6189 func 2 ($a,$i) = if (($i >= $s))
6290 then $a
6391 else throw("List size exceeds 20")
6492
6593 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
6694 }
6795 let poolActiveKeys = {
6896 let $l = pools
6997 let $s = size($l)
7098 let $acc0 = nil
7199 func 1 ($a,$i) = if (($i >= $s))
72100 then $a
73101 else generatePoolActiveKeys($a, $l[$i])
74102
75103 func 2 ($a,$i) = if (($i >= $s))
76104 then $a
77105 else throw("List size exceeds 20")
78106
79107 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
80108 }
81- poolActiveKeys
109+ ((((poolBalanceKeys ++ poolLiquidityTokenKeys) ++ poolServiceTokenKeys) ++ poolLiquidityTokenDecimalKeys) ++ poolActiveKeys)
82110 }
83111
84112
85113
86114 @Callable(a8)
87115 func call () = {
88116 let a9 = Issue("Asset1", "Asset from dApp", 100000, 2, true, unit, 0)
89117 let b1 = calculateAssetId(a9)
90118 [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), a9]
91119 }
92120
93121
94122
95123 @Callable(i)
96124 func deposit (pool) = {
97125 let amount = i.payments[0].amount
98126 let assetId = i.payments[0].assetId
99127 let poolAmountKey = (pool + "_asset_balance")
100128 let userAddress = toString(i.caller)
101129 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
102130 let dAppAssetAddress = getStringValue(this, (pool + "_service_token"))
103131 let poolAmount = getIntegerValue(this, poolAmountKey)
104132 let userAmount = match getInteger(userPoolAmountKey) {
105133 case int: Int =>
106134 int
107135 case nothing =>
108136 0
109137 }
110138 let newPoolAmount = (poolAmount + amount)
111139 let userAmountWithoutFee = ((amount - fraction(amount, 1, depositFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
112140 let newUserPoolAmount = (userAmount + userAmountWithoutFee)
113141 [Reissue(fromBase58String(dAppAssetAddress), userAmountWithoutFee, true), ScriptTransfer(i.caller, userAmountWithoutFee, fromBase58String(dAppAssetAddress)), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount)]
114142 }
115143
116144
117145
118146 @Callable(i)
119147 func withdraw (pool,userEarned) = {
120148 let amount = i.payments[0].amount
121149 let assetId = i.payments[0].assetId
122150 let poolAmountKey = (pool + "_asset_balance")
123151 let userAddress = toString(i.caller)
124152 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
125153 let userPoolEarnedKey = (((pool + "_") + userAddress) + "_earned")
126154 let poolAmount = getIntegerValue(this, poolAmountKey)
127155 let userAmount = match getInteger(userPoolAmountKey) {
128156 case int: Int =>
129157 int
130158 case nothing =>
131159 0
132160 }
133161 let userEarnedBefore = match getInteger(userPoolEarnedKey) {
134162 case int: Int =>
135163 int
136164 case nothing =>
137165 0
138166 }
139167 let liquidutyAssetAddress = getStringValue(this, (pool + "_liquidity_token"))
140168 let liquidityTokenDecimal = match assetInfo(fromBase58String(liquidutyAssetAddress)) {
141169 case asset: Asset =>
142170 asset.decimals
143171 case _ =>
144172 throw("Can't find asset")
145173 }
146174 let dAppAssetAddress = getStringValue(this, (pool + "_service_token"))
147175 let userEarnedTotal = (userEarned + userEarnedBefore)
148176 let amountWithoutFee = ((amount - fraction(amount, 1, platformFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
149177 let newPoolAmount = (poolAmount - amountWithoutFee)
150178 if ((userAmount >= amount))
151179 then {
152180 let newUserPoolAmount = (userAmount - amountWithoutFee)
153181 [Burn(fromBase58String(dAppAssetAddress), amountWithoutFee), ScriptTransfer(i.caller, amountWithoutFee, fromBase58String(liquidutyAssetAddress)), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount), IntegerEntry(userPoolEarnedKey, userEarnedTotal)]
154182 }
155183 else throw("You have not such balance for withdraw")
156184 }
157185
158186
159187 @Verifier(b6)
160188 func b7 () = sigVerify(b6.bodyBytes, b6.proofs[0], b6.senderPublicKey)
161189

github/deemru/w8io/03bedc9 
50.05 ms