tx · ALAiX1Ruwm5FmToaF3fbj1rqhCcdycBYn2YLfBaqKtqB

3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx:  -0.01000000 Waves

2022.05.22 10:10 [3128038] smart account 3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx > SELF 0.00000000 Waves

{ "type": 13, "id": "ALAiX1Ruwm5FmToaF3fbj1rqhCcdycBYn2YLfBaqKtqB", "fee": 1000000, "feeAssetId": null, "timestamp": 1653203471639, "version": 2, "chainId": 87, "sender": "3PCs3SYkQwSqXwv5FN42b8DXM6WEA8JNDkx", "senderPublicKey": "4613XFozFm1Nc8jhYYFisKKAzjau7tRhD4TyVKaE6srm", "proofs": [ "3vmqqC4Mnk3LVrFR4gwU6MziRM2nW7bVaG9cjFQrBRCkmG84YuB6PZgXHZFwGwKwYXcHdkEBy9K2hR8sU4NNDnCm" ], "script": "base64:AAIFAAAAAAAAAQAIAhIECgIBARIECgIBARoJCgFhEgRtYWluGhQKAWISD2Fzc2V0U3RyaW5nVVNEVBoQCgFjEgtyZXNlcnZlVVNEVBoUCgFkEg9hc3NldFN0cmluZ1VTREMaEAoBZRILcmVzZXJ2ZVVTREMaBgoBZhIBYxoHCgFnEgJhSRoGCgFoEgFhGgwKAWkSByRtYXRjaDAaBgoBahIBaRoOCgFrEgltaW5BbW91bnQaDgoBbBIJbWF4QW1vdW50GhMKAW0SDnJlc2VydmVCYWxhbmNlGhMKAW4SDndpdGhkcmF3QW1vdW50GhQKAW8SD3dpdGhkcmF3bkFtb3VudBoGCgFwEgFyAAAABwAAAAABYQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBWnY5dGdLMVBYN2RLUjdiNGtjaHE1cWRwVVMzRzVzWVQAAAAAAWICAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAAAAAAFjCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgAAAAABZAIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoAAAAAAWUJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTAAAAAAFmCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUDNFTDJ2dlA2SnRYeWNqdm9LQjI5YVJOYVFXd3hOampQUQEAAAABZwAAAAEAAAABaAQAAAABaQUAAAABaAMJAAABAAAAAgUAAAABaQIAAAADSW50BAAAAAFoBQAAAAFpBQAAAAFoCQAAAgAAAAECAAAAAk5PAAAAAgAAAAFqAQAAAAx3aXRoZHJhd1VTREMAAAACAAAAAWsAAAABbAQAAAABbQkAA/AAAAACBQAAAAFlCQACWQAAAAEFAAAAAWQDCQAAZwAAAAIFAAAAAW0FAAAAAWsEAAAAAW4DCQAAZgAAAAIFAAAAAW0FAAAAAWwFAAAAAWwFAAAAAW0EAAAAAW8JAQAAAAFnAAAAAQkAA/wAAAAEBQAAAAFhAgAAAAh3aXRoZHJhdwkABEwAAAACBQAAAAFkCQAETAAAAAIFAAAAAW4FAAAAA25pbAUAAAADbmlsBAAAAAFwCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAFmCQAAaQAAAAIFAAAAAW8AAAAAAAAAABkJAAJZAAAAAQUAAAABZAUAAAADbmlsBQAAAANuaWwAAAABagEAAAAMd2l0aGRyYXdVU0RUAAAAAgAAAAFrAAAAAWwEAAAAAW0JAAPwAAAAAgUAAAABYwkAAlkAAAABBQAAAAFiAwkAAGcAAAACBQAAAAFtBQAAAAFrBAAAAAFuAwkAAGYAAAACBQAAAAFtBQAAAAFsBQAAAAFsBQAAAAFtBAAAAAFvCQEAAAABZwAAAAEJAAP8AAAABAUAAAABYQIAAAAId2l0aGRyYXcJAARMAAAAAgUAAAABYgkABEwAAAACBQAAAAFuBQAAAANuaWwFAAAAA25pbAQAAAABcAkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAABZgkAAGkAAAACBQAAAAFvAAAAAAAAAAAZCQACWQAAAAEFAAAAAWIFAAAAA25pbAUAAAADbmlsAAAAALg/85M=", "height": 3128038, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3nZkP1tv4SHv5DkdtSTeR8C6VTsmhy9W471qUTXu7e8w Next: DSHQYuwBsCt3dcrtnENhKDJTv9m7zVQjg7kykFAZZVgp Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# 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-
124 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
13-
14-let assetStringBTC = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
15-
16-let reserveBTC = addressFromStringValue("3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd")
175
186 let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
197
2311
2412 let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
2513
26-func withdraw (assetString,reserve,min) = {
27- let assetId = fromBase58String(assetString)
28- let available = assetBalance(reserve, assetId)
29- if ((available >= min))
14+let c = addressFromStringValue("3P3EL2vvP6JtXycjvoKB29aRNaQWwxNjjPQ")
15+
16+func aI (a) = match a {
17+ case a: Int =>
18+ a
19+ case _ =>
20+ throw("NO")
21+}
22+
23+
24+@Callable(i)
25+func withdrawUSDC (minAmount,maxAmount) = {
26+ let reserveBalance = assetBalance(reserveUSDC, fromBase58String(assetStringUSDC))
27+ if ((reserveBalance >= minAmount))
3028 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.")
29+ let withdrawAmount = if ((reserveBalance > maxAmount))
30+ then maxAmount
31+ else reserveBalance
32+ let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil))
33+ let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDC))
34+ nil
4535 }
4636 else nil
4737 }
4838
4939
50-@Callable(i)
51-func withdrawBTC (min) = if ((i.caller != this))
52- then throw("admin")
53- else withdraw(assetStringBTC, reserveBTC, min)
54-
55-
5640
5741 @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)
42+func withdrawUSDT (minAmount,maxAmount) = {
43+ let reserveBalance = assetBalance(reserveUSDT, fromBase58String(assetStringUSDT))
44+ if ((reserveBalance >= minAmount))
45+ then {
46+ let withdrawAmount = if ((reserveBalance > maxAmount))
47+ then maxAmount
48+ else reserveBalance
49+ let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil))
50+ let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDT))
51+ nil
52+ }
53+ else nil
54+ }
6855
6956
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# 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-
124 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
13-
14-let assetStringBTC = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
15-
16-let reserveBTC = addressFromStringValue("3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd")
175
186 let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
197
208 let reserveUSDT = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
219
2210 let assetStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
2311
2412 let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
2513
26-func withdraw (assetString,reserve,min) = {
27- let assetId = fromBase58String(assetString)
28- let available = assetBalance(reserve, assetId)
29- if ((available >= min))
14+let c = addressFromStringValue("3P3EL2vvP6JtXycjvoKB29aRNaQWwxNjjPQ")
15+
16+func aI (a) = match a {
17+ case a: Int =>
18+ a
19+ case _ =>
20+ throw("NO")
21+}
22+
23+
24+@Callable(i)
25+func withdrawUSDC (minAmount,maxAmount) = {
26+ let reserveBalance = assetBalance(reserveUSDC, fromBase58String(assetStringUSDC))
27+ if ((reserveBalance >= minAmount))
3028 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.")
29+ let withdrawAmount = if ((reserveBalance > maxAmount))
30+ then maxAmount
31+ else reserveBalance
32+ let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil))
33+ let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDC))
34+ nil
4535 }
4636 else nil
4737 }
4838
4939
50-@Callable(i)
51-func withdrawBTC (min) = if ((i.caller != this))
52- then throw("admin")
53- else withdraw(assetStringBTC, reserveBTC, min)
54-
55-
5640
5741 @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)
42+func withdrawUSDT (minAmount,maxAmount) = {
43+ let reserveBalance = assetBalance(reserveUSDT, fromBase58String(assetStringUSDT))
44+ if ((reserveBalance >= minAmount))
45+ then {
46+ let withdrawAmount = if ((reserveBalance > maxAmount))
47+ then maxAmount
48+ else reserveBalance
49+ let withdrawnAmount = aI(invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil))
50+ let r = ScriptTransfer(c, (withdrawnAmount / 25), fromBase58String(assetStringUSDT))
51+ nil
52+ }
53+ else nil
54+ }
6855
6956

github/deemru/w8io/6500d08 
35.38 ms