tx · 9mfFUYgWGh9Z2fEpF7GXrA8RAco5RGkqBMkLQTrZ7GzF

3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt:  -0.01400000 Waves

2022.04.12 16:56 [3070766] smart account 3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt > SELF 0.00000000 Waves

{ "type": 13, "id": "9mfFUYgWGh9Z2fEpF7GXrA8RAco5RGkqBMkLQTrZ7GzF", "fee": 1400000, "feeAssetId": null, "timestamp": 1649771793022, "version": 2, "chainId": 87, "sender": "3PC51qgNQz4xx7m1DhLdCDYESaeNKT6zeFt", "senderPublicKey": "FJsKqbdyEBXkB3CaqztmHpUYm7LXnHbbevLfZ1uvK7HJ", "proofs": [ "dJdx65neB2cpJjmeh3F4ipeCPV14T8GRj2b2gDz9wmJp6c1ytMx8Wxrph84ukAPwmCNq9hXPgNV3kiMuBh4sQZL" ], "script": "base64:AAIFAAAAAAAAAAkIAhIFCgMICAgAAAANAQAAAA1hc1VzZXJCYWxhbmNlAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIihJbnQsIEludCwgSW50LCBJbnQsIEludCwgQm9vbGVhbikEAAAAAXgFAAAAByRtYXRjaDAFAAAAAXgEAAAAAXQFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAVZXhwZWN0ZWQgaW50NSZib29sZWFuAQAAAAxnZXRJbnRPclplcm8AAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAAAAAAAEXVzZXJIZWFsdGhBZGRyZXNzAQAAABoBV17BlhkwyaJDeEZp1ibW8ea4Q9C99kweuAAAAAARdmlyZXNXYXZlc0FkZHJlc3MBAAAAGgFXRXLyV5c3rLEAbEyt8RBaAQoEWhMK8UJuAAAAABB2aXJlc1VzZG5BZGRyZXNzAQAAABoBV3i6vmOOmCmDx72IvybGjUnZwW8deG2WHwAAAAAQdmlyZXNVc2R0QWRkcmVzcwEAAAAaAVeMM36J//6U2h3+7DremwQmEvPBX8RtDgwAAAAAEHZpcmVzVXNkY0FkZHJlc3MBAAAAGgFXnJHW61bfY7G/f+SNMyTkHKjj+EDnO+0DAAAAAA92aXJlc0J0Y0FkZHJlc3MBAAAAGgFXWb3kZaqnw1aXfzPNvm3ZDvyHSNeLalREAAAAAA92aXJlc0V0aEFkZHJlc3MBAAAAGgFX7g/VDwvpXnjDuve96K7n0Qn5e4lEg/BMAAAAABB2aXJlc0V1cm5BZGRyZXNzAQAAABoBV2uaKk5CKTiQqQXuYtbeSpkxTtRpWxni4wEAAAAJZ2V0U3VwcGx5AAAAAgAAAAZ3YWxsZXQAAAAFdmlyZXMEAAAAA2tleQkAASwAAAACBQAAAAZ3YWxsZXQCAAAADl9hVG9rZW5CYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABXZpcmVzBQAAAANrZXkAAAAAAAAAAAABAAAACWdldEJvcnJvdwAAAAIAAAAGd2FsbGV0AAAABXZpcmVzBAAAAANrZXkJAAEsAAAAAgUAAAAGd2FsbGV0AgAAAAVfZGVidAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAV2aXJlcwUAAAADa2V5AAAAAAAAAAAAAQAAAAxnZXRWaXJlc0luZm8AAAABAAAABndhbGxldAQAAAALc3VwcGx5V2F2ZXMJAQAAAAlnZXRTdXBwbHkAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAARdmlyZXNXYXZlc0FkZHJlc3MEAAAACnN1cHBseVVzZG4JAQAAAAlnZXRTdXBwbHkAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQdmlyZXNVc2RuQWRkcmVzcwQAAAAKc3VwcGx5VXNkdAkBAAAACWdldFN1cHBseQAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAABB2aXJlc1VzZHRBZGRyZXNzBAAAAApzdXBwbHlVc2RjCQEAAAAJZ2V0U3VwcGx5AAAAAgUAAAAGd2FsbGV0CQEAAAAHQWRkcmVzcwAAAAEFAAAAEHZpcmVzVXNkY0FkZHJlc3MEAAAACXN1cHBseUJ0YwkBAAAACWdldFN1cHBseQAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAAA92aXJlc0J0Y0FkZHJlc3MEAAAACXN1cHBseUV0aAkBAAAACWdldFN1cHBseQAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAAA92aXJlc0V0aEFkZHJlc3MEAAAACnN1cHBseUV1cm4JAQAAAAlnZXRTdXBwbHkAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQdmlyZXNFdXJuQWRkcmVzcwQAAAALYm9ycm93V2F2ZXMJAQAAAAlnZXRCb3Jyb3cAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAARdmlyZXNXYXZlc0FkZHJlc3MEAAAACmJvcnJvd1VzZG4JAQAAAAlnZXRCb3Jyb3cAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQdmlyZXNVc2RuQWRkcmVzcwQAAAAKYm9ycm93VXNkdAkBAAAACWdldEJvcnJvdwAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAABB2aXJlc1VzZHRBZGRyZXNzBAAAAApib3Jyb3dVc2RjCQEAAAAJZ2V0Qm9ycm93AAAAAgUAAAAGd2FsbGV0CQEAAAAHQWRkcmVzcwAAAAEFAAAAEHZpcmVzVXNkY0FkZHJlc3MEAAAACWJvcnJvd0J0YwkBAAAACWdldEJvcnJvdwAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAAA92aXJlc0J0Y0FkZHJlc3MEAAAACWJvcnJvd0V0aAkBAAAACWdldEJvcnJvdwAAAAIFAAAABndhbGxldAkBAAAAB0FkZHJlc3MAAAABBQAAAA92aXJlc0V0aEFkZHJlc3MEAAAACmJvcnJvd0V1cm4JAQAAAAlnZXRCb3Jyb3cAAAACBQAAAAZ3YWxsZXQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQdmlyZXNFdXJuQWRkcmVzcwkABEwAAAACBQAAAAtzdXBwbHlXYXZlcwkABEwAAAACBQAAAApzdXBwbHlVc2RuCQAETAAAAAIFAAAACnN1cHBseVVzZHQJAARMAAAAAgUAAAAKc3VwcGx5VXNkYwkABEwAAAACBQAAAAlzdXBwbHlCdGMJAARMAAAAAgUAAAAJc3VwcGx5RXRoCQAETAAAAAIFAAAACnN1cHBseUV1cm4JAARMAAAAAgUAAAALYm9ycm93V2F2ZXMJAARMAAAAAgUAAAAKYm9ycm93VXNkbgkABEwAAAACBQAAAApib3Jyb3dVc2R0CQAETAAAAAIFAAAACmJvcnJvd1VzZGMJAARMAAAAAgUAAAAJYm9ycm93QnRjCQAETAAAAAIFAAAACWJvcnJvd0V0aAkABEwAAAACBQAAAApib3Jyb3dFdXJuBQAAAANuaWwAAAABAAAAAWkBAAAACWxpcXVpZGF0ZQAAAAMAAAANYm9ycm93QWRkcmVzcwAAAA5yZXNlcnZlQWRkcmVzcwAAAA12aWN0aW1BZGRyZXNzBAAAAAJpMQkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA5yZXNlcnZlQWRkcmVzcwIAAAALdXNlckJhbGFuY2UJAARMAAAAAgUAAAANdmljdGltQWRkcmVzcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmkxBQAAAAJpMQQAAAALJHQwMjQxODI1MDIJAQAAAA1hc1VzZXJCYWxhbmNlAAAAAQUAAAACaTEDCQAAAAAAAAIFAAAACyR0MDI0MTgyNTAyBQAAAAskdDAyNDE4MjUwMgQAAAALdXNlckRlYnRVc2QIBQAAAAskdDAyNDE4MjUwMgAAAAJfNQQAAAAIdXNlckRlYnQIBQAAAAskdDAyNDE4MjUwMgAAAAJfNAQAAAAMdXNlckFzc2V0VXNkCAUAAAALJHQwMjQxODI1MDIAAAACXzMEAAAACXVzZXJBc3NldAgFAAAACyR0MDI0MTgyNTAyAAAAAl8yBAAAAAZpZ25vcmUIBQAAAAskdDAyNDE4MjUwMgAAAAJfMQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAt1c2VyQXNzZXQ6IAkAAaQAAAABBQAAAAl1c2VyQXNzZXQCAAAADDsgdXNlckRlYnQ6IAkAAaQAAAABBQAAAAh1c2VyRGVidAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAjU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYAAAAA/d4K0w==", "height": 3070766, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ADh1rKV9bTADdAaHyQ4RxJWFAx2G5UbxRFaHWGtaNZ7y Next: 5BWkyPZ9iTsFNyT4DM1gc2rZ45tmh6UiBUiFdggkJiTn Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func asUserBalance (value) = match value {
5+ case x: (Int, Int, Int, Int, Int, Boolean) =>
6+ x
7+ case t =>
8+ throw("expected int5&boolean")
9+}
10+
11+
412 func getIntOrZero (key) = valueOrElse(getInteger(this, key), 0)
513
614
5159 }
5260
5361
62+@Callable(i)
63+func liquidate (borrowAddress,reserveAddress,victimAddress) = {
64+ let i1 = invoke(addressFromStringValue(reserveAddress), "userBalance", [victimAddress], nil)
65+ if ((i1 == i1))
66+ then {
67+ let $t024182502 = asUserBalance(i1)
68+ if (($t024182502 == $t024182502))
69+ then {
70+ let userDebtUsd = $t024182502._5
71+ let userDebt = $t024182502._4
72+ let userAssetUsd = $t024182502._3
73+ let userAsset = $t024182502._2
74+ let ignore = $t024182502._1
75+ throw(((("userAsset: " + toString(userAsset)) + "; userDebt: ") + toString(userDebt)))
76+ }
77+ else throw("Strict value is not equal to itself.")
78+ }
79+ else throw("Strict value is not equal to itself")
80+ }
81+
5482
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func asUserBalance (value) = match value {
5+ case x: (Int, Int, Int, Int, Int, Boolean) =>
6+ x
7+ case t =>
8+ throw("expected int5&boolean")
9+}
10+
11+
412 func getIntOrZero (key) = valueOrElse(getInteger(this, key), 0)
513
614
715 let userHealthAddress = base58'3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT'
816
917 let viresWavesAddress = base58'3P8G747fnB1DTQ4d5uD114vjAaeezCW4FaM'
1018
1119 let viresUsdnAddress = base58'3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce'
1220
1321 let viresUsdtAddress = base58'3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR'
1422
1523 let viresUsdcAddress = base58'3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S'
1624
1725 let viresBtcAddress = base58'3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd'
1826
1927 let viresEthAddress = base58'3PPdeWwrzaxqgr6BuReoF3sWfxW8SYv743D'
2028
2129 let viresEurnAddress = base58'3PBjqiMwwag72VWUtHNnVrxTBrNK8D7bVcN'
2230
2331 func getSupply (wallet,vires) = {
2432 let key = (wallet + "_aTokenBalance")
2533 valueOrElse(getInteger(vires, key), 0)
2634 }
2735
2836
2937 func getBorrow (wallet,vires) = {
3038 let key = (wallet + "_debt")
3139 valueOrElse(getInteger(vires, key), 0)
3240 }
3341
3442
3543 func getViresInfo (wallet) = {
3644 let supplyWaves = getSupply(wallet, Address(viresWavesAddress))
3745 let supplyUsdn = getSupply(wallet, Address(viresUsdnAddress))
3846 let supplyUsdt = getSupply(wallet, Address(viresUsdtAddress))
3947 let supplyUsdc = getSupply(wallet, Address(viresUsdcAddress))
4048 let supplyBtc = getSupply(wallet, Address(viresBtcAddress))
4149 let supplyEth = getSupply(wallet, Address(viresEthAddress))
4250 let supplyEurn = getSupply(wallet, Address(viresEurnAddress))
4351 let borrowWaves = getBorrow(wallet, Address(viresWavesAddress))
4452 let borrowUsdn = getBorrow(wallet, Address(viresUsdnAddress))
4553 let borrowUsdt = getBorrow(wallet, Address(viresUsdtAddress))
4654 let borrowUsdc = getBorrow(wallet, Address(viresUsdcAddress))
4755 let borrowBtc = getBorrow(wallet, Address(viresBtcAddress))
4856 let borrowEth = getBorrow(wallet, Address(viresEthAddress))
4957 let borrowEurn = getBorrow(wallet, Address(viresEurnAddress))
5058 [supplyWaves, supplyUsdn, supplyUsdt, supplyUsdc, supplyBtc, supplyEth, supplyEurn, borrowWaves, borrowUsdn, borrowUsdt, borrowUsdc, borrowBtc, borrowEth, borrowEurn]
5159 }
5260
5361
62+@Callable(i)
63+func liquidate (borrowAddress,reserveAddress,victimAddress) = {
64+ let i1 = invoke(addressFromStringValue(reserveAddress), "userBalance", [victimAddress], nil)
65+ if ((i1 == i1))
66+ then {
67+ let $t024182502 = asUserBalance(i1)
68+ if (($t024182502 == $t024182502))
69+ then {
70+ let userDebtUsd = $t024182502._5
71+ let userDebt = $t024182502._4
72+ let userAssetUsd = $t024182502._3
73+ let userAsset = $t024182502._2
74+ let ignore = $t024182502._1
75+ throw(((("userAsset: " + toString(userAsset)) + "; userDebt: ") + toString(userDebt)))
76+ }
77+ else throw("Strict value is not equal to itself.")
78+ }
79+ else throw("Strict value is not equal to itself")
80+ }
81+
5482

github/deemru/w8io/6500d08 
38.70 ms