Допис
Діліться своїми знаннями.

Запобігання конфліктам версій об'єктів у розробці
Якщо ви коли-небудь стикалися з помилкою * «Невідповідність версії об'єкта» *, ви знаєте, наскільки це може бути неприємно. У вас є правильний ідентифікатор об'єкта, ваш код виглядає добре, але транзакція відмовляється проходити. Що відбувається? Проблема полягає в системі версій Sui.
Кожен об'єкт на Sui маєномер версії, який збільшується кожного разу, коли він мутується. Якщо ваш сценарій або транзакція використовує посилання на стару версію, Sui відхилить його - таким чином він забезпечує послідовність та запобігає перезапису змін. Погана новина полягає в тому, що в середовищі, що швидко рухається (або під час тестування із спільними об'єктами) версії можуть змінюватися між часом їх отримання та часом надсилання транзакції.
Виправлення просте, але важливе: завжди отримуйте останні дані об'єкта безпосередньо перед їх використанням. У CLI це:
sui client object <objectID>
У JavaScript ви робите:
const object = await provider.getObject({
id: objectId,
options: { showContent: true }
});
Це гарантує, що ви працюєте з найсвіжішим станом.
Для автоматизованих скриптів напишіть невеликий помічник, який оновлює об'єкт кожного разу перед тим, як передати його в транзакцію. У тестах повністю уникайте версій жорсткого кодування - натомість динамічно завантажуйте їх під час налаштування тесту.
Після того, як ви переймете цю звичку, помилки невідповідності версій стають рідкісним видовищем, і ваш робочий процес буде набагато більш плавним, особливо якщо ви співпрацюєте з іншими розробниками, які можуть торкатися тих самих об'єктів.
- SDKs and Developer Tools
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Зароби свою частку з 1000 Sui
Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.
- Чому BCS вимагає точного порядку полів для десеріалізації, коли структури Move мають названі поля?65
- Як максимізувати прибуток від SUI: Sui Staking проти Liquid Staking514
- Помилки перевірки кількох джерел» у публікаціях модуля Sui Move - автоматичне вирішення помилок55
- Помилка Sui Move - Неможливо обробити транзакцію Не знайдено дійсних газових монет для транзакції416
- Невдала операція Sui: об'єкти, зарезервовані для іншої транзакції49