tx · 6MLT5BFqg4xfjE2bAeBAhyoZqo7QynoRMN8Pxy45am34

3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1:  -0.00500000 Waves

2023.09.30 19:57 [3844261] smart account 3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1 > SELF 0.00000000 Waves

{ "type": 13, "id": "6MLT5BFqg4xfjE2bAeBAhyoZqo7QynoRMN8Pxy45am34", "fee": 500000, "feeAssetId": null, "timestamp": 1696093120084, "version": 2, "chainId": 87, "sender": "3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1", "senderPublicKey": "DiCe6VGgddpG7YfGhT4XXsPuQtiyzaV68EZUB8GNT3hs", "proofs": [ "ctYhb2JJzEHQwa8Xze3Zf3ZCdDGo2QrqJwmHimhTS73Njy4tbYNaC494xqs3YspAdfe4hKge3qbnNTGBr61Cahv" ], "script": "base64:BgIJCAISABIDCgEBCQAGcHJwcnByAiMzUEpFU1ZEVEhSdjhpODNYYm1IclJHUWhEYzVyZ1IzYXpRcwACbXACIzNQNHVBNWV0blppNEFtQmFiS2lucTJiTWlXVThLY25IWmRIAAdzY2FsZTE2AICAhP6m3uERAQx0cnlHZXRTdHJpbmcCA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAENdHJ5R2V0SW50ZWdlcgIDa2V5B2FkZHJlc3MEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTAQ1nZXRBY2NCYWxhbmNlAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFB2Fzc2V0SWQBCWdldF9zcmF0ZQILcG9vbEFkZHJlc3MHYXNzZXRJZAkBDXRyeUdldEludGVnZXICCQCsAgIFB2Fzc2V0SWQCBl9zUmF0ZQkBB0FkZHJlc3MBCQDZBAEFC3Bvb2xBZGRyZXNzARBnZXRfcGFyYW1zX2J5X1BMAQlwbEFzc2V0SWQECXByQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFBnBycHJwcgQHYXNzZXRJZAkBDHRyeUdldFN0cmluZwIJAKwCAgkArAICAgZzZXR1cF8FCXBsQXNzZXRJZAIIX2Fzc2V0SWQFCXByQWRkcmVzcwQLcG9vbEFkZHJlc3MJAQx0cnlHZXRTdHJpbmcCCQCsAgIJAKwCAgIGc2V0dXBfBQlwbEFzc2V0SWQCDF9wb29sQWRkcmVzcwUJcHJBZGRyZXNzBApwb29sRG9tYWluCQEMdHJ5R2V0U3RyaW5nAgkArAICCQCsAgICBnNldHVwXwUJcGxBc3NldElkAgtfcG9vbERvbWFpbgUJcHJBZGRyZXNzCQCVCgMFB2Fzc2V0SWQFC3Bvb2xBZGRyZXNzBQpwb29sRG9tYWluAgFpAQNwdHcABApwYXlBc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECXBheUFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECyR0MDE0ODQxNTcwCQEQZ2V0X3BhcmFtc19ieV9QTAEJAQ5nZXRBc3NldFN0cmluZwEFCnBheUFzc2V0SWQEB2Fzc2V0SWQIBQskdDAxNDg0MTU3MAJfMQQLcG9vbEFkZHJlc3MIBQskdDAxNDg0MTU3MAJfMgQKcG9vbERvbWFpbggFCyR0MDE0ODQxNTcwAl8zBAdwb29sQWRyCQEHQWRkcmVzcwEJANkEAQULcG9vbEFkZHJlc3MECHN1cHBsQmVmCQENdHJ5R2V0SW50ZWdlcgIJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8FB2Fzc2V0SWQFB3Bvb2xBZHIDCQAAAgUIc3VwcGxCZWYFCHN1cHBsQmVmBAZiYWxCZWYJAQ1nZXRBY2NCYWxhbmNlAQUHYXNzZXRJZAMJAAACBQZiYWxCZWYFBmJhbEJlZgQIaW1wb3J0UEwJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBycHJwcgIIaW1wb3J0UEwJAMwIAgUKcG9vbERvbWFpbgkAzAgCCQClCAEFBHRoaXMFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUIaW1wb3J0UEwFCGltcG9ydFBMBApzdXBwbEFmdGVyCQENdHJ5R2V0SW50ZWdlcgIJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8FB2Fzc2V0SWQFB3Bvb2xBZHIDCQAAAgUKc3VwcGxBZnRlcgUKc3VwcGxBZnRlcgQQYW1vdW50VG9XaXRoZHJhdwkAawMJAGUCBQpzdXBwbEFmdGVyBQhzdXBwbEJlZgkBCWdldF9zcmF0ZQIFC3Bvb2xBZGRyZXNzBQdhc3NldElkBQdzY2FsZTE2AwkAAAIFEGFtb3VudFRvV2l0aGRyYXcFEGFtb3VudFRvV2l0aGRyYXcEB3dpdGRyYXcJAPwHBAUHcG9vbEFkcgIId2l0aGRyYXcJAMwIAgUHYXNzZXRJZAkAzAgCBRBhbW91bnRUb1dpdGhkcmF3BQNuaWwFA25pbAMJAAACBQd3aXRkcmF3BQd3aXRkcmF3BAhiYWxBZnRlcgkBDWdldEFjY0JhbGFuY2UBBQdhc3NldElkAwkAAAIFCGJhbEFmdGVyBQhiYWxBZnRlcgQKd2l0aGRyYXdlZAkAZQIFCGJhbEFmdGVyBQZiYWxCZWYDCQAAAgUKd2l0aGRyYXdlZAUKd2l0aGRyYXdlZAMGCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIDMTogCQCkAwEFCXBheUFtb3VudAIFLCAyOiAJAKQDAQUKd2l0aGRyYXdlZAIOLCBzdXBwbEFmdGVyOiAJAKQDAQUKc3VwcGxBZnRlcgIKLCBiYWxiZWY6IAkApAMBBQZiYWxCZWYCDCwgYmFsQWZ0ZXI6IAkApAMBBQhiYWxBZnRlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBA3d0cAEGZG9tYWluBApwYXlBc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECXBheUFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECXBsQXNzZXRJZAkBDHRyeUdldFN0cmluZwIJAKwCAgkArAICCQCsAgICCXNldHVwX3BsXwkBDmdldEFzc2V0U3RyaW5nAQUKcGF5QXNzZXRJZAIBXwkApAMBBQZkb21haW4JAQdBZGRyZXNzAQkA2QQBBQZwcnBycHIECyR0MDI3OTUyODU2CQEQZ2V0X3BhcmFtc19ieV9QTAEFCXBsQXNzZXRJZAQFemFnbDEIBQskdDAyNzk1Mjg1NgJfMQQLcG9vbEFkZHJlc3MIBQskdDAyNzk1Mjg1NgJfMgQFemFnbDIIBQskdDAyNzk1Mjg1NgJfMwQHcG9vbEFkcgkBB0FkZHJlc3MBCQDZBAEFC3Bvb2xBZGRyZXNzBAhzdXBwbEJlZgkBDXRyeUdldEludGVnZXICCQCsAgIJAKwCAgkApQgBBQR0aGlzAgpfc3VwcGxpZWRfCQEOZ2V0QXNzZXRTdHJpbmcBBQpwYXlBc3NldElkBQdwb29sQWRyAwkAAAIFCHN1cHBsQmVmBQhzdXBwbEJlZgQGYmFsQmVmCQENZ2V0QWNjQmFsYW5jZQEFCXBsQXNzZXRJZAMJAAACBQZiYWxCZWYFBmJhbEJlZgQHZGVwb3NpdAkA/AcEBQdwb29sQWRyAgZzdXBwbHkFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUHZGVwb3NpdAUHZGVwb3NpdAQKc3VwcGxBZnRlcgkBDXRyeUdldEludGVnZXICCQCsAgIJAKwCAgkApQgBBQR0aGlzAgpfc3VwcGxpZWRfCQEOZ2V0QXNzZXRTdHJpbmcBBQpwYXlBc3NldElkBQdwb29sQWRyAwkAAAIFCnN1cHBsQWZ0ZXIFCnN1cHBsQWZ0ZXIECXRvX2V4cG9ydAkAZQIFCnN1cHBsQWZ0ZXIFCHN1cHBsQmVmAwkAAAIFCXRvX2V4cG9ydAUJdG9fZXhwb3J0BAZleHBvcnQJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBycHJwcgIIZXhwb3J0UEwJAMwIAgUGZG9tYWluCQDMCAIFCnBheUFzc2V0SWQJAMwIAgUJdG9fZXhwb3J0BQNuaWwFA25pbAMJAAACBQZleHBvcnQFBmV4cG9ydAQIYmFsQWZ0ZXIJAQ1nZXRBY2NCYWxhbmNlAQUJcGxBc3NldElkAwkAAAIFCGJhbEFmdGVyBQhiYWxBZnRlcgQIZXhwb3J0ZWQJAGUCBQhiYWxBZnRlcgUGYmFsQmVmAwkAAAIFCGV4cG9ydGVkBQhleHBvcnRlZAMGCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIDMTogCQCkAwEFCXBheUFtb3VudAIFLCAyOiAJAKQDAQUIZXhwb3J0ZWQCDiwgc3VwcGxBZnRlcjogCQCkAwEFCnN1cHBsQWZ0ZXICCiwgYmFsYmVmOiAJAKQDAQUGYmFsQmVmAgwsIGJhbEFmdGVyOiAJAKQDAQUIYmFsQWZ0ZXIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgCjYMzH", "height": 3844261, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9hCtv3AmrEwk8J6i3Ny7MEEMm7wZP8NwobNd4mHCRHn3 Next: 5atBRxy2EitM6RUq9Gis8jPKo2TTKi82MqzJ3utx17bU Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
4+let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
55
6-let swopfi_oracle = "3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom"
6+let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
77
8-let pl_proxy = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
9-
10-let K_am_as_id = "%s__amountAsset"
11-
12-let K_pr_as_id = "%s__priceAsset"
13-
14-let K_amp = "%s__amp"
15-
16-let K_share = "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7"
17-
18-let K_staked = "%s%s__stakedBalance__WAVES"
19-
20-let K_a_as_id = "A_asset_id"
21-
22-let K_b_as_id = "B_asset_id"
23-
24-let K_a_as_bal = "A_asset_balance"
25-
26-let K_b_as_bal = "B_asset_balance"
27-
28-let K_fee = "commission"
29-
30-let K_asset_ids = "static_tokenIds"
31-
32-let K_fee_puz = "static_fee"
33-
34-let K_feeToken = "static_feeToken"
35-
36-let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
37-
38-let tsn_swapper_addr = Address(fromBase58String(tsn_swapper))
39-
40-let k_fee = "k_fee"
41-
42-let k_rebate = "k_rebate"
43-
44-let k_feeToStakersPercent = "k_feeToStakersPercent"
45-
46-let k_excessBalance = "k_excessBalance"
47-
48-let k_freeBalance = "k_freeBalance"
49-
50-let k_maxSpotUtilization = "k_maxSpotUtilization"
51-
52-let k_totalSupply = "k_totalSupply"
53-
54-let k_rate = "k_rate"
55-
56-let k_bsAstR = "k_bsAstR"
57-
58-let k_bsAstW = "k_bsAstW"
59-
60-let k_qtAstR = "k_qtAstR"
61-
62-let k_qtAstW = "k_qtAstW"
63-
64-let k_maxPriceImpact = "k_maxPriceImpact"
65-
66-let k_maxPriceSpread = "k_maxPriceSpread"
67-
68-let k_totalPositionSize = "k_totalPositionSize"
69-
70-let k_baseOracle = "k_baseOracle"
71-
72-func get_domain (poolAddress) = match poolAddress {
73- case _ =>
74- if (("3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH" == $match0))
75- then "1"
76- else "0"
77-}
78-
79-
80-func k_plToken (asset_id,domain) = ((("setup_pl_" + asset_id) + "_") + domain)
81-
82-
83-func k_total_supplied (asset_id) = ("total_supplied_" + asset_id)
84-
85-
86-func k_sRate (asset_id) = (asset_id + "_sRate")
87-
88-
89-func k_total_borrowed (asset_id) = ("total_borrowed_" + asset_id)
90-
91-
92-func k_bRate (asset_id) = (asset_id + "_bRate")
93-
94-
95-func k_maxSupply (asset_id) = ("setup_maxSupply_" + asset_id)
96-
97-
98-let k_lastRateHeight = "lastRateHeight"
99-
100-func getPuzBalanceKey (assetId) = (("global_" + assetId) + "_balance")
101-
102-
103-func getPuzWeightKey (assetId) = (("static_" + assetId) + "_weight")
104-
105-
106-func getBPAK (address) = (address + "_staticAssetsIds")
107-
8+let scale16 = 10000000000000000
1089
10910 func tryGetString (key,address) = match getString(address, key) {
11011 case b: String =>
11112 b
11213 case _ =>
11314 ""
114-}
115-
116-
117-func tryGetBool (key,address) = match getBoolean(address, key) {
118- case b: Boolean =>
119- b
120- case _ =>
121- false
12215 }
12316
12417
13023 }
13124
13225
133-func tryGetIntegerWithDef (key,address,def) = match getInteger(address, key) {
134- case b: Int =>
135- b
26+func getAssetString (assetId) = match assetId {
27+ case b: ByteVector =>
28+ toBase58String(b)
13629 case _ =>
137- def
30+ "WAVES"
13831 }
13932
14033
141-func getAssetBalance (address,assetId) = {
142- let a = assetBalance(address, assetId)
143- a
144- }
34+func getAccBalance (assetId) = if ((assetId == "WAVES"))
35+ then wavesBalance(this).available
36+ else assetBalance(this, fromBase58String(assetId))
14537
14638
147-func getWavesBalance (address) = {
148- let w = wavesBalance(address).available
149- w
150- }
39+func get_srate (poolAddress,assetId) = tryGetInteger((assetId + "_sRate"), Address(fromBase58String(poolAddress)))
15140
15241
153-func getBalance (result,assetId) = {
154- let address = take(result, 35)
155- let addr = Address(fromBase58String(address))
156- let balance = if ((assetId == "WAVES"))
157- then getWavesBalance(addr)
158- else {
159- let aId = fromBase58String(assetId)
160- getAssetBalance(addr, aId)
161- }
162- let len = size(result)
163- (((((address + drop(result, 35)) + assetId) + ":") + toString(balance)) + ",")
164- }
165-
166-
167-func getWxData (address) = {
168- let addr = Address(fromBase58String(address))
169- let amountId = tryGetString(K_am_as_id, addr)
170- let priceId = tryGetString(K_pr_as_id, addr)
171- let amp = tryGetString(K_amp, addr)
172- let share = tryGetInteger(K_share, addr)
173- let stake = tryGetInteger(K_staked, addr)
174- $Tuple2(((amountId + ",") + priceId), ((((amp + ",") + toString(share)) + ",") + toString(stake)))
175- }
176-
177-
178-func getSwData (address) = {
179- let addr = Address(fromBase58String(address))
180- let A_id = tryGetString(K_a_as_id, addr)
181- let B_id = tryGetString(K_b_as_id, addr)
182- let A_balance = tryGetInteger(K_a_as_bal, addr)
183- let B_balance = tryGetInteger(K_b_as_bal, addr)
184- let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
185- let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
186- ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
187- }
188-
189-
190-func collectPuzAssetsData (result,assetId) = {
191- let len = size(result)
192- let address = result[(len - 1)]
193- let addr = Address(fromBase58String(address))
194- let balanceKey = getPuzBalanceKey(assetId)
195- let weightKey = getPuzWeightKey(assetId)
196- let balance = tryGetInteger(balanceKey, addr)
197- let weight = tryGetInteger(weightKey, addr)
198- let res = ((((assetId + ",") + toString(balance)) + ",") + toString(weight))
199-res :: result
200- }
201-
202-
203-func getPzData (address) = {
204- let addr = Address(fromBase58String(address))
205- let fee1 = tryGetInteger(K_fee_puz, addr)
206- let feeToken = tryGetString(K_feeToken, addr)
207- let assetsStr1 = tryGetString(K_asset_ids, addr)
208- let $t055915744 = if ((assetsStr1 == ""))
209- then $Tuple2(tryGetString(getBPAK(address), this), 200)
210- else $Tuple2(assetsStr1, fee1)
211- let assetsStr = $t055915744._1
212- let fee = $t055915744._2
213- let assets = split(assetsStr, ",")
214- let assetsData = {
215- let $l = assets
216- let $s = size($l)
217- let $acc0 = [address]
218- func $f0_1 ($a,$i) = if (($i >= $s))
219- then $a
220- else collectPuzAssetsData($a, $l[$i])
221-
222- func $f0_2 ($a,$i) = if (($i >= $s))
223- then $a
224- else throw("List size exceeds 10")
225-
226- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
227- }
228- let len = size(assetsData)
229- let assetsArr = removeByIndex(assetsData, (len - 1))
230- let assetsDataStr = makeString_2C(assetsArr, ";")
231- $Tuple3(fee, feeToken, assetsDataStr)
232- }
233-
234-
235-func getTsnData (address,asset_id) = {
236- let addr = Address(fromBase58String(address))
237- let bsAstR = tryGetInteger(k_bsAstR, addr)
238- let bsAstW = tryGetInteger(k_bsAstW, addr)
239- let qtAstR = tryGetInteger(k_qtAstR, addr)
240- let qtAstW = tryGetInteger(k_qtAstW, addr)
241- let maxPriceImpact = tryGetInteger(k_maxPriceImpact, addr)
242- let maxPriceSpread = tryGetInteger(k_maxPriceSpread, addr)
243- let totalPositionSize = tryGetInteger(k_totalPositionSize, addr)
244- let oracleString = tryGetString(k_baseOracle, addr)
245- let arr = split(oracleString, ",")
246- let $t066416689 = $Tuple2(arr[0], arr[1])
247- let oracleAddress = $t066416689._1
248- let priceKey = $t066416689._2
249- let oracleAddr = Address(fromBase58String(oracleAddress))
250- let oraclePrice = tryGetInteger(priceKey, oracleAddr)
251- let vault = tryGetString(("k_asset_vault_" + asset_id), tsn_swapper_addr)
252- let vault_addr = Address(fromBase58String(vault))
253- let excessBalance = tryGetInteger(k_excessBalance, vault_addr)
254- let freeBalance = tryGetInteger(k_freeBalance, vault_addr)
255- let maxSpotUtilization = tryGetInteger(k_maxSpotUtilization, vault_addr)
256- let totalSupply = tryGetInteger(k_totalSupply, vault_addr)
257- let rate = tryGetInteger(k_rate, vault_addr)
258- $Tuple13(bsAstR, bsAstW, qtAstR, qtAstW, totalPositionSize, maxPriceImpact, maxPriceSpread, oraclePrice, excessBalance, freeBalance, maxSpotUtilization, totalSupply, rate)
259- }
260-
261-
262-func getPLData (pool_address,asset_id) = {
263- let domain = get_domain(pool_address)
264- let poolAdr = Address(fromBase58String(pool_address))
265- let plTokenId = tryGetString(k_plToken(asset_id, domain), Address(fromBase58String(pl_proxy)))
266- let sRate = tryGetInteger(k_sRate(asset_id), poolAdr)
267- let bRate = tryGetInteger(k_bRate(asset_id), poolAdr)
268- let totalSupplied = tryGetInteger(k_total_supplied(asset_id), poolAdr)
269- let totalBorrowed = tryGetInteger(k_total_borrowed(asset_id), poolAdr)
270- let maxSupply = tryGetInteger(k_maxSupply(asset_id), poolAdr)
271- let lastHeight = tryGetInteger(k_lastRateHeight, poolAdr)
272- let curHeight = height
273- $Tuple9(asset_id, plTokenId, sRate, bRate, totalSupplied, totalBorrowed, maxSupply, lastHeight, curHeight)
274- }
275-
276-
277-func test_loop (result,ele) = ele :: result
278-
279-
280-func getBalancesStr (assetsStr,address) = {
281- let assets = split_4C(assetsStr, ",")
282- let res = {
283- let $l = assets
284- let $s = size($l)
285- let $acc0 = address
286- func $f0_1 ($a,$i) = if (($i >= $s))
287- then $a
288- else getBalance($a, $l[$i])
289-
290- func $f0_2 ($a,$i) = if (($i >= $s))
291- then $a
292- else throw("List size exceeds 2")
293-
294- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
295- }
296- let balances = drop(res, 35)
297- let bals = dropRight(balances, 1)
298- bals
299- }
300-
301-
302-func processWX (result,address) = {
303- let $t086528695 = getWxData(address)
304- let assetsStr = $t086528695._1
305- let datas = $t086528695._2
306- let assetsString = getBalancesStr(assetsStr, address)
307- let resItem = ((((address + "/") + assetsString) + "/") + datas)
308-resItem :: result
309- }
310-
311-
312-func processSW (result,address) = {
313- let assetsString = getSwData(address)
314- let resItem = ((address + "/") + assetsString)
315-resItem :: result
316- }
317-
318-
319-func processPZ (result,address) = {
320- let $t090959149 = getPzData(address)
321- let fee = $t090959149._1
322- let feeToken = $t090959149._2
323- let assetsString = $t090959149._3
324- let resItem = ((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString)
325-resItem :: result
326- }
327-
328-
329-func processTSN (result,label) = {
330- let arr = split(label, "_")
331- let $t093669408 = $Tuple2(arr[0], arr[1])
332- let address = $t093669408._1
333- let asset_id = $t093669408._2
334- let $t094149613 = getTsnData(address, asset_id)
335- let bsAstR = $t094149613._1
336- let bsAstW = $t094149613._2
337- let qtAstR = $t094149613._3
338- let qtAstW = $t094149613._4
339- let totalPositionSize = $t094149613._5
340- let maxPriceImpact = $t094149613._6
341- let maxPriceSpread = $t094149613._7
342- let oraclePrice = $t094149613._8
343- let excessBalance = $t094149613._9
344- let freeBalance = $t094149613._10
345- let maxSpotUtilization = $t094149613._11
346- let totalSupply = $t094149613._12
347- let rate = $t094149613._13
348- let asset_decimals = if ((asset_id == "WAVES"))
349- then 8
350- else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
351- let resItem = ((((((((((((((((((((((((((((((address + ",") + asset_id) + ",") + toString(asset_decimals)) + ",") + toString(bsAstR)) + ",") + toString(bsAstW)) + ",") + toString(qtAstR)) + ",") + toString(qtAstW)) + ",") + toString(totalPositionSize)) + ",") + toString(maxPriceImpact)) + ",") + toString(maxPriceSpread)) + ",") + toString(oraclePrice)) + ",") + toString(excessBalance)) + ",") + toString(freeBalance)) + ",") + toString(maxSpotUtilization)) + ",") + toString(totalSupply)) + ",") + toString(rate))
352-resItem :: result
353- }
354-
355-
356-func processPL (result,label) = {
357- let arr = split(label, "-")
358- let $t01041010457 = $Tuple2(arr[0], arr[1])
359- let pool_address = $t01041010457._1
360- let asset_id = $t01041010457._2
361- let $t01046310603 = getPLData(pool_address, asset_id)
362- let asset_idd = $t01046310603._1
363- let plTokenId = $t01046310603._2
364- let sRate = $t01046310603._3
365- let bRate = $t01046310603._4
366- let totalSupplied = $t01046310603._5
367- let totalBorrowed = $t01046310603._6
368- let maxSupply = $t01046310603._7
369- let lastHeight = $t01046310603._8
370- let curHeight = $t01046310603._9
371- let resItem = ((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + toString(maxSupply)) + ",") + toString(lastHeight)) + ",") + toString(curHeight))
372-resItem :: result
373- }
374-
375-
376-func getWX (params) = {
377- let pools = split_51C(params, ",")
378- let resArr = {
379- let $l = pools
380- let $s = size($l)
381- let $acc0 = nil
382- func $f0_1 ($a,$i) = if (($i >= $s))
383- then $a
384- else processWX($a, $l[$i])
385-
386- func $f0_2 ($a,$i) = if (($i >= $s))
387- then $a
388- else throw("List size exceeds 120")
389-
390- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120)
391- }
392- let result = makeString_11C(resArr, "|")
393- result
394- }
395-
396-
397-func getSW (params) = {
398- let pools = split_4C(params, ",")
399- let resArr = {
400- let $l = pools
401- let $s = size($l)
402- let $acc0 = nil
403- func $f0_1 ($a,$i) = if (($i >= $s))
404- then $a
405- else processSW($a, $l[$i])
406-
407- func $f0_2 ($a,$i) = if (($i >= $s))
408- then $a
409- else throw("List size exceeds 100")
410-
411- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
412- }
413- let result = makeString_11C(resArr, "|")
414- result
415- }
416-
417-
418-func getPZ (params) = {
419- let pools = split_4C(params, ",")
420- let resArr = {
421- let $l = pools
422- let $s = size($l)
423- let $acc0 = nil
424- func $f0_1 ($a,$i) = if (($i >= $s))
425- then $a
426- else processPZ($a, $l[$i])
427-
428- func $f0_2 ($a,$i) = if (($i >= $s))
429- then $a
430- else throw("List size exceeds 100")
431-
432- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
433- }
434- let result = makeString_11C(resArr, "|")
435- result
436- }
437-
438-
439-func getTSN (params) = {
440- let vaults_labels = split(params, ",")
441- let resArr = {
442- let $l = vaults_labels
443- let $s = size($l)
444- let $acc0 = nil
445- func $f0_1 ($a,$i) = if (($i >= $s))
446- then $a
447- else processTSN($a, $l[$i])
448-
449- func $f0_2 ($a,$i) = if (($i >= $s))
450- then $a
451- else throw("List size exceeds 10")
452-
453- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
454- }
455- let result = makeString_2C(resArr, "|")
456- let fee = tryGetInteger(k_fee, tsn_swapper_addr)
457- let rebate = tryGetInteger(k_rebate, tsn_swapper_addr)
458- let feeToStakersPercent = tryGetInteger(k_feeToStakersPercent, tsn_swapper_addr)
459- ((((((toString(fee) + ",") + toString(rebate)) + ",") + toString(feeToStakersPercent)) + "/") + result)
460- }
461-
462-
463-func getPL (params) = {
464- let pools = split(params, ",")
465- let resArr = {
466- let $l = pools
467- let $s = size($l)
468- let $acc0 = nil
469- func $f0_1 ($a,$i) = if (($i >= $s))
470- then $a
471- else processPL($a, $l[$i])
472-
473- func $f0_2 ($a,$i) = if (($i >= $s))
474- then $a
475- else throw("List size exceeds 10")
476-
477- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
478- }
479- let result = makeString_2C(resArr, "|")
480- result
42+func get_params_by_PL (plAssetId) = {
43+ let prAddress = Address(fromBase58String(prprpr))
44+ let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
45+ let poolAddress = tryGetString((("setup_" + plAssetId) + "_poolAddress"), prAddress)
46+ let poolDomain = tryGetString((("setup_" + plAssetId) + "_poolDomain"), prAddress)
47+ $Tuple3(assetId, poolAddress, poolDomain)
48148 }
48249
48350
48451 @Callable(i)
485-func test (s) = {
486- let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
487- throw(toString(r))
52+func ptw () = {
53+ let payAssetId = i.payments[0].assetId
54+ let payAmount = value(i.payments[0].amount)
55+ let $t014841570 = get_params_by_PL(getAssetString(payAssetId))
56+ let assetId = $t014841570._1
57+ let poolAddress = $t014841570._2
58+ let poolDomain = $t014841570._3
59+ let poolAdr = Address(fromBase58String(poolAddress))
60+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
61+ if ((supplBef == supplBef))
62+ then {
63+ let balBef = getAccBalance(assetId)
64+ if ((balBef == balBef))
65+ then {
66+ let importPL = invoke(Address(fromBase58String(prprpr)), "importPL", [poolDomain, toString(this)], i.payments)
67+ if ((importPL == importPL))
68+ then {
69+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
70+ if ((supplAfter == supplAfter))
71+ then {
72+ let amountToWithdraw = fraction((supplAfter - supplBef), get_srate(poolAddress, assetId), scale16)
73+ if ((amountToWithdraw == amountToWithdraw))
74+ then {
75+ let witdraw = invoke(poolAdr, "withdraw", [assetId, amountToWithdraw], nil)
76+ if ((witdraw == witdraw))
77+ then {
78+ let balAfter = getAccBalance(assetId)
79+ if ((balAfter == balAfter))
80+ then {
81+ let withdrawed = (balAfter - balBef)
82+ if ((withdrawed == withdrawed))
83+ then if (true)
84+ then throw(((((((((("1: " + toString(payAmount)) + ", 2: ") + toString(withdrawed)) + ", supplAfter: ") + toString(supplAfter)) + ", balbef: ") + toString(balBef)) + ", balAfter: ") + toString(balAfter)))
85+ else nil
86+ else throw("Strict value is not equal to itself.")
87+ }
88+ else throw("Strict value is not equal to itself.")
89+ }
90+ else throw("Strict value is not equal to itself.")
91+ }
92+ else throw("Strict value is not equal to itself.")
93+ }
94+ else throw("Strict value is not equal to itself.")
95+ }
96+ else throw("Strict value is not equal to itself.")
97+ }
98+ else throw("Strict value is not equal to itself.")
99+ }
100+ else throw("Strict value is not equal to itself.")
101+ }
102+
103+
104+
105+@Callable(i)
106+func wtp (domain) = {
107+ let payAssetId = i.payments[0].assetId
108+ let payAmount = value(i.payments[0].amount)
109+ let plAssetId = tryGetString(((("setup_pl_" + getAssetString(payAssetId)) + "_") + toString(domain)), Address(fromBase58String(prprpr)))
110+ let $t027952856 = get_params_by_PL(plAssetId)
111+ let zagl1 = $t027952856._1
112+ let poolAddress = $t027952856._2
113+ let zagl2 = $t027952856._3
114+ let poolAdr = Address(fromBase58String(poolAddress))
115+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + getAssetString(payAssetId)), poolAdr)
116+ if ((supplBef == supplBef))
117+ then {
118+ let balBef = getAccBalance(plAssetId)
119+ if ((balBef == balBef))
120+ then {
121+ let deposit = invoke(poolAdr, "supply", nil, i.payments)
122+ if ((deposit == deposit))
123+ then {
124+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + getAssetString(payAssetId)), poolAdr)
125+ if ((supplAfter == supplAfter))
126+ then {
127+ let to_export = (supplAfter - supplBef)
128+ if ((to_export == to_export))
129+ then {
130+ let export = invoke(Address(fromBase58String(prprpr)), "exportPL", [domain, payAssetId, to_export], nil)
131+ if ((export == export))
132+ then {
133+ let balAfter = getAccBalance(plAssetId)
134+ if ((balAfter == balAfter))
135+ then {
136+ let exported = (balAfter - balBef)
137+ if ((exported == exported))
138+ then if (true)
139+ then throw(((((((((("1: " + toString(payAmount)) + ", 2: ") + toString(exported)) + ", supplAfter: ") + toString(supplAfter)) + ", balbef: ") + toString(balBef)) + ", balAfter: ") + toString(balAfter)))
140+ else nil
141+ else throw("Strict value is not equal to itself.")
142+ }
143+ else throw("Strict value is not equal to itself.")
144+ }
145+ else throw("Strict value is not equal to itself.")
146+ }
147+ else throw("Strict value is not equal to itself.")
148+ }
149+ else throw("Strict value is not equal to itself.")
150+ }
151+ else throw("Strict value is not equal to itself.")
152+ }
153+ else throw("Strict value is not equal to itself.")
154+ }
155+ else throw("Strict value is not equal to itself.")
488156 }
489157
490158
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
4+let prprpr = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
55
6-let swopfi_oracle = "3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom"
6+let mp = "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"
77
8-let pl_proxy = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
9-
10-let K_am_as_id = "%s__amountAsset"
11-
12-let K_pr_as_id = "%s__priceAsset"
13-
14-let K_amp = "%s__amp"
15-
16-let K_share = "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7"
17-
18-let K_staked = "%s%s__stakedBalance__WAVES"
19-
20-let K_a_as_id = "A_asset_id"
21-
22-let K_b_as_id = "B_asset_id"
23-
24-let K_a_as_bal = "A_asset_balance"
25-
26-let K_b_as_bal = "B_asset_balance"
27-
28-let K_fee = "commission"
29-
30-let K_asset_ids = "static_tokenIds"
31-
32-let K_fee_puz = "static_fee"
33-
34-let K_feeToken = "static_feeToken"
35-
36-let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
37-
38-let tsn_swapper_addr = Address(fromBase58String(tsn_swapper))
39-
40-let k_fee = "k_fee"
41-
42-let k_rebate = "k_rebate"
43-
44-let k_feeToStakersPercent = "k_feeToStakersPercent"
45-
46-let k_excessBalance = "k_excessBalance"
47-
48-let k_freeBalance = "k_freeBalance"
49-
50-let k_maxSpotUtilization = "k_maxSpotUtilization"
51-
52-let k_totalSupply = "k_totalSupply"
53-
54-let k_rate = "k_rate"
55-
56-let k_bsAstR = "k_bsAstR"
57-
58-let k_bsAstW = "k_bsAstW"
59-
60-let k_qtAstR = "k_qtAstR"
61-
62-let k_qtAstW = "k_qtAstW"
63-
64-let k_maxPriceImpact = "k_maxPriceImpact"
65-
66-let k_maxPriceSpread = "k_maxPriceSpread"
67-
68-let k_totalPositionSize = "k_totalPositionSize"
69-
70-let k_baseOracle = "k_baseOracle"
71-
72-func get_domain (poolAddress) = match poolAddress {
73- case _ =>
74- if (("3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH" == $match0))
75- then "1"
76- else "0"
77-}
78-
79-
80-func k_plToken (asset_id,domain) = ((("setup_pl_" + asset_id) + "_") + domain)
81-
82-
83-func k_total_supplied (asset_id) = ("total_supplied_" + asset_id)
84-
85-
86-func k_sRate (asset_id) = (asset_id + "_sRate")
87-
88-
89-func k_total_borrowed (asset_id) = ("total_borrowed_" + asset_id)
90-
91-
92-func k_bRate (asset_id) = (asset_id + "_bRate")
93-
94-
95-func k_maxSupply (asset_id) = ("setup_maxSupply_" + asset_id)
96-
97-
98-let k_lastRateHeight = "lastRateHeight"
99-
100-func getPuzBalanceKey (assetId) = (("global_" + assetId) + "_balance")
101-
102-
103-func getPuzWeightKey (assetId) = (("static_" + assetId) + "_weight")
104-
105-
106-func getBPAK (address) = (address + "_staticAssetsIds")
107-
8+let scale16 = 10000000000000000
1089
10910 func tryGetString (key,address) = match getString(address, key) {
11011 case b: String =>
11112 b
11213 case _ =>
11314 ""
114-}
115-
116-
117-func tryGetBool (key,address) = match getBoolean(address, key) {
118- case b: Boolean =>
119- b
120- case _ =>
121- false
12215 }
12316
12417
12518 func tryGetInteger (key,address) = match getInteger(address, key) {
12619 case b: Int =>
12720 b
12821 case _ =>
12922 0
13023 }
13124
13225
133-func tryGetIntegerWithDef (key,address,def) = match getInteger(address, key) {
134- case b: Int =>
135- b
26+func getAssetString (assetId) = match assetId {
27+ case b: ByteVector =>
28+ toBase58String(b)
13629 case _ =>
137- def
30+ "WAVES"
13831 }
13932
14033
141-func getAssetBalance (address,assetId) = {
142- let a = assetBalance(address, assetId)
143- a
144- }
34+func getAccBalance (assetId) = if ((assetId == "WAVES"))
35+ then wavesBalance(this).available
36+ else assetBalance(this, fromBase58String(assetId))
14537
14638
147-func getWavesBalance (address) = {
148- let w = wavesBalance(address).available
149- w
150- }
39+func get_srate (poolAddress,assetId) = tryGetInteger((assetId + "_sRate"), Address(fromBase58String(poolAddress)))
15140
15241
153-func getBalance (result,assetId) = {
154- let address = take(result, 35)
155- let addr = Address(fromBase58String(address))
156- let balance = if ((assetId == "WAVES"))
157- then getWavesBalance(addr)
158- else {
159- let aId = fromBase58String(assetId)
160- getAssetBalance(addr, aId)
161- }
162- let len = size(result)
163- (((((address + drop(result, 35)) + assetId) + ":") + toString(balance)) + ",")
164- }
165-
166-
167-func getWxData (address) = {
168- let addr = Address(fromBase58String(address))
169- let amountId = tryGetString(K_am_as_id, addr)
170- let priceId = tryGetString(K_pr_as_id, addr)
171- let amp = tryGetString(K_amp, addr)
172- let share = tryGetInteger(K_share, addr)
173- let stake = tryGetInteger(K_staked, addr)
174- $Tuple2(((amountId + ",") + priceId), ((((amp + ",") + toString(share)) + ",") + toString(stake)))
175- }
176-
177-
178-func getSwData (address) = {
179- let addr = Address(fromBase58String(address))
180- let A_id = tryGetString(K_a_as_id, addr)
181- let B_id = tryGetString(K_b_as_id, addr)
182- let A_balance = tryGetInteger(K_a_as_bal, addr)
183- let B_balance = tryGetInteger(K_b_as_bal, addr)
184- let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
185- let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
186- ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
187- }
188-
189-
190-func collectPuzAssetsData (result,assetId) = {
191- let len = size(result)
192- let address = result[(len - 1)]
193- let addr = Address(fromBase58String(address))
194- let balanceKey = getPuzBalanceKey(assetId)
195- let weightKey = getPuzWeightKey(assetId)
196- let balance = tryGetInteger(balanceKey, addr)
197- let weight = tryGetInteger(weightKey, addr)
198- let res = ((((assetId + ",") + toString(balance)) + ",") + toString(weight))
199-res :: result
200- }
201-
202-
203-func getPzData (address) = {
204- let addr = Address(fromBase58String(address))
205- let fee1 = tryGetInteger(K_fee_puz, addr)
206- let feeToken = tryGetString(K_feeToken, addr)
207- let assetsStr1 = tryGetString(K_asset_ids, addr)
208- let $t055915744 = if ((assetsStr1 == ""))
209- then $Tuple2(tryGetString(getBPAK(address), this), 200)
210- else $Tuple2(assetsStr1, fee1)
211- let assetsStr = $t055915744._1
212- let fee = $t055915744._2
213- let assets = split(assetsStr, ",")
214- let assetsData = {
215- let $l = assets
216- let $s = size($l)
217- let $acc0 = [address]
218- func $f0_1 ($a,$i) = if (($i >= $s))
219- then $a
220- else collectPuzAssetsData($a, $l[$i])
221-
222- func $f0_2 ($a,$i) = if (($i >= $s))
223- then $a
224- else throw("List size exceeds 10")
225-
226- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
227- }
228- let len = size(assetsData)
229- let assetsArr = removeByIndex(assetsData, (len - 1))
230- let assetsDataStr = makeString_2C(assetsArr, ";")
231- $Tuple3(fee, feeToken, assetsDataStr)
232- }
233-
234-
235-func getTsnData (address,asset_id) = {
236- let addr = Address(fromBase58String(address))
237- let bsAstR = tryGetInteger(k_bsAstR, addr)
238- let bsAstW = tryGetInteger(k_bsAstW, addr)
239- let qtAstR = tryGetInteger(k_qtAstR, addr)
240- let qtAstW = tryGetInteger(k_qtAstW, addr)
241- let maxPriceImpact = tryGetInteger(k_maxPriceImpact, addr)
242- let maxPriceSpread = tryGetInteger(k_maxPriceSpread, addr)
243- let totalPositionSize = tryGetInteger(k_totalPositionSize, addr)
244- let oracleString = tryGetString(k_baseOracle, addr)
245- let arr = split(oracleString, ",")
246- let $t066416689 = $Tuple2(arr[0], arr[1])
247- let oracleAddress = $t066416689._1
248- let priceKey = $t066416689._2
249- let oracleAddr = Address(fromBase58String(oracleAddress))
250- let oraclePrice = tryGetInteger(priceKey, oracleAddr)
251- let vault = tryGetString(("k_asset_vault_" + asset_id), tsn_swapper_addr)
252- let vault_addr = Address(fromBase58String(vault))
253- let excessBalance = tryGetInteger(k_excessBalance, vault_addr)
254- let freeBalance = tryGetInteger(k_freeBalance, vault_addr)
255- let maxSpotUtilization = tryGetInteger(k_maxSpotUtilization, vault_addr)
256- let totalSupply = tryGetInteger(k_totalSupply, vault_addr)
257- let rate = tryGetInteger(k_rate, vault_addr)
258- $Tuple13(bsAstR, bsAstW, qtAstR, qtAstW, totalPositionSize, maxPriceImpact, maxPriceSpread, oraclePrice, excessBalance, freeBalance, maxSpotUtilization, totalSupply, rate)
259- }
260-
261-
262-func getPLData (pool_address,asset_id) = {
263- let domain = get_domain(pool_address)
264- let poolAdr = Address(fromBase58String(pool_address))
265- let plTokenId = tryGetString(k_plToken(asset_id, domain), Address(fromBase58String(pl_proxy)))
266- let sRate = tryGetInteger(k_sRate(asset_id), poolAdr)
267- let bRate = tryGetInteger(k_bRate(asset_id), poolAdr)
268- let totalSupplied = tryGetInteger(k_total_supplied(asset_id), poolAdr)
269- let totalBorrowed = tryGetInteger(k_total_borrowed(asset_id), poolAdr)
270- let maxSupply = tryGetInteger(k_maxSupply(asset_id), poolAdr)
271- let lastHeight = tryGetInteger(k_lastRateHeight, poolAdr)
272- let curHeight = height
273- $Tuple9(asset_id, plTokenId, sRate, bRate, totalSupplied, totalBorrowed, maxSupply, lastHeight, curHeight)
274- }
275-
276-
277-func test_loop (result,ele) = ele :: result
278-
279-
280-func getBalancesStr (assetsStr,address) = {
281- let assets = split_4C(assetsStr, ",")
282- let res = {
283- let $l = assets
284- let $s = size($l)
285- let $acc0 = address
286- func $f0_1 ($a,$i) = if (($i >= $s))
287- then $a
288- else getBalance($a, $l[$i])
289-
290- func $f0_2 ($a,$i) = if (($i >= $s))
291- then $a
292- else throw("List size exceeds 2")
293-
294- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
295- }
296- let balances = drop(res, 35)
297- let bals = dropRight(balances, 1)
298- bals
299- }
300-
301-
302-func processWX (result,address) = {
303- let $t086528695 = getWxData(address)
304- let assetsStr = $t086528695._1
305- let datas = $t086528695._2
306- let assetsString = getBalancesStr(assetsStr, address)
307- let resItem = ((((address + "/") + assetsString) + "/") + datas)
308-resItem :: result
309- }
310-
311-
312-func processSW (result,address) = {
313- let assetsString = getSwData(address)
314- let resItem = ((address + "/") + assetsString)
315-resItem :: result
316- }
317-
318-
319-func processPZ (result,address) = {
320- let $t090959149 = getPzData(address)
321- let fee = $t090959149._1
322- let feeToken = $t090959149._2
323- let assetsString = $t090959149._3
324- let resItem = ((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString)
325-resItem :: result
326- }
327-
328-
329-func processTSN (result,label) = {
330- let arr = split(label, "_")
331- let $t093669408 = $Tuple2(arr[0], arr[1])
332- let address = $t093669408._1
333- let asset_id = $t093669408._2
334- let $t094149613 = getTsnData(address, asset_id)
335- let bsAstR = $t094149613._1
336- let bsAstW = $t094149613._2
337- let qtAstR = $t094149613._3
338- let qtAstW = $t094149613._4
339- let totalPositionSize = $t094149613._5
340- let maxPriceImpact = $t094149613._6
341- let maxPriceSpread = $t094149613._7
342- let oraclePrice = $t094149613._8
343- let excessBalance = $t094149613._9
344- let freeBalance = $t094149613._10
345- let maxSpotUtilization = $t094149613._11
346- let totalSupply = $t094149613._12
347- let rate = $t094149613._13
348- let asset_decimals = if ((asset_id == "WAVES"))
349- then 8
350- else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
351- let resItem = ((((((((((((((((((((((((((((((address + ",") + asset_id) + ",") + toString(asset_decimals)) + ",") + toString(bsAstR)) + ",") + toString(bsAstW)) + ",") + toString(qtAstR)) + ",") + toString(qtAstW)) + ",") + toString(totalPositionSize)) + ",") + toString(maxPriceImpact)) + ",") + toString(maxPriceSpread)) + ",") + toString(oraclePrice)) + ",") + toString(excessBalance)) + ",") + toString(freeBalance)) + ",") + toString(maxSpotUtilization)) + ",") + toString(totalSupply)) + ",") + toString(rate))
352-resItem :: result
353- }
354-
355-
356-func processPL (result,label) = {
357- let arr = split(label, "-")
358- let $t01041010457 = $Tuple2(arr[0], arr[1])
359- let pool_address = $t01041010457._1
360- let asset_id = $t01041010457._2
361- let $t01046310603 = getPLData(pool_address, asset_id)
362- let asset_idd = $t01046310603._1
363- let plTokenId = $t01046310603._2
364- let sRate = $t01046310603._3
365- let bRate = $t01046310603._4
366- let totalSupplied = $t01046310603._5
367- let totalBorrowed = $t01046310603._6
368- let maxSupply = $t01046310603._7
369- let lastHeight = $t01046310603._8
370- let curHeight = $t01046310603._9
371- let resItem = ((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + toString(maxSupply)) + ",") + toString(lastHeight)) + ",") + toString(curHeight))
372-resItem :: result
373- }
374-
375-
376-func getWX (params) = {
377- let pools = split_51C(params, ",")
378- let resArr = {
379- let $l = pools
380- let $s = size($l)
381- let $acc0 = nil
382- func $f0_1 ($a,$i) = if (($i >= $s))
383- then $a
384- else processWX($a, $l[$i])
385-
386- func $f0_2 ($a,$i) = if (($i >= $s))
387- then $a
388- else throw("List size exceeds 120")
389-
390- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120)
391- }
392- let result = makeString_11C(resArr, "|")
393- result
394- }
395-
396-
397-func getSW (params) = {
398- let pools = split_4C(params, ",")
399- let resArr = {
400- let $l = pools
401- let $s = size($l)
402- let $acc0 = nil
403- func $f0_1 ($a,$i) = if (($i >= $s))
404- then $a
405- else processSW($a, $l[$i])
406-
407- func $f0_2 ($a,$i) = if (($i >= $s))
408- then $a
409- else throw("List size exceeds 100")
410-
411- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
412- }
413- let result = makeString_11C(resArr, "|")
414- result
415- }
416-
417-
418-func getPZ (params) = {
419- let pools = split_4C(params, ",")
420- let resArr = {
421- let $l = pools
422- let $s = size($l)
423- let $acc0 = nil
424- func $f0_1 ($a,$i) = if (($i >= $s))
425- then $a
426- else processPZ($a, $l[$i])
427-
428- func $f0_2 ($a,$i) = if (($i >= $s))
429- then $a
430- else throw("List size exceeds 100")
431-
432- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
433- }
434- let result = makeString_11C(resArr, "|")
435- result
436- }
437-
438-
439-func getTSN (params) = {
440- let vaults_labels = split(params, ",")
441- let resArr = {
442- let $l = vaults_labels
443- let $s = size($l)
444- let $acc0 = nil
445- func $f0_1 ($a,$i) = if (($i >= $s))
446- then $a
447- else processTSN($a, $l[$i])
448-
449- func $f0_2 ($a,$i) = if (($i >= $s))
450- then $a
451- else throw("List size exceeds 10")
452-
453- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
454- }
455- let result = makeString_2C(resArr, "|")
456- let fee = tryGetInteger(k_fee, tsn_swapper_addr)
457- let rebate = tryGetInteger(k_rebate, tsn_swapper_addr)
458- let feeToStakersPercent = tryGetInteger(k_feeToStakersPercent, tsn_swapper_addr)
459- ((((((toString(fee) + ",") + toString(rebate)) + ",") + toString(feeToStakersPercent)) + "/") + result)
460- }
461-
462-
463-func getPL (params) = {
464- let pools = split(params, ",")
465- let resArr = {
466- let $l = pools
467- let $s = size($l)
468- let $acc0 = nil
469- func $f0_1 ($a,$i) = if (($i >= $s))
470- then $a
471- else processPL($a, $l[$i])
472-
473- func $f0_2 ($a,$i) = if (($i >= $s))
474- then $a
475- else throw("List size exceeds 10")
476-
477- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
478- }
479- let result = makeString_2C(resArr, "|")
480- result
42+func get_params_by_PL (plAssetId) = {
43+ let prAddress = Address(fromBase58String(prprpr))
44+ let assetId = tryGetString((("setup_" + plAssetId) + "_assetId"), prAddress)
45+ let poolAddress = tryGetString((("setup_" + plAssetId) + "_poolAddress"), prAddress)
46+ let poolDomain = tryGetString((("setup_" + plAssetId) + "_poolDomain"), prAddress)
47+ $Tuple3(assetId, poolAddress, poolDomain)
48148 }
48249
48350
48451 @Callable(i)
485-func test (s) = {
486- let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
487- throw(toString(r))
52+func ptw () = {
53+ let payAssetId = i.payments[0].assetId
54+ let payAmount = value(i.payments[0].amount)
55+ let $t014841570 = get_params_by_PL(getAssetString(payAssetId))
56+ let assetId = $t014841570._1
57+ let poolAddress = $t014841570._2
58+ let poolDomain = $t014841570._3
59+ let poolAdr = Address(fromBase58String(poolAddress))
60+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
61+ if ((supplBef == supplBef))
62+ then {
63+ let balBef = getAccBalance(assetId)
64+ if ((balBef == balBef))
65+ then {
66+ let importPL = invoke(Address(fromBase58String(prprpr)), "importPL", [poolDomain, toString(this)], i.payments)
67+ if ((importPL == importPL))
68+ then {
69+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + assetId), poolAdr)
70+ if ((supplAfter == supplAfter))
71+ then {
72+ let amountToWithdraw = fraction((supplAfter - supplBef), get_srate(poolAddress, assetId), scale16)
73+ if ((amountToWithdraw == amountToWithdraw))
74+ then {
75+ let witdraw = invoke(poolAdr, "withdraw", [assetId, amountToWithdraw], nil)
76+ if ((witdraw == witdraw))
77+ then {
78+ let balAfter = getAccBalance(assetId)
79+ if ((balAfter == balAfter))
80+ then {
81+ let withdrawed = (balAfter - balBef)
82+ if ((withdrawed == withdrawed))
83+ then if (true)
84+ then throw(((((((((("1: " + toString(payAmount)) + ", 2: ") + toString(withdrawed)) + ", supplAfter: ") + toString(supplAfter)) + ", balbef: ") + toString(balBef)) + ", balAfter: ") + toString(balAfter)))
85+ else nil
86+ else throw("Strict value is not equal to itself.")
87+ }
88+ else throw("Strict value is not equal to itself.")
89+ }
90+ else throw("Strict value is not equal to itself.")
91+ }
92+ else throw("Strict value is not equal to itself.")
93+ }
94+ else throw("Strict value is not equal to itself.")
95+ }
96+ else throw("Strict value is not equal to itself.")
97+ }
98+ else throw("Strict value is not equal to itself.")
99+ }
100+ else throw("Strict value is not equal to itself.")
101+ }
102+
103+
104+
105+@Callable(i)
106+func wtp (domain) = {
107+ let payAssetId = i.payments[0].assetId
108+ let payAmount = value(i.payments[0].amount)
109+ let plAssetId = tryGetString(((("setup_pl_" + getAssetString(payAssetId)) + "_") + toString(domain)), Address(fromBase58String(prprpr)))
110+ let $t027952856 = get_params_by_PL(plAssetId)
111+ let zagl1 = $t027952856._1
112+ let poolAddress = $t027952856._2
113+ let zagl2 = $t027952856._3
114+ let poolAdr = Address(fromBase58String(poolAddress))
115+ let supplBef = tryGetInteger(((toString(this) + "_supplied_") + getAssetString(payAssetId)), poolAdr)
116+ if ((supplBef == supplBef))
117+ then {
118+ let balBef = getAccBalance(plAssetId)
119+ if ((balBef == balBef))
120+ then {
121+ let deposit = invoke(poolAdr, "supply", nil, i.payments)
122+ if ((deposit == deposit))
123+ then {
124+ let supplAfter = tryGetInteger(((toString(this) + "_supplied_") + getAssetString(payAssetId)), poolAdr)
125+ if ((supplAfter == supplAfter))
126+ then {
127+ let to_export = (supplAfter - supplBef)
128+ if ((to_export == to_export))
129+ then {
130+ let export = invoke(Address(fromBase58String(prprpr)), "exportPL", [domain, payAssetId, to_export], nil)
131+ if ((export == export))
132+ then {
133+ let balAfter = getAccBalance(plAssetId)
134+ if ((balAfter == balAfter))
135+ then {
136+ let exported = (balAfter - balBef)
137+ if ((exported == exported))
138+ then if (true)
139+ then throw(((((((((("1: " + toString(payAmount)) + ", 2: ") + toString(exported)) + ", supplAfter: ") + toString(supplAfter)) + ", balbef: ") + toString(balBef)) + ", balAfter: ") + toString(balAfter)))
140+ else nil
141+ else throw("Strict value is not equal to itself.")
142+ }
143+ else throw("Strict value is not equal to itself.")
144+ }
145+ else throw("Strict value is not equal to itself.")
146+ }
147+ else throw("Strict value is not equal to itself.")
148+ }
149+ else throw("Strict value is not equal to itself.")
150+ }
151+ else throw("Strict value is not equal to itself.")
152+ }
153+ else throw("Strict value is not equal to itself.")
154+ }
155+ else throw("Strict value is not equal to itself.")
488156 }
489157
490158

github/deemru/w8io/3ef1775 
51.44 ms