-
Notifications
You must be signed in to change notification settings - Fork 1
/
Stake Auto withdrawal.js
99 lines (72 loc) · 3.1 KB
/
Stake Auto withdrawal.js
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
// ==UserScript==
// @name Stake.com Withdraw Script
// @namespace Stake Casino
// @version 0.5
// @description withdraw your entire balance to your bitcoin wallet in loop
// @author @fozoq | t.me/fozoq
// @match https://stake.com/
// @icon none
// @grant none
// @license MIT
// @downloadURL https://update.greasyfork.org/scripts/446204/Stakecom%20Withdraw%20Script.user.js
// @updateURL https://update.greasyfork.org/scripts/446204/Stakecom%20Withdraw%20Script.meta.js
// ==/UserScript==
(function() {
// cfg
var dest_addr = "BTC ADDY ";
var currency = "btc";
// var dest_addr = " ETH ADDY ";
// var dest_addr = " ltc ADDY ";
// ALL CRYPTO WITH SHORT NAME IS WORKING
// var currency = "eth";
// var currency = "ltc";
var withdrawal_threshold = 0;
let auth_key = window.localStorage.getItem('jwt').replace('"', "").replace('"', "");
function create_graphql_request(auth_key, function_name, function_body, function_variables, callback)
{
let http_request = new XMLHttpRequest();
http_request.onreadystatechange = function() {
if(http_request.readyState != 4) return;
callback(JSON.parse(http_request.responseText));
};
http_request.open("POST", "https://stake.com/_api/graphql", true);
http_request.setRequestHeader("content-type", "application/json");
http_request.setRequestHeader("x-access-token", auth_key);
http_request.send(JSON.stringify([
{
operationName: function_name,
query: function_body,
variables: function_variables
}
]));
}
function on_balance_callback(balance_data)
{
console.log(balance_data);
let user_info = balance_data[0].data.user;
let btc_balance = 0;
let fee = balance_data[0].data.info.currency.withdrawalFee.value;
for(let i = 0; i < user_info.balances.length; i++)
{
let balance_info = user_info.balances[i];
if(balance_info.available.currency === currency)
{
btc_balance = balance_info.available.amount;
break;
}
}
if(btc_balance < withdrawal_threshold) return;
create_graphql_request(auth_key,
"CreateWithdrawalMutation",
"mutation CreateWithdrawalMutation($currency: CurrencyEnum!, $address: String!, $amount: Float!) { createWithdrawal(currency: $currency, address: $address, amount: $amount) { id name address amount refFee status } }",
{ currency: currency, address: dest_addr, amount: btc_balance - (fee * 2) }, function(d) {
console.log(JSON.stringify(d));
});
}
create_graphql_request(auth_key,
"CreateWithdrawalQuery",
"query CreateWithdrawalQuery($currency: CurrencyEnum!) { user { id hasTfaEnabled balances { available { amount currency __typename }" +
"vault { amount currency __typename } __typename } __typename } info { currency(currency: $currency) { withdrawalFee { value __typename }" +
"withdrawalMin { value __typename } __typename } __typename } } ",
{currency: currency}, on_balance_callback);
})();