Move.

Пост

Поделитесь своими знаниями.

Ramirez.
Feb 13, 2025
Обсуждение

Взимание комиссии с монеты в рамках операции по свопу DEX

Уже неделю я пытаюсь заключить контракт, предусматривающий взимание платы за монету, использованную в свопе DEX. Кажется, я не могу определить сумму SUI монеты по выходным данным, так как она была потрачена на транзакцию. Как я могу автоматически взимать комиссию, если есть такие функции, как «swap_a2bНе вернуть монету»?

  • Move CLI
  • Move Bug
0
2
Поделиться
Комментарии
.

Ответы

2
1 Luca.
Feb 13 2025, 11:08

Если вы израсходуете монету для транзакции, ее нельзя будет использовать снова. Если вы используете эту валюту для оплаты газа, вы можете использовать ее один раз. Когда дело доходит до свопов DEX, как только вы передаете такую монету, как OutCoinA, в обмен функциями, она расходуется, и последующие вызовы не смогут распознать ее, если вы не получите обратный ответ. Основная проблема может заключаться в том, что swap_a2b ничего не возвращает, а значит, вы не сможете напрямую взимать комиссию после операции обмена. В качестве обходного решения можно взять в собственность обмениваемую монету и, выполнив обмен, вычесть комиссию, а затем вернуть результат пользователю.

0
Комментарии
.
CarlkawIy.
Feb 13 2025, 11:10

Объединение функций свопа в смарт-контракт может решить эту проблему. Выполнив своп в контракте, вы сможете управлять владением и распределением, а также оплачивать платежи в автоматическом режиме. Контракт заключает своп, вычитает комиссию, а затем распределяет оставшуюся сумму обратно пользователю. В контексте PTB используется следующий подход: 1) разделите монету на отдельную монету (CoinIn), 2) передайте эту монету в смарт-контракт для обмена, обработки комиссий и возврата к пользователю. Если смарт-контракт принимает стоимость CoinIn, необязательно явно передавать объект монеты перед шагом 2.

0
Комментарии
.

Знаете ответ?

Пожалуйста, войдите в систему и поделитесь им.

Мы используем файлы cookie, чтобы гарантировать вам лучший опыт на нашем сайте.
Подробнее