tx · 6so27X2f4ZTMaVTuawEGW1ncH76rozfp6wXXpKMPGxws

3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf:  -0.01000000 Waves

2022.04.06 21:09 [3062332] smart account 3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf > SELF 0.00000000 Waves

{ "type": 13, "id": "6so27X2f4ZTMaVTuawEGW1ncH76rozfp6wXXpKMPGxws", "fee": 1000000, "feeAssetId": null, "timestamp": 1649268657188, "version": 1, "sender": "3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf", "senderPublicKey": "CKXSVbhbLLxjsym2QuHcyNpRSWDPcxMrxRYNqmawQBP5", "proofs": [ "3QHRTB6ATDupNhuGgVmj9FzwmHn7EtehL37CX211SZkdVrtNXPoiiAZ9R4SNUMyYXkp7XCPswQet12zMEkLrJCjb" ], "script": "base64:AAIFAAAAAAAAAAkIAhIAEgMKAQEAAAAFAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIihJbnQsIEludCwgSW50LCBJbnQsIEludCwgQm9vbGVhbikEAAAAAXgFAAAAByRtYXRjaDAFAAAAAXgEAAAAAXQFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAid3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludDUmQm9vbGVhbgAAAAAEbWFpbgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBWnY5dGdLMVBYN2RLUjdiNGtjaHE1cWRwVVMzRzVzWVQAAAAADGFzc2V0U3RyaW5ncwkABEwAAAACAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgkABEwAAAACAgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgkABEwAAAACAgAAACxERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAUAAAADbmlsAAAAAAhyZXNlcnZlcwkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEdDa3JIQnhGTWk3dHoxeHFueGdCcGVOdm41RTRNNGc4UwkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEN3RlhTcTh2ajhpS2l0QTV6cnJMUmJ1cWVoZm1pbXBjZQUAAAADbmlsAAAAAgAAAAFpAQAAAAt3aXRoZHJhd0FsbAAAAAAEAAAAB2Ftb3VudDAJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEdGhpcwIAAAAId2l0aGRyYXcJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBQAAAANuaWwEAAAAB2Ftb3VudDEJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEdGhpcwIAAAAId2l0aGRyYXcJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIJAABkAAAAAgUAAAAHYW1vdW50MAUAAAAHYW1vdW50MQAAAAAAAA9CQAkABRQAAAACBQAAAANuaWwJAABkAAAAAgUAAAAHYW1vdW50MAUAAAAHYW1vdW50MQkAAAIAAAABAgAAABFub3RoaW5nIHdpdGhkcmF3bgAAAAFpAQAAAAh3aXRoZHJhdwAAAAEAAAAFYXNzZXQEAAAADWFzc2V0SWRTdHJpbmcJAAGRAAAAAgUAAAAMYXNzZXRTdHJpbmdzBQAAAAVhc3NldAQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAA1hc3NldElkU3RyaW5nBAAAAAdyZXNlcnZlCQABkQAAAAIFAAAACHJlc2VydmVzBQAAAAVhc3NldAQAAAAJYXZhaWxhYmxlCQAD8AAAAAIFAAAAB3Jlc2VydmUFAAAAB2Fzc2V0SWQEAAAAD3VzZXJiYWxhbmNlZGF0YQkBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQkAA/wAAAAEBQAAAAdyZXNlcnZlAgAAAAt1c2VyQmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMFAAAAA25pbAUAAAADbmlsBAAAAAJscAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMQQAAAAJbWF4QW1vdW50CAUAAAAPdXNlcmJhbGFuY2VkYXRhAAAAAl8yBAAAAApkZXBvc2l0VXNkCAUAAAAPdXNlcmJhbGFuY2VkYXRhAAAAAl8zBAAAAARkZWJ0CAUAAAAPdXNlcmJhbGFuY2VkYXRhAAAAAl80BAAAAAdkZWJ0VXNkCAUAAAAPdXNlcmJhbGFuY2VkYXRhAAAAAl81BAAAAAxhc0NvbGxhdGVyYWwIBQAAAA91c2VyYmFsYW5jZWRhdGEAAAACXzYEAAAAAXYDCQAAZgAAAAIFAAAACWF2YWlsYWJsZQUAAAAJbWF4QW1vdW50AP//////////BQAAAAlhdmFpbGFibGUEAAAABmFtb3VudAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAARtYWluAgAAAAh3aXRoZHJhdwkABEwAAAACBQAAAA1hc3NldElkU3RyaW5nCQAETAAAAAIFAAAAAXYFAAAAA25pbAUAAAADbmlsCQAFFAAAAAIFAAAAA25pbAUAAAAGYW1vdW50AAAAAPgEoHs=", "chainId": 87, "height": 3062332, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3N3SQuYKpu2YnQuh3LmX3q24e4UQacSkbKjuHxuaUMR9 Next: 2KZNn4SvCY6wDqRsyMbSk5DjkwyRH1yDzTAtcub97Eoc Diff:
OldNewDifferences
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
22-let assetIdStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
22+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
2323
24-let assetIdStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
25-
26-let lpAssetIdString = "FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr"
27-
28-let assetIdUSDC = valueOrErrorMessage(fromBase58String(assetIdStringUSDC), "invalid assetId")
29-
30-let assetIdUSDT = valueOrErrorMessage(fromBase58String(assetIdStringUSDT), "invalid assetId")
31-
32-let lpAssetId = valueOrErrorMessage(fromBase58String(lpAssetIdString), "invalid lpAssetId")
33-
34-let reserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
24+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
3525
3626 @Callable(i)
37-func replenishWithAtoken () = {
38- let a = invoke(main, "replenishWithAtoken", nil, i.payments)
39- if ((a == a))
40- then {
41- let available = assetBalance(reserve, assetIdUSDC)
42- let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
43- let lp = userbalancedata._1
44- let maxAmount = userbalancedata._2
45- let depositUsd = userbalancedata._3
46- let debt = userbalancedata._4
47- let debtUsd = userbalancedata._5
48- let asCollateral = userbalancedata._6
49- let v = if ((available > maxAmount))
50- then -1
51- else available
52- let amount = asInt(invoke(main, "withdraw", [assetIdStringUSDC, v], nil))
53- if ((amount > 1000000))
54- then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetIdUSDC)]
55- else throw(("zero: " + toString(amount)))
56- }
57- else throw("Strict value is not equal to itself.")
27+func withdrawAll () = {
28+ let amount0 = asInt(invoke(this, "withdraw", [0], nil))
29+ let amount1 = asInt(invoke(this, "withdraw", [1], nil))
30+ if (((amount0 + amount1) > 1000000))
31+ then $Tuple2(nil, (amount0 + amount1))
32+ else throw("nothing withdrawn")
5833 }
5934
6035
6136
6237 @Callable(i)
63-func withdraw (assetIdString) = {
38+func withdraw (asset) = {
39+ let assetIdString = assetStrings[asset]
6440 let assetId = fromBase58String(assetIdString)
41+ let reserve = reserves[asset]
6542 let available = assetBalance(reserve, assetId)
6643 let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
6744 let lp = userbalancedata._1
7451 then -1
7552 else available
7653 let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
77- if ((amount > 1000000))
78- then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetId)]
79- else throw(toString(amount))
54+ $Tuple2(nil, amount)
8055 }
8156
8257
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asInt (value) = match value {
55 case int: Int =>
66 int
77 case _ =>
88 throw("wrong type, expected: Int")
99 }
1010
1111
1212 func asUserBalanceData (value) = match value {
1313 case x: (Int, Int, Int, Int, Int, Boolean) =>
1414 x
1515 case t =>
1616 throw("wrong type, expected: Int5&Boolean")
1717 }
1818
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
22-let assetIdStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
22+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
2323
24-let assetIdStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
25-
26-let lpAssetIdString = "FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr"
27-
28-let assetIdUSDC = valueOrErrorMessage(fromBase58String(assetIdStringUSDC), "invalid assetId")
29-
30-let assetIdUSDT = valueOrErrorMessage(fromBase58String(assetIdStringUSDT), "invalid assetId")
31-
32-let lpAssetId = valueOrErrorMessage(fromBase58String(lpAssetIdString), "invalid lpAssetId")
33-
34-let reserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
24+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
3525
3626 @Callable(i)
37-func replenishWithAtoken () = {
38- let a = invoke(main, "replenishWithAtoken", nil, i.payments)
39- if ((a == a))
40- then {
41- let available = assetBalance(reserve, assetIdUSDC)
42- let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
43- let lp = userbalancedata._1
44- let maxAmount = userbalancedata._2
45- let depositUsd = userbalancedata._3
46- let debt = userbalancedata._4
47- let debtUsd = userbalancedata._5
48- let asCollateral = userbalancedata._6
49- let v = if ((available > maxAmount))
50- then -1
51- else available
52- let amount = asInt(invoke(main, "withdraw", [assetIdStringUSDC, v], nil))
53- if ((amount > 1000000))
54- then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetIdUSDC)]
55- else throw(("zero: " + toString(amount)))
56- }
57- else throw("Strict value is not equal to itself.")
27+func withdrawAll () = {
28+ let amount0 = asInt(invoke(this, "withdraw", [0], nil))
29+ let amount1 = asInt(invoke(this, "withdraw", [1], nil))
30+ if (((amount0 + amount1) > 1000000))
31+ then $Tuple2(nil, (amount0 + amount1))
32+ else throw("nothing withdrawn")
5833 }
5934
6035
6136
6237 @Callable(i)
63-func withdraw (assetIdString) = {
38+func withdraw (asset) = {
39+ let assetIdString = assetStrings[asset]
6440 let assetId = fromBase58String(assetIdString)
41+ let reserve = reserves[asset]
6542 let available = assetBalance(reserve, assetId)
6643 let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
6744 let lp = userbalancedata._1
6845 let maxAmount = userbalancedata._2
6946 let depositUsd = userbalancedata._3
7047 let debt = userbalancedata._4
7148 let debtUsd = userbalancedata._5
7249 let asCollateral = userbalancedata._6
7350 let v = if ((available > maxAmount))
7451 then -1
7552 else available
7653 let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
77- if ((amount > 1000000))
78- then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetId)]
79- else throw(toString(amount))
54+ $Tuple2(nil, amount)
8055 }
8156
8257

github/deemru/w8io/6500d08 
41.52 ms