tx · BR13HHDsfjr94ST58d7WnMa3zCsttst537gSUctHPeAg

3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg:  -0.01000000 Waves

2022.04.09 01:49 [3065526] smart account 3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg > SELF 0.00000000 Waves

{ "type": 13, "id": "BR13HHDsfjr94ST58d7WnMa3zCsttst537gSUctHPeAg", "fee": 1000000, "feeAssetId": null, "timestamp": 1649458141374, "version": 2, "chainId": 87, "sender": "3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg", "senderPublicKey": "7gibh6UPPJxgmRarFTbgdGeSNPsqP78GnojdyCRnspzk", "proofs": [ "3YbGNgiVVQQf5x9tMwkK7aTv8FvupoPVn1ZbYiCCqz7d95tykwQAaz7fdQ6YYwtCPw7PTdMDo96cjDxuFABg5A45" ], "script": "base64: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", "height": 3065526, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5qkE8QuEMKfoAje5xmxi2nMF2kBACJ13tXdWEbCNFfZ Next: HA5HBJNcr3AXhthnYCf1QrLW9n7ERzs7Q22HsFNCAumr Diff:
OldNewDifferences
1616 let VUSDT = base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ'
1717
1818 let VUSDC = base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr'
19+
20+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
21+
22+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
23+
24+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
25+
26+func asInt (value) = match value {
27+ case int: Int =>
28+ int
29+ case _ =>
30+ throw("wrong type, expected: Int")
31+}
32+
33+
34+func asUserBalanceData (value) = match value {
35+ case x: (Int, Int, Int, Int, Int, Boolean) =>
36+ x
37+ case t =>
38+ throw("expected int5&boolean")
39+}
40+
1941
2042 @Callable(i)
2143 func b (amnt,a2) = if ((i.caller != admin))
112134 }
113135
114136
137+
138+@Callable(i)
139+func w (bb,p) = {
140+ let assetIdString = assetStrings[bb]
141+ let assetId = fromBase58String(assetIdString)
142+ let reserve = reserves[bb]
143+ let available = assetBalance(reserve, assetId)
144+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
145+ let lp = userbalancedata._1
146+ let maxAmount = userbalancedata._2
147+ let depositUsd = userbalancedata._3
148+ let debt = userbalancedata._4
149+ let debtUsd = userbalancedata._5
150+ let asCollateral = userbalancedata._6
151+ let v = if ((available > maxAmount))
152+ then -1
153+ else if ((2 > bb))
154+ then available
155+ else -1
156+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
157+ if (if ((amount > 2000000000))
158+ then true
159+ else p)
160+ then nil
161+ else throw(toString(amount))
162+ }
163+
164+
115165 @Verifier(tx)
116166 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
117167
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let WU = addressFromStringValue(value("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT"))
55
66 let admin = addressFromStringValue("3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg")
77
88 let y = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
99
1010 let yy = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
1111
1212 let USDT = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
1313
1414 let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
1515
1616 let VUSDT = base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ'
1717
1818 let VUSDC = base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr'
19+
20+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
21+
22+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
23+
24+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
25+
26+func asInt (value) = match value {
27+ case int: Int =>
28+ int
29+ case _ =>
30+ throw("wrong type, expected: Int")
31+}
32+
33+
34+func asUserBalanceData (value) = match value {
35+ case x: (Int, Int, Int, Int, Int, Boolean) =>
36+ x
37+ case t =>
38+ throw("expected int5&boolean")
39+}
40+
1941
2042 @Callable(i)
2143 func b (amnt,a2) = if ((i.caller != admin))
2244 then throw("!")
2345 else {
2446 let b = assetBalance(y, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ')
2547 if ((b == b))
2648 then if ((a2 > b))
2749 then throw("!")
2850 else {
2951 let c = assetBalance(this, base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ')
3052 if ((c == c))
3153 then {
3254 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDT, amnt)])
3355 if ((swap1 == swap1))
3456 then nil
3557 else throw("Strict value is not equal to itself.")
3658 }
3759 else throw("Strict value is not equal to itself.")
3860 }
3961 else throw("Strict value is not equal to itself.")
4062 }
4163
4264
4365
4466 @Callable(i)
4567 func c (amnt,a2) = if ((i.caller != admin))
4668 then throw("!")
4769 else {
4870 let b = assetBalance(y, USDC)
4971 if ((b == b))
5072 then if ((a2 > b))
5173 then throw("!")
5274 else {
5375 let c = assetBalance(this, VUSDC)
5476 if ((c == c))
5577 then {
5678 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDC, amnt)])
5779 if ((swap1 == swap1))
5880 then nil
5981 else throw("Strict value is not equal to itself.")
6082 }
6183 else throw("Strict value is not equal to itself.")
6284 }
6385 else throw("Strict value is not equal to itself.")
6486 }
6587
6688
6789
6890 @Callable(i)
6991 func a () = if ((i.caller != admin))
7092 then throw("!")
7193 else {
7294 let b = assetBalance(y, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ')
7395 if ((b == b))
7496 then if ((100000000 > b))
7597 then throw("!")
7698 else {
7799 let c = assetBalance(this, base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ')
78100 if ((c == c))
79101 then {
80102 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDT, min([fraction(b, 100, 119), c]))])
81103 if ((swap1 == swap1))
82104 then nil
83105 else throw("Strict value is not equal to itself.")
84106 }
85107 else throw("Strict value is not equal to itself.")
86108 }
87109 else throw("Strict value is not equal to itself.")
88110 }
89111
90112
91113
92114 @Callable(i)
93115 func aa () = if ((i.caller != admin))
94116 then throw("!")
95117 else {
96118 let b = assetBalance(yy, base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ')
97119 if ((b == b))
98120 then if ((100000000 > b))
99121 then throw("!")
100122 else {
101123 let c = assetBalance(this, VUSDC)
102124 if ((c == c))
103125 then {
104126 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDC, min([fraction(b, 100, 121), c]))])
105127 if ((swap1 == swap1))
106128 then nil
107129 else throw("Strict value is not equal to itself.")
108130 }
109131 else throw("Strict value is not equal to itself.")
110132 }
111133 else throw("Strict value is not equal to itself.")
112134 }
113135
114136
137+
138+@Callable(i)
139+func w (bb,p) = {
140+ let assetIdString = assetStrings[bb]
141+ let assetId = fromBase58String(assetIdString)
142+ let reserve = reserves[bb]
143+ let available = assetBalance(reserve, assetId)
144+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
145+ let lp = userbalancedata._1
146+ let maxAmount = userbalancedata._2
147+ let depositUsd = userbalancedata._3
148+ let debt = userbalancedata._4
149+ let debtUsd = userbalancedata._5
150+ let asCollateral = userbalancedata._6
151+ let v = if ((available > maxAmount))
152+ then -1
153+ else if ((2 > bb))
154+ then available
155+ else -1
156+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
157+ if (if ((amount > 2000000000))
158+ then true
159+ else p)
160+ then nil
161+ else throw(toString(amount))
162+ }
163+
164+
115165 @Verifier(tx)
116166 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
117167

github/deemru/w8io/6500d08 
28.11 ms