How To Add bitcoinjs-lib To A React Native v0.60+ Project
Add/Link the following dependencies:
yarn add bitcoinjs-lib ecpair @bitcoinerlab/secp256k1 react-native-randombytes buffer readable-stream
yarn add --dev rn-nodeify
cd ios && pod install && cd ..
- Add the following postinstall to your script in package.json:
"postinstall": "rn-nodeify --install buffer,stream,assert,events,crypto,vm,process --hack"
Install any remaining dependencies and run postinstall.
NOTE: (If you receive an error about "shim.js" not existing just run yarn install
again):
-
yarn install
-
Uncomment
require('crypto')
at the bottom of "shim.js". Or addrequire('crypto')
to the bottom of "shim.js" if it doesn't exist. -
And finally,
yarn install && cd ios && pod install && cd ..
one more time.
To test if everything is working as expected place the following in render:
import './shim';
import ECPairFactory from 'ecpair';
import ecc from '@bitcoinerlab/secp256k1';
const bitcoin = require('bitcoinjs-lib');
const ECPair = ECPairFactory(ecc);
const keyPair = ECPair.makeRandom();
const {address} = bitcoin.payments.p2pkh({pubkey: keyPair.publicKey});
console.log(address);
An unedited video walkthrough of this guide can be found here:
- https://youtu.be/pKRM5eAZl8c (outdated)
Sorry to revive a bit of a necro, but this is not possible in expo, right?
Getting Unable to resolve "process" from "shim.js" error :/