tx · GbGXhbErYH3w1rE5fusFHMgdDQPPVGQ17sticyZjuFW9 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC: -0.09000000 Waves 2020.01.10 13:05 [847738] smart account 3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC > SELF 0.00000000 Waves
{ "type": 13, "id": "GbGXhbErYH3w1rE5fusFHMgdDQPPVGQ17sticyZjuFW9", "fee": 9000000, "feeAssetId": null, "timestamp": 1578650689458, "version": 1, "sender": "3MvQVj21fwPXbyXsrVDV2Sf639TcWTsaxmC", "senderPublicKey": "GfU9G8BJcrUfL2H2QthDHbeLHThimafNuKPuDQm9wbzr", "proofs": [ "2kJZDdGXgprPv9CzZWua3J6AaQqs5fQz95qDUAp4DtduxQ7r49Hg2tHbZLb82P54ggXUfnJfL3rW5bpu7T1uQZHM" ], "script": "base64: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Zm91cnRoSW5uZXJQcmljZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgQAAAAVZmlyc3RMZXZlbEZvdXJ0aFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAABBmb3VydGhJbm5lclByaWNlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAAA9maWZ0aElubmVyUHJpY2UFAAAABXBEb3duBQAAAAZGQUNUT1IFAAAAAmRmBQAAAAZGQUNUT1IEAAAAFXNlY29uZExldmVsRmlyc3RWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAUZmlyc3RMZXZlbEZpcnN0VmFsdWUFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAFWZpcnN0TGV2ZWxTZWNvbmRWYWx1ZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgQAAAAWc2Vjb25kTGV2ZWxTZWNvbmRWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAVZmlyc3RMZXZlbFNlY29uZFZhbHVlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAABRmaXJzdExldmVsVGhpcmRWYWx1ZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgQAAAAVc2Vjb25kTGV2ZWxUaGlyZFZhbHVlCQAAawAAAAMJAABkAAAAAgkAAGsAAAADBQAAABRmaXJzdExldmVsVGhpcmRWYWx1ZQUAAAADcFVwBQAAAAZGQUNUT1IJAABrAAAAAwUAAAAVZmlyc3RMZXZlbEZvdXJ0aFZhbHVlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABR0aGlyZExldmVsRmlyc3RWYWx1ZQkAAGsAAAADCQAAZAAAAAIJAABrAAAAAwUAAAAVc2Vjb25kTGV2ZWxGaXJzdFZhbHVlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAABZzZWNvbmRMZXZlbFNlY29uZFZhbHVlBQAAAAVwRG93bgUAAAAGRkFDVE9SBQAAAAJkZgUAAAAGRkFDVE9SBAAAABV0aGlyZExldmVsU2Vjb25kVmFsdWUJAABrAAAAAwkAAGQAAAACCQAAawAAAAMFAAAAFnNlY29uZExldmVsU2Vjb25kVmFsdWUFAAAAA3BVcAUAAAAGRkFDVE9SCQAAawAAAAMFAAAAFXNlY29uZExldmVsVGhpcmRWYWx1ZQUAAAAFcERvd24FAAAABkZBQ1RPUgUAAAACZGYFAAAABkZBQ1RPUgQAAAALZm91cnRoTGV2ZWwJAABrAAAAAwkAAGQAAAACCQAAawAAAAMFAAAAFHRoaXJkTGV2ZWxGaXJzdFZhbHVlBQAAAANwVXAFAAAABkZBQ1RPUgkAAGsAAAADBQAAABV0aGlyZExldmVsU2Vjb25kVmFsdWUFAAAABXBEb3duBQAAAAZGQUNUT1IFAAAAAmRmBQAAAAZGQUNUT1IFAAAAC2ZvdXJ0aExldmVsAAAAAQAAAAFpAQAAABFjYWxjdWxhdENhbGxQcmljZQAAAAUAAAABVAAAAAFTAAAAAUsAAAABcgAAAAVzaWdtYQQAAAAKZmluYWxWYWx1ZQkBAAAAFWNveFJvc3NSdWJpbnN0ZWluQ2FsbAAAAAUFAAAAAVQFAAAAAVMFAAAAAUsFAAAAAXIFAAAABXNpZ21hCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAApmaW5hbFZhbHVlBQAAAApmaW5hbFZhbHVlBQAAAANuaWwAAAAAM6EPjg==", "chainId": 84, "height": 847738, "spentComplexity": 0 } View: original | compacted Prev: FtYf9Ty9HHTD7KVaQYhuMPj3xVGU8yNYvLSjkGR3KdwC Next: BVzM1SfJ1wAeqv6vYHS7zMKZCFmzuK3hZhxCMv9CdKjp Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | ||
8 | 8 | let c = 2718282 | |
9 | 9 | ||
10 | - | func d (e,f,g,h,i,j) = { | |
11 | - | let k = fraction(e, a, (365 * j)) | |
12 | - | let l = pow(k, b, 5, 1, b, HALFUP) | |
13 | - | let m = pow(c, b, fraction(i, l, 100), b, b, HALFUP) | |
14 | - | let n = fraction(1, (a * a), m) | |
15 | - | let o = pow(c, b, fraction(-(h), k, 100), b, b, HALFUP) | |
16 | - | let p = fraction((pow(c, b, fraction(h, k, 100), b, b, HALFUP) - n), a, (m - n)) | |
17 | - | let q = (a - p) | |
18 | - | let r = fraction(((f * pow(m, b, 4, 0, b, HALFUP)) * pow(n, b, 0, 0, b, HALFUP)), 1, a) | |
19 | - | let s = fraction(((f * pow(m, b, 3, 0, b, HALFUP)) * pow(n, b, 1, 0, b, HALFUP)), 1, a) | |
20 | - | let t = fraction(((f * pow(m, b, 2, 0, b, HALFUP)) * pow(n, b, 2, 0, b, HALFUP)), 1, a) | |
21 | - | let u = fraction(((f * pow(m, b, 1, 0, b, HALFUP)) * pow(n, b, 3, 0, b, HALFUP)), 1, a) | |
22 | - | let v = fraction(((f * pow(m, b, 0, 0, b, HALFUP)) * pow(n, b, 4, 0, b, HALFUP)), 1, a) | |
23 | - | let w = if ((r > (g * a))) | |
24 | - | then (r - (g * a)) | |
25 | - | else 0 | |
26 | - | let x = if ((s > (g * a))) | |
27 | - | then (s - (g * a)) | |
28 | - | else 0 | |
29 | - | let y = if ((t > (g * a))) | |
30 | - | then (t - (g * a)) | |
31 | - | else 0 | |
32 | - | let z = if ((u > (g * a))) | |
33 | - | then (u - g) | |
34 | - | else 0 | |
35 | - | let A = if ((v > (g * a))) | |
36 | - | then (v - g) | |
37 | - | else 0 | |
38 | - | let B = fraction((fraction(w, p, a) + fraction(x, q, a)), o, a) | |
39 | - | let C = fraction((fraction(x, p, a) + fraction(y, q, a)), o, a) | |
40 | - | let D = fraction((fraction(y, p, a) + fraction(z, q, a)), o, a) | |
41 | - | let E = fraction((fraction(z, p, a) + fraction(A, q, a)), o, a) | |
42 | - | let F = fraction((fraction(B, p, a) + fraction(C, q, a)), o, a) | |
43 | - | let G = fraction((fraction(C, p, a) + fraction(D, q, a)), o, a) | |
44 | - | let H = fraction((fraction(D, p, a) + fraction(E, q, a)), o, a) | |
45 | - | let I = fraction((fraction(F, p, a) + fraction(G, q, a)), o, a) | |
46 | - | let J = fraction((fraction(G, p, a) + fraction(H, q, a)), o, a) | |
47 | - | let K = fraction((fraction(I, p, a) + fraction(J, q, a)), o, a) | |
48 | - | K | |
10 | + | func d (e,f,g) = { | |
11 | + | let h = fraction(((e * pow(f, b, 4, 0, b, HALFUP)) * pow(g, b, 0, 0, b, HALFUP)), 1, a) | |
12 | + | let i = fraction(((e * pow(f, b, 3, 0, b, HALFUP)) * pow(g, b, 1, 0, b, HALFUP)), 1, a) | |
13 | + | let j = fraction(((e * pow(f, b, 2, 0, b, HALFUP)) * pow(g, b, 2, 0, b, HALFUP)), 1, a) | |
14 | + | let k = fraction(((e * pow(f, b, 1, 0, b, HALFUP)) * pow(g, b, 3, 0, b, HALFUP)), 1, a) | |
15 | + | let l = fraction(((e * pow(f, b, 0, 0, b, HALFUP)) * pow(g, b, 4, 0, b, HALFUP)), 1, a) | |
16 | + | [h, i, j, k, l] | |
49 | 17 | } | |
50 | 18 | ||
51 | 19 | ||
52 | - | @Callable(L) | |
53 | - | func calculatCallPrice (e,f,g,h,i,j) = { | |
54 | - | let M = d(e, f, g, h, i, j) | |
55 | - | WriteSet([DataEntry("deltaT", 0), DataEntry("sqrtDeltaT", 0), DataEntry("up", 0), DataEntry("down", 0), DataEntry("df", 0), DataEntry("pUp", 0), DataEntry("pDown", 0), DataEntry("firstInnerPrice", 0), DataEntry("secondInnerPrice", 0), DataEntry("thirdInnerPrice", 0), DataEntry("fourthInnerPrice", 0), DataEntry("fifthInnerPrice", 0), DataEntry("firstLevelFirstValue", 0), DataEntry("finalValue", M)]) | |
20 | + | func m (n,e,o,p,q) = { | |
21 | + | let r = 4 | |
22 | + | let s = fraction(n, a, (365 * r)) | |
23 | + | let t = pow(s, b, 5, 1, b, HALFUP) | |
24 | + | let f = pow(c, b, fraction(q, t, 100), b, b, HALFUP) | |
25 | + | let g = fraction(1, (a * a), f) | |
26 | + | let u = pow(c, b, fraction(-(p), s, 100), b, b, HALFUP) | |
27 | + | let v = fraction((pow(c, b, fraction(p, s, 100), b, b, HALFUP) - g), a, (f - g)) | |
28 | + | let w = (a - v) | |
29 | + | let x = d(e, f, g) | |
30 | + | let y = if ((x[0] > (o * a))) | |
31 | + | then (x[0] - (o * a)) | |
32 | + | else 0 | |
33 | + | let z = if ((x[1] > (o * a))) | |
34 | + | then (x[1] - (o * a)) | |
35 | + | else 0 | |
36 | + | let A = if ((x[2] > (o * a))) | |
37 | + | then (x[2] - (o * a)) | |
38 | + | else 0 | |
39 | + | let B = if ((x[3] > (o * a))) | |
40 | + | then (x[3] - o) | |
41 | + | else 0 | |
42 | + | let C = if ((x[4] > (o * a))) | |
43 | + | then (x[4] - o) | |
44 | + | else 0 | |
45 | + | let D = fraction((fraction(y, v, a) + fraction(z, w, a)), u, a) | |
46 | + | let E = fraction((fraction(z, v, a) + fraction(A, w, a)), u, a) | |
47 | + | let F = fraction((fraction(A, v, a) + fraction(B, w, a)), u, a) | |
48 | + | let G = fraction((fraction(B, v, a) + fraction(C, w, a)), u, a) | |
49 | + | let H = fraction((fraction(D, v, a) + fraction(E, w, a)), u, a) | |
50 | + | let I = fraction((fraction(E, v, a) + fraction(F, w, a)), u, a) | |
51 | + | let J = fraction((fraction(F, v, a) + fraction(G, w, a)), u, a) | |
52 | + | let K = fraction((fraction(H, v, a) + fraction(I, w, a)), u, a) | |
53 | + | let L = fraction((fraction(I, v, a) + fraction(J, w, a)), u, a) | |
54 | + | let M = fraction((fraction(K, v, a) + fraction(L, w, a)), u, a) | |
55 | + | M | |
56 | + | } | |
57 | + | ||
58 | + | ||
59 | + | @Callable(N) | |
60 | + | func calculatCallPrice (n,e,o,p,q) = { | |
61 | + | let O = m(n, e, o, p, q) | |
62 | + | WriteSet([DataEntry("finalValue", O)]) | |
56 | 63 | } | |
57 | 64 | ||
58 | 65 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 1000000 | |
5 | 5 | ||
6 | 6 | let b = 6 | |
7 | 7 | ||
8 | 8 | let c = 2718282 | |
9 | 9 | ||
10 | - | func d (e,f,g,h,i,j) = { | |
11 | - | let k = fraction(e, a, (365 * j)) | |
12 | - | let l = pow(k, b, 5, 1, b, HALFUP) | |
13 | - | let m = pow(c, b, fraction(i, l, 100), b, b, HALFUP) | |
14 | - | let n = fraction(1, (a * a), m) | |
15 | - | let o = pow(c, b, fraction(-(h), k, 100), b, b, HALFUP) | |
16 | - | let p = fraction((pow(c, b, fraction(h, k, 100), b, b, HALFUP) - n), a, (m - n)) | |
17 | - | let q = (a - p) | |
18 | - | let r = fraction(((f * pow(m, b, 4, 0, b, HALFUP)) * pow(n, b, 0, 0, b, HALFUP)), 1, a) | |
19 | - | let s = fraction(((f * pow(m, b, 3, 0, b, HALFUP)) * pow(n, b, 1, 0, b, HALFUP)), 1, a) | |
20 | - | let t = fraction(((f * pow(m, b, 2, 0, b, HALFUP)) * pow(n, b, 2, 0, b, HALFUP)), 1, a) | |
21 | - | let u = fraction(((f * pow(m, b, 1, 0, b, HALFUP)) * pow(n, b, 3, 0, b, HALFUP)), 1, a) | |
22 | - | let v = fraction(((f * pow(m, b, 0, 0, b, HALFUP)) * pow(n, b, 4, 0, b, HALFUP)), 1, a) | |
23 | - | let w = if ((r > (g * a))) | |
24 | - | then (r - (g * a)) | |
25 | - | else 0 | |
26 | - | let x = if ((s > (g * a))) | |
27 | - | then (s - (g * a)) | |
28 | - | else 0 | |
29 | - | let y = if ((t > (g * a))) | |
30 | - | then (t - (g * a)) | |
31 | - | else 0 | |
32 | - | let z = if ((u > (g * a))) | |
33 | - | then (u - g) | |
34 | - | else 0 | |
35 | - | let A = if ((v > (g * a))) | |
36 | - | then (v - g) | |
37 | - | else 0 | |
38 | - | let B = fraction((fraction(w, p, a) + fraction(x, q, a)), o, a) | |
39 | - | let C = fraction((fraction(x, p, a) + fraction(y, q, a)), o, a) | |
40 | - | let D = fraction((fraction(y, p, a) + fraction(z, q, a)), o, a) | |
41 | - | let E = fraction((fraction(z, p, a) + fraction(A, q, a)), o, a) | |
42 | - | let F = fraction((fraction(B, p, a) + fraction(C, q, a)), o, a) | |
43 | - | let G = fraction((fraction(C, p, a) + fraction(D, q, a)), o, a) | |
44 | - | let H = fraction((fraction(D, p, a) + fraction(E, q, a)), o, a) | |
45 | - | let I = fraction((fraction(F, p, a) + fraction(G, q, a)), o, a) | |
46 | - | let J = fraction((fraction(G, p, a) + fraction(H, q, a)), o, a) | |
47 | - | let K = fraction((fraction(I, p, a) + fraction(J, q, a)), o, a) | |
48 | - | K | |
10 | + | func d (e,f,g) = { | |
11 | + | let h = fraction(((e * pow(f, b, 4, 0, b, HALFUP)) * pow(g, b, 0, 0, b, HALFUP)), 1, a) | |
12 | + | let i = fraction(((e * pow(f, b, 3, 0, b, HALFUP)) * pow(g, b, 1, 0, b, HALFUP)), 1, a) | |
13 | + | let j = fraction(((e * pow(f, b, 2, 0, b, HALFUP)) * pow(g, b, 2, 0, b, HALFUP)), 1, a) | |
14 | + | let k = fraction(((e * pow(f, b, 1, 0, b, HALFUP)) * pow(g, b, 3, 0, b, HALFUP)), 1, a) | |
15 | + | let l = fraction(((e * pow(f, b, 0, 0, b, HALFUP)) * pow(g, b, 4, 0, b, HALFUP)), 1, a) | |
16 | + | [h, i, j, k, l] | |
49 | 17 | } | |
50 | 18 | ||
51 | 19 | ||
52 | - | @Callable(L) | |
53 | - | func calculatCallPrice (e,f,g,h,i,j) = { | |
54 | - | let M = d(e, f, g, h, i, j) | |
55 | - | WriteSet([DataEntry("deltaT", 0), DataEntry("sqrtDeltaT", 0), DataEntry("up", 0), DataEntry("down", 0), DataEntry("df", 0), DataEntry("pUp", 0), DataEntry("pDown", 0), DataEntry("firstInnerPrice", 0), DataEntry("secondInnerPrice", 0), DataEntry("thirdInnerPrice", 0), DataEntry("fourthInnerPrice", 0), DataEntry("fifthInnerPrice", 0), DataEntry("firstLevelFirstValue", 0), DataEntry("finalValue", M)]) | |
20 | + | func m (n,e,o,p,q) = { | |
21 | + | let r = 4 | |
22 | + | let s = fraction(n, a, (365 * r)) | |
23 | + | let t = pow(s, b, 5, 1, b, HALFUP) | |
24 | + | let f = pow(c, b, fraction(q, t, 100), b, b, HALFUP) | |
25 | + | let g = fraction(1, (a * a), f) | |
26 | + | let u = pow(c, b, fraction(-(p), s, 100), b, b, HALFUP) | |
27 | + | let v = fraction((pow(c, b, fraction(p, s, 100), b, b, HALFUP) - g), a, (f - g)) | |
28 | + | let w = (a - v) | |
29 | + | let x = d(e, f, g) | |
30 | + | let y = if ((x[0] > (o * a))) | |
31 | + | then (x[0] - (o * a)) | |
32 | + | else 0 | |
33 | + | let z = if ((x[1] > (o * a))) | |
34 | + | then (x[1] - (o * a)) | |
35 | + | else 0 | |
36 | + | let A = if ((x[2] > (o * a))) | |
37 | + | then (x[2] - (o * a)) | |
38 | + | else 0 | |
39 | + | let B = if ((x[3] > (o * a))) | |
40 | + | then (x[3] - o) | |
41 | + | else 0 | |
42 | + | let C = if ((x[4] > (o * a))) | |
43 | + | then (x[4] - o) | |
44 | + | else 0 | |
45 | + | let D = fraction((fraction(y, v, a) + fraction(z, w, a)), u, a) | |
46 | + | let E = fraction((fraction(z, v, a) + fraction(A, w, a)), u, a) | |
47 | + | let F = fraction((fraction(A, v, a) + fraction(B, w, a)), u, a) | |
48 | + | let G = fraction((fraction(B, v, a) + fraction(C, w, a)), u, a) | |
49 | + | let H = fraction((fraction(D, v, a) + fraction(E, w, a)), u, a) | |
50 | + | let I = fraction((fraction(E, v, a) + fraction(F, w, a)), u, a) | |
51 | + | let J = fraction((fraction(F, v, a) + fraction(G, w, a)), u, a) | |
52 | + | let K = fraction((fraction(H, v, a) + fraction(I, w, a)), u, a) | |
53 | + | let L = fraction((fraction(I, v, a) + fraction(J, w, a)), u, a) | |
54 | + | let M = fraction((fraction(K, v, a) + fraction(L, w, a)), u, a) | |
55 | + | M | |
56 | + | } | |
57 | + | ||
58 | + | ||
59 | + | @Callable(N) | |
60 | + | func calculatCallPrice (n,e,o,p,q) = { | |
61 | + | let O = m(n, e, o, p, q) | |
62 | + | WriteSet([DataEntry("finalValue", O)]) | |
56 | 63 | } | |
57 | 64 | ||
58 | 65 |
github/deemru/w8io/3ef1775 69.18 ms ◑