tx · 5CDBwk8Rp6uiUaccdi3Khg9yUmrvQWvMWLZeuWLERhPt

3PMMFsPmLo1gX6FyQVtcT3v5cyYhaseid4Q:  -0.01000000 Waves

2022.04.09 13:47 [3066249] smart account 3PMMFsPmLo1gX6FyQVtcT3v5cyYhaseid4Q > SELF 0.00000000 Waves

{ "type": 13, "id": "5CDBwk8Rp6uiUaccdi3Khg9yUmrvQWvMWLZeuWLERhPt", "fee": 1000000, "feeAssetId": null, "timestamp": 1649501310086, "version": 2, "chainId": 87, "sender": "3PMMFsPmLo1gX6FyQVtcT3v5cyYhaseid4Q", "senderPublicKey": "AodDFfU5Rebx5MeBbATwFNS5DiEo5tHpb9Ctb4Hdava6", "proofs": [ "5k3xDe2i5uCk9eF3Fch276wHrwERy6uj2cDNcwHGfMv5tUXSpRd341cLm2zLLMYDCuSUL8dbVatpL4gQwrU867sC" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAABwAAAAAFYWRtaW4JAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQTU1Gc1BtTG8xZ1g2RnlRVnRjVDN2NWN5WWhhc2VpZDRRAAAAAARVU0RDAQAAACBSM9nhl4gm5eIfwv3qiDS4h3ajjLGD78hgHH4KElQmJQAAAAAEbWFpbgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBWnY5dGdLMVBYN2RLUjdiNGtjaHE1cWRwVVMzRzVzWVQAAAAADWFzc2V0SWRTdHJpbmcCAAAALDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKAAAAAAdyZXNlcnZlCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEdDa3JIQnhGTWk3dHoxeHFueGdCcGVOdm41RTRNNGc4UwEAAAAFYXNJbnQAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAABl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQAAABFhc1VzZXJCYWxhbmNlRGF0YQAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAACIoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEJvb2xlYW4pBAAAAAF4BQAAAAckbWF0Y2gwBQAAAAF4BAAAAAF0BQAAAAckbWF0Y2gwCQAAAgAAAAECAAAAFWV4cGVjdGVkIGludDUmYm9vbGVhbgAAAAEAAAABaQEAAAABdwAAAAADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABWFkbWluCQAAAgAAAAECAAAAASEEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAANYXNzZXRJZFN0cmluZwQAAAAJYXZhaWxhYmxlCQAD8AAAAAIFAAAAB3Jlc2VydmUFAAAAB2Fzc2V0SWQEAAAAD3VzZXJiYWxhbmNlZGF0YQkBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQkAA/wAAAAEBQAAAAdyZXNlcnZlAgAAAAt1c2VyQmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMFAAAAA25pbAUAAAADbmlsBAAAAAltYXhBbW91bnQIBQAAAA91c2VyYmFsYW5jZWRhdGEAAAACXzIEAAAAAXYDCQAAZgAAAAIFAAAACWF2YWlsYWJsZQUAAAAJbWF4QW1vdW50AP//////////BQAAAAlhdmFpbGFibGUEAAAABmFtb3VudAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAARtYWluAgAAAAh3aXRoZHJhdwkABEwAAAACBQAAAA1hc3NldElkU3RyaW5nCQAETAAAAAIFAAAAAXYFAAAAA25pbAUAAAADbmlsBQAAAANuaWwAAAAAFUZRNA==", "height": 3066249, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7SQmMGgr3rAK2b9tF1a3MZ3YkgxZ12hQf6rSpRDMinHR Next: 6Q3W5x7hC2UZA2PGuom3eBqCYZ3jJYD4NL6MkHrNsZf1 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let err = "err"
5-
64 let admin = addressFromStringValue("3PMMFsPmLo1gX6FyQVtcT3v5cyYhaseid4Q")
75
8-let dApp = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
6+let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
97
10-let usdcAssetIdString = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
8+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
119
12-let usdcReserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
10+let assetIdString = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
1311
14-let usdcAssetId = valueOrErrorMessage(fromBase58String(usdcAssetIdString), err)
12+let reserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
1513
16-func m11 (v) = match v {
14+func asInt (value) = match value {
1715 case int: Int =>
1816 int
1917 case _ =>
20- throw(err)
18+ throw("wrong type, expected: Int")
2119 }
2220
2321
24-func p22 (v) = match v {
22+func asUserBalanceData (value) = match value {
2523 case x: (Int, Int, Int, Int, Int, Boolean) =>
26- x._2
24+ x
2725 case t =>
28- throw(err)
26+ throw("expected int5&boolean")
2927 }
3028
3129
3230 @Callable(i)
33-func call () = {
34- let minimumAmount = 10000000
35- if ((i.caller != admin))
36- then throw("!")
37- else {
38- let reserveBalance = assetBalance(usdcReserve, usdcAssetId)
39- if ((minimumAmount > reserveBalance))
40- then throw(("too low reserve balance " + toString((reserveBalance / 1000000))))
41- else {
42- let userBalance = p22(invoke(usdcReserve, "userBalance", [toString(this)], nil))
43- let v = if ((reserveBalance > userBalance))
44- then -1
45- else reserveBalance
46- let executed = m11(invoke(dApp, "withdraw", [usdcAssetIdString, v], nil))
47- if ((minimumAmount > executed))
48- then throw(("too low executed " + toString((executed / 1000000))))
49- else nil
50- }
51- }
52- }
31+func w () = if ((i.caller != admin))
32+ then throw("!")
33+ else {
34+ let assetId = fromBase58String(assetIdString)
35+ let available = assetBalance(reserve, assetId)
36+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
37+ let maxAmount = userbalancedata._2
38+ let v = if ((available > maxAmount))
39+ then -1
40+ else available
41+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
42+ nil
43+ }
5344
5445

github/deemru/w8io/3ef1775 
50.42 ms