Сценарии Использования
В этом разделе приведены практические примеры работы с библиотекой tonutils
. Вы узнаете, как создавать и импортировать кошельки, отправлять транзакции, получать информацию о контрактах и выполнять их методы в сети TON.
Работа с кошельком
Создание кошелька
from tonutils.wallet import WalletV4R2
from tonutils.client import ToncenterV3Client
client = ToncenterV3Client(is_testnet=True, rps=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.create(client)
Результат:
wallet
: экземплярWalletV4R2
, готовый к использованиюpublic_key
: байтовое представление публичного ключа (bytes
)private_key
: байтовое представление приватного ключа (bytes
)mnemonic
: список из 24 слов (List[str]
)
Импорт кошелька
Параметр:
MNEMONIC
— может быть указан в одном из двух форматов:- строка из 12/24 слов, разделённых пробелами;
- список из 12/24 слов.
Отправка транзакций
Одиночная транзакция
tx_hash = await wallet.transfer(
destination="nessshon.t.me",
amount=1,
body="Hello from tonutils!",
)
Параметры:
destination
: получатель — может быть:- строкой с адресом;
- объектом
Address
; - доменным именем
.ton
или.t.me
;
amount
: сумма перевода в TON (не в nanotons);body
: комментарий в виде строки или произвольные данные в виде объектаCell
.
Результат:
- Нормализованный хэш сообщения (
str
)
Пакетная отправка
Позволяет отправить несколько переводов в рамках одной транзакции:
from tonutils.wallet.messages import TransferMessage
tx_hash = await wallet.batch_transfer_messages([
TransferMessage(destination="UQ...", amount=0.01, body="Hello from tonutils!"),
TransferMessage(destination="UQ...", amount=0.02, body="Hello from tonutils!"),
])
Результат:
- Нормализованный хэш сообщения (
str
)
Режим отправки
Параметр send_mode
управляет поведением транзакции — позволяет, например, отправить весь баланс (128
)
Note
Подробнее о доступных режимах см. в официальной документации TON.
Информация о контракте
Баланс контракта
Результат:
Целое число (int
), представляющее баланс контракта в nanotons.
Данные контракта
Результат:
Объект с информацией о контракте, содержащий следующие поля:
balance
: текущий баланс контракта в nanotons (int
);status
: состояние аккаунта:active
,nonexist
,frozen
,uninit
;code
: код контракта (Optional[Cell]
);data
: данные контракта (Optional[Cell]
);last_transaction_lt
: логическое время последней транзакции (Optional[int]
);last_transaction_hash
: хэш последней транзакции (Optional[str]
);state_init
: объектStateInit
, если заданыcode
иdata
.
Вызов метода контракта
Метод run_get_method
позволяет выполнить вызов get-method
контракта.
Параметры:
address
: строка с адресом контракта;method_name
: имя вызываемого метода (str
);stack
: список аргументов (допустимые типы:int
,Cell
,Slice
).
Результат:
Список значений, возвращённых из стека после выполнения метода.