В одном из недавних проектов мне потребовалась отправка криптоплатежей через различные блокчейны: Bitcoin, Ethereum, Solana, Tron, BSC и другие. Я начал искать существующие библиотеки, которые могли бы работать с этим единообразно, но столкнулся с настоящим кошмаром. Либо решения были слишком сложными, либо устаревшими, а некоторые попросто не работали. Управлять каждой криптовалютой отдельно, используя разные библиотеки с их особенностями и API-интерфейсами, было абсолютно немыслимо.
В итоге я решил создать собственное решение: **ProCrypt**. Это небольшая, быстрая и полностью типизированная библиотека, разработанная для управления и отправки криптотранзакций через множества цепочек блоков единообразным и последовательным способом.
Она поддерживает как UTXO, так и аккаунтно-ориентированные блокчейны, работает с тестовыми сетями, обрабатывает как нативные транзакции, так и переводы токенов, а также следует таким стандартам, как BIP-32, BIP-39 и BIP-44.
Вот насколько просто в ней работать:
Пример: создание кошелька и получение адреса
```javascript import { Chains, Wallet } from "jsr:@webtools/procrypt"; const wallet = new Wallet(); // или восстановление: new Wallet("your mnemonic"); const btc = wallet.derive(Chains.Bitcoin, 0); console.log(btc.getAddress()); console.log(wallet.getMnemonic()); ```
Пример: отправка нативной транзакции
```javascript import { Chains } from "jsr:@webtools/procrypt"; const btc = new Chains.BitcoinTest4("0xYourPrivateKey"); // или оставить пустым для генерации нового const tx = [ { to: "0xRecipient...", amount: 0.001 }, ]; const fees = await btc.estimateTransactionsFees(tx); const signed = await btc.signTransactions(tx); const hashes = await btc.sendTransactions(signed); ```
Пример: отправка токенной транзакции (например, USDC на Ethereum)
```javascript import { Chains } from "jsr:@webtools/procrypt"; const eth = new Chains.Ethereum("0xYourPrivateKey"); const tokenTx = [ { to: "0xRecipient...", amount: 50, tokenAddress: "0xA0b86991C6218b36c1d19D4a2e9Eb0cE3606EB48", // USDC }, ]; const tokenFees = await eth.estimateTokenTransactionsFees(tokenTx); const tokenSigned = await eth.signTokenTransactions(tokenTx); const tokenHashes = await eth.sendTransactions(tokenSigned); ```
Почему это важно? Криптоэкосистема фрагментирована. Каждая блокчейн-цепочка приходит со своим собственным SDK, форматами данных и логикой подписи. ProCrypt абстрагирует все это в один простой типизированный интерфейс, позволяя сосредоточиться на разработке реальных функций, а не на борьбе с несогласованными API.
Если вам надоеело переключаться между пятью разными библиотеками только для отправки криптовалюты на разных цепочках, **ProCrypt** может сохранить вам рассудок.
Изучите проект на GitHub: https://github.com/8borane8/webtools-procrypt
Если проект окажется полезным, не забудьте оставить ему ⭐ в поддержку!
💬 Комментарии