Move.

Bài viết

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

Tawhid.
Mar 26, 2025
Hỏi đáp Chuyên Gia

How to ensure a smart contract doesn't resend a capability?

I'm working on a smart contract and I want to ensure that it doesn't send a capability if the user already owns one. This is to avoid unwanted transactions. I am thinking about using an SDK to check all objects a user holds and perhaps using a sui::table::Table to keep a list of minted capabilities. Is this the right approach, or is there a better way to confirm if an address holds a certain object on-chain?

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

Câu trả lời

3
dudley_smith.
Mar 27 2025, 07:47

Một gợi ý cho trường hợp sử dụng của bạn là giữ một danh sách các địa chỉ đã có khả năng được đúc trong một đối tượng được chia sẻ. Bạn có thể quản lý các hạn chế kích thước đối tượng bằng cách sử dụng asui::table::Table, cho phép bạn duy trì danh sách/bản đồ một cách hiệu quả.

2
Câu trả lời hay nhất
Bình luận
.
cod.
cod95
Mar 27 2025, 02:05

Bạn có thể thử sử dụng SDK để kiểm tra tất cả các đối tượng mà người dùng giữ ngoài chuỗi. Điều này có thể giúp bạn xác thực quyền sở hữu mà không ảnh hưởng đến luồng hợp đồng trên chuỗi.

2
Bình luận
.
Grizzly.
Mar 27 2025, 05:53

Bạn có thể không cần kiểm tra trên chuỗi cho trường hợp sử dụng này. Nếu bạn muốn người dùng chứng minh rằng họ sở hữu một đối tượng, yêu cầu họ nhập bằng chứng về quyền sở hữu.

1
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ó.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Bài viết231Câu trả lời
Sui.X.Peera.

Kiếm phần của bạn từ 1000 Sui

Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.

Chiến dịch phần thưởngTháng Bảy