Skip to main content
  1. Операция чтения получает зашифрованные приватные токен-аккаунты Solana из индексатора с помощью специальных методов RPC.
  2. Только пользователь или тот, кого он уполномочил, может расшифровать балансы с помощью ключа просмотра.
  3. Используйте эту операцию после изменения приватного баланса и перед переводом.
  1. getBalance возвращает публичный баланс SOL. getAccount возвращает публичный токен-аккаунт.
  2. RPC возвращает публичный баланс.

Начало работы

1

Предварительные требования

Для примеров на TypeScript требуются Node.js 24 или более поздней версии, pnpm 11.18.0 и Solana CLI.
Источник: sdk-libs/ts
Добавьте ключ API Helius:
.env
По умолчанию в примерах в качестве плательщика используется кошелёк Solana CLI. На балансе плательщика должны быть SOL в devnet. См. Как получить SOL в devnet.
2

Получите тег просмотра

  • senderViewTag — это senderAddress.confidentialViewTag(), публичный ключ Solana отправителя в конфиденциальных кольцах. Индексатор использует его для возврата соответствующих зашифрованных выходов.
3

Получите выходы транзакций из индексатора

  • getShieldedTransactionsByTags получает зашифрованные выходы, связанные с senderViewTag.
  • atSlot(depositTx.slot) ожидает, пока индексатор зарегистрирует депозит в этом слоте.
  • Индексатор возвращает зашифрованные данные выходов. Он не расшифровывает приватный баланс.
4

Расшифруйте приватный баланс

  • sender передает ключ просмотра отправителя для локальной расшифровки.
  • decryptToBalances расшифровывает соответствующие выходы и возвращает приватные балансы отправителя.
  • balancesAfterDeposit.balance(SOL_MINT) считывает приватный баланс SOL.
Описание работы тегов владельцев и приватных токен-аккаунтов Solana см. в разделе Приватное состояние и UTXO.

Полный пример кода

Клонируйте и запустите пример:
В примерах используется конфиденциальное кольцо в локальной сети/devnet, доступное здесь.

Связанные руководства

Create a Private Wallet

Deposit

Transfer

Withdraw

Read Private History

Не нашли то, что искали?

Свяжитесь с нами! Telegram | Электронная почта | Контакты