Допис
Діліться своїми знаннями.
How to call `public fun`s from Sui framework using CLI?
Hey folks, I'm trying to call public functions from the Sui framework using the Sui CLI. For instance, if someone transfers an object to me and I don't want it, how can I freeze it? I thought about using sui client call
, but I'm having trouble with the module identifier. Is publishing a wrapper package the only way, or is there a CLI command I'm missing?
- Move CLI
- Move
Відповіді
2Я насправді зрозумів це, використовуючиsui client ptb
:sui client ptb --move-call 0x2::transfer::public_freeze_object "<0x7a7e054896810bbbe031041ee131137c417fdf8320ba40ec47203e1ab4b8f7e1::example::Sword>" @0xbcb2c3c6b0f67828fce9702115b914414df767a35c8a541413787d0a1e66682e
, принаймні в тестовій мережі. Вам просто потрібен правильний тип для дзвінка, хоча я не впевнений, чи зму key
шує він реалізувати певну рису.
Можна викликати публічні функції з пакетів фреймворків Sui через Sui CLI, але з деякими обмеженнями. Наприклад, доступ до певних системних модулів, таких як 0x2 безпосередньо, ще не повністю підтримується. Поширеним варіантом вирішення є публікація користувацького пакета, який обертає потрібну функціюpublic_freeze_object
, наприклад, дозволяючи викликати її з вашим ідентифікатором об'єкта як параметром. Це дає більшу гнучкість. Не соромтеся звертатися, якщо вам потрібна допомога у створенні цього пакета обгортки!
Ви знаєте відповідь?
Будь ласка, увійдіть та поділіться нею.
Move is an executable bytecode language used to implement custom transactions and smart contracts.