tx · 57qQiVVruVsJXczUEC8tcTfwx3g9E8kGzb4cuBSc2EaV

3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW:  -0.01000000 Waves

2022.04.17 10:47 [3077585] smart account 3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW > SELF 0.00000000 Waves

{ "type": 13, "id": "57qQiVVruVsJXczUEC8tcTfwx3g9E8kGzb4cuBSc2EaV", "fee": 1000000, "feeAssetId": null, "timestamp": 1650181666265, "version": 2, "chainId": 87, "sender": "3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW", "senderPublicKey": "C8aRSyBp8ANfZV95n7AaXt2DGnRmM2aQwsGonLQqBEFs", "proofs": [ "5mk66dY9dB2ZemdomuZ4AqYukp7uWsJBvgLbAz8S2Kst7MdxZLe9NM3BewUY41VgC9Sai3M7t8yBbXXR6ZPgSkJ4" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAAAkBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAANZXhwZWN0ZWQ6IEludAEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAiKEludCwgSW50LCBJbnQsIEludCwgSW50LCBCb29sZWFuKQQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAQAAAABdAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACJ3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50NSZCb29sZWFuAAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAAPYXNzZXRTdHJpbmdVc2RjAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgAAAAALcmVzZXJ2ZVVzZGMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTAAAAAA9hc3NldFN0cmluZ1VzZHQCAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAAAAAAtyZXNlcnZlVXNkdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BFaUQxekpXVE1aTldTQ3l6aHZCdzlweHhBV2VFd2FnaFIAAAAADGFzc2V0U3RyaW5ncwkABEwAAAACAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgkABEwAAAACAgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgUAAAADbmlsAAAAAAhyZXNlcnZlcwkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEdDa3JIQnhGTWk3dHoxeHFueGdCcGVOdm41RTRNNGc4UwkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgUAAAADbmlsAAAAAQAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGY29pbmlkAAAACm1pbl9hbW91bnQEAAAADWFzc2V0SWRTdHJpbmcJAAGRAAAAAgUAAAAMYXNzZXRTdHJpbmdzBQAAAAZjb2luaWQEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAANYXNzZXRJZFN0cmluZwQAAAAHcmVzZXJ2ZQkAAZEAAAACBQAAAAhyZXNlcnZlcwUAAAAGY29pbmlkBAAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAHcmVzZXJ2ZQUAAAAHYXNzZXRJZAMJAABmAAAAAgUAAAAKbWluX2Ftb3VudAUAAAAJYXZhaWxhYmxlCQAAAgAAAAEJAAGkAAAAAQUAAAAJYXZhaWxhYmxlBAAAAA91c2VyYmFsYW5jZWRhdGEJAQAAABFhc1VzZXJCYWxhbmNlRGF0YQAAAAEJAAP8AAAABAUAAAAHcmVzZXJ2ZQIAAAALdXNlckJhbGFuY2UJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzBQAAAANuaWwFAAAAA25pbAQAAAAKZGVwb3NpdFVzZAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMwQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAApkZXBvc2l0VXNkBQAAAApkZXBvc2l0VXNkBQAAAAlhdmFpbGFibGUDCQAAZgAAAAIFAAAACm1pbl9hbW91bnQFAAAAAXYJAAACAAAAAQkAAaQAAAABBQAAAAF2BAAAAAZhbW91bnQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEbWFpbgIAAAAId2l0aGRyYXcJAARMAAAAAgUAAAANYXNzZXRJZFN0cmluZwkABEwAAAACBQAAAAF2BQAAAANuaWwFAAAAA25pbAkABRQAAAACBQAAAANuaWwFAAAABmFtb3VudAAAAADsFRqM", "height": 3077585, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GTwJBPyDgwy3k9L2UDpHAepusCxchugg5ZjywjxzC23c Next: H51fsa6hccXZbSbtwV6MMAydcuPao8Wr9SYRbnj2Ao59 Diff:
OldNewDifferences
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
22+let assetStringUsdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
23+
24+let reserveUsdc = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
25+
2226 let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
2327
2428 let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
2529
30+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
31+
32+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
33+
2634 @Callable(i)
27-func withdraw (min_amount) = {
28- let assetId = fromBase58String(assetStringUsdt)
29- let available = assetBalance(reserveUsdt, assetId)
35+func withdraw (coinid,min_amount) = {
36+ let assetIdString = assetStrings[coinid]
37+ let assetId = fromBase58String(assetIdString)
38+ let reserve = reserves[coinid]
39+ let available = assetBalance(reserve, assetId)
3040 if ((min_amount > available))
3141 then throw(toString(available))
3242 else {
33- let userbalancedata = asUserBalanceData(invoke(reserveUsdt, "userBalance", [toString(this)], nil))
43+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
3444 let depositUsd = userbalancedata._3
3545 let v = if ((available > depositUsd))
3646 then depositUsd
3848 if ((min_amount > v))
3949 then throw(toString(v))
4050 else {
41- let amount = asInt(invoke(main, "withdraw", [assetStringUsdt, v], nil))
51+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
4252 $Tuple2(nil, amount)
4353 }
4454 }
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("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 assetStringUsdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
23+
24+let reserveUsdc = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
25+
2226 let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
2327
2428 let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
2529
30+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
31+
32+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
33+
2634 @Callable(i)
27-func withdraw (min_amount) = {
28- let assetId = fromBase58String(assetStringUsdt)
29- let available = assetBalance(reserveUsdt, assetId)
35+func withdraw (coinid,min_amount) = {
36+ let assetIdString = assetStrings[coinid]
37+ let assetId = fromBase58String(assetIdString)
38+ let reserve = reserves[coinid]
39+ let available = assetBalance(reserve, assetId)
3040 if ((min_amount > available))
3141 then throw(toString(available))
3242 else {
33- let userbalancedata = asUserBalanceData(invoke(reserveUsdt, "userBalance", [toString(this)], nil))
43+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
3444 let depositUsd = userbalancedata._3
3545 let v = if ((available > depositUsd))
3646 then depositUsd
3747 else available
3848 if ((min_amount > v))
3949 then throw(toString(v))
4050 else {
41- let amount = asInt(invoke(main, "withdraw", [assetStringUsdt, v], nil))
51+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
4252 $Tuple2(nil, amount)
4353 }
4454 }
4555 }
4656
4757

github/deemru/w8io/3ef1775 
36.80 ms