The React Native框架已经变得相当流行并且具有许多流行的分支, 例如Expo.
React Native是基于JavaScriptCore (WebKit的部分) 并且不使用Node.js或常见的Web和DOM API。因此,丢失了许多正常的网络环境或者Node.js实例所能提供的操作。
由于这个原因, 这里提供一个Shims模块来填补这个漏洞
要在React Native中使用ether, 你必须要为所需且缺少的功能提供ether shims,或者使用ethers.js shim.
强烈建议您查看下面的security部分获得关于安装可能影响你的应用程序安全的软件包
安装软件包后, 你可能需要重启你的软件包和company.
Installing
/home/ricmoo/my-react-project> npm install @ethersproject/shims --save
Importing
// Pull in the shims (BEFORE importing ethers)
import "@ethersproject/shims"
// Import the ethers library
import { ethers } from "ethers";
React Native环境不包含用于计算随机私钥的安全随机源。这可能会导致其他人可能猜到的私钥,从而导致资金被盗和资产被操纵。
由于这个原因,强烈建议也安装React Native get-random-values,它必须被包含shims的前面。 如果它工作正常,您应该不会在控制台中收到任何关于丢失安全随机源的警告。
Importing with Secure Random Sources
// 导入crypto getRandomValues shim(在shims**之前**)
import "react-native-get-random-values"
// 导入ethers shims (在导入ethers**之前**)
import "@ethersproject/shims"
// 导入ethers库
import { ethers } from "ethers";
The content of this site is licensed under the Creative Commons License. Generated on January 11, 2023, 9:24pm.