Move.

Bài viết

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

Dominikus .
Jan 12, 2025
Hỏi đáp Chuyên Gia

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
1
2
Chia sẻ
Bình luận
.

Câu trả lời

2
Theoremus.
Jan 12 2025, 15:19

Mặ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.

1
Câu trả lời hay nhất
Bình luận
.
Ramirez.
Jan 12 2025, 23:21

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.

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