Я собирался использовать ethereumjs-wallet
.Но я решил использовать ethereumjs-wallet-react-native
, потому что это для сети.Если вы посмотрите на ссылку , там написано import
два модуля.Поэтому я взял два модуля и попытался import
их, но возникла проблема.
код, вызывающий ошибку:
import { asyncRandomBytes } from 'react-native-secure-randombytes'
import safeCrypto from 'react-native-safe-crypto'
window.randomBytes = asyncRandomBytes
window.scryptsy = safeCrypto.scrypt
Сообщение об ошибке:
Не удалось разрешить модуль «act-native-secure-randombytes »
Я хотел решить эту проблему, но не смог ее решить, поэтому решил пойти в обход.
Устранено из-за ошибки Код:
import safeCrypto from "react-native-fast-crypto";
const { RNRandomBytes } = NativeModules;
window.randomBytes = RNRandomBytes.randomBytes;
window.scryptsy = safeCrypto.scrypt;
Это может вызвать проблемы позже, но это уже решено.Однако возникла другая проблема, когда мы вызвали и выполнили ethereumjs-wallet-react-native.
errormessage:
Пакет в "node_modules / ethereumjs-wallet-реагировать-native / index.js"попытался импортировать модуль стандартной библиотеки Node "crypto".Не удалось, потому что React Native не включает стандартную библиотеку Node.Читайте больше на https://docs.expo.io/versions/latest/introduction/faq/#can-i-use-nodejs-packages-with-expo
Итак, я скачал crypto-browserify
, но это не сработало.
Код, который пытался разрешить
import safeCrypto from "react-native-fast-crypto";
const { RNRandomBytes } = NativeModules;
import Wallet from "ethereumjs-wallet-react-native";
var crypto = require("crypto-browserify");
window.randomBytes = RNRandomBytes.randomBytes;
window.scryptsy = safeCrypto.scrypt;
...
async componentDidMount() {
const wallet = await Wallet.generate();
}
этоis package.json:
"dependencies": {
"crypto-browserify": "^3.12.0",
"ethereumjs-wallet-react-native": "^0.6.7",
"expo": "^32.0.0",
"expokit": "32.1.1",
"react": "16.5.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
"react-native-fast-crypto": "^1.8.1",
"react-native-randombytes": "^3.5.2"
},
"devDependencies": {
"babel-preset-expo": "^5.0.0"
},
Код для "ethereumjs-wallet-реагировать-native / index.js" находится на ссылке в моей статье.
Пожалуйста, помоги нам.Заранее спасибо.