on master help sign in
support generating auth with metamask wallets
422e162Liam Fitzgerald
src/lib/authToken.js+4−1
@@ -1,10 +1,13 @@
1import * as secp256k1 from 'secp256k1';
1import * as secp256k1 from 'secp256k1';
2
2
3−import { keccak256 } from './wallet';
3+import { keccak256, WALLET_TYPES } from './wallet';
4
4
5const MESSAGE = 'Bridge Authentication Token';
5const MESSAGE = 'Bridge Authentication Token';
6
6
7export const getAuthToken = ({ wallet, walletType, walletHdPath, web3 }) => {
7export const getAuthToken = ({ wallet, walletType, walletHdPath, web3 }) => {
8+ if (walletType === WALLET_TYPES.METAMASK) {
9+ return web3.eth.personal.sign(MESSAGE, wallet.address, '');
10+ }
8 const { signature } = secp256k1.sign(
11 const { signature } = secp256k1.sign(
9 keccak256('\x19Ethereum Signed Message:\n' + MESSAGE.length + MESSAGE),
12 keccak256('\x19Ethereum Signed Message:\n' + MESSAGE.length + MESSAGE),
10 wallet.privateKey
13 wallet.privateKey
src/store/wallet.js+15−13
@@ -55,19 +55,21 @@ function _useWallet(initialWallet = Nothing(), initialMnemonic = Nothing()) {
55 const { web3 } = useNetwork();
55 const { web3 } = useNetwork();
56
56
57 useEffect(() => {
57 useEffect(() => {
58+ (async () => {
58− if (!Just.hasInstance(wallet) || !Just.hasInstance(web3)) {
59+ if (!Just.hasInstance(wallet) || !Just.hasInstance(web3)) {
59− return;
60+ return;
60− }
61+ }
61− const _wallet = wallet.value;
62+ const _wallet = wallet.value;
62− const _web3 = web3.value;
63+ const _web3 = web3.value;
63− const token = getAuthToken({
64+ const token = await getAuthToken({
64− wallet: _wallet,
65+ wallet: _wallet,
65− walletType,
66+ walletType,
66− walletHdPath,
67+ walletHdPath,
67− web3: _web3,
68+ web3: _web3,
68− });
69+ });
69−
70+
70− setAuthToken(token);
71+ setAuthToken(token);
72+ })();
71 }, [wallet, walletType, walletHdPath, web3]);
73 }, [wallet, walletType, walletHdPath, web3]);
72
74
73 const setWalletType = useCallback(
75 const setWalletType = useCallback(