Bài viết
Chia sẻ kiến thức của bạn.
How to fetch objects by ID in a Sui smart contract?
I've been working on a Sui smart contract and want to understand how to fetch an object by its ID from within the smart contract itself. From what I've gathered, it seems like smart contracts on Sui don't have the direct capability like in Ethereum's Solidity to access storage and retrieve objects by their IDs. I'm looking for some guidance on whether this is possible directly within the smart contract or if I need to approach it differently.
- Move CLI
- Move
Câu trả lời
2Mặc dù các hợp đồng thông minh Sui không thể truy cập trực tiếp các đối tượng bằng ID trong hợp đồng, nhưng bạn có thể giải quyết vấn đề này bằng cách sử dụng các thư viện phía máy khách để lấy dữ liệu cần thiết từ blockchain và sau đó cung cấp nó làm đầu vào cho các chức năng hợp đồng thông minh. Điều này liên quan đến việc sử dụng API hoặc SDK của Sui để tương tác với blockchain và truy xuất các đối tượng cần thiết trước khi gọi hợp đồng thông minh. Để đối phó với các kịch bản như vậy, các nhà phát triển thường sử dụng Sui client hoặc các API liên quan để tương tác với blockchain bên ngoài. Các công cụ này có thể truy vấn các đối tượng dựa trên ID và sau đó tạo điều kiện cho việc truyền các đối tượng đó vào các chức năng của hợp đồng thông minh dưới dạng đầu vào được yêu cầu.
Thật không may, trong hợp đồng thông minh Sui, không thể truy xuất trực tiếp một đối tượng chỉ bằng ID của nó. Điều này là do các hợp đồng thông minh trên Sui không có quyền truy cập trực tiếp vào lưu trữ toàn cầu theo cách mà các hợp đồng thông minh Ethereum có. Trên Sui, bạn sẽ cần lấy đối tượng từ một hệ thống bên ngoài, chẳng hạn như một ứng dụng phía máy khách, và sau đó chuyển nó như một đối số cho một phương thức hợp đồng thông minh.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.