Move.

Допис

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

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

Як отримати значення з ObjectTable за допомогою динамічних полів?

dynamicFieldObjectЯ намагаюся отримати значення з ObjectTable за допомогою динамічних полів з інтерфейсу, але стикаюся з помилкою. Помилка говоритьUnexpected arg String("gms") for the expected type Struct(MoveStructLayout...). Як я можу отримати правильний тип значення і уникнути цієї помилки?

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

Відповіді

3
Theoremus.
Apr 7 2025, 18:58

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

0
Коментарі
.
YJS.
YJS94
Apr 8 2025, 07:36

Ви можете отримати значення з ObjectTable за допомогою наступного прикладу коду:

const getTable = async () => {
  const res = await client.getDynamicFields({
    parentId: "YOUR_PARENT_ID_HERE",
  });

  res.data.forEach(async (df) => {
    console.log(df.name, df.objectId);
    const res = await client.getDynamicFieldObject({
      parentId: "YOUR_PARENT_ID_HERE",
      name: df.name,
    });

    let field = res.data?.content?.fields;

    console.log("DF read", field.name);
  });
};

Замі YOUR_PARENT_ID_HEREна фактичним батьківським ідентифікатором повинна допомогти досягти вашої мети.

0
Коментарі
.
farshad.
Apr 8 2025, 12:00

Якщо ви зіткнулися з помилкоюdynamicFieldObject, переконайтеся, що тип і значення відповідають очікуваним. Можливо, вам доведеться перевірити, що структура, яку ви передаєте, nameвідповідає очікуваному макету. Крім того, використання getObjectмає отримати деталі батьківського об'єкта, які можуть містити необхідний ідентифікатор, але переконатися, що він існує та на нього належним чином посилається.

0
Коментарі
.

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

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

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

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

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

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

Ми використовуємо файли cookie, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше