Sui.

Publication

Partagez vos connaissances.

Owen.
May 31, 2025
Questions et Réponses avec des Experts

Erreur de vérification de type lors de l'utilisation d'une structure personnalisée comme paramètre de type dans coin : :Coin ?

Question :

Je rencontre une erreur de vérification de type dans mon code Sui Move que je ne comprends pas. Voici une version simplifiée de mon code :

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

    struct MyCoin has drop {}

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

Lorsque j'essaie de compiler, j'obtiens l'erreur suivante :

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

Qu'est-ce que je fais mal ? Pourquoi ne puis-je pas l'utiliser MyCoincomme paramètre de type pour coin::Coinet comment puis-je résoudre ce problème de vérification de type ?

  • Sui
  • Architecture
1
2
Partager
Commentaires
.

Réponses

2
HaGiang.
Jun 1 2025, 03:20

Vous rencontrez cette erreur de vérification de type car coin : :Coin s'attend à ce que T soit un type fantôme, ce qui signifie qu'il n'est utilisé qu'au niveau du type et n'est jamais stocké dans des structures de données réelles. Dans votre code d'origine, vous avez défini MyCoin comme une structure normale sans aucun paramètre de type ni utilisation de fantômes. Cela dépasse les attentes du module coin.

Le module de monnaie de Sui est conçu pour être générique, le type de pièce étant simplement un marqueur, comme une étiquette permettant de distinguer une pièce d'une autre. C'est pourquoi il s'attend à ce que le type ne contienne aucune donnée réelle et n'existe qu'à des fins de saisie.

2
Commentaires
.
harry phan.
May 31 2025, 09:45

Vous essayez d'utiliser coin : :mint (1000) sans enregistrer correctement votre type de pièce personnalisé MyCoin. Dans Sui Move, avant de pouvoir frapper une pièce personnalisée, vous devez la définir et l'enregistrer à l'aide de la fonction create_currency.

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

1
Commentaires
.

Connaissez-vous la réponse ?

Veuillez vous connecter et la partager.

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

306Publications450Réponses
Sui.X.Peera.

Gagne ta part de 1000 Sui

Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.

Campagne de RécompensesJuin
      Nous utilisons des cookies pour vous assurer la meilleure expérience sur notre site Web.
      Plus d'infos