Адреса смарт-контрактов в TON

admin

Administrator
Команда форума
Сообщения
528
Реакции
147
Адреса смарт-контракта в сети TON состоят из двух частей:

(a) идентификатор рабочей цепи (32-разрядное целое число со знаком)
(b) адрес внутри рабочей цепи (64-512 бит в зависимости от рабочей цепи).

На текущий момент только тестовая цепочка (workchain_id = -1) и базовая рабочая цепочка (workchain_id = 0) работают в тестовой сети TON Blockchain. Оба они имеют 256-битные адреса, поэтому мы и впредь предполагаем, что workchain_id равен либо 0, либо -1, а адрес внутри рабочей цепочки 256-битный.

При указанных выше условиях адрес смарт-контракта в TON может быть представлен в следующих формах:

A) «Raw»: <дробный workchain_id>: <64 hexadecimal цифры с адресом>

Б) «Удобный для пользователя», который получается первым генерацией:
  • один байт тега (0x11 для «ненадежных» адресов, 0x51 для «неразрушаемых»; добавьте + 0x80, если адрес не будет принят программным обеспечением, работающим в рабочей сети)
  • один байт, содержащий 8-разрядное целое число со знаком с workchain_id (0x00 для основной рабочей цепи, 0xff для главной цепи)
  • 32 байта, содержащие 256 бит адреса умного контракта внутри рабочей цепочки (big-endian)
  • 2 байта, содержащие CRC16-CCITT предыдущих 34 байтов
В случае Б) получаемые таким образом 36 байтов затем кодируются с использованием base64 (то есть с цифрами, прописными и строчными латинскими буквами, '/' и '+') или base64url (с '_' и '-' вместо ' / 'и' + '), получая 48 печатных непробельных символов.

Пример:

Существует тестовый смарт-контракт, это специальный смарт-контракт в мастерчейн цепочке тестовой сети TON, который даёт 20 TEST GRAM (кран TON) любому кто делает запрос имеет следующий адрес:

-1: 8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

в «сыром» виде (обратите внимание, что заглавные латинские буквы «A» .. «F» могут использоваться вместо «a» .. «f»)

а также

Ef + BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb (base64) или
Ef-BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb (base64url)


в «удобной» форме (для отображения удобными для клиентов). Обратите внимание, что обе формы (base64 и base64url) являются действительными и должны работать
 
Последнее редактирование:
Сверху