diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/v3/guidelines/smart-contracts/howto/airdrop-claim-best-practice.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/v3/guidelines/smart-contracts/howto/airdrop-claim-best-practice.mdx index 75a201999b..26d9a7cdab 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/v3/guidelines/smart-contracts/howto/airdrop-claim-best-practice.mdx +++ b/i18n/ru/docusaurus-plugin-content-docs/current/v3/guidelines/smart-contracts/howto/airdrop-claim-best-practice.mdx @@ -20,7 +20,7 @@ ### Дистрибьютор Принимает доказательство от пользователя, проверяет его, выпускает жетоны. -Состояние инициализации: `(merkle_root, admin, fee_wallet_address)`. +State init: `(merkle_root, admin, fee_wallet_address)`. ### Двойная трата @@ -28,7 +28,7 @@ ### Jetton wallet -Кошелек Jetton, с которого токены будут отправлены _дистрибьютором_. +Jetton wallet, с которого токены будут отправлены _дистрибьютором_. Jetton minter выходит за рамки этой статьи. ### Кошелек для комиссии @@ -42,8 +42,8 @@ Jetton minter выходит за рамки этой статьи. Первая структура, которая приходит на ум, что-то вроде этого: - Пользователь отправляет доказательство дистрибьютору -- Дистрибьютор проверяет доказательство и развертывает контракт `двойной траты` -- Дистрибьютор передает сообщение о двойной трате +- Дистрибьютор проверяет доказательство и разворачивает контракт `двойной траты` +- Дистрибьютор передает сообщение контракту двойной траты - Контракт двойной траты отправляет `claim_ok` дистрибьютору, если он не был развернут ранее - Дистрибьютор отправляет комиссию за клейм на кошелек для оплаты комиссии - Дистрибьютор отпускает жетоны пользователю. @@ -57,7 +57,7 @@ Jetton minter выходит за рамки этой статьи. Линейная структура намного лучше: - Пользователь разворачивает контракт `двойной траты`, который в свою очередь передает доказательство дистрибьютору -- Дистрибьютор проверяет адрес отправки `двойной траты` по состоянию инициализации `(distributor_address, user_address?)` +- Дистрибьютор проверяет адрес отправки `двойной траты` по state init `(distributor_address, user_address?)` - Дистрибьютор проверяет доказательство, в данном случае индекс пользователя должен быть частью доказательства, и выпускает жетоны - Дистрибьютор отправляет комиссию на кошелек для оплаты комиссии. **MORE NAIVE ART** @@ -68,7 +68,7 @@ Jetton minter выходит за рамки этой статьи. ### Что это такое? -Для того, чтобы получить базовое понимание, пожалуйста, посмотрите [Создание кошелька для разных шардов] (/v3/guidelines/dapps/asset-processing/payments-processing/#wallet-creation-for-different-shards) +Для того, чтобы получить базовое понимание, пожалуйста, посмотрите [Создание кошелька для разных шардов](/v3/guidelines/dapps/asset-processing/payments-processing/#wallet-creation-for-different-shards) Вкратце, шард – это четырехбитный префикс адреса контракта. Как в сетевых технологиях. Когда контракт находится в одном сегменте сети, сообщения обрабатываются без маршрутизации, а значит гораздо быстрее. @@ -86,8 +86,8 @@ Jetton minter выходит за рамки этой статьи. #### Адрес Jetton wallet -Мы не можем контролировать адрес результирующего кошелька Jetton напрямую. -Однако, если мы контролируем адрес дистрибьютора, мы можем подобрать его таким образом, чтобы Jetton кошелек для дистрибьютора оказался в том же шарде. +Мы не можем контролировать адрес результирующего jetton wallet напрямую. +Однако, если мы контролируем адрес дистрибьютора, мы можем подобрать его таким образом, чтобы jetton wallet для дистрибьютора оказался в том же шарде. Но как это сделать? Для этого существует [lib](https://github.com/Trinketer22/turbo-wallet)! В настоящее время она поддерживает только кошельки, но добавить поддержку произвольных контрактов достаточно просто. Посмотрите, как это сделано для [HighloadV3](https://github.com/Trinketer22/turbo-wallet/blob/44fe7ee4300e37e052871275be8dd41035d45c3a/src/lib/contracts/HighloadWalletV3.ts#L20). @@ -139,9 +139,9 @@ _ _(HashMap 64 AirdropItem) = Airdrop; Одно из требований заключается в том, чтобы контракт _дистрибьютора_ имел обновляемый _merkle root_. Давайте пройдем шаг за шагом: -- Разверните дистрибьютора в каждом шарде (0-15) – в пределах того же шарда, что и их кошельки jetton, используя начальный `merkle_root` в качестве nonce +- Разверните дистрибьютора в каждом шарде (0-15) – в пределах того же шарда, что и их jetton wallet, используя начальный `merkle_root` в качестве nonce - Сгруппируйте пользователей по шардам -- Для каждого пользователя найдите такой индекс, чтобы контракт _двойная трата_ `(дистрибьютор, индекс)` оказался в том же шарде, что и адрес пользователя +- Для каждого пользователя найдите такой индекс, чтобы контракт _двойная трата_ `(distributor, index)` оказался в том же шарде, что и адрес пользователя - Сгенерируйте _merkle roots_ с индексами из шага выше - Обновите _дистрибьюторов_ в соответствии с _merkle roots_. @@ -150,9 +150,9 @@ _ _(HashMap 64 AirdropItem) = Airdrop; ### V3 - Пользователь разворачивает контракт _двойная трата_ в одном шарде, используя настройку индекса -- Дистрибьютор в шарде пользователя проверяет адрес отправки `двойной траты` по состоянию инициализации `(distributor_address, index)` +- Дистрибьютор в шарде пользователя проверяет адрес отправки `двойной траты` по state init `(distributor_address, index)` - Дистрибьютор отправляет комиссию на кошелек для оплаты комиссии -- Дистрибьютор проверяет доказательство, в данном случае индекс пользователя должен быть частью доказательства, и выпускает джеттоны через кошелек jetton на том же шарде. +- Дистрибьютор проверяет доказательство, в данном случае индекс пользователя должен быть частью доказательства, и выпускает джеттоны через jetton wallet на том же шарде. **MORE NAIVE ART** Что в этом плохого? Давайте посмотрим внимательно. @@ -172,6 +172,6 @@ _ _(HashMap 64 AirdropItem) = Airdrop; Мы всегда можем пойти еще дальше. Взгляните на кастомный [jetton wallet](https://github.com/ton-community/mintless-jetton/blob/main/contracts/jetton-utils.fc#L142), в который встроена оптимизация шардов. -В результате кошелек jetton пользователя оказывается на том же шарде, что и пользователь, с вероятностью 87%. +В результате пользовательский jetton wallet оказывается на том же шарде, что и пользователь, с вероятностью 87%. Но это еще довольно неизведанная территория, так что вам придется действовать самостоятельно. Удачи с TGE!