tx · A8MKByRmdp73rk3whbFdiWaaj6dFXo1FpK99KDdESfwT

3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx:  -0.01000000 Waves

2022.04.21 18:31 [3083810] smart account 3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx > SELF 0.00000000 Waves

{ "type": 13, "id": "A8MKByRmdp73rk3whbFdiWaaj6dFXo1FpK99KDdESfwT", "fee": 1000000, "feeAssetId": null, "timestamp": 1650555099869, "version": 2, "chainId": 87, "sender": "3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx", "senderPublicKey": "4613XFozFm1Nc8jhYYFisKKAzjau7tRhD4TyVKaE6srm", "proofs": [ "36cBHZGWxiYQm8vfNsHEq9xXdXnuVJs1NytLfV6zYZQrhWBpToG9XRG2a4AvWiGmzvbAT2EMhMu5efq2yugML4Lv" ], "script": "base64:AAIFAAAAAAAAABEIAhIDCgEBEgMKAQESAwoBAQAAAAkBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQAAAAFhBAAAAAckbWF0Y2gwBQAAAAFhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAACIoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEJvb2xlYW4pBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIndyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQ1JkJvb2xlYW4AAAAABG1haW4JAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQQVp2OXRnSzFQWDdkS1I3YjRrY2hxNXFkcFVTM0c1c1lUAAAAAA9hc3NldFN0cmluZ1VTRE4CAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAAAtyZXNlcnZlVVNETgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BDd0ZYU3E4dmo4aUtpdEE1enJyTFJidXFlaGZtaW1wY2UAAAAAD2Fzc2V0U3RyaW5nVVNEVAIAAAAsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoAAAAAC3Jlc2VydmVVU0RUCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgAAAAAPYXNzZXRTdHJpbmdVU0RDAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgAAAAALcmVzZXJ2ZVVTREMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTAQAAAAh3aXRoZHJhdwAAAAMAAAALYXNzZXRTdHJpbmcAAAAHcmVzZXJ2ZQAAAANtaW4EAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAALYXNzZXRTdHJpbmcEAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAdyZXNlcnZlBQAAAAdhc3NldElkAwkAAGcAAAACBQAAAAlhdmFpbGFibGUFAAAAA21pbgQAAAAPdXNlcmJhbGFuY2VkYXRhCQEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABCQAD/AAAAAQFAAAAB3Jlc2VydmUCAAAAC3VzZXJCYWxhbmNlCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsBQAAAANuaWwEAAAACW1heEFtb3VudAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMgQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAAltYXhBbW91bnQA//////////8FAAAACWF2YWlsYWJsZQQAAAABcgoAAAAAAUAJAAP8AAAABAUAAAAEbWFpbgIAAAAId2l0aGRyYXcJAARMAAAAAgUAAAALYXNzZXRTdHJpbmcJAARMAAAAAgUAAAABdgUAAAADbmlsBQAAAANuaWwDCQAAAQAAAAIFAAAAAUACAAAAA0ludAUAAAABQAkAAAIAAAABAgAAABhDb3VsZG4ndCBjYXN0IEFueSB0byBJbnQDCQAAAAAAAAIFAAAAAXIFAAAAAXIFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FAAAAA25pbAAAAAMAAAABaQEAAAAMd2l0aGRyYXdVU0ROAAAAAQAAAANtaW4DCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAFYWRtaW4JAQAAAAh3aXRoZHJhdwAAAAMFAAAAD2Fzc2V0U3RyaW5nVVNETgUAAAALcmVzZXJ2ZVVTRE4FAAAAA21pbgAAAAFpAQAAAAx3aXRoZHJhd1VTRFQAAAABAAAAA21pbgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAVhZG1pbgkBAAAACHdpdGhkcmF3AAAAAwUAAAAPYXNzZXRTdHJpbmdVU0RUBQAAAAtyZXNlcnZlVVNEVAUAAAADbWluAAAAAWkBAAAADHdpdGhkcmF3VVNEQwAAAAEAAAADbWluAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAABWFkbWluCQEAAAAId2l0aGRyYXcAAAADBQAAAA9hc3NldFN0cmluZ1VTREMFAAAAC3Jlc2VydmVVU0RDBQAAAANtaW4AAAAA4BTVnA==", "height": 3083810, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 3nZkP1tv4SHv5DkdtSTeR8C6VTsmhy9W471qUTXu7e8w Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func asUserBalanceData (a) = match a {
5+ case a: (Int, Int, Int, Int, Int, Boolean) =>
6+ a
7+ case _ =>
8+ throw("wrong type, expected: Int5&Boolean")
9+}
10+
11+
12+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
13+
14+let assetStringUSDN = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
15+
16+let reserveUSDN = addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")
17+
18+let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
19+
20+let reserveUSDT = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
21+
22+let assetStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
23+
24+let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
25+
26+func withdraw (assetString,reserve,min) = {
27+ let assetId = fromBase58String(assetString)
28+ let available = assetBalance(reserve, assetId)
29+ if ((available >= min))
30+ then {
31+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
32+ let maxAmount = userbalancedata._2
33+ let v = if ((available > maxAmount))
34+ then -1
35+ else available
36+ let r = {
37+ let @ = invoke(main, "withdraw", [assetString, v], nil)
38+ if ($isInstanceOf(@, "Int"))
39+ then @
40+ else throw("Couldn't cast Any to Int")
41+ }
42+ if ((r == r))
43+ then nil
44+ else throw("Strict value is not equal to itself.")
45+ }
46+ else nil
47+ }
48+
49+
50+@Callable(i)
51+func withdrawUSDN (min) = if ((i.caller != this))
52+ then throw("admin")
53+ else withdraw(assetStringUSDN, reserveUSDN, min)
54+
55+
56+
57+@Callable(i)
58+func withdrawUSDT (min) = if ((i.caller != this))
59+ then throw("admin")
60+ else withdraw(assetStringUSDT, reserveUSDT, min)
61+
62+
63+
64+@Callable(i)
65+func withdrawUSDC (min) = if ((i.caller != this))
66+ then throw("admin")
67+ else withdraw(assetStringUSDC, reserveUSDC, min)
68+
69+

github/deemru/w8io/6500d08 
27.05 ms