tx · 3N3SQuYKpu2YnQuh3LmX3q24e4UQacSkbKjuHxuaUMR9 3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf: -0.01000000 Waves 2022.04.06 20:10 [3062272] smart account 3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf > SELF 0.00000000 Waves
{ "type": 13, "id": "3N3SQuYKpu2YnQuh3LmX3q24e4UQacSkbKjuHxuaUMR9", "fee": 1000000, "feeAssetId": null, "timestamp": 1649265076803, "version": 1, "sender": "3PHVvn3yCtCJZwBFhbfC6xoMpSqBrLKvJQf", "senderPublicKey": "CKXSVbhbLLxjsym2QuHcyNpRSWDPcxMrxRYNqmawQBP5", "proofs": [ "34fLVf1uieo6Aw3CTS5AdSRUcZnZsv11kDT5XxozTVwWzRZUY1xoryuBMzmTihGGgM92pGSyUiujyj11vFL65mXx" ], "script": "base64:AAIFAAAAAAAAAAkIAhIAEgMKAQgAAAAKAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIihJbnQsIEludCwgSW50LCBJbnQsIEludCwgQm9vbGVhbikEAAAAAXgFAAAAByRtYXRjaDAFAAAAAXgEAAAAAXQFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAid3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludDUmQm9vbGVhbgAAAAAEbWFpbgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBWnY5dGdLMVBYN2RLUjdiNGtjaHE1cWRwVVMzRzVzWVQAAAAAEWFzc2V0SWRTdHJpbmdVU0RDAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgAAAAARYXNzZXRJZFN0cmluZ1VTRFQCAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAAAAAA9scEFzc2V0SWRTdHJpbmcCAAAALEZTUkh0U3lYUlhRanpRTFJ0bWFxRnBCRERDTmpZOFBVOEtOdHdvR1hWQm1yAAAAAAthc3NldElkVVNEQwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQACWQAAAAEFAAAAEWFzc2V0SWRTdHJpbmdVU0RDAgAAAA9pbnZhbGlkIGFzc2V0SWQAAAAAC2Fzc2V0SWRVU0RUCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAJZAAAAAQUAAAARYXNzZXRJZFN0cmluZ1VTRFQCAAAAD2ludmFsaWQgYXNzZXRJZAAAAAAJbHBBc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAJZAAAAAQUA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", "chainId": 87, "height": 3062272, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3C3qV5Bx8kwBaf1hFYTPYY3VGYjZw4tArRNxRdh7bf6g Next: 6so27X2f4ZTMaVTuawEGW1ncH76rozfp6wXXpKMPGxws Diff:
Old | New | Differences | |
---|---|---|---|
76 | 76 | let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil)) | |
77 | 77 | if ((amount > 1000000)) | |
78 | 78 | then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetId)] | |
79 | - | else throw( | |
79 | + | else throw(toString(amount)) | |
80 | 80 | } | |
81 | 81 | ||
82 | 82 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func asInt (value) = match value { | |
5 | 5 | case int: Int => | |
6 | 6 | int | |
7 | 7 | case _ => | |
8 | 8 | throw("wrong type, expected: Int") | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func asUserBalanceData (value) = match value { | |
13 | 13 | case x: (Int, Int, Int, Int, Int, Boolean) => | |
14 | 14 | x | |
15 | 15 | case t => | |
16 | 16 | throw("wrong type, expected: Int5&Boolean") | |
17 | 17 | } | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
21 | 21 | ||
22 | 22 | let assetIdStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" | |
23 | 23 | ||
24 | 24 | let assetIdStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" | |
25 | 25 | ||
26 | 26 | let lpAssetIdString = "FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr" | |
27 | 27 | ||
28 | 28 | let assetIdUSDC = valueOrErrorMessage(fromBase58String(assetIdStringUSDC), "invalid assetId") | |
29 | 29 | ||
30 | 30 | let assetIdUSDT = valueOrErrorMessage(fromBase58String(assetIdStringUSDT), "invalid assetId") | |
31 | 31 | ||
32 | 32 | let lpAssetId = valueOrErrorMessage(fromBase58String(lpAssetIdString), "invalid lpAssetId") | |
33 | 33 | ||
34 | 34 | let reserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S") | |
35 | 35 | ||
36 | 36 | @Callable(i) | |
37 | 37 | func replenishWithAtoken () = { | |
38 | 38 | let a = invoke(main, "replenishWithAtoken", nil, i.payments) | |
39 | 39 | if ((a == a)) | |
40 | 40 | then { | |
41 | 41 | let available = assetBalance(reserve, assetIdUSDC) | |
42 | 42 | let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil)) | |
43 | 43 | let lp = userbalancedata._1 | |
44 | 44 | let maxAmount = userbalancedata._2 | |
45 | 45 | let depositUsd = userbalancedata._3 | |
46 | 46 | let debt = userbalancedata._4 | |
47 | 47 | let debtUsd = userbalancedata._5 | |
48 | 48 | let asCollateral = userbalancedata._6 | |
49 | 49 | let v = if ((available > maxAmount)) | |
50 | 50 | then -1 | |
51 | 51 | else available | |
52 | 52 | let amount = asInt(invoke(main, "withdraw", [assetIdStringUSDC, v], nil)) | |
53 | 53 | if ((amount > 1000000)) | |
54 | 54 | then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetIdUSDC)] | |
55 | 55 | else throw(("zero: " + toString(amount))) | |
56 | 56 | } | |
57 | 57 | else throw("Strict value is not equal to itself.") | |
58 | 58 | } | |
59 | 59 | ||
60 | 60 | ||
61 | 61 | ||
62 | 62 | @Callable(i) | |
63 | 63 | func withdraw (assetIdString) = { | |
64 | 64 | let assetId = fromBase58String(assetIdString) | |
65 | 65 | let available = assetBalance(reserve, assetId) | |
66 | 66 | let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil)) | |
67 | 67 | let lp = userbalancedata._1 | |
68 | 68 | let maxAmount = userbalancedata._2 | |
69 | 69 | let depositUsd = userbalancedata._3 | |
70 | 70 | let debt = userbalancedata._4 | |
71 | 71 | let debtUsd = userbalancedata._5 | |
72 | 72 | let asCollateral = userbalancedata._6 | |
73 | 73 | let v = if ((available > maxAmount)) | |
74 | 74 | then -1 | |
75 | 75 | else available | |
76 | 76 | let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil)) | |
77 | 77 | if ((amount > 1000000)) | |
78 | 78 | then [ScriptTransfer(addressFromStringValue("3P54eYZMTtQnJn8XtUr7Ag3FeyJxpXq2hV7"), amount, assetId)] | |
79 | - | else throw( | |
79 | + | else throw(toString(amount)) | |
80 | 80 | } | |
81 | 81 | ||
82 | 82 |
github/deemru/w8io/3ef1775 48.73 ms ◑