Move.

Допис

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

elfDani.
Apr 11, 2025
Питання та відповіді експертів

Чи можуть модулі створювати кілька монет на ланцюжку без проблем?

Я працюю над модулем для ринків прогнозування, і він потрібен для створення монет на ланцюжку через заводський клас бездозвольним і перевіреним способом. В даний час модулі мають обмеження, як-от лише одна монета на модуль через One Time Witness, а це означає, що мені довелося створити еквівалентний стандарт монет, який гаманці користувачів не визнають як монету. Чи можемо ми вирішити це в наступному оновленні?

  • Move CLI
  • Move Module
0
2
Поділитися
Коментарі
.

Відповіді

2
Caplec.
Apr 12 2025, 08:27

Хоча в даний час модулі мають обмеження, такі як обмеження публікувати лише одну монету на модуль через One Time Witness, розгляньте можливість використання одного розгорнутого контракту, наприклад WASM, який дозволяє створювати кілька типів монет, як описано в цьому посібнику: https://docs.sui.io/guides/developer/nft/asset-tokenization.

0
Коментарі
.
24p30p.
Jul 9 2025, 07:01

Якщо ви створюєте модуль ринку прогнозування і хочете генерувати нові монети на ланцюжку за допомогою заводського шаблону, ви зіткнулися з відомим обмеженням у поточному фреймворку монет Move — зокрема, з правиломОдноразового свідка (OTW), яке обмежує кожен модуль визначенням лише одного типу монети. Через це, коли ви намагаєтеся динамічно створити кілька монет, ви змушені використовувати власну структуру, яку гаманці не розпізнають як нативні монети, що робить взаємодію користувачів менш плавною.

Щоб обійти це, ви можете створити власну структуру, схожу на монету, яка імітує поведінку рідного, Coin<T>але не розглядається як одна в інтерфейсі гаманця Sui. На жаль, поки Sui не оновить свою модель монет, щоб дозволити підтримкумультимонетний модульабо не введе більш гнучку заводську систему з належною підтримкою гаманця, це обмеження збережеться. Однак ви все ще можете переконатися, що система залишається перевіреною та без дозволу, видаючи події для створення монет та зберігаючи метадані в реєстрі, який можуть читати гаманці або індексатори.

Тим часом ось проста концептуальна структура заводського генератора монет, яка імітує власну поведінку монет:

public entry fun create_prediction_token(
    admin: &signer,
    name: vector<u8>,
    symbol: vector<u8>,
    decimals: u8
): (CustomCoin, CustomCoinMetadata) {
    let token = CustomCoin { id: object::new(admin), value: 0 };
    let metadata = CustomCoinMetadata {
        name,
        symbol,
        decimals,
        creator: signer::address_of(admin)
    };
    // Emit an event or store in registry for traceability
    event::emit<NewTokenCreated>(&metadata);
    (token, metadata)
}

У майбутньому Sui може запропонувати більш гнучке або рідне рішення, можливо, з**фабриками з кількома монетами або оновленою логікою розпізнавання гаманців для заводських монет. До цього часу ви можете стежити за розвитком подій та пропонувати вдосконалення в офіційному репозиторії чи дискусіях спільноти.

https://github.com/MystenLabs/sui/discussions

https://docs.sui.io/devnet/build/coin

Це зростаюча область в екосистемі, тому ваші відгуки можуть безпосередньо вплинути на майбутні оновлення.

0
Коментарі
.

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

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

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Пости240Відповіді
Sui.X.Peera.

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

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

Кампанія винагородЛипень