tx · 36UVQqSDA8X6FYQvznVGRyYbXPYZyp6AecqTJBzfp4u1
3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h: -0.05000000 Waves
2023.03.29 09:15 [2510858] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves
{
"type": 13,
"id": "36UVQqSDA8X6FYQvznVGRyYbXPYZyp6AecqTJBzfp4u1",
"fee": 5000000,
"feeAssetId": null,
"timestamp": 1680070525118,
"version": 2,
"chainId": 84,
"sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h",
"senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2",
"proofs": [
"5LpbuApt2WEanGtiP6MBA84ww6qHHrgi3Qj9bLqCFTQTuw35PmUfGcdpvyVPfEquwwAfcuYaxG8ZxA5soV4KveJj"
],
"script": "base64:BgIHCAISAwoBAQ8ADGNvbnRyYWN0RmlsZQIJcmViYWxhbmNlAA9rZXlzVGFyZ2V0UmF0aW8CDyVzX190YXJnZXRSYXRpbwAUa2V5QWRkaXRpb25hbEJhbGFuY2UCGiVzX19hZGRpdGlvbmFsV2F2ZXNCYWxhbmNlABprZXlTV2F2ZXNBZGRpdGlvbmFsQmFsYW5jZQIRJXNfX3NXYXZlc0JhbGFuY2UAEGtleVNXYXZlc0Fzc2V0SWQCESVzX19zV2F2ZXNBc3NldElkAA9rZXlQcm94eUFkZHJlc3MCECVzX19wcm94eUFkZHJlc3MADWtleU1pbkJhbGFuY2UCEyVzX21pbldhdmVzQmFsYWxuY2UABk1VTFQxMgCAoJSljR0BEGdldEludGVnZXJPclplcm8BCmludGVnZXJLZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUKaW50ZWdlcktleQMJAAECBQckbWF0Y2gwAgNJbnQEA3ZhbAUHJG1hdGNoMAUDdmFsAAABEGdldFN0cmluZ09yVGhyb3cBCXN0cmluZ0tleQQHJG1hdGNoMAkAnQgCBQR0aGlzBQlzdHJpbmdLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQkArAICCQCsAgICAVsFCXN0cmluZ0tleQIKXSBpcyBlbXB0eQEOZ2V0VGFyZ2V0UmF0aW8ABAckbWF0Y2gwCQCfCAEFD2tleXNUYXJnZXRSYXRpbwMJAAECBQckbWF0Y2gwAgNJbnQEBXJhdGlvBQckbWF0Y2gwCQCXAwEJAMwIAgBkCQDMCAIJAJYDAQkAzAgCAAAJAMwIAgUFcmF0aW8FA25pbAUDbmlsAFABDWdldE1pbkJhbGFuY2UABAckbWF0Y2gwCQCfCAEFDWtleU1pbkJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFpBQckbWF0Y2gwCQCWAwEJAMwIAgAACQDMCAIFAWkFA25pbAAAAQdnZXRSYXRlAAQFcHJveHkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARBnZXRTdHJpbmdPclRocm93AQUPa2V5UHJveHlBZGRyZXNzBANpbnYJAPwHBAUFcHJveHkCB2dldFJhdGUFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BAckbWF0Y2gwBQNpbnYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQENcGFyc2VJbnRWYWx1ZQEFAXMJAAIBAglaRVJPIHJhdGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BB2RlcG9zaXQBC3dhdmVzQW1vdW50BAVwcm94eQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEGdldFN0cmluZ09yVGhyb3cBBQ9rZXlQcm94eUFkZHJlc3MEGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZQkBEGdldEludGVnZXJPclplcm8BBRRrZXlBZGRpdGlvbmFsQmFsYW5jZQMJAAACBRhjdXJyZW50QWRkaXRpb25hbEJhbGFuY2UFGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZQQUY3VycmVudFNXYXZlc0JhbGFuY2UJARBnZXRJbnRlZ2VyT3JaZXJvAQUaa2V5U1dhdmVzQWRkaXRpb25hbEJhbGFuY2UDCQAAAgUUY3VycmVudFNXYXZlc0JhbGFuY2UFFGN1cnJlbnRTV2F2ZXNCYWxhbmNlAwkAZgIFC3dhdmVzQW1vdW50AAAEDWRlcG9zaXRJbnZva2UJAPwHBAUFcHJveHkCB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAULd2F2ZXNBbW91bnQFA25pbAMJAAACBQ1kZXBvc2l0SW52b2tlBQ1kZXBvc2l0SW52b2tlBAckbWF0Y2gwBQ1kZXBvc2l0SW52b2tlAwkAAQIFByRtYXRjaDACA0ludAQOcmVjZWl2ZWRTV2F2ZXMFByRtYXRjaDAEFG5ld0FkZGl0aW9uYWxCYWxhbmNlCQBkAgUYY3VycmVudEFkZGl0aW9uYWxCYWxhbmNlBQt3YXZlc0Ftb3VudAQQbmV3U1dhdmVzQmFsYW5jZQkAZAIFFGN1cnJlbnRTV2F2ZXNCYWxhbmNlBQ5yZWNlaXZlZFNXYXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5QWRkaXRpb25hbEJhbGFuY2UFFG5ld0FkZGl0aW9uYWxCYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRprZXlTV2F2ZXNBZGRpdGlvbmFsQmFsYW5jZQUQbmV3U1dhdmVzQmFsYW5jZQUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEId2l0aGRyYXcBC3dhdmVzQW1vdW50BAVwcm94eQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEGdldFN0cmluZ09yVGhyb3cBBQ9rZXlQcm94eUFkZHJlc3MECHNXYXZlc0lkCQDZBAEJARBnZXRTdHJpbmdPclRocm93AQUQa2V5U1dhdmVzQXNzZXRJZAMJAAACBQhzV2F2ZXNJZAUIc1dhdmVzSWQEGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZQkBEGdldEludGVnZXJPclplcm8BBRRrZXlBZGRpdGlvbmFsQmFsYW5jZQMJAAACBRhjdXJyZW50QWRkaXRpb25hbEJhbGFuY2UFGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZQQUY3VycmVudFNXYXZlc0JhbGFuY2UJARBnZXRJbnRlZ2VyT3JaZXJvAQUaa2V5U1dhdmVzQWRkaXRpb25hbEJhbGFuY2UDCQAAAgUUY3VycmVudFNXYXZlc0JhbGFuY2UFFGN1cnJlbnRTV2F2ZXNCYWxhbmNlBBBjdXJyZW50UHJveHlSYXRlCQEHZ2V0UmF0ZQADCQAAAgUQY3VycmVudFByb3h5UmF0ZQUQY3VycmVudFByb3h5UmF0ZQQQc2VuZFNXYXZlc0Ftb3VudAkAawMFBk1VTFQxMgULd2F2ZXNBbW91bnQFEGN1cnJlbnRQcm94eVJhdGUDCQBmAgUQc2VuZFNXYXZlc0Ftb3VudAAABA1kZXBvc2l0SW52b2tlCQD8BwQFBXByb3h5Agh3aXRoZHJhdwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQhzV2F2ZXNJZAUQc2VuZFNXYXZlc0Ftb3VudAUDbmlsAwkAAAIFDWRlcG9zaXRJbnZva2UFDWRlcG9zaXRJbnZva2UEByRtYXRjaDAFDWRlcG9zaXRJbnZva2UDCQABAgUHJG1hdGNoMAIDSW50BA1yZWNlaXZlZFdhdmVzBQckbWF0Y2gwBBRuZXdBZGRpdGlvbmFsQmFsYW5jZQkAZQIFGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZQUNcmVjZWl2ZWRXYXZlcwQQbmV3U1dhdmVzQmFsYW5jZQkAZQIFFGN1cnJlbnRTV2F2ZXNCYWxhbmNlBRBzZW5kU1dhdmVzQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlBZGRpdGlvbmFsQmFsYW5jZQUUbmV3QWRkaXRpb25hbEJhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQIFGmtleVNXYXZlc0FkZGl0aW9uYWxCYWxhbmNlBRBuZXdTV2F2ZXNCYWxhbmNlBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFpAQ5yZWJhbGFuY2VSYXRpbwELdGFyZ2V0UmF0aW8EDnJlZ3VsYXJCYWxhbmNlCQCWAwEJAMwIAgAACQDMCAIJAGUCCAkA7wcBBQR0aGlzB3JlZ3VsYXIJAQ1nZXRNaW5CYWxhbmNlAAUDbmlsAwkAAAIFDnJlZ3VsYXJCYWxhbmNlBQ5yZWd1bGFyQmFsYW5jZQQRYWRkaXRpb25hbEJhbGFuY2UJARBnZXRJbnRlZ2VyT3JaZXJvAQUUa2V5QWRkaXRpb25hbEJhbGFuY2UDCQAAAgURYWRkaXRpb25hbEJhbGFuY2UFEWFkZGl0aW9uYWxCYWxhbmNlBAx3aG9sZUJhbGFuY2UJAGQCBQ5yZWd1bGFyQmFsYW5jZQURYWRkaXRpb25hbEJhbGFuY2UEF3RhcmdldEFkZGl0aW9uYWxCYWxhbmNlCQBrAwULdGFyZ2V0UmF0aW8FDHdob2xlQmFsYW5jZQBkBAZjaGFuZ2UJAGUCBRFhZGRpdGlvbmFsQmFsYW5jZQUXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UDCQAAAgUGY2hhbmdlAAAFA25pbAMJAGYCAAAFBmNoYW5nZQQPc2VuZFdhdmVzQW1vdW50CQBoAgUGY2hhbmdlAP///////////wEJAQdkZXBvc2l0AQUPc2VuZFdhdmVzQW1vdW50BA5nZXRXYXZlc0Ftb3VudAUGY2hhbmdlCQEId2l0aGRyYXcBBQ5nZXRXYXZlc0Ftb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgBCZMAZ",
"height": 2510858,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: A2saRMNi6Am5rvtqqKKFHBnS3rYLnNEtJS9CaAVKVhb2
Next: 9MZwQVHAHh1AvA8EFBRP3uYh6ZCx1UhD9yB7xCVDye2U
Diff:
Old | New | | Differences |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "%s__proxyAddress" |
---|
15 | 15 | | |
---|
16 | | - | func g (h) = { |
---|
17 | | - | let i = getInteger(this, h) |
---|
18 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 16 | + | let g = "%s_minWavesBalalnce" |
---|
| 17 | + | |
---|
| 18 | + | let h = 1000000000000 |
---|
| 19 | + | |
---|
| 20 | + | func i (j) = { |
---|
| 21 | + | let k = getInteger(this, j) |
---|
| 22 | + | if ($isInstanceOf(k, "Int")) |
---|
19 | 23 | | then { |
---|
20 | | - | let j = i |
---|
21 | | - | j |
---|
| 24 | + | let l = k |
---|
| 25 | + | l |
---|
22 | 26 | | } |
---|
23 | 27 | | else 0 |
---|
24 | 28 | | } |
---|
25 | 29 | | |
---|
26 | 30 | | |
---|
27 | | - | func k (l) = { |
---|
28 | | - | let i = getString(this, l) |
---|
29 | | - | if ($isInstanceOf(i, "String")) |
---|
| 31 | + | func m (n) = { |
---|
| 32 | + | let k = getString(this, n) |
---|
| 33 | + | if ($isInstanceOf(k, "String")) |
---|
30 | 34 | | then { |
---|
31 | | - | let m = i |
---|
32 | | - | m |
---|
| 35 | + | let o = k |
---|
| 36 | + | o |
---|
33 | 37 | | } |
---|
34 | | - | else throw((("[" + l) + "] is empty")) |
---|
| 38 | + | else throw((("[" + n) + "] is empty")) |
---|
35 | 39 | | } |
---|
36 | 40 | | |
---|
37 | 41 | | |
---|
38 | | - | func n () = { |
---|
39 | | - | let i = getInteger(b) |
---|
40 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 42 | + | func p () = { |
---|
| 43 | + | let k = getInteger(b) |
---|
| 44 | + | if ($isInstanceOf(k, "Int")) |
---|
41 | 45 | | then { |
---|
42 | | - | let m = i |
---|
43 | | - | min([100, max([0, m])]) |
---|
| 46 | + | let q = k |
---|
| 47 | + | min([100, max([0, q])]) |
---|
44 | 48 | | } |
---|
45 | 49 | | else 80 |
---|
46 | 50 | | } |
---|
47 | 51 | | |
---|
48 | 52 | | |
---|
49 | | - | func o () = { |
---|
50 | | - | let p = addressFromStringValue(k(f)) |
---|
51 | | - | let q = invoke(p, "getRate", nil, nil) |
---|
52 | | - | if ((q == q)) |
---|
| 53 | + | func r () = { |
---|
| 54 | + | let k = getInteger(g) |
---|
| 55 | + | if ($isInstanceOf(k, "Int")) |
---|
53 | 56 | | then { |
---|
54 | | - | let i = q |
---|
55 | | - | if ($isInstanceOf(i, "String")) |
---|
| 57 | + | let s = k |
---|
| 58 | + | max([0, s]) |
---|
| 59 | + | } |
---|
| 60 | + | else 0 |
---|
| 61 | + | } |
---|
| 62 | + | |
---|
| 63 | + | |
---|
| 64 | + | func t () = { |
---|
| 65 | + | let u = addressFromStringValue(m(f)) |
---|
| 66 | + | let v = invoke(u, "getRate", nil, nil) |
---|
| 67 | + | if ((v == v)) |
---|
| 68 | + | then { |
---|
| 69 | + | let k = v |
---|
| 70 | + | if ($isInstanceOf(k, "String")) |
---|
56 | 71 | | then { |
---|
57 | | - | let m = i |
---|
58 | | - | parseIntValue(m) |
---|
| 72 | + | let o = k |
---|
| 73 | + | parseIntValue(o) |
---|
59 | 74 | | } |
---|
60 | 75 | | else throw("ZERO rate") |
---|
61 | 76 | | } |
---|
|
63 | 78 | | } |
---|
64 | 79 | | |
---|
65 | 80 | | |
---|
66 | | - | func r (s) = { |
---|
67 | | - | let p = addressFromStringValue(k(f)) |
---|
68 | | - | let t = g(c) |
---|
69 | | - | if ((t == t)) |
---|
| 81 | + | func w (x) = { |
---|
| 82 | + | let u = addressFromStringValue(m(f)) |
---|
| 83 | + | let y = i(c) |
---|
| 84 | + | if ((y == y)) |
---|
70 | 85 | | then { |
---|
71 | | - | let u = g(d) |
---|
72 | | - | if ((u == u)) |
---|
73 | | - | then if ((s > 0)) |
---|
| 86 | + | let z = i(d) |
---|
| 87 | + | if ((z == z)) |
---|
| 88 | + | then if ((x > 0)) |
---|
74 | 89 | | then { |
---|
75 | | - | let v = invoke(p, "deposit", nil, [AttachedPayment(unit, s)]) |
---|
76 | | - | if ((v == v)) |
---|
| 90 | + | let A = invoke(u, "deposit", nil, [AttachedPayment(unit, x)]) |
---|
| 91 | + | if ((A == A)) |
---|
77 | 92 | | then { |
---|
78 | | - | let i = v |
---|
79 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 93 | + | let k = A |
---|
| 94 | + | if ($isInstanceOf(k, "Int")) |
---|
80 | 95 | | then { |
---|
81 | | - | let w = i |
---|
82 | | - | let x = (t + s) |
---|
83 | | - | let y = (u + w) |
---|
84 | | - | [IntegerEntry(c, x), IntegerEntry(d, y)] |
---|
| 96 | + | let B = k |
---|
| 97 | + | let C = (y + x) |
---|
| 98 | + | let D = (z + B) |
---|
| 99 | + | [IntegerEntry(c, C), IntegerEntry(d, D)] |
---|
85 | 100 | | } |
---|
86 | 101 | | else nil |
---|
87 | 102 | | } |
---|
|
94 | 109 | | } |
---|
95 | 110 | | |
---|
96 | 111 | | |
---|
97 | | - | func z (s) = { |
---|
98 | | - | let p = addressFromStringValue(k(f)) |
---|
99 | | - | let A = fromBase58String(k(e)) |
---|
100 | | - | if ((A == A)) |
---|
| 112 | + | func E (x) = { |
---|
| 113 | + | let u = addressFromStringValue(m(f)) |
---|
| 114 | + | let F = fromBase58String(m(e)) |
---|
| 115 | + | if ((F == F)) |
---|
101 | 116 | | then { |
---|
102 | | - | let t = g(c) |
---|
103 | | - | if ((t == t)) |
---|
| 117 | + | let y = i(c) |
---|
| 118 | + | if ((y == y)) |
---|
104 | 119 | | then { |
---|
105 | | - | let u = g(d) |
---|
106 | | - | if ((u == u)) |
---|
| 120 | + | let z = i(d) |
---|
| 121 | + | if ((z == z)) |
---|
107 | 122 | | then { |
---|
108 | | - | let B = o() |
---|
109 | | - | if ((B == B)) |
---|
| 123 | + | let G = t() |
---|
| 124 | + | if ((G == G)) |
---|
110 | 125 | | then { |
---|
111 | | - | let C = fraction(1000000000000, s, B) |
---|
112 | | - | if ((C > 0)) |
---|
| 126 | + | let H = fraction(h, x, G) |
---|
| 127 | + | if ((H > 0)) |
---|
113 | 128 | | then { |
---|
114 | | - | let v = invoke(p, "withdraw", nil, [AttachedPayment(A, C)]) |
---|
115 | | - | if ((v == v)) |
---|
| 129 | + | let A = invoke(u, "withdraw", nil, [AttachedPayment(F, H)]) |
---|
| 130 | + | if ((A == A)) |
---|
116 | 131 | | then { |
---|
117 | | - | let i = v |
---|
118 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 132 | + | let k = A |
---|
| 133 | + | if ($isInstanceOf(k, "Int")) |
---|
119 | 134 | | then { |
---|
120 | | - | let D = i |
---|
121 | | - | let x = (t - D) |
---|
122 | | - | let y = (u - C) |
---|
123 | | - | [IntegerEntry(c, x), IntegerEntry(d, y)] |
---|
| 135 | + | let I = k |
---|
| 136 | + | let C = (y - I) |
---|
| 137 | + | let D = (z - H) |
---|
| 138 | + | [IntegerEntry(c, C), IntegerEntry(d, D)] |
---|
124 | 139 | | } |
---|
125 | 140 | | else nil |
---|
126 | 141 | | } |
---|
|
138 | 153 | | } |
---|
139 | 154 | | |
---|
140 | 155 | | |
---|
141 | | - | @Callable(E) |
---|
142 | | - | func rebalanceRatio (F) = { |
---|
143 | | - | let G = wavesBalance(this).regular |
---|
144 | | - | if ((G == G)) |
---|
| 156 | + | @Callable(s) |
---|
| 157 | + | func rebalanceRatio (J) = { |
---|
| 158 | + | let K = max([0, (wavesBalance(this).regular - r())]) |
---|
| 159 | + | if ((K == K)) |
---|
145 | 160 | | then { |
---|
146 | | - | let H = g(c) |
---|
147 | | - | if ((H == H)) |
---|
| 161 | + | let L = i(c) |
---|
| 162 | + | if ((L == L)) |
---|
148 | 163 | | then { |
---|
149 | | - | let I = (G + H) |
---|
150 | | - | let J = fraction(F, I, 100) |
---|
151 | | - | let K = (H - J) |
---|
152 | | - | let L = (G + K) |
---|
153 | | - | if ((K == 0)) |
---|
| 164 | + | let M = (K + L) |
---|
| 165 | + | let N = fraction(J, M, 100) |
---|
| 166 | + | let O = (L - N) |
---|
| 167 | + | if ((O == 0)) |
---|
154 | 168 | | then nil |
---|
155 | | - | else if ((0 > K)) |
---|
| 169 | + | else if ((0 > O)) |
---|
156 | 170 | | then { |
---|
157 | | - | let M = (K * -1) |
---|
158 | | - | r(M) |
---|
| 171 | + | let P = (O * -1) |
---|
| 172 | + | w(P) |
---|
159 | 173 | | } |
---|
160 | 174 | | else { |
---|
161 | | - | let N = K |
---|
162 | | - | z(N) |
---|
| 175 | + | let Q = O |
---|
| 176 | + | E(Q) |
---|
163 | 177 | | } |
---|
164 | 178 | | } |
---|
165 | 179 | | else throw("Strict value is not equal to itself.") |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "rebalance" |
---|
5 | 5 | | |
---|
6 | 6 | | let b = "%s__targetRatio" |
---|
7 | 7 | | |
---|
8 | 8 | | let c = "%s__additionalWavesBalance" |
---|
9 | 9 | | |
---|
10 | 10 | | let d = "%s__sWavesBalance" |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "%s__sWavesAssetId" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "%s__proxyAddress" |
---|
15 | 15 | | |
---|
16 | | - | func g (h) = { |
---|
17 | | - | let i = getInteger(this, h) |
---|
18 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 16 | + | let g = "%s_minWavesBalalnce" |
---|
| 17 | + | |
---|
| 18 | + | let h = 1000000000000 |
---|
| 19 | + | |
---|
| 20 | + | func i (j) = { |
---|
| 21 | + | let k = getInteger(this, j) |
---|
| 22 | + | if ($isInstanceOf(k, "Int")) |
---|
19 | 23 | | then { |
---|
20 | | - | let j = i |
---|
21 | | - | j |
---|
| 24 | + | let l = k |
---|
| 25 | + | l |
---|
22 | 26 | | } |
---|
23 | 27 | | else 0 |
---|
24 | 28 | | } |
---|
25 | 29 | | |
---|
26 | 30 | | |
---|
27 | | - | func k (l) = { |
---|
28 | | - | let i = getString(this, l) |
---|
29 | | - | if ($isInstanceOf(i, "String")) |
---|
| 31 | + | func m (n) = { |
---|
| 32 | + | let k = getString(this, n) |
---|
| 33 | + | if ($isInstanceOf(k, "String")) |
---|
30 | 34 | | then { |
---|
31 | | - | let m = i |
---|
32 | | - | m |
---|
| 35 | + | let o = k |
---|
| 36 | + | o |
---|
33 | 37 | | } |
---|
34 | | - | else throw((("[" + l) + "] is empty")) |
---|
| 38 | + | else throw((("[" + n) + "] is empty")) |
---|
35 | 39 | | } |
---|
36 | 40 | | |
---|
37 | 41 | | |
---|
38 | | - | func n () = { |
---|
39 | | - | let i = getInteger(b) |
---|
40 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 42 | + | func p () = { |
---|
| 43 | + | let k = getInteger(b) |
---|
| 44 | + | if ($isInstanceOf(k, "Int")) |
---|
41 | 45 | | then { |
---|
42 | | - | let m = i |
---|
43 | | - | min([100, max([0, m])]) |
---|
| 46 | + | let q = k |
---|
| 47 | + | min([100, max([0, q])]) |
---|
44 | 48 | | } |
---|
45 | 49 | | else 80 |
---|
46 | 50 | | } |
---|
47 | 51 | | |
---|
48 | 52 | | |
---|
49 | | - | func o () = { |
---|
50 | | - | let p = addressFromStringValue(k(f)) |
---|
51 | | - | let q = invoke(p, "getRate", nil, nil) |
---|
52 | | - | if ((q == q)) |
---|
| 53 | + | func r () = { |
---|
| 54 | + | let k = getInteger(g) |
---|
| 55 | + | if ($isInstanceOf(k, "Int")) |
---|
53 | 56 | | then { |
---|
54 | | - | let i = q |
---|
55 | | - | if ($isInstanceOf(i, "String")) |
---|
| 57 | + | let s = k |
---|
| 58 | + | max([0, s]) |
---|
| 59 | + | } |
---|
| 60 | + | else 0 |
---|
| 61 | + | } |
---|
| 62 | + | |
---|
| 63 | + | |
---|
| 64 | + | func t () = { |
---|
| 65 | + | let u = addressFromStringValue(m(f)) |
---|
| 66 | + | let v = invoke(u, "getRate", nil, nil) |
---|
| 67 | + | if ((v == v)) |
---|
| 68 | + | then { |
---|
| 69 | + | let k = v |
---|
| 70 | + | if ($isInstanceOf(k, "String")) |
---|
56 | 71 | | then { |
---|
57 | | - | let m = i |
---|
58 | | - | parseIntValue(m) |
---|
| 72 | + | let o = k |
---|
| 73 | + | parseIntValue(o) |
---|
59 | 74 | | } |
---|
60 | 75 | | else throw("ZERO rate") |
---|
61 | 76 | | } |
---|
62 | 77 | | else throw("Strict value is not equal to itself.") |
---|
63 | 78 | | } |
---|
64 | 79 | | |
---|
65 | 80 | | |
---|
66 | | - | func r (s) = { |
---|
67 | | - | let p = addressFromStringValue(k(f)) |
---|
68 | | - | let t = g(c) |
---|
69 | | - | if ((t == t)) |
---|
| 81 | + | func w (x) = { |
---|
| 82 | + | let u = addressFromStringValue(m(f)) |
---|
| 83 | + | let y = i(c) |
---|
| 84 | + | if ((y == y)) |
---|
70 | 85 | | then { |
---|
71 | | - | let u = g(d) |
---|
72 | | - | if ((u == u)) |
---|
73 | | - | then if ((s > 0)) |
---|
| 86 | + | let z = i(d) |
---|
| 87 | + | if ((z == z)) |
---|
| 88 | + | then if ((x > 0)) |
---|
74 | 89 | | then { |
---|
75 | | - | let v = invoke(p, "deposit", nil, [AttachedPayment(unit, s)]) |
---|
76 | | - | if ((v == v)) |
---|
| 90 | + | let A = invoke(u, "deposit", nil, [AttachedPayment(unit, x)]) |
---|
| 91 | + | if ((A == A)) |
---|
77 | 92 | | then { |
---|
78 | | - | let i = v |
---|
79 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 93 | + | let k = A |
---|
| 94 | + | if ($isInstanceOf(k, "Int")) |
---|
80 | 95 | | then { |
---|
81 | | - | let w = i |
---|
82 | | - | let x = (t + s) |
---|
83 | | - | let y = (u + w) |
---|
84 | | - | [IntegerEntry(c, x), IntegerEntry(d, y)] |
---|
| 96 | + | let B = k |
---|
| 97 | + | let C = (y + x) |
---|
| 98 | + | let D = (z + B) |
---|
| 99 | + | [IntegerEntry(c, C), IntegerEntry(d, D)] |
---|
85 | 100 | | } |
---|
86 | 101 | | else nil |
---|
87 | 102 | | } |
---|
88 | 103 | | else throw("Strict value is not equal to itself.") |
---|
89 | 104 | | } |
---|
90 | 105 | | else nil |
---|
91 | 106 | | else throw("Strict value is not equal to itself.") |
---|
92 | 107 | | } |
---|
93 | 108 | | else throw("Strict value is not equal to itself.") |
---|
94 | 109 | | } |
---|
95 | 110 | | |
---|
96 | 111 | | |
---|
97 | | - | func z (s) = { |
---|
98 | | - | let p = addressFromStringValue(k(f)) |
---|
99 | | - | let A = fromBase58String(k(e)) |
---|
100 | | - | if ((A == A)) |
---|
| 112 | + | func E (x) = { |
---|
| 113 | + | let u = addressFromStringValue(m(f)) |
---|
| 114 | + | let F = fromBase58String(m(e)) |
---|
| 115 | + | if ((F == F)) |
---|
101 | 116 | | then { |
---|
102 | | - | let t = g(c) |
---|
103 | | - | if ((t == t)) |
---|
| 117 | + | let y = i(c) |
---|
| 118 | + | if ((y == y)) |
---|
104 | 119 | | then { |
---|
105 | | - | let u = g(d) |
---|
106 | | - | if ((u == u)) |
---|
| 120 | + | let z = i(d) |
---|
| 121 | + | if ((z == z)) |
---|
107 | 122 | | then { |
---|
108 | | - | let B = o() |
---|
109 | | - | if ((B == B)) |
---|
| 123 | + | let G = t() |
---|
| 124 | + | if ((G == G)) |
---|
110 | 125 | | then { |
---|
111 | | - | let C = fraction(1000000000000, s, B) |
---|
112 | | - | if ((C > 0)) |
---|
| 126 | + | let H = fraction(h, x, G) |
---|
| 127 | + | if ((H > 0)) |
---|
113 | 128 | | then { |
---|
114 | | - | let v = invoke(p, "withdraw", nil, [AttachedPayment(A, C)]) |
---|
115 | | - | if ((v == v)) |
---|
| 129 | + | let A = invoke(u, "withdraw", nil, [AttachedPayment(F, H)]) |
---|
| 130 | + | if ((A == A)) |
---|
116 | 131 | | then { |
---|
117 | | - | let i = v |
---|
118 | | - | if ($isInstanceOf(i, "Int")) |
---|
| 132 | + | let k = A |
---|
| 133 | + | if ($isInstanceOf(k, "Int")) |
---|
119 | 134 | | then { |
---|
120 | | - | let D = i |
---|
121 | | - | let x = (t - D) |
---|
122 | | - | let y = (u - C) |
---|
123 | | - | [IntegerEntry(c, x), IntegerEntry(d, y)] |
---|
| 135 | + | let I = k |
---|
| 136 | + | let C = (y - I) |
---|
| 137 | + | let D = (z - H) |
---|
| 138 | + | [IntegerEntry(c, C), IntegerEntry(d, D)] |
---|
124 | 139 | | } |
---|
125 | 140 | | else nil |
---|
126 | 141 | | } |
---|
127 | 142 | | else throw("Strict value is not equal to itself.") |
---|
128 | 143 | | } |
---|
129 | 144 | | else nil |
---|
130 | 145 | | } |
---|
131 | 146 | | else throw("Strict value is not equal to itself.") |
---|
132 | 147 | | } |
---|
133 | 148 | | else throw("Strict value is not equal to itself.") |
---|
134 | 149 | | } |
---|
135 | 150 | | else throw("Strict value is not equal to itself.") |
---|
136 | 151 | | } |
---|
137 | 152 | | else throw("Strict value is not equal to itself.") |
---|
138 | 153 | | } |
---|
139 | 154 | | |
---|
140 | 155 | | |
---|
141 | | - | @Callable(E) |
---|
142 | | - | func rebalanceRatio (F) = { |
---|
143 | | - | let G = wavesBalance(this).regular |
---|
144 | | - | if ((G == G)) |
---|
| 156 | + | @Callable(s) |
---|
| 157 | + | func rebalanceRatio (J) = { |
---|
| 158 | + | let K = max([0, (wavesBalance(this).regular - r())]) |
---|
| 159 | + | if ((K == K)) |
---|
145 | 160 | | then { |
---|
146 | | - | let H = g(c) |
---|
147 | | - | if ((H == H)) |
---|
| 161 | + | let L = i(c) |
---|
| 162 | + | if ((L == L)) |
---|
148 | 163 | | then { |
---|
149 | | - | let I = (G + H) |
---|
150 | | - | let J = fraction(F, I, 100) |
---|
151 | | - | let K = (H - J) |
---|
152 | | - | let L = (G + K) |
---|
153 | | - | if ((K == 0)) |
---|
| 164 | + | let M = (K + L) |
---|
| 165 | + | let N = fraction(J, M, 100) |
---|
| 166 | + | let O = (L - N) |
---|
| 167 | + | if ((O == 0)) |
---|
154 | 168 | | then nil |
---|
155 | | - | else if ((0 > K)) |
---|
| 169 | + | else if ((0 > O)) |
---|
156 | 170 | | then { |
---|
157 | | - | let M = (K * -1) |
---|
158 | | - | r(M) |
---|
| 171 | + | let P = (O * -1) |
---|
| 172 | + | w(P) |
---|
159 | 173 | | } |
---|
160 | 174 | | else { |
---|
161 | | - | let N = K |
---|
162 | | - | z(N) |
---|
| 175 | + | let Q = O |
---|
| 176 | + | E(Q) |
---|
163 | 177 | | } |
---|
164 | 178 | | } |
---|
165 | 179 | | else throw("Strict value is not equal to itself.") |
---|
166 | 180 | | } |
---|
167 | 181 | | else throw("Strict value is not equal to itself.") |
---|
168 | 182 | | } |
---|
169 | 183 | | |
---|
170 | 184 | | |
---|