2022.04.24 07:01 [3087453] smart account 3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc > SELF 0.00000000 Waves

{ "type": 13, "id": "J8xHnK5zWS2URbR7SpM8EMhkJNrT9anpz7wFZhCdpzpA", "fee": 1000000, "feeAssetId": null, "timestamp": 1650772953348, "version": 2, "chainId": 87, "sender": "3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc", "senderPublicKey": "BtEpTJKCNdpyvw4hDiXTx6VFSKKkFp5phwbfxtek1KRm", "proofs": [ "56rku7h1D6cacAaQR8xVrQP4qChd7wwngHcQACiwWBmX8k76jZpUKv7AUWy6CdZsJbXevYwrbG8P9j5DDj2WzD3C" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAAAUBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAANZXhwZWN0ZWQ6IEludAEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAiKEludCwgSW50LCBJbnQsIEludCwgSW50LCBCb29sZWFuKQQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAQAAAABdAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACJ3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50NSZCb29sZWFuAAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAAMYXNzZXRTdHJpbmdzCQAETAAAAAICAAAALDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKCQAETAAAAAICAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKBQAAAANuaWwAAAAACHJlc2VydmVzCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQRWlEMXpKV1RNWk5XU0N5emh2Qnc5cHh4QVdlRXdhZ2hSBQAAAANuaWwAAAABAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAZjb2luaWQAAAAKbWluX2Ftb3VudAQAAAANYXNzZXRJZFN0cmluZwkAAZEAAAACBQAAAAxhc3NldFN0cmluZ3MFAAAABmNvaW5pZAQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAA1hc3NldElkU3RyaW5nBAAAAAdyZXNlcnZlCQABkQAAAAIFAAAACHJlc2VydmVzBQAAAAZjb2luaWQEAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAdyZXNlcnZlBQAAAAdhc3NldElkAwkAAGYAAAACBQAAAAptaW5fYW1vdW50BQAAAAlhdmFpbGFibGUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABXRoaXM6CQAEJQAAAAEFAAAABHRoaXMCAAAACGFzc2V0SWQ6BQAAAA1hc3NldElkU3RyaW5nAgAAAAlyZXNlcnZlOiAJAAQlAAAAAQUAAAAHcmVzZXJ2ZQIAAAANLHVzZXJBZGRyZXNzOgkABCUAAAABBQAAAAR0aGlzAgAAABJjdXJyZW50QXZhaWxhYmxlOiAJAAGkAAAAAQUAAAAJYXZhaWxhYmxlAgAAAA4sIG1pbl9hbW91bnQ6IAkAAaQAAAABBQAAAAptaW5fYW1vdW50BAAAAA91c2VyYmFsYW5jZWRhdGEJAQAAABFhc1VzZXJCYWxhbmNlRGF0YQAAAAEJAAP8AAAABAUAAAAHcmVzZXJ2ZQIAAAALdXNlckJhbGFuY2UJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzBQAAAANuaWwFAAAAA25pbAQAAAAKZGVwb3NpdFVzZAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMwQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAApkZXBvc2l0VXNkBQAAAApkZXBvc2l0VXNkBQAAAAlhdmFpbGFibGUDCQAAZgAAAAIFAAAACm1pbl9hbW91bnQFAAAAAXYJAAACAAAAAQkAAaQAAAABBQAAAAF2BAAAAAZhbW91bnQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEbWFpbgIAAAAId2l0aGRyYXcJAARMAAAAAgUAAAANYXNzZXRJZFN0cmluZwkABEwAAAACBQAAAAF2BQAAAANuaWwFAAAAA25pbAkABRQAAAACBQAAAANuaWwFAAAABmFtb3VudAAAAAAvW2yB", "height": 3087453, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6iyzQDqrx4Yqoq9Jp7s5bRVvsKtNHMYAQ7YLhHJMQ2fy Next: 7YYY4swUeS2FM4bjxAm7GQpgHdiU3k6foNN26uJYRjaZ Diff:
OldNewDifferences
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
22-let assetStringUsdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
23-
24-let reserveUsdc = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
25-
26-let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
27-
28-let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
29-
3022 let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
3123
3224 let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
3426 @Callable(i)
3527 func withdraw (coinid,min_amount) = {
3628 let assetIdString = assetStrings[coinid]
37- let reserve = addressFromStringValue(assetIdString)
38- let available = assetBalance(reserve, toBytes(assetIdString))
39- let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
40- let depositUsd = userbalancedata._3
29+ let assetId = fromBase58String(assetIdString)
30+ let reserve = reserves[coinid]
31+ let available = assetBalance(reserve, assetId)
4132 if ((min_amount > available))
42- then throw(((((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(depositUsd)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
33+ then throw(((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
4334 else {
35+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
36+ let depositUsd = userbalancedata._3
4437 let v = if ((available > depositUsd))
4538 then depositUsd
4639 else available
4740 if ((min_amount > v))
48- then throw(((("min amount: " + toString(min_amount)) + ", v:") + toString(v)))
41+ then throw(toString(v))
4942 else {
5043 let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
5144 $Tuple2(nil, amount)
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-
26-let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
27-
28-let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
29-
3022 let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
3123
3224 let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
3325
3426 @Callable(i)
3527 func withdraw (coinid,min_amount) = {
3628 let assetIdString = assetStrings[coinid]
37- let reserve = addressFromStringValue(assetIdString)
38- let available = assetBalance(reserve, toBytes(assetIdString))
39- let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
40- let depositUsd = userbalancedata._3
29+ let assetId = fromBase58String(assetIdString)
30+ let reserve = reserves[coinid]
31+ let available = assetBalance(reserve, assetId)
4132 if ((min_amount > available))
42- then throw(((((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(depositUsd)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
33+ then throw(((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
4334 else {
35+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
36+ let depositUsd = userbalancedata._3
4437 let v = if ((available > depositUsd))
4538 then depositUsd
4639 else available
4740 if ((min_amount > v))
48- then throw(((("min amount: " + toString(min_amount)) + ", v:") + toString(v)))
41+ then throw(toString(v))
4942 else {
5043 let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
5144 $Tuple2(nil, amount)
5245 }
5346 }
5447 }
5548
5649

github/deemru/w8io/786bc32 
62.44 ms