Bài viết
Chia sẻ kiến thức của bạn.
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
Câu trả lời
3Mộ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ả.
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.
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.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.