
Solana Dev 101 — как создать транзакцию в Solana
Содержание
Введение
GM! В этой статье из серии Solana Dev 101 мы рассмотрим, как создать и отправить транзакцию в Solana с помощью JavaScript. Это руководство подходит для начинающих, поэтому не беспокойтесь, если вы только знакомитесь с Solana или блокчейн-технологиями.
Если у вас возникнут вопросы, присоединяйтесь к Helius Discord или отметьте Helius в X, чтобы получить помощь.
Предварительные требования
Для начала на вашем компьютере должны быть установлены Node.js и npm. При необходимости их можно скачать здесь.
Также потребуется установить библиотеку Solana web3.js — набор инструментов и библиотек JavaScript для взаимодействия с блокчейном Solana.
Чтобы установить ее с помощью npm, выполните в терминале следующий код:
npm install @solana/web3.jsШаг 1. Настройка подключения
Сначала создадим подключение к кластеру Solana. Для подключения к кластеру devnet мы будем использовать Helius. Вам потребуется создать аккаунт Helius и API-ключ. Это можно сделать бесплатно в панели управления.
const solanaWeb3 = require('@solana/web3.js');
const connection = new solanaWeb3.Connection('<https://rpc-devnet.helius.xyz/?api-key=><api_key>','confirmed',);Шаг 2. Создание нового кошелька
Теперь нам нужен кошелек, с которого мы будем отправлять транзакции. Кошелек — это пара из публичного и приватного ключей, которую легко создать. Публичный ключ — это адрес вашего кошелька, а приватный ключ используется для подписи транзакций. Подробнее о криптографии с публичным ключом можно прочитать здесь.
Мы можем создать новый кошелек в файловой системе. Пара ключей этого кошелька будет храниться на вашем локальном компьютере. Если вы уже установили инструменты Solana CLI, выполните в терминале следующую команду, чтобы создать новый кошелек.
solana-keygen newЕсли инструменты еще не установлены, вам потребуется установить набор Solana CLI. Подробнее об установке читайте в документации Solana: https://docs.solana.com/cli/install-solana-cli-tools
Никому не сообщайте свой приватный ключ.
Затем добавим этот кошелек в наш код:
const sender=solanaWeb3.Keypair.fromSecretKey(new Uint8Array([61,23,....,60,49]));Скопируйте секретный ключ из JSON-файла кошелька, созданного на предыдущем шаге, и используйте его.
Шаг 3. Пополнение кошелька
Для отправки транзакций на кошельке должно быть немного SOL. За обработку каждой транзакции в Solana взимается небольшая комиссия.
Для тестирования мы пополним кошелек через наш кран Devnet. Используйте кран Helius в панели управления или следуйте этим инструкциям, чтобы запросить SOL в Devnet через CLI. Введите публичный ключ только что созданного кошелька и запросите SOL.
Шаг 4. Создание транзакции
Теперь, когда на кошельке есть средства, можно создать транзакцию. В этом примере мы создадим транзакцию и добавим в нее инструкцию перевода. С ее помощью мы переведем 0,1 SOL на выбранный кошелек.
Транзакция может выполнять разные действия в зависимости от инструкции. В этом примере мы отправим SOL с помощью инструкции перевода.
// Set up the address to send to
const receiver = new solanaWeb3.PublicKey("86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY");
// Create a transaction
const transaction = new solanaWeb3.Transaction().add(solanaWeb3.SystemProgram.transfer({
fromPubkey: sender.publicKey,toPubkey: receiver,
lamports: solanaWeb3.LAMPORTS_PER_SOL * 0.01,}),);В приведенном выше коде мы создаем новый объект PublicKey с адресом выбранного кошелька. Для создания транзакции требуется объект PublicKey, а не просто адрес. Инструкция перевода также принимает три параметра:
fromPubkey: публичный ключ аккаунта отправителя.toPubkey: публичный ключ аккаунта получателя.lamports: количество переводимых лампортов — наименьших единиц валюты в Solana.solanaWeb3.LAMPORTS_PER_SOLсоответствует 1 SOL.
Шаг 5. Подпись и отправка транзакции
После создания транзакции нужно подписать ее и отправить в сеть.
В библиотеке Solana Web3 есть функция sendAndConfirmTransaction(), которая позволяет легко выполнить все эти действия.
Метод sendAndConfirmTransaction отправляет транзакцию в сеть, ожидает подтверждения и возвращает подпись транзакции.
// Sign and confirm the transaction
const signature = await solanaWeb3.sendAndConfirmTransaction(connection,transaction,[sender],);
console.log('Transaction: ', signature);Метод sendAndConfrimTransaction принимает три параметра:
connection: объект подключения к сети Solana, созданный через RPC-подключение Helius. Этот параметр задает подключение, через которое транзакция будет отправлена и подтверждена.transaction: созданный нами объект транзакции, содержащий инструкцию перевода.[sender]: массив со всеми аккаунтами, подписывающими транзакцию. В данном случае он содержит один элементsender, который представляет аккаунт, подписывающий и авторизующий транзакцию.
Готово!
Мы создали и отправили транзакцию в Solana с помощью JavaScript.
Чтобы запустить скрипт, выполните node sendTransaction.js.
Заключение
Благодаря функциональной библиотеке JavaScript создать и отправить транзакцию в Solana довольно просто. Всего несколько строк кода позволяют взаимодействовать с блокчейном Solana и открывают множество возможностей.
Это базовый пример, который показывает структуру и процесс создания и отправки транзакции. В реальных приложениях транзакции могут быть сложнее, а также могут потребоваться дополнительные меры безопасности.
Надеюсь, это руководство было полезным. Удачи в разработке!
Полный код доступен здесь.
Ресурсы
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


