Примеры программ
Репозиторий Solana Program Examples на GitHub содержит несколько подпапок, каждая из которых содержит примеры кода, чтобы помочь разработчикам изучать и экспериментировать с разработкой на блокчейне Solana.
Вы можете найти примеры в solana-developers/program-examples
вместе с файлами
README, которые объясняют, как запускать различные примеры. Большинство примеров
автономны и доступны на нативном Rust (т.е. без фреймворка) и
Anchor.
В репозитории вы найдете следующие подпапки, каждая с различными примерами программ:
Основы
Содержит серию примеров, демонстрирующих фундаментальные шаги для создания программ Solana с использованием нативных библиотек Rust. Эти примеры разработаны, чтобы помочь разработчикам понять основные концепции программирования на Solana.
Название примера | Описание | Язык |
---|---|---|
Account Data | Сохранение адреса с именем, номером дома, улицей и городом в аккаунте. | Native, Anchor |
Checking Accounts | Уроки безопасности, показывающие, как выполнять проверки аккаунтов | Native, Anchor |
Close Account | Показывает, как закрывать аккаунты, чтобы вернуть их rent. | Native, Anchor |
Counter | Простая программа-счетчик во всех различных архитектурах. | Native, Anchor, mpl-stack |
Create Account | Как создать системный аккаунт внутри программы. | Native, Anchor |
Cross Program Invocation | Используя аналогию руки и рычага, показывает, как вызвать другую программу изнутри программы. | Native, Anchor |
hello solana | Пример hello world, который просто печатает hello world в логах транзакций. | Native, Anchor |
Pda Rent payer | Показывает, как использовать lamport из PDA для оплаты нового аккаунта. | Native, Anchor |
Processing Instructions | Показывает, как обрабатывать данные инструкций string и u32. | Native, Anchor |
Program Derived Addresses | Показывает, как использовать seed для ссылки на PDA и сохранения в нем данных. | Native, Anchor |
Realloc | Показывает, как увеличивать и уменьшать размер существующего аккаунта. | Native, Anchor |
Rent | Здесь вы узнаете, как рассчитывать требования rent внутри программы. | Native, Anchor |
Repository Layout | Рекомендации по структурированию макета вашей программы. | Native, Anchor |
Transfer SOL | Различные методы перевода SOL для системных аккаунтов и PDA. | Native, Anchor, Seahorse |
Токены
Большинство токенов в Solana используют стандарт токенов Solana Program Library (SPL). Здесь вы найдете множество примеров того, как создавать, передавать, сжигать токены и даже как взаимодействовать с ними в программах.
Название примера | Описание | Язык |
---|---|---|
Create Token | Как создать токен и добавить к нему метаданные metaplex. | Anchor, Native |
NFT Minter | Выпуск только одной единицы токена с последующим удалением права на выпуск. | Anchor, Native |
PDA Mint Authority | Показывает, как изменить право выпуска токена, чтобы выпускать токены из программы. | Anchor, Native |
SPL Token Minter | Объясняет, как использовать associated token account для отслеживания аккаунтов токенов. | Anchor, Native |
Token Swap | Подробный пример, показывающий, как создать пул AMM (автоматический маркет-мейкер) для SPL токенов. | Anchor |
Transfer Tokens | Показывает, как передавать SPL токены, используя CPI в программу токенов. | Anchor, Native |
Token-2022 | См. Token 2022 (Token Extensions). | Anchor, Native |
Token 2022 (Token Extensions)
Token 2022 — это новый стандарт для токенов в Solana. Он более гибкий и позволяет добавлять 16 различных расширений к выпуску токена для добавления большей функциональности. Полный список расширений можно найти в Руководстве по началу работы
Название примера | Описание | Язык |
---|---|---|
Basics | Как создать токен, выпустить и передать его. | Anchor |
Default account state | Это расширение позволяет создавать аккаунты токенов с определенным состоянием, например, замороженным. | Anchor, Native |
Mint Close Authority | В старой программе токенов было невозможно закрыть выпуск. Теперь это возможно. | Anchor, Native |
Multiple Extensions | Показывает, как можно добавить несколько расширений к одному выпуску | Native |
NFT Metadata pointer | Возможно использовать расширение метаданных для создания NFT и добавления динамических метаданных в блокчейне. | Anchor |
Not Transferable | Полезно, например, для достижений, реферальных программ или любых привязанных к душе токенов. | Anchor, Native |
Transfer fee | При каждой передаче токенов часть токенов удерживается в аккаунте токена, которые затем можно собрать. | Anchor, Native |
Transfer Hook | Четыре примера добавления дополнительной функциональности к вашему токену с помощью CPI из программы токенов в вашу программу. | Anchor |
Is this page helpful?