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