Допис
Діліться своїми знаннями.
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
Відповіді
2Хоча смарт-контракти Sui не можуть безпосередньо отримати доступ до об'єктів за ідентифікатором у межах контракту, ви можете обійти це, використовуючи бібліотеки на стороні клієнта, щоб отримати необхідні дані з блокчейна, а потім надати їх як вхід до функцій смарт-контракту. Це передбачає використання API або SDK Sui для взаємодії з блокчейном та отримання необхідних об'єктів перед викликом смарт-контракту. Для вирішення таких сценаріїв розробники зазвичай використовують клієнт Sui або пов'язані API для зовнішньої взаємодії з блокчейном. Ці інструменти можуть запитувати об'єкти на основі ідентифікаторів, а потім полегшити передачу цих об'єктів у функції смарт-контракту як необхідні вхідні дані.
На жаль, в рамках смарт-контракту Sui неможливо безпосередньо отримати об'єкт, використовуючи лише його ідентифікатор. Це пояснюється тим, що смарт-контракти на Sui не мають прямого доступу до глобального сховища так, як це роблять смарт-контракти Ethereum. У Sui вам потрібно буде отримати об'єкт із зовнішньої системи, наприклад програми на стороні клієнта, а потім передати його як аргумент методу смарт-контракту.
Ви знаєте відповідь?
Будь ласка, увійдіть та поділіться нею.