2022.04.21 17:26 [3083747] smart account 3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt > SELF 0.00000000 Waves

{ "type": 13, "id": "AKPWiXqmcf3WnreTFS4P6K1u2LAjw2uYV7ubm5kbR5tq", "fee": 1400000, "feeAssetId": null, "timestamp": 1650551213024, "version": 2, "chainId": 87, "sender": "3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt", "senderPublicKey": "FJsKqbdyEBXkB3CaqztmHpUYm7LXnHbbevLfZ1uvK7HJ", "proofs": [ "5kWTGRh8kFD8pCAXukatE64r7CN3TipoomL2H36wRz1KgoPQfhr8ibtGSYWi7zuhevh9pgchGhFmDR4C8hLiGJZW" ], "script": "base64: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Nzc3MTg2MQAAAAJfNQQAAAAIdXNlckRlYnQIBQAAAAskdDAxNzc3MTg2MQAAAAJfNAQAAAAMdXNlckFzc2V0VXNkCAUAAAALJHQwMTc3NzE4NjEAAAACXzMEAAAACXVzZXJBc3NldAgFAAAACyR0MDE3NzcxODYxAAAAAl8yBAAAAAZpZ25vcmUIBQAAAAskdDAxNzc3MTg2MQAAAAJfMQkABRQAAAACBQAAAAx1c2VyQXNzZXRVc2QFAAAAC3VzZXJEZWJ0VXNkCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACNTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZgEAAAAMZ2V0SW50T3JaZXJvAAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAAAAAAAAAAQAAAAxnZXRWaXJlc0luZm8AAAABAAAABndhbGxldAQAAAARdmlyZXNXYXZlc0JhbGFuY2UJAQAAAA5nZXRVc2VyQmFsYW5jZQAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAABF2aXJlc1dhdmVzQWRkcmVzcwQAAAAQdmlyZXNVc2RuQmFsYW5jZQkBAAAADmdldFVzZXJCYWxhbmNlAAAAAgUAAAAGd2FsbGV0CQEAAAAHQWRkcmVzcwAAAAEFAAAAEHZpcmVzVXNkbkFkZHJlc3MEAAAAEHZpcmVzVXNkdEJhbGFuY2UJAQAAAA5nZXRVc2VyQmFsYW5jZQAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAABB2aXJlc1VzZHRBZGRyZXNzBAAAABB2aXJlc1VzZGNCYWxhbmNlCQEAAAAOZ2V0VXNlckJhbGFuY2UAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQdmlyZXNVc2RjQWRkcmVzcwQAAAAPdmlyZXNCdGNCYWxhbmNlCQEAAAAOZ2V0VXNlckJhbGFuY2UAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAPdmlyZXNCdGNBZGRyZXNzBAAAAA92aXJlc0V0aEJhbGFu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", "height": 3083747, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 32T5tnahievMR9ASf7d6yiTGXrRaoMC6nijbdmwrq1p8 Next: 5SFCVzTbYTsovHutr7wS7JcAbmWPPRVDRMmfnAicsfS4 Diff:
OldNewDifferences
108108 let collateralAsset = valueOrErrorMessage(getString(addressFromStringValue(reserveAddress), "assetId"), "no assetId in cr")
109109 let factor = valueOrElse(getInteger(Address(viresConfigAddress), (collateralAsset + "_LiquidationFractionFactor")), 2)
110110 if ((userAsset >= userDebt))
111- then -1
111+ then throw("can't liquidate debt of asset of positive saldo")
112112 else {
113113 let liquidateDebtAmount = min([fraction((userDebt - userAsset), 10, 21), 20000000000])
114114 if ((100000 > liquidateDebtAmount))
115- then -2
115+ then throw(("liquidateDebtAmount is too low: " + toString(liquidateDebtAmount)))
116116 else {
117117 let liqInv = invoke(Address(viresMainAddress), "transferDebt", [borrowAddress, reserveAddress, victimAddress, liquidateDebtAmount], nil)
118118 if ((liqInv == liqInv))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let viresMainAddress = base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'
55
66 let viresConfigAddress = base58'3P2rJGfb5MbeivZNSqdVmsD1Y2Mz8y6Jr3Z'
77
88 let viresWavesAddress = base58'3P8G747fnB1DTQ4d5uD114vjAaeezCW4FaM'
99
1010 let viresUsdnAddress = base58'3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce'
1111
1212 let viresUsdtAddress = base58'3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR'
1313
1414 let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
1515
1616 let viresBtcAddress = base58'3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd'
1717
1818 let viresEthAddress = base58'3PPdeWwrzaxqgr6BuReoF3sWfxW8SYv743D'
1919
2020 let viresEurnAddress = base58'3PBjqiMwwag72VWUtHNnVrxTBrNK8D7bVcN'
2121
2222 let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
2323
2424 func getAmountFromUserBalance (v) = match v {
2525 case x: (Int, Int, Int, Int, Int, Boolean) =>
2626 x._2
2727 case t =>
2828 throw("#err")
2929 }
3030
3131
3232 func w_usdc () = {
3333 let scBalance = assetBalance(Address(viresUsdcAddress), USDC)
3434 if ((1 > scBalance))
3535 then -1
3636 else {
3737 let userBalance = getAmountFromUserBalance(invoke(Address(viresUsdcAddress), "userBalance", [toString(this)], nil))
3838 if ((1 > userBalance))
3939 then -2
4040 else {
4141 let amount = if ((scBalance > userBalance))
4242 then -1
4343 else scBalance
4444 let inv = invoke(Address(viresMainAddress), "withdraw", [toBase58String(USDC), amount], nil)
4545 if ((inv == inv))
4646 then 1
4747 else throw("Strict value is not equal to itself.")
4848 }
4949 }
5050 }
5151
5252
5353 func asUserBalance (value) = match value {
5454 case x: (Int, Int, Int, Int, Int, Boolean) =>
5555 x
5656 case t =>
5757 throw("expected int5&boolean")
5858 }
5959
6060
6161 func getUserBalance (victimAddress,borrowAddress) = {
6262 let i1 = invoke(borrowAddress, "userBalance", [victimAddress], nil)
6363 if ((i1 == i1))
6464 then {
6565 let $t017771861 = asUserBalance(i1)
6666 if (($t017771861 == $t017771861))
6767 then {
6868 let userDebtUsd = $t017771861._5
6969 let userDebt = $t017771861._4
7070 let userAssetUsd = $t017771861._3
7171 let userAsset = $t017771861._2
7272 let ignore = $t017771861._1
7373 $Tuple2(userAssetUsd, userDebtUsd)
7474 }
7575 else throw("Strict value is not equal to itself.")
7676 }
7777 else throw("Strict value is not equal to itself")
7878 }
7979
8080
8181 func getIntOrZero (key) = valueOrElse(getInteger(this, key), 0)
8282
8383
8484 func getViresInfo (wallet) = {
8585 let viresWavesBalance = getUserBalance(wallet, Address(viresWavesAddress))
8686 let viresUsdnBalance = getUserBalance(wallet, Address(viresUsdnAddress))
8787 let viresUsdtBalance = getUserBalance(wallet, Address(viresUsdtAddress))
8888 let viresUsdcBalance = getUserBalance(wallet, Address(viresUsdcAddress))
8989 let viresBtcBalance = getUserBalance(wallet, Address(viresBtcAddress))
9090 let viresEthBalance = getUserBalance(wallet, Address(viresEthAddress))
9191 let viresEurnBalance = getUserBalance(wallet, Address(viresEurnAddress))
9292 [viresWavesBalance._1, viresUsdnBalance._1, viresUsdtBalance._1, viresUsdcBalance._1, viresBtcBalance._1, viresEthBalance._1, viresEurnBalance._1, viresWavesBalance._2, viresUsdnBalance._2, viresUsdtBalance._2, viresUsdcBalance._2, viresBtcBalance._2, viresEthBalance._2, viresEurnBalance._2]
9393 }
9494
9595
9696 func f_liquidate (borrowAddress,reserveAddress,victimAddress) = {
9797 let i1 = invoke(addressFromStringValue(borrowAddress), "userBalance", [victimAddress], nil)
9898 if ((i1 == i1))
9999 then {
100100 let $t031223206 = asUserBalance(i1)
101101 if (($t031223206 == $t031223206))
102102 then {
103103 let userDebtUsd = $t031223206._5
104104 let userDebt = $t031223206._4
105105 let userAssetUsd = $t031223206._3
106106 let userAsset = $t031223206._2
107107 let ignore = $t031223206._1
108108 let collateralAsset = valueOrErrorMessage(getString(addressFromStringValue(reserveAddress), "assetId"), "no assetId in cr")
109109 let factor = valueOrElse(getInteger(Address(viresConfigAddress), (collateralAsset + "_LiquidationFractionFactor")), 2)
110110 if ((userAsset >= userDebt))
111- then -1
111+ then throw("can't liquidate debt of asset of positive saldo")
112112 else {
113113 let liquidateDebtAmount = min([fraction((userDebt - userAsset), 10, 21), 20000000000])
114114 if ((100000 > liquidateDebtAmount))
115- then -2
115+ then throw(("liquidateDebtAmount is too low: " + toString(liquidateDebtAmount)))
116116 else {
117117 let liqInv = invoke(Address(viresMainAddress), "transferDebt", [borrowAddress, reserveAddress, victimAddress, liquidateDebtAmount], nil)
118118 if ((liqInv == liqInv))
119119 then 0
120120 else throw(((((("can't liquidate. userAsset: " + toString(userAsset)) + "; userDebt: ") + toString(userDebt)) + "; liquidateDebtAmount: ") + toString(liquidateDebtAmount)))
121121 }
122122 }
123123 }
124124 else throw("Strict value is not equal to itself.")
125125 }
126126 else throw("Strict value is not equal to itself")
127127 }
128128
129129
130130 @Callable(i)
131131 func liquidate (borrowAddress,reserveAddress,victimAddress) = {
132132 let admin = "3P6gGsVQbD2xgmaNxN7Rj3arohPsBxvo5GC"
133133 if ((toString(i.caller) != admin))
134134 then throw("only admin can do")
135135 else if ((f_liquidate(borrowAddress, reserveAddress, victimAddress) == 10))
136136 then throw("!")
137137 else nil
138138 }
139139
140140
141141
142142 @Callable(i)
143143 func usdc_v2 () = if ((w_usdc() == 10))
144144 then throw("!")
145145 else nil
146146
147147

github/deemru/w8io/786bc32 
59.54 ms