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:
Old | New | Differences | |
---|---|---|---|
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 ◑