tx · HA5HBJNcr3AXhthnYCf1QrLW9n7ERzs7Q22HsFNCAumr

3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg:  -0.01000000 Waves

2022.04.09 01:57 [3065534] smart account 3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg > SELF 0.00000000 Waves

{ "type": 13, "id": "HA5HBJNcr3AXhthnYCf1QrLW9n7ERzs7Q22HsFNCAumr", "fee": 1000000, "feeAssetId": null, "timestamp": 1649458685639, "version": 2, "chainId": 87, "sender": "3P8NCvaTq9KiTZRrtup3xndGHTpGBVGtVdg", "senderPublicKey": "7gibh6UPPJxgmRarFTbgdGeSNPsqP78GnojdyCRnspzk", "proofs": [ "2ht6tJ7bUzJ62A1FW6iHbavb9peQnAXbXsPgBmThX8tE1dxxK4ygBeWe4p6sw27K3pDmWtgMn3bzq9s5bgiu2e3N" ], "script": "base64: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", "height": 3065534, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BR13HHDsfjr94ST58d7WnMa3zCsttst537gSUctHPeAg Next: none Diff:
OldNewDifferences
136136
137137
138138 @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- }
139+func w (bb,p) = if ((i.caller != admin))
140+ then throw("!")
141+ else {
142+ let assetIdString = assetStrings[bb]
143+ let assetId = fromBase58String(assetIdString)
144+ let reserve = reserves[bb]
145+ let available = assetBalance(reserve, assetId)
146+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
147+ let lp = userbalancedata._1
148+ let maxAmount = userbalancedata._2
149+ let depositUsd = userbalancedata._3
150+ let debt = userbalancedata._4
151+ let debtUsd = userbalancedata._5
152+ let asCollateral = userbalancedata._6
153+ let v = if ((available > maxAmount))
154+ then -1
155+ else if ((2 > bb))
156+ then available
157+ else -1
158+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
159+ if (if ((amount > 2000000000))
160+ then true
161+ else p)
162+ then nil
163+ else throw(toString(amount))
164+ }
163165
164166
165167 @Verifier(tx)
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'
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
2222 let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
2323
2424 let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
2525
2626 func asInt (value) = match value {
2727 case int: Int =>
2828 int
2929 case _ =>
3030 throw("wrong type, expected: Int")
3131 }
3232
3333
3434 func asUserBalanceData (value) = match value {
3535 case x: (Int, Int, Int, Int, Int, Boolean) =>
3636 x
3737 case t =>
3838 throw("expected int5&boolean")
3939 }
4040
4141
4242 @Callable(i)
4343 func b (amnt,a2) = if ((i.caller != admin))
4444 then throw("!")
4545 else {
4646 let b = assetBalance(y, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ')
4747 if ((b == b))
4848 then if ((a2 > b))
4949 then throw("!")
5050 else {
5151 let c = assetBalance(this, base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ')
5252 if ((c == c))
5353 then {
5454 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDT, amnt)])
5555 if ((swap1 == swap1))
5656 then nil
5757 else throw("Strict value is not equal to itself.")
5858 }
5959 else throw("Strict value is not equal to itself.")
6060 }
6161 else throw("Strict value is not equal to itself.")
6262 }
6363
6464
6565
6666 @Callable(i)
6767 func c (amnt,a2) = if ((i.caller != admin))
6868 then throw("!")
6969 else {
7070 let b = assetBalance(y, USDC)
7171 if ((b == b))
7272 then if ((a2 > b))
7373 then throw("!")
7474 else {
7575 let c = assetBalance(this, VUSDC)
7676 if ((c == c))
7777 then {
7878 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDC, amnt)])
7979 if ((swap1 == swap1))
8080 then nil
8181 else throw("Strict value is not equal to itself.")
8282 }
8383 else throw("Strict value is not equal to itself.")
8484 }
8585 else throw("Strict value is not equal to itself.")
8686 }
8787
8888
8989
9090 @Callable(i)
9191 func a () = if ((i.caller != admin))
9292 then throw("!")
9393 else {
9494 let b = assetBalance(y, base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ')
9595 if ((b == b))
9696 then if ((100000000 > b))
9797 then throw("!")
9898 else {
9999 let c = assetBalance(this, base58'2tVLdi5fQXk2JcuDAojhctnDp5B5PZhNMyj5GUpeC3tZ')
100100 if ((c == c))
101101 then {
102102 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDT, min([fraction(b, 100, 119), c]))])
103103 if ((swap1 == swap1))
104104 then nil
105105 else throw("Strict value is not equal to itself.")
106106 }
107107 else throw("Strict value is not equal to itself.")
108108 }
109109 else throw("Strict value is not equal to itself.")
110110 }
111111
112112
113113
114114 @Callable(i)
115115 func aa () = if ((i.caller != admin))
116116 then throw("!")
117117 else {
118118 let b = assetBalance(yy, base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ')
119119 if ((b == b))
120120 then if ((100000000 > b))
121121 then throw("!")
122122 else {
123123 let c = assetBalance(this, VUSDC)
124124 if ((c == c))
125125 then {
126126 let swap1 = invoke(WU, "redeemAtokens", nil, [AttachedPayment(VUSDC, min([fraction(b, 100, 121), c]))])
127127 if ((swap1 == swap1))
128128 then nil
129129 else throw("Strict value is not equal to itself.")
130130 }
131131 else throw("Strict value is not equal to itself.")
132132 }
133133 else throw("Strict value is not equal to itself.")
134134 }
135135
136136
137137
138138 @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- }
139+func w (bb,p) = if ((i.caller != admin))
140+ then throw("!")
141+ else {
142+ let assetIdString = assetStrings[bb]
143+ let assetId = fromBase58String(assetIdString)
144+ let reserve = reserves[bb]
145+ let available = assetBalance(reserve, assetId)
146+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
147+ let lp = userbalancedata._1
148+ let maxAmount = userbalancedata._2
149+ let depositUsd = userbalancedata._3
150+ let debt = userbalancedata._4
151+ let debtUsd = userbalancedata._5
152+ let asCollateral = userbalancedata._6
153+ let v = if ((available > maxAmount))
154+ then -1
155+ else if ((2 > bb))
156+ then available
157+ else -1
158+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
159+ if (if ((amount > 2000000000))
160+ then true
161+ else p)
162+ then nil
163+ else throw(toString(amount))
164+ }
163165
164166
165167 @Verifier(tx)
166168 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
167169

github/deemru/w8io/6500d08 
40.68 ms