-2

我有一个网络应用程序,几个月以来一直在使用window.cardano.nami注入。在 CIP-0008 之后,我正在尝试抽象所有源代码以支持ccvault和其他 Cardano 钱包;一切正常,但似乎signData方法已更改。

我正在使用window.cardano.signData,结果是这样的纯文本签名: window.cardano.signData signature

const signedData = await window.cardano.signData(usedAddresses, hexMessage);

我切换到api.signData(其中api是 window.cardano.nami.enable() 返回的新端点,现在签名是这样的对象: api.signData signature

const signedData = await wallet.signData(usedAddresses, hexMessage);

因此,类型不同,但这还不够:签名本身(如果我将第一个签名与第二个签名对象的 .signature 属性进行比较)不同!

更奇怪的是:ccvault就像一个魅力!

我错过了什么?

4

1 回答 1

0

问题是有一个旧版本的 nami 和一个新版本,最好是检查两者并返回正确的版本。然后像往常一样继续使用它。

   let connectNami = async () => {
    // @ts-ignore
    if (typeof window.cardano.nami !== "undefined") {
      // @ts-ignore
      return await window.cardano.nami.enable();
    } else {
      console.debug(`Using legacy nami wallet integration`);

      // @ts-ignore
      await window.cardano.enable();

      // @ts-ignore
      return window.cardano;
    }
  };
const cardano= await connectNami();
const token = await cardano.signData(address, messageToSign);
于 2022-02-21T02:07:54.873 回答