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, а именно с правиломOne Time Witness (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.

Кампания вознагражденийИюль
Посты с вознаграждением