Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* VARIABLES */
- var g_TimeToAccept = 180; //in seconds
- var g_MaxStateErrors = 10;
- var g_RetryAttemptTimeout = 3000;
- var g_Steamid = '';
- var g_Indentity_Secret = '';
- var g_Shared_Secret = '';
- var logOnOptions = {
- account_name: "vinmun",
- password: ""
- }
- var name = 903;
- var buyer = "ROXs";
- var g_TotpKey = 'V8lORhd3Gs3rvH47M4xGx8iE3EM=';
- var pass = 'kekss';
- /* REQUIRES */
- var speakeasy = require('speakeasy');
- var fs = require('fs');
- var request = require('request');
- var Steam = require('steam');
- var SteamTradeOffers = require('steam-tradeoffers');
- var steam = new Steam.SteamClient();
- var steamUser = new Steam.SteamUser(steam);
- var offers = new SteamTradeOffers();
- var SteamTotp = require('steam-totp');
- var steamFriends = new Steam.SteamFriends(steam);
- var SteamWebLogOn = require('steam-weblogon');
- var steamWebLogOn = new SteamWebLogOn(steam, steamUser);
- var SteamConf = require('steamcommunity-mobile-confirmations');
- var getSteamAPIKey = require('steam-web-api-key');
- var Random = require("random-js");
- var random = new Random(Random.engines.mt19937().autoSeed());
- var https = require('https');
- var mysql = require('mysql');
- var options = {
- key: fs.readFileSync('./key.txt'),
- cert: fs.readFileSync('./ssl.txt'),
- };
- /* Подключаем Экспресс */
- var express = require('express');
- var app = express();
- var server = https.createServer(options, app);
- var io = require('socket.io').listen(server);
- server.listen(9999);
- var steamConf;
- var confirmTimer;
- var errorTimer;
- var lastWithdraw = [];
- var confirmattempts = 0;
- var ips = {};
- var clients = {};
- var data1 = {};
- var admins = [];
- var nicksooqa = '#2';
- function names() {
- var symbols = ['ChipaKazakhGamer', 'Petrucho', 'nafsven', 'Slpme', 'DAR', 'MterBitClujNapocaGLHF', 'UbivaSHKA', 'Petrovi4', 'Raskaaka', 'Jsonsy',
- 'KillmeNOW', 'AnGrY', 'reSOldY', 'drug_dilLeR', 'megaMACH', 'Untopick', 'MAGAbrat', 'GlAvAr', 'Sollll', 'PrizRaK', 'Samuel'
- ];
- var rand = Math.floor(Math.random() * symbols.length);
- return symbols[rand];
- }
- /* READING ACCOUNT INFO */
- if (fs.existsSync(__dirname + '/' + logOnOptions['account_name'] + '.sga')) {
- file = JSON.parse(fs.readFileSync(__dirname + '/' + logOnOptions['account_name'] + '.sga'));
- g_Shared_Secret = file[0]["shared_secret"];
- g_Indentity_Secret = file[0]["identity_secret"];
- g_Steamid = file[0]["steamid"];
- logOnOptions['password'] = file[0]["password"];
- console.log(buyer + ' Shared secret is ' + g_Shared_Secret);
- console.log(buyer + ' Identity secret is ' + g_Indentity_Secret);
- console.log(buyer + ' SteamID is ' + g_Steamid);
- console.log(buyer + ' PAss is ' + file[0]["password"]);
- console.log(buyer + ' PAss is ' + logOnOptions['password']);
- }
- /* STEAM */
- function login() {
- clearTimeout(errorTimer);
- steam.connect();
- logOnOptions['two_factor_code'] = SteamTotp.generateAuthCode(g_Shared_Secret);
- }
- login();
- steam.on('connected', function() {
- steamUser.logOn(logOnOptions);
- });
- steam.on('debug', console.log);
- steam.on('logOnResponse', function(result) {
- if (result.eresult == Steam.EResult.OK) {
- console.log(buyer + ' Logged in!');
- reWebLogOn();
- steamFriends.setPersonaState(Steam.EPersonaState.Online);
- } else console.log(buyer + " Login error: " + result.eresult);
- });
- steam.on('error', function(e) {
- console.log(buyer + ' Catched steam error: ' + JSON.stringify(e));
- errorTimer = setTimeout(function() {
- console.log(buyer + ' Relogging...');
- login();
- }, 15000);
- });
- function reWebLogOn() {
- console.log('WebLogOn called');
- steamWebLogOn.webLogOn(function(webSessionID, newCookie) {
- console.log('webLogOn and webSessionID ok');
- var hash = require('crypto').createHash('sha1');
- hash.update(Math.random().toString());
- hash = hash.digest('hex');
- var device_id = 'android:' + hash;
- steamConf = new SteamConf({
- steamid: g_Steamid,
- identity_secret: g_Indentity_Secret,
- device_id: device_id,
- webCookie: newCookie,
- });
- getSteamAPIKey({
- sessionID: webSessionID,
- webCookie: newCookie
- }, function(err, APIKey) {
- console.log(buyer + ' Got an API key(' + APIKey + ').');
- offers.setup({
- sessionID: webSessionID,
- webCookie: newCookie,
- APIKey: APIKey
- }, function(err) {
- if (typeof callback == "function") {
- callback();
- }
- if (err) {
- console.log('Offers err');
- reWebLogOn();
- return;
- }
- });
- console.log(buyer + ' Offers ok');
- });
- });
- }
- /* CONFIRMATIONS */
- function confirmTrade() {
- steamConf.FetchConfirmations(function(err, confs) {
- //confirmattempts++;
- //if(confirmattempts > 60){
- //clearInterval(lastWithdraw[lastWithdraw.length-1].timer);
- //confirmattempts = 0;
- //}
- if (err) {
- console.log('confirmTrade(): ' + err);
- reWebLogOn();
- return false;
- }
- console.log(buyer + ' confirmTrade() received ' + confs.length + ' confirmations');
- if (!confs.length) {
- return false;
- }
- steamConf.AcceptConfirmation(confs[0], function(err, result) {
- if (err) {
- console.log(buyer + ' confirmTrade(): ' + err);
- reWebLogOn();
- return false;
- }
- clearInterval(lastWithdraw[lastWithdraw.length - 1].timer);
- var totp = speakeasy.totp({
- secret: g_TotpKey
- });
- if (lastWithdraw.length - 1 >= 0 && lastWithdraw[lastWithdraw.length - 1]) {
- }
- lastWithdraw.splice(lastWithdraw.indexOf(lastWithdraw[lastWithdraw.length - 1]), 1);
- console.log(buyer + ' confirmTrade(): ' + result);
- return true;
- });
- });
- }
- function generateToken(length) {
- var symbols = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
- ];
- var token = '';
- for (var i = 0; i < length; i++) {
- token = token + symbols[random.integer(0, symbols.length - 1)];
- }
- return token;
- }
- function generateTokenLow(length) {
- var symbols = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
- ];
- var token = '';
- for (var i = 0; i < length; i++) {
- token = token + symbols[random.integer(0, symbols.length - 1)];
- }
- return token;
- }
- var dauns = [];
- var ips = {};
- var admins = [];
- var countusers = 0;
- io.sockets.on('connection', function(socket) {
- countusers++;
- io.sockets.emit('online',countusers);
- var clientIP = socket.client.conn.remoteAddress;
- socket.on('disconnect', function() {
- countusers--;
- io.sockets.emit('online',countusers);
- });
- socket.on('checkebana', function(data) {
- /* Кулдаун подключения к айпи */
- if (ips[clientIP] + 5 >= time()) {
- socket.emit('down','5s');
- return;
- } else {
- ips[clientIP] = time();
- }
- var tid = data;
- /* Получаем оффер */
- offers.getOffer({
- tradeofferid: tid
- }, function(err, trade) {
- /* Показываем ошибку */
- if (err) {
- console.log('Ошибка при загрузке оффера');
- console.log(err);
- socket.emit('checkebana','error');
- reWebLogOn();
- } else {
- var status;
- /* Оффер принят */
- if (trade.response.offer.trade_offer_state == 3) {
- status = 'Оффер принят';
- /* Оффер отказан пользователем */
- } else if (trade.response.offer.trade_offer_state == 7) {
- status = 'Оффер отменен пользователем';
- /* Оффер не принят */
- } else {
- status = 'Оффер не принят';
- }
- /* Выводим в консоль */
- console.log('Проверка оффера [' + trade.response.offer.tradeofferid + '] с ответом [' + status + '].');
- /* Оффер принят */
- if (trade.response.offer.trade_offer_state == 3) {
- socket.emit('checkebana','accept');
- /* Оффер отказан пользователем */
- } else if (trade.response.offer.trade_offer_state == 7) {
- socket.emit('checkebana','cross');
- /* Оффер не принят */
- } else {
- socket.emit('checkebana','unk');
- }
- }
- });
- });
- socket.on('tradeyopta', function(data) {
- /* Кулдаун подключения к айпи */
- if (ips[clientIP] + 5 >= time()) {
- socket.emit('errortrade','e');
- console.log('trade couldown')
- return;
- } else {
- ips[clientIP] = time();
- }
- /* Получаемые вещи */
- assetids = data.assetids;
- /* Партнер */
- var partner = data.partner;
- /* Токен */
- var token = data.token;
- if(typeof token === 'undefined'){
- socket.emit('errortrade','e');
- return;
- }
- /* Номер стима */
- var steamid = data.steamid;
- var price = data.price;
- console.log(steamid)
- console.log(price)
- /* Игра ебаная */
- var appid = data.appid;
- if(typeof appid === 'undefined') appid = 730;
- console.log('appID - ', appid);
- /* Отправляемые вещи */
- var senditems = [];
- /* Создаем массив отправления вещей */
- for (var i = 0; i < assetids.length; i++) {
- if (assetids[i] == "") continue;
- assetids[i] = assetids[i].toString();
- senditems.push({
- appid: appid,
- contextid: 2,
- assetid: assetids[i]
- });
- }
- /* Показываем консоли отправки */
- console.log('Получаем вещи от [' + partner + '] с токеном [' + token + ']');
- console.log('https://steamcommunity.com/tradeoffer/new/?partner=' + partner + '&token=' + token + '');
- console.log(senditems);
- console.log(assetids);
- var message;
- var security;
- security = generateTokenLow(10);
- message = 'SKINSSWAP.TRADE | security code - ' +security+ '. Check security code before trade for protect your skins!';
- var recieved = false;
- var get_hold_retry = 1;
- var getHold = function() {
- var load_user_retry = 1;
- var loadUserInventory = function() {
- if (1 == 1) {
- if (2 == 2) {
- //making offer
- console.log(buyer + " Trying to make offer...");
- var makeOfferRetry = 1;
- var makeOffer = function() {
- offers.makeOffer({
- partnerAccountId: partner,
- accessToken: token,
- itemsFromThem: senditems,
- itemsFromMe: [],
- message: message
- }, function(err, responseOffer) {
- if (err) {
- makeOfferRetry--;
- console.log(buyer + ' Error sending tradeoffer: ' + err);
- reWebLogOn();
- if (makeOfferRetry >= 0) {
- console.log(buyer + ' Retry step: ' + makeOfferRetry);
- setTimeout(function() {
- makeOffer();
- }, g_RetryAttemptTimeout);
- } else {
- console.log(buyer + ' Cant send offer to user(' + steamid + '), sending error emit to user.');
- socket.emit('errortrade','e');
- var totp = speakeasy.totp({
- secret: g_TotpKey
- });
- var nowd = new Date();
- var date52 = nowd.getDate() + '.' + nowd.getMonth() + '.' + nowd.getFullYear() + ' ' + nowd.getHours() + ':' + nowd.getMinutes();
- return;
- }
- } else {
- var lastoffer = responseOffer.tradeofferid;
- console.log(buyer + ' Sent offer #' + lastoffer + ' to user(' + steamid + '), sending success emit to user.');
- var stateErrors = 0;
- /* Показываем консоли о успешном трейде */
- console.log('Внос вещей с номером [' + lastoffer + '] отправлен сука!');
- /* Подтверждаем сделку */
- var tradeset = {
- success: true,
- code: security,
- tid: lastoffer,
- steamid: g_Steamid,
- bot: nicksooqa
- };
- socket.emit('success',tradeset);
- var nowd = new Date();
- var date52 = nowd.getDate() + '.' + nowd.getMonth() + '.' + nowd.getFullYear() + ' ' + nowd.getHours() + ':' + nowd.getMinutes();
- var totp = speakeasy.totp({
- secret: g_TotpKey
- });
- var timer = g_TimeToAccept;
- var timerID = setInterval(function() {
- timer--;
- //if user was late with accepting offer bot decline it
- if(timer <= 0){
- console.log("User late with accepting an offer.");
- offers.cancelOffer({tradeOfferId: responseOffer.tradeofferid});
- var totp = speakeasy.totp({ secret : g_TotpKey });
- socket.emit("err", { error : "You are late with accepting an offer.", totp : totp });
- clearInterval(timerID);
- return;
- }
- if(timer % 10 == 0 && timer >= 1){
- offers.getOffer({ tradeofferid : responseOffer.tradeofferid }, function(error, body){
- if (error) {
- stateErrors++;
- console.log(error);
- } else {
- offer = body.response.offer;
- console.log('Current offer state is (' + offer.trade_offer_state + ' - ' + responseOffer.tradeofferid + ').');
- //if user accept trade offer items are gonna be added to his inventory
- //if offer was declined
- if(offer.trade_offer_state == 7){
- console.log("User declined an offer.");
- var totp = speakeasy.totp({ secret : g_TotpKey });
- socket.emit("err", { error : "You are declined an offer.", totp : totp });
- clearInterval(timerID);
- return;
- }
- //if offer has unexpected state
- if(offer.trade_offer_state != 7 && offer.trade_offer_state != 3 && offer.trade_offer_state != 2){
- console.log("Unexpected state of tradeoffer(" + offer.trade_offer_state + ").");
- var totp = speakeasy.totp({ secret : g_TotpKey });
- socket.emit("err", { error : "Offer has unexpected state.", totp : totp });
- clearInterval(timerID);
- return;
- }
- //if offer was accepted
- if(offer.trade_offer_state == 3){
- console.log("User(" + steamid + ") accepted deposit offer(" + responseOffer.tradeofferid + ")");
- var totp = speakeasy.totp({ secret : g_TotpKey });
- socket.emit("itemsrecieved", {
- steamid : steamid,
- price : price,
- accept : 'You have accepted this offer',
- totp : totp
- });
- //query("UPDATE `users` SET `balance` = '"+price+"' WHERE `clientid` = '"+name+"' AND `steamid` = '"+steamid+"'")
- request('http://skinsswap.trade/gaybalance.php?steamid='+steamid+'&balance='+price+'', function (error, response, body) {
- if (!error && response.statusCode == 200) {
- }
- })
- clearInterval(timerID);
- return;
- }
- }
- });
- //if getState returns too much errors
- if(stateErrors >= g_MaxStateErrors){
- console.log("Too much errors with getOffers(" + g_MaxStateErrors + ").");
- offers.cancelOffer({tradeOfferId: responseOffer.tradeofferid});
- var totp = speakeasy.totp({ secret : g_TotpKey });
- socket.emit("err", { error : "Too much errors.", totp : totp });
- clearInterval(timerID);
- return;
- }
- }
- }, 1000);
- }
- });
- };
- makeOffer();
- } else {
- var totp = speakeasy.totp({
- secret: g_TotpKey
- });
- }
- } else {
- var totp = speakeasy.totp({
- secret: g_TotpKey
- });
- }
- };
- loadUserInventory();
- console.log(buyer + ' Success!');
- };
- getHold();
- })
- })
- /* ERROR CATCHER */
- process.on('uncaughtException', function(err) {
- console.log(err);
- if (err == "[Error: Disconnected]" || err == "Error: Disconnected") {
- login();
- }
- });
- function time() {
- return parseInt(new Date().getTime() / 1000)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement