tx · CxBKpQHxgaFozaD3Epdis9kcUc355e838SpM4Yr6a2Cm

3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc:  -0.01000000 Waves

2022.05.09 16:20 [3109672] smart account 3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc > SELF 0.00000000 Waves

{ "type": 13, "id": "CxBKpQHxgaFozaD3Epdis9kcUc355e838SpM4Yr6a2Cm", "fee": 1000000, "feeAssetId": null, "timestamp": 1652102445778, "version": 2, "chainId": 87, "sender": "3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc", "senderPublicKey": "BtEpTJKCNdpyvw4hDiXTx6VFSKKkFp5phwbfxtek1KRm", "proofs": [ "3oKnBouw1DoaYhunCbPUDxZmUEM8a9eoM1dVUdeJk3eNNvSB1H8kq8rrcHTosrPAmtoQ84v7Q6iL5WWCZmLNGTDc" ], "script": "base64:AAIFAAAAAAAAABEIAhIDCgEBEgMKAQESAwoBAQAAAAoBAAAABWFzSW50AAAAAQAAAAFhBAAAAAckbWF0Y2gwBQAAAAFhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAHd2FybmluZwEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABAAAAAWEEAAAAByRtYXRjaDAFAAAAAWEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIihJbnQsIEludCwgSW50LCBJbnQsIEludCwgQm9vbGVhbikEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAid3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludDUmQm9vbGVhbgAAAAAEbWFpbgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBWnY5dGdLMVBYN2RLUjdiNGtjaHE1cWRwVVMzRzVzWVQAAAAADmFzc2V0U3RyaW5nQlRDAgAAACw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwAAAAAKcmVzZXJ2ZUJUQwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BBN1FNRnlITXRIZVA2NlNVUW53Q2d3S1FIS3BDeVhXd2QAAAAAD2Fzc2V0U3RyaW5nVVNEVAIAAAAsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoAAAAAC3Jlc2VydmVVU0RUCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgAAAAAPYXNzZXRTdHJpbmdVU0RDAgAAACw2WHRIanBYYnM5UlJKUDJTcjlHVXlWcXpBQ2NieTlUa1RoSFhualZDNUNESgAAAAALcmVzZXJ2ZVVTREMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTAQAAAAh3aXRoZHJhdwAAAAMAAAALYXNzZXRTdHJpbmcAAAAHcmVzZXJ2ZQAAAANtaW4EAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAALYXNzZXRTdHJpbmcEAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAdyZXNlcnZlBQAAAAdhc3NldElkAwkAAGcAAAACBQAAAAlhdmFpbGFibGUFAAAAA21pbgQAAAAPdXNlcmJhbGFuY2VkYXRhCQEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABCQAD/AAAAAQFAAAAB3Jlc2VydmUCAAAAC3VzZXJCYWxhbmNlCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwUAAAADbmlsBQAAAANuaWwEAAAACW1heEFtb3VudAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMgQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAAltYXhBbW91bnQA//////////8FAAAACWF2YWlsYWJsZQQAAAABcgQAAAAGcmVzdWx0CQAD/AAAAAQFAAAABG1haW4CAAAACHdpdGhkcmF3CQAETAAAAAIFAAAAC2Fzc2V0U3RyaW5nCQAETAAAAAIFAAAAAXYFAAAAA25pbAUAAAADbmlsCQEAAAAFYXNJbnQAAAABBQAAAAZyZXN1bHQDCQAAAAAAAAIFAAAAAXIFAAAAAXIFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FAAAAA25pbAAAAAMAAAABaQEAAAALd2l0aGRyYXdCVEMAAAABAAAAA21pbgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAVhZG1pbgkBAAAACHdpdGhkcmF3AAAAAwUAAAAOYXNzZXRTdHJpbmdCVEMFAAAACnJlc2VydmVCVEMFAAAAA21pbgAAAAFpAQAAAAx3aXRoZHJhd1VTRFQAAAABAAAAA21pbgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAVhZG1pbgkBAAAACHdpdGhkcmF3AAAAAwUAAAAPYXNzZXRTdHJpbmdVU0RUBQAAAAtyZXNlcnZlVVNEVAUAAAADbWluAAAAAWkBAAAADHdpdGhkcmF3VVNEQwAAAAEAAAADbWluAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAABWFkbWluCQEAAAAId2l0aGRyYXcAAAADBQAAAA9hc3NldFN0cmluZ1VTREMFAAAAC3Jlc2VydmVVU0RDBQAAAANtaW4AAAAAO28tzA==", "height": 3109672, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6hB31F4W88e5EcTbWTD7T3pv8bgYYGGW3tz3eAFaWiHN Next: HJDoTCYVPVtsJu1YHjaZ1vxswC2MBdJog3LcmkkBhkZe Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func asInt (value) = match value {
5- case int: Int =>
6- int
4+func asInt (a) = match a {
5+ case a: Int =>
6+ a
77 case _ =>
8- throw("expected: Int")
8+ throw("warning")
99 }
1010
1111
12-func getI (key) = getInteger(this, key)
13-
14-
15-func writeInt (key,value) = if ((0 > value))
16- then throw(((("writing negative value " + toString(value)) + " for key ") + key))
17- else IntegerEntry(key, value)
12+func asUserBalanceData (a) = match a {
13+ case a: (Int, Int, Int, Int, Int, Boolean) =>
14+ a
15+ case _ =>
16+ throw("wrong type, expected: Int5&Boolean")
17+}
1818
1919
2020 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2121
22-let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
22+let assetStringBTC = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
2323
24-let assetStringBtc = addressFromStringValue("3PFoA1JFDoLWQJ3DqzAHNrrWR4riVuBfHks")
24+let reserveBTC = addressFromStringValue("3PA7QMFyHMtHeP66SUQnwCgwKQHKpCyXWwd")
2525
26-let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
26+let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
2727
28-let assetId = fromBase58String(assetStringUsdt)
28+let reserveUSDT = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
2929
30-let sender = addressFromStringValue("3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc")
30+let assetStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
3131
32-func withdraw3 (c,m) = asInt(invoke(assetStringBtc, (("valid" + c) + "imit"), [assetStringUsdt, toString(this), (0 - m)], nil))
32+let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
33+
34+func withdraw (assetString,reserve,min) = {
35+ let assetId = fromBase58String(assetString)
36+ let available = assetBalance(reserve, assetId)
37+ if ((available >= min))
38+ then {
39+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
40+ let maxAmount = userbalancedata._2
41+ let v = if ((available > maxAmount))
42+ then -1
43+ else available
44+ let r = {
45+ let result = invoke(main, "withdraw", [assetString, v], nil)
46+ asInt(result)
47+ }
48+ if ((r == r))
49+ then nil
50+ else throw("Strict value is not equal to itself.")
51+ }
52+ else nil
53+ }
3354
3455
3556 @Callable(i)
36-func initbal (bal,key) = if ((i.caller != sender))
37- then throw("1")
38- else $Tuple2([writeInt("MyBal", bal), writeInt(key, 0)], unit)
57+func withdrawBTC (min) = if ((i.caller != this))
58+ then throw("admin")
59+ else withdraw(assetStringBTC, reserveBTC, min)
3960
4061
4162
4263 @Callable(i)
43-func withdraw (lowm,c) = if ((i.caller != sender))
44- then throw("1")
45- else {
46- let available = assetBalance(reserveUsdt, assetId)
47- if ((lowm > available))
48- then throw("1")
49- else {
50- let uc = asInt(invoke(reserveUsdt, "userDepositUSD", [toString(this)], nil))
51- let v = if ((available > uc))
52- then uc
53- else available
54- if ((v == 0))
55- then throw("2")
56- else {
57- let b = withdraw3(c, v)
58- $Tuple2(nil, (b + asInt(invoke(main, "withdraw", [assetStringUsdt, v], nil))))
59- }
60- }
61- }
64+func withdrawUSDT (min) = if ((i.caller != this))
65+ then throw("admin")
66+ else withdraw(assetStringUSDT, reserveUSDT, min)
6267
6368
6469
6570 @Callable(i)
66-func goodbye (lowm) = {
67- let available = assetBalance(reserveUsdt, assetId)
68- if ((lowm > available))
69- then throw("1")
70- else {
71- let uc = valueOrElse(getI("MyBal"), 0)
72- let v = if ((available > uc))
73- then uc
74- else available
75- if ((v == 0))
76- then throw("2")
77- else $Tuple2([writeInt("MyBal", (uc - v))], asInt(invoke(main, "withdraw", [assetStringUsdt, v], nil)))
78- }
79- }
80-
81-
82-
83-@Callable(i)
84-func kissmegoodbye (limitd,key) = if ((i.caller != sender))
85- then throw("1")
86- else {
87- let available = assetBalance(reserveUsdt, assetId)
88- if ((limitd > available))
89- then throw("1")
90- else {
91- let flag = valueOrElse(getI(key), 0)
92- if ((flag == 1))
93- then throw("2")
94- else $Tuple2([writeInt(key, 1)], asInt(invoke(main, "withdraw", [assetStringUsdt, limitd], nil)))
95- }
96- }
71+func withdrawUSDC (min) = if ((i.caller != this))
72+ then throw("admin")
73+ else withdraw(assetStringUSDC, reserveUSDC, min)
9774
9875

github/deemru/w8io/6500d08 
40.71 ms