tx · 8qZ29YDnwUPhTPjcCbcPQVdqaK4nb2B1cgn2yERBTHoy 3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc: -0.01000000 Waves 2022.04.20 10:55 [3081923] smart account 3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc > SELF 0.00000000 Waves
{ "type": 13, "id": "8qZ29YDnwUPhTPjcCbcPQVdqaK4nb2B1cgn2yERBTHoy", "fee": 1000000, "feeAssetId": null, "timestamp": 1650441320131, "version": 2, "chainId": 87, "sender": "3P3jbpfBQ95gwKga8Nk4GbCB21R3Z66gHJc", "senderPublicKey": "BtEpTJKCNdpyvw4hDiXTx6VFSKKkFp5phwbfxtek1KRm", "proofs": [ "3m2H1Hu2nniZQEYwr3WP5G2RQsG6ztUArdX9v6Ls7Po7yWcuDNP5RyYzqKjG5uux5gj5iVMTqZ9JoG6iTSsRQTDK" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAAAkBAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAANZXhwZWN0ZWQ6IEludAEAAAARYXNVc2VyQmFsYW5jZURhdGEAAAABAAAABXZhbHVlBAAAAAckbWF0Y2gwBQAAAAV2YWx1ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAiKEludCwgSW50LCBJbnQsIEludCwgSW50LCBCb29sZWFuKQQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAQAAAABdAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACJ3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50NSZCb29sZWFuAAAAAARtYWluCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEFadjl0Z0sxUFg3ZEtSN2I0a2NocTVxZHBVUzNHNXNZVAAAAAAPYXNzZXRTdHJpbmdVc2RjAgAAACxERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAAAAALcmVzZXJ2ZVVzZGMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQMjNkcmZNaHFxb3V2enB0M3hVeUd3alZYOFA4cUF6cm1pAAAAAA9hc3NldFN0cmluZ1VzZHQCAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAAAAAAtyZXNlcnZlVXNkdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BFaUQxekpXVE1aTldTQ3l6aHZCdzlweHhBV2VFd2FnaFIAAAAADGFzc2V0U3RyaW5ncwkABEwAAAACAgAAACxERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAkABEwAAAACAgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgUAAAADbmlsAAAAAAhyZXNlcnZlcwkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUE5pa002eXA0TnFjU1U4Z3V4UXRtUjVvbnIyRDRlOHlUSgkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEVpRDF6SldUTVpOV1NDeXpodkJ3OXB4eEFXZUV3YWdoUgUAAAADbmlsAAAAAQAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGY29pbmlkAAAACm1pbl9hbW91bnQEAAAADWFzc2V0SWRTdHJpbmcJAAGRAAAAAgUAAAAMYXNzZXRTdHJpbmdzBQAAAAZjb2luaWQEAAAAB3Jlc2VydmUJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQTmlrTTZ5cDROcWNTVThndXhRdG1SNW9ucjJENGU4eVRKBAAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAHcmVzZXJ2ZQkAAZsAAAABBQAAAA1hc3NldElkU3RyaW5nBAAAAA91c2VyYmFsYW5jZWRhdGEJAQAAABFhc1VzZXJCYWxhbmNlRGF0YQAAAAEJAAP8AAAABAUAAAAHcmVzZXJ2ZQIAAAALdXNlckJhbGFuY2UJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzBQAAAANuaWwFAAAAA25pbAQAAAAKZGVwb3NpdFVzZAgFAAAAD3VzZXJiYWxhbmNlZGF0YQAAAAJfMwMJAABmAAAAAgUAAAAKbWluX2Ftb3VudAUAAAAJYXZhaWxhYmxlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFdGhpczoJAAQlAAAAAQUAAAAEdGhpcwIAAAAIYXNzZXRJZDoFAAAADWFzc2V0SWRTdHJpbmcCAAAACXJlc2VydmU6IAkABCUAAAABBQAAAAdyZXNlcnZlAgAAAA0sdXNlckFkZHJlc3M6CQAEJQAAAAEFAAAABHRoaXMCAAAADSwgZGVwb3NpdFVzZDoJAAGkAAAAAQUAAAAKZGVwb3NpdFVzZAIAAAASY3VycmVudEF2YWlsYWJsZTogCQABpAAAAAEFAAAACWF2YWlsYWJsZQIAAAAOLCBtaW5fYW1vdW50OiAJAAGkAAAAAQUAAAAKbWluX2Ftb3VudAQAAAABdgMJAABmAAAAAgUAAAAJYXZhaWxhYmxlBQAAAApkZXBvc2l0VXNkBQAAAApkZXBvc2l0VXNkBQAAAAlhdmFpbGFibGUDCQAAZgAAAAIFAAAACm1pbl9hbW91bnQFAAAAAXYJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMbWluIGFtb3VudDogCQABpAAAAAEFAAAACm1pbl9hbW91bnQCAAAABCwgdjoJAAGkAAAAAQUAAAABdgQAAAAGYW1vdW50CQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAABG1haW4CAAAACHdpdGhkcmF3CQAETAAAAAIFAAAADWFzc2V0SWRTdHJpbmcJAARMAAAAAgUAAAABdgUAAAADbmlsBQAAAANuaWwJAAUUAAAAAgUAAAADbmlsBQAAAAZhbW91bnQAAAAAssO3OA==", "height": 3081923, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BLuEjHA4skeNVMp69SRzZmz2njbgiCstm7Q74eUx2WJ2 Next: DhjGtULRzeKaMHgfZN3hHVs65gCkLTkFzyRPovNzvmBc Diff:
Old | New | Differences | |
---|---|---|---|
38 | 38 | ||
39 | 39 | let m = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"] | |
40 | 40 | ||
41 | - | let n = [addressFromStringValue(" | |
41 | + | let n = [addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")] | |
42 | 42 | ||
43 | 43 | @Callable(o) | |
44 | 44 | func withdraw (p,q) = { | |
45 | 45 | let r = m[p] | |
46 | - | let s = | |
46 | + | let s = addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ") | |
47 | 47 | let t = assetBalance(s, toBytes(r)) | |
48 | - | let u = 0 | |
48 | + | let u = e(invoke(s, "userBalance", [toString(this)], nil)) | |
49 | + | let v = u._3 | |
49 | 50 | if ((q > t)) | |
50 | - | then throw(((((((((((((("this:" + toString(this)) + "assetId:") + r) + "reserve: ") + toString(s)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString( | |
51 | + | then throw(((((((((((((("this:" + toString(this)) + "assetId:") + r) + "reserve: ") + toString(s)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(v)) + "currentAvailable: ") + toString(t)) + ", min_amount: ") + toString(q))) | |
51 | 52 | else { | |
52 | - | let | |
53 | - | then | |
53 | + | let w = if ((t > v)) | |
54 | + | then v | |
54 | 55 | else t | |
55 | - | if ((q > | |
56 | - | then throw(((("min amount: " + toString(q)) + ", v:") + toString( | |
56 | + | if ((q > w)) | |
57 | + | then throw(((("min amount: " + toString(q)) + ", v:") + toString(w))) | |
57 | 58 | else { | |
58 | - | let | |
59 | - | $Tuple2(nil, | |
59 | + | let x = a(invoke(h, "withdraw", [r, w], nil)) | |
60 | + | $Tuple2(nil, x) | |
60 | 61 | } | |
61 | 62 | } | |
62 | 63 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = { | |
5 | 5 | let c = b | |
6 | 6 | if ($isInstanceOf(c, "Int")) | |
7 | 7 | then { | |
8 | 8 | let d = c | |
9 | 9 | d | |
10 | 10 | } | |
11 | 11 | else throw("expected: Int") | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func e (b) = { | |
16 | 16 | let c = b | |
17 | 17 | if ($isInstanceOf(c, "(Int, Int, Int, Int, Int, Boolean)")) | |
18 | 18 | then { | |
19 | 19 | let f = c | |
20 | 20 | f | |
21 | 21 | } | |
22 | 22 | else { | |
23 | 23 | let g = c | |
24 | 24 | throw("wrong type, expected: Int5&Boolean") | |
25 | 25 | } | |
26 | 26 | } | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | let h = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
30 | 30 | ||
31 | 31 | let i = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
32 | 32 | ||
33 | 33 | let j = addressFromStringValue("3P23drfMhqqouvzpt3xUyGwjVX8P8qAzrmi") | |
34 | 34 | ||
35 | 35 | let k = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" | |
36 | 36 | ||
37 | 37 | let l = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR") | |
38 | 38 | ||
39 | 39 | let m = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"] | |
40 | 40 | ||
41 | - | let n = [addressFromStringValue(" | |
41 | + | let n = [addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR")] | |
42 | 42 | ||
43 | 43 | @Callable(o) | |
44 | 44 | func withdraw (p,q) = { | |
45 | 45 | let r = m[p] | |
46 | - | let s = | |
46 | + | let s = addressFromStringValue("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ") | |
47 | 47 | let t = assetBalance(s, toBytes(r)) | |
48 | - | let u = 0 | |
48 | + | let u = e(invoke(s, "userBalance", [toString(this)], nil)) | |
49 | + | let v = u._3 | |
49 | 50 | if ((q > t)) | |
50 | - | then throw(((((((((((((("this:" + toString(this)) + "assetId:") + r) + "reserve: ") + toString(s)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString( | |
51 | + | then throw(((((((((((((("this:" + toString(this)) + "assetId:") + r) + "reserve: ") + toString(s)) + ",userAddress:") + toString(this)) + ", depositUsd:") + toString(v)) + "currentAvailable: ") + toString(t)) + ", min_amount: ") + toString(q))) | |
51 | 52 | else { | |
52 | - | let | |
53 | - | then | |
53 | + | let w = if ((t > v)) | |
54 | + | then v | |
54 | 55 | else t | |
55 | - | if ((q > | |
56 | - | then throw(((("min amount: " + toString(q)) + ", v:") + toString( | |
56 | + | if ((q > w)) | |
57 | + | then throw(((("min amount: " + toString(q)) + ", v:") + toString(w))) | |
57 | 58 | else { | |
58 | - | let | |
59 | - | $Tuple2(nil, | |
59 | + | let x = a(invoke(h, "withdraw", [r, w], nil)) | |
60 | + | $Tuple2(nil, x) | |
60 | 61 | } | |
61 | 62 | } | |
62 | 63 | } | |
63 | 64 | ||
64 | 65 |
github/deemru/w8io/3ef1775 41.40 ms ◑