Skip to content

Commit 387199b

Browse files
authored
Merge branch 'master' into develop
Signed-off-by: Jonathan Llamas <llamasjonat@gmail.com>
2 parents 9f359f2 + dbfdbd6 commit 387199b

File tree

5 files changed

+69
-6
lines changed

5 files changed

+69
-6
lines changed

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
"@fontsource/merriweather": "^4.5.14",
2020
"@fontsource/montserrat": "^4.5.13",
2121
"@vercel/analytics": "^0.1.3",
22+
"bip32": "^4.0.0",
23+
"bip39": "^3.1.0",
24+
"bitcoinjs-lib": "^6.1.3",
2225
"crypto-js": "^4.1.1",
2326
"dexie": "^3.2.2",
2427
"dexie-react-hooks": "^1.1.1",
@@ -32,7 +35,8 @@
3235
"react-dom": "^18.2.0",
3336
"react-feather": "^2.0.10",
3437
"react-hotjar": "^5.2.0",
35-
"react-qr-code": "^2.0.7"
38+
"react-qr-code": "^2.0.7",
39+
"tiny-secp256k1": "^2.2.3"
3640
},
3741
"devDependencies": {
3842
"@graphprotocol/client-cli": "^2.2.15",

src/components/Modal/Send/index.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ const Send = ({ onClose }) => {
5959

6060
// Component
6161
const [loading, setLoading] = useState(false);
62-
const [toAddress, setToAddress] = useState('');
63-
const [mount, setMount] = useState('');
62+
const [toAddress, setToAddress] = useState(null);
63+
const [mount, setMount] = useState(null);
6464

6565
// Price
6666
const [price, setPrice] = useState();
@@ -117,15 +117,15 @@ const Send = ({ onClose }) => {
117117
};
118118

119119
const handleCloseModal = () => {
120-
setMount('');
120+
setMount(null);
121121
setGasPrice(0);
122122
onClose();
123123
};
124124

125125
const handleChangeAddress = () => {
126126
setTokenSelected('');
127127
setToAddress('');
128-
setMount('');
128+
setMount(null);
129129
};
130130

131131
return (

src/context/Blockchain.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function BlockchainWrapper({ children }) {
99

1010
useEffect(() => {
1111
if (!kovanProvider) {
12-
const kovan = new ethers.providers.InfuraProvider('goerli', process.env.INFURA_TOKEN_API);
12+
const kovan = new ethers.providers.InfuraProvider('homestead', process.env.INFURA_TOKEN_API);
1313
setKovanProvider(kovan);
1414
}
1515
}, [kovanProvider]);

src/pages/api/createAccount.tsx

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { BIP32Factory } from 'bip32';
2+
import bip39 from 'bip39';
3+
import bitcoin from 'bitcoinjs-lib';
4+
import * as ecc from 'tiny-secp256k1';
5+
6+
import { ethers } from 'ethers';
7+
8+
const createAccount = async (req, res) => {
9+
if (req.method === 'GET') {
10+
try {
11+
// Define the network
12+
const network = bitcoin?.networks?.bitcoin;
13+
14+
// Derivation path
15+
const path = `m/49'/1'/0'/0`;
16+
17+
// Use m/49'/0'/0'/0 for mainnet
18+
// Use m/49'/1'/0'/0 for testnet
19+
20+
let mnemonic = bip39?.generateMnemonic();
21+
const seed = bip39?.mnemonicToSeedSync(mnemonic);
22+
const bip32 = BIP32Factory(ecc);
23+
let root = bip32.fromSeed(seed, network);
24+
25+
let account = root?.derivePath(path);
26+
let node = account?.derive(0).derive(0);
27+
28+
let walletBTC = bitcoin?.payments?.p2pkh({
29+
pubkey: node?.publicKey,
30+
network: network,
31+
}).address;
32+
33+
const walletETH = ethers.Wallet.fromMnemonic(mnemonic);
34+
35+
res.status(200).json({
36+
account: {
37+
security: {
38+
mnemonic,
39+
},
40+
wallet: {
41+
btc: walletBTC,
42+
eth: walletETH?.address,
43+
},
44+
},
45+
});
46+
} catch (error) {
47+
res.status(501).json({ error: error.message });
48+
}
49+
}
50+
};
51+
52+
export default createAccount;

src/pages/api/test.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export default function (req, res) {
2+
if (req.method === 'GET') {
3+
return res.status(200).json({
4+
test: 'hola',
5+
});
6+
}
7+
}

0 commit comments

Comments
 (0)