Skip to main content
В этом руководстве вы развернете настоящую программу в devnet и вызовете ее, причем весь процесс будет выполняться в инфраструктуре Helius. Вы пополните кошелек с помощью requestAirdrop, развернете готовую тестовую программу, затем вызовете ее через sendTransaction и подтвердите результат с помощью getSignatureStatuses. Готовая программа позволяет сосредоточиться на цикле развертывания и вызова, а не на написании кода на Rust.
Предварительные требования: Solana CLI и Rust (для сборки программы), Node.js 18+ (для ее вызова), а также ключ API Helius. Devnet доступна на любом тарифном плане Helius.

1

Point the Solana CLI at your Helius devnet RPC

Используйте конечную точку Helius для каждой команды CLI и создайте кошелек, если у вас его еще нет:
solana address выводит публичный ключ вашего кошелька, баланс которого вы пополните на следующем шаге.
2

Get devnet SOL

Для развертывания требуется немного SOL. Токены SOL в devnet бесплатны и предназначены только для тестирования, поэтому пополните свой адрес через кран ниже или с помощью CLI:
Для кранов devnet действуют ограничения частоты запросов, поэтому раздача токенов может завершиться ошибкой. В таком случае немного подождите и повторите попытку либо воспользуйтесь официальным веб-краном Solana для devnet в качестве запасного варианта. Для развертывания тестовой программы требуется всего около 1 SOL.
3

Clone and build the sample program

Скачайте программу «Hello, Solana!» из официального репозитория Solana program-examples. При вызове она просто записывает приветствие в журнал. Это практически самая маленькая программа, которая позволяет убедиться, что весь цикл работает.
program-examples — это рабочая область Cargo, поэтому cargo build-sbf компилирует программу в target/deploy/hello_solana_program.so в корне репозитория, а не в папке программы. Для следующего шага оставайтесь в каталоге program-examples.
4

Deploy to devnet through Helius

CLI отправляет транзакцию развертывания через Helius RPC и выводит Program Id. Скопируйте его, поскольку далее вы вызовете эту программу.
5

Invoke the program with sendTransaction

В новой папке настройте небольшой клиент TypeScript, который создает, отправляет и подтверждает транзакцию.
invoke.ts
Замените YOUR_API_KEY и YOUR_PROGRAM_ID, а затем запустите клиент:
Вы получите подпись и ссылку на Explorer. Откройте ссылку и разверните раздел Program Instruction Logs, чтобы увидеть приветствие программы Hello, Solana!.

Что происходит

Все запросы проходят через Helius RPC

solana config set --url направляет каждую команду CLI — раздачу токенов, развертывание и проверку баланса — в вашу конечную точку Helius для devnet. Клиент TypeScript использует ту же конечную точку, поэтому весь процесс выполняется в инфраструктуре Helius.

Цикл вызова: отправка, затем подтверждение

sendRawTransaction вызывает метод RPC sendTransaction и немедленно возвращает подпись, еще до того, как сеть обработает транзакцию. Поэтому нужно опрашивать getSignatureStatuses, пока confirmationStatus не достигнет состояния confirmed, и проверять err для обнаружения ошибок. Этот шаблон «отправить, затем подтвердить» лежит в основе каждой отправляемой вами транзакции Solana.

Следующие шаги

How to Get Devnet SOL

Все способы пополнения кошелька в devnet и рекомендации по ограничениям частоты запросов.

sendTransaction

Все параметры, включая skipPreflight, preflightCommitment и повторные попытки.

Land transactions reliably

При переходе в mainnet используйте Sender для включения транзакций в блок с минимальной задержкой.

Build a portfolio tracker

Альтернативный вариант: получите токены, NFT и SOL любого кошелька с лентой активности в реальном времени.