Пост
Поделитесь своими знаниями.
Ошибка проверки типов при использовании настраиваемой структуры в качестве параметра типа в монете 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
Ответы
2Вы столкнулись с этой ошибкой при проверке типа, потому что coin: :Coin
Модуль монет в Sui разработан так, чтобы быть универсальным: тип монеты — это просто маркер, похожий на этикетку, позволяющую отличить одну монету от другой. Поэтому предполагается, что этот тип не будет содержать фактических данных и будет использоваться только для набора текста.
Вы пытаетесь использовать coin: :mint (1000) без надлежащей регистрации собственного типа монеты MyCoin. В игре Sui Move, прежде чем вы сможете чеканить собственную монету, ее необходимо создать и зарегистрировать с помощью функции create_currency.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Заработай свою долю из 1000 Sui
Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.

- 0xduckmove... SUI+88
1
- harry phan... SUI+61
2
- MiniBob... SUI+57
3
- ... SUIHaGiang+56
- ... SUIRogue+47
- ... SUIRogueRig+44
- ... SUIPeera Admin+25
- ... SUIVens.sui+20
- ... SUIMarlKey+20
- ... SUIdudley_smith+16