-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
112 lines (93 loc) · 4.12 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!DOCTYPE html>
<html lang="en">
<head>
<title>btc 2 usd</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="btc.css">
</head>
<body>
<button id="reset">Сброс</button>
<h2>Сторонняя комиссия</h2>
<label>Сумма в BTC</label>
<input type="text" id="sum_in">
<label>Fee, %</label>
<input type="text" id="fee">
<label>Комиссия Maker'а, %</label>
<input type="text" id="maker" required/>
<label>Комиссия Taker'а, %</label>
<input type="text" id="taker" required/>
<label>BTC к $</label>
<input type="text" id="btc2usd">
<h2>Наша комиссия</h2>
<label>Networkfee, Euro</label>
<input type="text" id="networkfee" required/>
<label>Euro к $</label>
<input type="text" id="euro2usd" required/>
<h2>Итог</h2>
<input type="text" id="sum_out" required/>
<script src='https://cdn.jsdelivr.net/npm/[email protected]/bignumber.min.js'></script>
<script type="module">
const Max = 20;
const print = a => a.toFormat(Max);
const fields = [
{id: "sum_in", value: "0.77643"},
{id: "fee", value: "5"},
{id: "maker", value: "0.1"},
{id: "taker", value: "0.1"},
{id: "networkfee", value: "4.2"},
{id: "btc2usd", value: "69834.14000953"},
{id: "euro2usd", value: "1.1"},
{id: "sum_out", value: "0"}
]
let sum_in, fee, maker, taker, networkfee, btc2usd, euro2usd, sum_out;
function init() {
fields.map(v => document.getElementById(v.id).value = v.value);
document.getElementById("sum_in").dispatchEvent(new Event("input", {bubbles: true}));
}
function get_fields() {
sum_in = BigNumber(document.getElementById("sum_in").value);
fee = BigNumber(document.getElementById("fee").value);
maker = BigNumber(document.getElementById("maker").value);
taker = BigNumber(document.getElementById("taker").value);
networkfee = BigNumber(document.getElementById("networkfee").value);
btc2usd = BigNumber(document.getElementById("btc2usd").value);
euro2usd = BigNumber(document.getElementById("euro2usd").value);
sum_out = BigNumber(document.getElementById("sum_out").value);
}
window.onload = () => {
BigNumber.config({FORMAT: {groupSize: 3, groupSeparator: '', decimalSeparator: '.'}});
document.getElementById("reset").addEventListener("click", () => init());
fields.filter(v => v.id !== "sum_out").map(v => document.getElementById(v.id).addEventListener("input", () => {
get_fields();
let total = sum_in;
total = total.times(BigNumber(100).minus(BigNumber(fee)).dividedBy(BigNumber(100)));
console.log(print(total));
total = total.times(BigNumber(100).minus(BigNumber(maker)).dividedBy(BigNumber(100)));
console.log(print(total));
total = total.times(btc2usd);
console.log(print(total));
total = total.minus(euro2usd.times(networkfee));
document.getElementById("sum_out").value = print(total);
console.log(print(total));
}));
["sum_out"].map(v => document.getElementById(v).addEventListener("input", () => { // А здесь разворачиваем формулу обратно
get_fields();
console.log(print(sum_out));
let total = sum_out;
console.log(print(total));
total = total.plus(euro2usd.times(networkfee));
console.log(print(total));
total = total.dividedBy(btc2usd);
console.log(print(total));
total = total.dividedBy(BigNumber(100).minus(BigNumber(taker)).dividedBy(BigNumber(100)));
console.log(print(total));
total = total.dividedBy(BigNumber(100).minus(BigNumber(fee)).dividedBy(BigNumber(100)));
document.getElementById("sum_in").value = print(total);
console.log(print(total));
}));
init();
}
</script>
</body>
</html>