Move.

Bài viết

Chia sẻ kiến thức của bạn.

Ramirez.
Feb 13, 2025
Thảo Luận

Nhận phí từ một đồng tiền trong hoạt động hoán đổi DEX

Tôi đã phải vật lộn với việc thực hiện một hợp đồng trong một tuần áp dụng phí cho một đồng tiền được sử dụng trong hoán đổi DEX. Có vẻ như tôi không thể đọc số tiền SUI của đồng tiền từ đầu ra do nó được tiêu thụ trong giao dịch. Làm cách nào để tôi tính phí nguyên tử nếu các chức năng như swap_a2bkhông trả lại một đồng xu?

  • Move CLI
  • Move Bug
0
2
Chia sẻ
Bình luận
.

Câu trả lời

2
1 Luca.
Feb 13 2025, 11:08

Nếu bạn tiêu thụ đồng xu cho một giao dịch, nó không thể được sử dụng lại. Nếu bạn đang sử dụng nó để thanh toán gas, đó là sử dụng một lần. Khi nói đến hoán đổi DEX, một khi bạn chuyển một đồng tiền như OutCoinA trong một giao dịch hoán đổi hàm, nó sẽ bị tiêu thụ và các cuộc gọi tiếp theo sẽ không nhận ra nó trừ khi được trả về một cách rõ ràng. Vấn đề chính có thể là swap_a2b không trả lại bất cứ thứ gì, có nghĩa là bạn không thể trực tiếp nhận phí sau khi giao dịch hoán đổi. Một cách giải quyết có thể là nắm quyền sở hữu đồng tiền được hoán đổi và sau khi thực hiện hoán đổi, trừ phí trước khi chuyển kết quả trở lại cho người dùng.

0
Bình luận
.
CarlkawIy.
Feb 13 2025, 11:10

Gói chức năng hoán đổi trong hợp đồng thông minh có thể giải quyết vấn đề này. Bằng cách thực hiện hoán đổi trong hợp đồng, bạn có thể quản lý quyền sở hữu và phân phối để xử lý phí một cách nguyên tử. Hợp đồng sẽ thực hiện hoán đổi, xử lý trừ phí và sau đó phân phối số tiền còn lại cho người dùng. Dưới đây là cách tiếp cận trong bối cảnh PTB: 1. chia đồng tiền thành một đồng tiền riêng biệt, 2. chuyển đồng tiền này vào hợp đồng thông minh để hoán đổi, xử lý phí và quay lại bước người dùng. Bạn không nhất thiết phải chuyển đối tượng coin một cách rõ ràng trước bước 2 nếu hợp đồng thông minh lấy CoinIn theo giá trị.

0
Bình luận
.

Bạn có biết câu trả lời không?

Hãy đăng nhập và chia sẻ nó.

Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm tốt nhất trên trang web của chúng tôi.
Thêm thông tin