tx · BhsNpxEpRcYA6TpY81povAJRHNzTHzpkvN3irF7JY6DY

3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc:  -0.01000000 Waves

2022.04.20 11:09 [3081938] smart account 3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc > SELF 0.00000000 Waves

{ "type": 13, "id": "BhsNpxEpRcYA6TpY81povAJRHNzTHzpkvN3irF7JY6DY", "fee": 1000000, "feeAssetId": null, "timestamp": 1650442144193, "version": 2, "chainId": 87, "sender": "3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc", "senderPublicKey": "BtEpTJKCNdpyvw4hDiXTx6VFSKKkFp5phwbfxtek1KRm", "proofs": [ "8b134LF6DbVqgivQSPZ6Bg2QYoBq6m2ij7R9u2JqnNXC1Dg66bziMTtJfBDAumQMoCUwfxrkybC4xcvAHwav9ZK" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAAAgEAAAAFYXNJbnQAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAkAAAIAAAABAgAAAA1leHBlY3RlZDogSW50AAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAEAAAABaQEAAAAId2l0aGRyYXcAAAAABAAAAAZhbW91bnQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAEbWFpbgIAAAAId2l0aGRyYXcJAARMAAAAAgIAAAAsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAJAARMAAAAAgAAAAAAAA9CQAUAAAADbmlsBQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAAAhhbW91bnQ6IAkAAaQAAAABBQAAAAZhbW91bnQAAAAAkw/GVQ==", "height": 3081938, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DhjGtULRzeKaMHgfZN3hHVs65gCkLTkFzyRPovNzvmBc Next: 7pGNCbEwc5rsRmeMyqdbLm9CfJUHaP5aWb1zVLsyHtSE Diff:
OldNewDifferences
99 }
1010
1111
12-func asUserBalanceData (value) = match value {
13- case x: (Int, Int, Int, Int, Int, Boolean) =>
14- x
15- case t =>
16- throw("wrong type, expected: Int5&Boolean")
17-}
18-
19-
2012 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2113
22-let assetStringUsdc = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
23-
24-let reserveUsdc = addressFromStringValue("3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi")
25-
26-let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
27-
28-let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
29-
30-let assetStrings = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
31-
32-let reserves = [addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
33-
3414 @Callable(i)
35-func withdraw (coinid,min_amount) = {
36- let assetIdString = assetStrings[coinid]
37- let reserve = addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ")
38- let available = assetBalance(reserve, toBytes(assetIdString))
39- let userbalancedata = asUserBalanceData(invoke(reserve, "getUserBalance", [toString(this)], nil))
40- let depositUsd = userbalancedata._3
41- if ((min_amount > available))
42- then throw(((((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(depositUsd)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
43- else {
44- let v = if ((available > depositUsd))
45- then depositUsd
46- else available
47- if ((min_amount > v))
48- then throw(((("min amount: " + toString(min_amount)) + ", v:") + toString(v)))
49- else {
50- let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
51- $Tuple2(nil, amount)
52- }
53- }
15+func withdraw () = {
16+ let amount = asInt(invoke(main, "withdraw", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", 1000000], nil))
17+ throw(("amount: " + toString(amount)))
5418 }
5519
5620
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asInt (value) = match value {
55 case int: Int =>
66 int
77 case _ =>
88 throw("expected: Int")
99 }
1010
1111
12-func asUserBalanceData (value) = match value {
13- case x: (Int, Int, Int, Int, Int, Boolean) =>
14- x
15- case t =>
16- throw("wrong type, expected: Int5&Boolean")
17-}
18-
19-
2012 let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
2113
22-let assetStringUsdc = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
23-
24-let reserveUsdc = addressFromStringValue("3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi")
25-
26-let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
27-
28-let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
29-
30-let assetStrings = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
31-
32-let reserves = [addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
33-
3414 @Callable(i)
35-func withdraw (coinid,min_amount) = {
36- let assetIdString = assetStrings[coinid]
37- let reserve = addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ")
38- let available = assetBalance(reserve, toBytes(assetIdString))
39- let userbalancedata = asUserBalanceData(invoke(reserve, "getUserBalance", [toString(this)], nil))
40- let depositUsd = userbalancedata._3
41- if ((min_amount > available))
42- then throw(((((((((((((("this:" + toString(this)) + "assetId:") + assetIdString) + "reserve: ") + toString(reserve)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(depositUsd)) + "currentAvailable: ") + toString(available)) + ", min_amount: ") + toString(min_amount)))
43- else {
44- let v = if ((available > depositUsd))
45- then depositUsd
46- else available
47- if ((min_amount > v))
48- then throw(((("min amount: " + toString(min_amount)) + ", v:") + toString(v)))
49- else {
50- let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
51- $Tuple2(nil, amount)
52- }
53- }
15+func withdraw () = {
16+ let amount = asInt(invoke(main, "withdraw", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", 1000000], nil))
17+ throw(("amount: " + toString(amount)))
5418 }
5519
5620

github/deemru/w8io/3ef1775 
26.78 ms