Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

从 1.18.x 升级到 1.19.x


ArcBlock 的区块链在 v1.19.x 增加了原生的 Passkey 支持,意味着 Passkey 可以在区块链上有对应的账户,可以像其他账户一样签名和发送交易。

而因为增加原生 Passkey 支持,导致部分基础库的 API 发生了破坏性变化,如果你需要使用最新版,请参照下面的升级指南。

升级依赖#

你可以使用你熟悉的任何工具,将你项目中的下列依赖升级到最新版:

  • @ocap/*
  • @arcblock/*
  • @blocklet/*

修改代码#

@ocap/wallet#

wallet.verify 已经变为 async 的方法

const { fromSecretKey } = require('@ocap/wallet');

const wallet = fromSecretKey(sk, type);
const message = 'data to sign';
const signature = wallet.sign(message);
expect(await wallet.verify(message, signature)).toEqual(true); // changed

支持了新的 DID 类型:

const { fromPublicKey } = require('@ocap/wallet');
const { fromBase64 } = require('@ocap/util');

const publicKey = fromBase64('pQECAyYgASFYIA3GyM4rSxM_HyV52QTRwGJOdkXurky3cwTLvb_gKSF-Ilggpd0fhMlPdxHBl45_eJxqywCRl-a4IDpeFa4pcfmrxuM');
const wallet = fromPublicKey(publicKey, 'passkey');
expect(wallet.address).toEqual('z3i165rPumFgyQZpZ1W3VLEYBPuV2xSCAjoqo');

@arcblock/vc#

下列方法都变为 async

  • create
  • verify
  • verifyPresentation
const { create, verify, verifyPresentation, createCredentialList, verifyCredentialList } = require('@oarcblock/vc');

const issuer = fromRandom();
const owner = fromRandom();
let vc = null;

const subject = {
id: owner.address,
key: 'value',
method: 'SHA3',
};

const issuerInfo = {
wallet: issuer,
name: 'DID.KYC.Email',
};

const vc = await create({
type: 'EmailVerificationCredential',
issuer: issuerInfo,
subject,
tag: 'abcd',
endpoint: 'https://www.arcblock.io/api/vc/status',
});

expect(await verify({ vc, ownerDid: owner.address, trustedIssuers: issuer.address })).toEqual(true);

@arcblock/jwt#

jwt.verify 已经变为 async 的方法

const { sign, verify } = require('@arcblock/jwt');

const token = sign(appId, sk, { key: 'value' });
const [, bodyB64] = token.split('.');
const body = JSON.parse(fromBase64(bodyB64).toString());
const result = await verify(token, pk); // changed

@ocap/asset#

preMintFromFactory 变为 async 的方法

@blocklet/sdk#

`wallet.verify` is now an `async` method

const getWallet = require('@blocklet/sdk/lib/wallet');

const wallet = getWallet();
const message = 'data to sign';
const signature = wallet.sign(message);
expect(await wallet.verify(message, signature)).toEqual(true); // changed


你获得 0 积分