如何使用 oo7 Substrate 库定义自定义类型?

How do I define a custom type with the oo7 Substrate library?

我正在使用 Substrate Bonds 库 (oo7) 为我的自定义 Substrate Runtime 模块生成自定义 UI。

为了在 Substrate UI 中支持我的自定义模块,我需要定义一个自定义类型。我该怎么做?

oo7 Substrate 库公开了 addCodecTransform() 函数,使您能够定义自定义类型,然后您可以在 UI.

中使用这些类型

例如,给定在您的模块中定义的结构:

#[derive(Encode, Decode, Default, Clone, PartialEq)]
#[cfg_attr(feature = "std", derive(Debug))]
pub struct Kitty<Hash, Balance> {
    id: Hash,
    dna: Hash,
    price: Balance,
    gen: u64,
}

您可以进行以下 JavaScript 调用:

addCodecTransform('Kitty<Hash,Balance>', { 
    id: 'Hash',
    dna: 'Hash',
    price: 'Balance',
    gen: 'u64'
});

如果您将此添加到您的应用程序 constructor() 函数中,您可以确保它在依赖的 React 函数需要它之前被调用。