Sui.

Допис

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

Owen.
May 31, 2025
Питання та відповіді експертів

Помилка перевірки типу при використанні користувацької структури як параметра типу в монеті Sui Move: :Coin?

Питання:

Я стикаюся з помилкою перевірки типу в моєму коді Sui Move, яку я не розумію. Ось спрощена версія мого коду:

module my_module::mymodule {
    use sui::coin;
    use sui::wallets;

    struct MyCoin has drop {}

    public fun create_coin(): coin::Coin<MyCoin> {
        coin::mint(1000)
    }
}

Коли я намагаюся компілювати, я отримую таку помилку:

Invalid type parameter instantiation.
Expected type 'phantom type T' but found 'MyCoin'

Що я роблю неправильно? Чому я не можу використовувати MyCoinяк параметр типу coin::Coinі як виправити цю проблему перевірки типу?

  • Sui
  • Architecture
0
2
Поділитися
Коментарі
.

Відповіді

2
HaGiang.
Jun 1 2025, 03:20

Ви отримуєте цю помилку перевірки типу, оскільки coin: :Coin очікує, що T буде фантомним типом - це означає, що він використовується лише на рівні типу і ніколи не зберігається у фактичних структурах даних. У своєму оригінальному коді ви визначили MyCoin як звичайну структуру без будь-яких параметрів типу або фантомного використання. Це порушує очікування модуля монет.

Модуль монет у Sui розроблений так, щоб бути загальним, де тип монети є лише маркером - як етикетка, щоб відрізнити одну монету від іншої. Ось чому він очікує, що тип не буде містити фактичних даних і існуватиме лише для цілей набору тексту.

2
Коментарі
.
harry phan.
May 31 2025, 09:45

Ви намагаєтеся використовувати coin: :mint (1000) без належної реєстрації вашого типу монети MyCoin. У Sui Move, перш ніж ви зможете карбувати власну монету, вам потрібно визначити та зареєструвати її за допомогою функції create_currency.

https://docs.sui.io/references/framework/sui/coin

1
Коментарі
.

Ви знаєте відповідь?

Будь ласка, увійдіть та поділіться нею.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

306Пости450Відповіді
Sui.X.Peera.

Зароби свою частку з 1000 Sui

Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.

Кампанія винагородЧервень
Ми використовуємо файли cookie, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше