tx · 33QTLgifuxuKb8TipxhsNhc5e9TUbp8dzskVeDi8cb38

3PDBorDoq2FcY7bnQFpeosaqk6tRJktvXtM:  -0.01000000 Waves

2022.04.17 14:23 [3077797] smart account 3PDBorDoq2FcY7bnQFpeosaqk6tRJktvXtM > SELF 0.00000000 Waves

{ "type": 13, "id": "33QTLgifuxuKb8TipxhsNhc5e9TUbp8dzskVeDi8cb38", "fee": 1000000, "feeAssetId": null, "timestamp": 1650194664975, "version": 1, "sender": "3PDBorDoq2FcY7bnQFpeosaqk6tRJktvXtM", "senderPublicKey": "CLg3Sk2mVMRv5TwcJEqrLMgkxCNFMDdQFGUJ6zdTKVaz", "proofs": [ "2gVHNBidgNkajgWWfvxGbnFhJXwG8AyfnEgu8cLzJH4WiJNiwcjiXPJGL5sYcMwuZivLM15ZMkpg9ydgEvE2dWZY" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAAAUBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAANZXhwZWN0ZWQ6IEludAEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAiKEludCwgSW50LCBJbnQsIEludCwgSW50LCBCb29sZWFuKQQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAQAAAABdAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACJ3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50NSZCb29sZWFuAAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAAMYXNzZXRTdHJpbmdzCQAETAAAAAICAAAALDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKCQAETAAAAAICAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKBQAAAANuaWwAAAAACHJlc2VydmVzCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQR0NrckhCeEZNaTd0ejF4cW54Z0JwZU52bjVFNE00ZzhTCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQRWlEMXpKV1RNWk5XU0N5emh2Qnc5cHh4QVdlRXdhZ2hSBQAAAANuaWwAAAABAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAZjb2luaWQAAAAKbWluX2Ftb3VudAQAAAANYXNzZXRJZFN0cmluZwkAAZEAAAACBQAAAAxhc3NldFN0cmluZ3MFAAAABmNvaW5pZAQAAAAHYXNzZXRJZAkAAlkAAAABBQAAAA1hc3NldElkU3RyaW5nBAAAAAdyZXNlcnZlCQABkQAAAAIFAAAACHJlc2VydmVzBQAAAAZjb2luaWQEAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAdyZXNlcnZlBQAAAAdhc3NldElkAwkAAGYAAAACBQAAAAptaW5fYW1vdW50BQAAAAlhdmFpbGFibGUJAAACAAAAAQkAAaQAAAABBQAAAAlhdmFpbGFibGUEAAAAD3VzZXJiYWxhbmNlZGF0YQkBAAAAEWFzVXNlckJhbGFuY2VEYXRhAAAAAQkAA/wAAAAEBQAAAAdyZXNlcnZlAgAAAAt1c2VyQmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMFAAAAA25pbAUAAAADbmlsBAAAAApkZXBvc2l0VXNkCAUAAAAPdXNlcmJhbGFuY2VkYXRhAAAAAl8zBAAAAAF2AwkAAGYAAAACBQAAAAlhdmFpbGFibGUFAAAACmRlcG9zaXRVc2QFAAAACmRlcG9zaXRVc2QFAAAACWF2YWlsYWJsZQMJAABmAAAAAgUAAAAKbWluX2Ftb3VudAUAAAABdgkAAAIAAAABCQABpAAAAAEFAAAAAXYEAAAABmFtb3VudAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAARtYWluAgAAAAh3aXRoZHJhdwkABEwAAAACBQAAAA1hc3NldElkU3RyaW5nCQAETAAAAAIFAAAAAXYFAAAAA25pbAUAAAADbmlsCQAFFAAAAAIFAAAAA25pbAUAAAAGYW1vdW50AAAAALeLMIM=", "chainId": 87, "height": 3077797, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EbKkqEqFoYGkCBZs8CGsbgEwwAdLS1ZUwBAY6w6T8wA6 Next: none 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
7+ case _ =>
8+ throw("expected: Int")
9+}
410
511
6-@Callable(i)
7-func t (amount) = {
8- let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
9- let assetString = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
10- let reserve = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")
11- let assetId = fromBase58String(assetString)
12- let tx = invoke(main, "withdraw", [assetString, amount], nil)
13- $Tuple2(nil, 0)
14- }
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+}
1518
1619
20+let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
21+
22+let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"]
23+
24+let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")]
1725
1826 @Callable(i)
19-func c (amount) = {
20- let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT")
21- let assetString = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
22- let reserve = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S")
23- let assetId = fromBase58String(assetString)
24- let tx = invoke(main, "withdraw", [assetString, amount], nil)
25- $Tuple2(nil, 0)
27+func withdraw (coinid,min_amount) = {
28+ let assetIdString = assetStrings[coinid]
29+ let assetId = fromBase58String(assetIdString)
30+ let reserve = reserves[coinid]
31+ let available = assetBalance(reserve, assetId)
32+ if ((min_amount > available))
33+ then throw(toString(available))
34+ else {
35+ let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
36+ let depositUsd = userbalancedata._3
37+ let v = if ((available > depositUsd))
38+ then depositUsd
39+ else available
40+ if ((min_amount > v))
41+ then throw(toString(v))
42+ else {
43+ let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
44+ $Tuple2(nil, amount)
45+ }
46+ }
2647 }
2748
2849

github/deemru/w8io/6500d08 
36.93 ms