Skip to main content
Программа World является точкой входа для создания экземпляров мира, сущностей, присоединения компонентов и выполнения систем в единой структуре.

Разработка клиента

Текущие усилия разработки сосредоточены на создании нескольких клиентских SDK и интеграций. Программа World, являющаяся стандартной программой Anchor, предоставляет свой язык описания интерфейса (IDL), опубликованный в блокчейне, для бесшовного взаимодействия.

Установка SDK для TypeScript

Для установки SDK Bolt выполните следующую команду:
npm install @magicblock-labs/bolt-sdk
Инициализация проекта с помощью bolt init автоматически создаёт простой пример использования bolt-sdk.

Создание нового экземпляра мира

Создайте новый экземпляр мира, как показано ниже:
const initializeNewWorld = await InitializeNewWorld({
  payer: provider.wallet.publicKey,
  connection: provider.connection,
});
const signature = await provider.sendAndConfirm(initializeNewWorld.transaction);
const worldPda = initializeNewWorld.worldPda; // we can use this later

Добавление новой сущности

Чтобы добавить новую сущность:
const addEntity = await AddEntity({
  payer: provider.wallet.publicKey,
  world: worldPda,
  connection: provider.connection,
});
const signature = await provider.sendAndConfirm(addEntity.transaction);
const entityPda = addEntity.entityPda; // we can use this later

Присоединение компонентов к сущности

Для присоединения компонентов:
const initializeComponent = await InitializeComponent({
  payer: provider.wallet.publicKey,
  entity: entityPda,
  componentId: positionComponent.programId,
});
const signature = await provider.sendAndConfirm(
  initializeComponent.transaction
);
const componentPda = initializeComponent.componentPda; // We can use this to fetch the state

Применение систем

Чтобы применить систему:
const applySystem = await ApplySystem({
  authority: provider.wallet.publicKey,
  systemId: systemMovement.programId,
  entities: [
    {
      entity: entityPda,
      components: [{ componentId: positionComponent.programId }],
    },
  ],
});
const signature = await provider.sendAndConfirm(applySystem.transaction);