加密和解密呼叫数据
LiFi 合约能够将多个交易组合成一个交易调用。 为了使用此功能,目前需要对某些网桥(connext / NXTP)的必要呼叫数据进行加密和解密。
为此,您可以将钩子传递给 resumeRoute 和 executeRoute 的 ExecutionSettings。
interface ExecutionSettings {
getPublicKeyHook?: () => Promise<string | undefined>
decryptHook?: (data: string) => Promise<string>
// ...
}getPublicKeyHook 需要从用户的钱包返回一个公共加密挂钩。 此密钥用于在执行开始时加密呼叫数据。
在第一笔交易被执行后,第二笔交易的交易数据必须被解密才能被执行。 这必须使用decryptHook 处理。 它提供加密的呼叫数据,并期望开发人员处理它的解密。
您可以构建自己的挂钩或使用 SDK 中提供的帮助程序。 目前,SDK 助手仅支持符合 EIP-1193 的提供程序。
示例代码片段
以下代码片段使用 SDK 帮助程序对通话数据进行加密和解密。
import LiFi, {
getEthereumDecryptionHook,
getEthereumPublicKeyHook,
} from '@lifinance/sdk'
// ... prepare a transfer ...
const settings: ExecutionSettings = {
// ...
// the following hooks are present in the SDK
decryptHook: getEthereumDecryptionHook(await signer.getAddress()),
getPublicKeyHook: getEthereumPublicKeyHook(await signer.getAddress()),
}
const route = await LiFi.executeRoute(signer, chosenRoute, settings)Last updated