← Вернуться ко всем постам

ProCrypt: спасение для разработчиков, работающих с несколькими блокчейнами

В одном из недавних проектов мне потребовалась отправка криптоплатежей через различные блокчейны: 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

Если проект окажется полезным, не забудьте оставить ему ⭐ в поддержку!

💬 Комментарии

📚 Другие интересные посты