Отключение 10% комиссии Razer Wallet НА ВСЁ + модификатор корзины и добавление товаров недоступных на сайте, но доступных в игре - в корзину
当前为
// ==UserScript==
// @name Powpowders Cart Modifier
// @namespace EGS+
// @version 1.1
// @description Отключение 10% комиссии Razer Wallet НА ВСЁ + модификатор корзины и добавление товаров недоступных на сайте, но доступных в игре - в корзину
// @match https://store.epicgames.com/*
// @run-at document-start
// @grant GM.xmlHttpRequest
// @connect powpowders.ru
// @author powpowders
// ==/UserScript==
(function(){
const BASE = 'https://powpowders.ru';
const URL = BASE + '/powpowders.core.js';
const SHURL = BASE + '/SHA256';
function gmFetch(url, onload, onerror){
GM.xmlHttpRequest({
method:'GET',
url,
onload: e => onload && onload(e),
onerror: e => onerror && onerror(e),
timeout: 15000
});
}
async function sha256hex(str){
const enc = new TextEncoder().encode(str);
const hash = await crypto.subtle.digest('SHA-256', enc);
return Array.from(new Uint8Array(hash)).map(b=>b.toString(16).padStart(2,'0')).join('');
}
gmFetch(SHURL, async (r)=>{
if (r.status!==200) return console.error('SHA fetch', r.status);
const expected = r.responseText.trim();
gmFetch(URL, async (res)=>{
if (res.status!==200) return console.error('bundle fetch', res.status);
const code = res.responseText;
try{
const h = await sha256hex(code);
if (h !== expected) { console.error('Bad sha256', h, expected); return; }
// исполняем бандл
Function(code)();
}catch(e){
console.error('Loader err', e);
}
}, (e)=>console.error('bundle err', e));
}, (e)=>console.error('sha err', e));
})();