on master help sign in
support generating auth with metamask wallets
commit422e1623861d999aa7df116cf8cdb79b893a3647 authorLiam Fitzgerald <liam@urizen.co> dateFri 27 Mar 2020, 11:43 (7 years ago) parentd65ca9b
2 files changed+19−14
src/lib/authToken.js+4−1 src/store/wallet.js+15−13
src/lib/authToken.js+4−1
@@ -1,10 +1,13 @@
11import * as secp256k1 from 'secp256k1';
22
3−import { keccak256 } from './wallet';
3+import { keccak256, WALLET_TYPES } from './wallet';
44
55const MESSAGE = 'Bridge Authentication Token';
66
77export const getAuthToken = ({ wallet, walletType, walletHdPath, web3 }) => {
8+ if (walletType === WALLET_TYPES.METAMASK) {
9+ return web3.eth.personal.sign(MESSAGE, wallet.address, '');
10+ }
811 const { signature } = secp256k1.sign(
912 keccak256('\x19Ethereum Signed Message:\n' + MESSAGE.length + MESSAGE),
1013 wallet.privateKey
src/store/wallet.js+15−13
@@ -55,19 +55,21 @@ function _useWallet(initialWallet = Nothing(), initialMnemonic = Nothing()) {
5555 const { web3 } = useNetwork();
5656
5757 useEffect(() => {
58− if (!Just.hasInstance(wallet) || !Just.hasInstance(web3)) {
59− return;
60− }
61− const _wallet = wallet.value;
62− const _web3 = web3.value;
63− const token = getAuthToken({
64− wallet: _wallet,
65− walletType,
66− walletHdPath,
67− web3: _web3,
68− });
69−
70− setAuthToken(token);
58+ (async () => {
59+ if (!Just.hasInstance(wallet) || !Just.hasInstance(web3)) {
60+ return;
61+ }
62+ const _wallet = wallet.value;
63+ const _web3 = web3.value;
64+ const token = await getAuthToken({
65+ wallet: _wallet,
66+ walletType,
67+ walletHdPath,
68+ web3: _web3,
69+ });
70+
71+ setAuthToken(token);
72+ })();
7173 }, [wallet, walletType, walletHdPath, web3]);
7274
7375 const setWalletType = useCallback(