Skip to content

Commit f377ee0

Browse files
committed
Apply ESLint and Prettier
1 parent 1b1a18b commit f377ee0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+828
-1118
lines changed

.eslintrc.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ module.exports = {
5252
'no-with': 2,
5353
'valid-typeof': 2,
5454
'no-unused-vars': 'off',
55-
'@typescript-eslint/no-unused-vars': ['error', {argsIgnorePattern: '^_'}],
55+
'@typescript-eslint/no-unused-vars': [
56+
'error',
57+
{argsIgnorePattern: '^_', varsIgnorePattern: '^_'}
58+
],
5659
'no-continue': 1,
5760
'no-unreachable': 'error',
5861
'no-unused-expressions': 'error',
@@ -100,8 +103,14 @@ module.exports = {
100103
}
101104
],
102105
'space-in-parens': ['error', 'never'],
106+
'no-case-declarations': 'warn',
103107
eqeqeq: ['error', 'always', {null: 'ignore'}],
104108
'prefer-const': ['error', {destructuring: 'all', ignoreReadBeforeAssign: false}],
105-
'no-multiple-empty-lines': ['warn', {max: 1, maxEOF: 0}]
109+
'no-multiple-empty-lines': ['warn', {max: 1, maxEOF: 0}],
110+
'@typescript-eslint/no-unsafe-call': 'warn', // TODO: fix and delete rule
111+
'@typescript-eslint/no-unsafe-assignment': 'warn', // TODO: fix and delete rule
112+
'@typescript-eslint/no-unsafe-member-access': 'warn', // TODO: fix and delete rule
113+
'@typescript-eslint/restrict-template-expressions': 'warn', // TODO: fix and delete rule
114+
'@typescript-eslint/no-unsafe-return': 'warn' // TODO: fix and delete rule
106115
}
107116
};

.prettierignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
node_modules/*
2-
*.snap
2+
*.snap

src/background/confirmationWindowApi.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import browser from "webextension-polyfill";
1+
import browser from 'webextension-polyfill';
22

33
let windowId: number | null = null;
44
export const displayConfirmationWindow = async (
@@ -7,21 +7,21 @@ export const displayConfirmationWindow = async (
77
host: string,
88
network: string,
99
params = {},
10-
decodedTxData = {},
10+
decodedTxData = {}
1111
) => {
1212
const query = new URLSearchParams();
13-
query.append("reqId", reqId);
14-
query.append("pointId", pointId);
15-
query.append("host", host);
16-
query.append("network", network);
17-
query.append("params", JSON.stringify(params));
18-
query.append("decodedTxData", JSON.stringify(decodedTxData));
13+
query.append('reqId', reqId);
14+
query.append('pointId', pointId);
15+
query.append('host', host);
16+
query.append('network', network);
17+
query.append('params', JSON.stringify(params));
18+
query.append('decodedTxData', JSON.stringify(decodedTxData));
1919

2020
const win = await browser.windows.create({
21-
type: "detached_panel",
21+
type: 'detached_panel',
2222
width: 400,
2323
height: 600,
24-
url: `./confirmation-window/index.html?${query.toString()}`,
24+
url: `./confirmation-window/index.html?${query.toString()}`
2525
});
2626
windowId = win.id!;
2727
};

src/background/index.ts

Lines changed: 22 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,67 @@
1-
import browser from "webextension-polyfill";
1+
import browser from 'webextension-polyfill';
22
import {
33
rpcListener,
44
confirmationWindowListener,
55
registerHandlerListener,
66
setAuthTokenHandler,
7-
getAuthToken,
8-
} from "pointsdk/background/messaging";
7+
getAuthToken
8+
} from 'pointsdk/background/messaging';
99

1010
const setChainIds = async () => {
1111
try {
1212
const token = (await getAuthToken()).token;
13-
const networksRes = await fetch(
14-
"https://point/v1/api/blockchain/networks",
15-
{
16-
headers: {
17-
"X-Point-Token": `Bearer ${token}`,
18-
},
19-
},
20-
);
21-
const oldDefaultNetwork = await browser.storage.local.get(
22-
"default_network",
23-
);
24-
const { networks, default_network } = await networksRes.json();
13+
const opts = {headers: {'X-Point-Token': `Bearer ${token}`}};
14+
const networksRes = await fetch('https://point/v1/api/blockchain/networks', opts);
15+
const oldDefaultNetwork = await browser.storage.local.get('default_network');
16+
const {networks, default_network} = await networksRes.json();
2517
// TODO: if the default network changed we need to update it everywhere
2618
// therefore we need to clear the prevoius setting, but this is not polite
2719
// need to think of a better solution...
2820
if (oldDefaultNetwork && oldDefaultNetwork !== default_network) {
29-
await browser.storage.local.remove("chainIdGlobal"); // it will be set up below
21+
await browser.storage.local.remove('chainIdGlobal'); // it will be set up below
3022
const storage = await browser.storage.local.get(null);
3123
for (const key in storage) {
32-
if (key.startsWith("chainId")) {
33-
await browser.storage.local.set({
34-
[key]: default_network as string,
35-
});
24+
if (key.startsWith('chainId')) {
25+
await browser.storage.local.set({[key]: default_network as string});
3626
}
3727
}
3828
}
3929
await browser.storage.local.set({
4030
networks: JSON.stringify(networks),
41-
default_network,
31+
default_network
4232
});
43-
const { chainIdGlobal } = await browser.storage.local.get(
44-
"chainIdGlobal",
45-
);
33+
const {chainIdGlobal} = await browser.storage.local.get('chainIdGlobal');
4634
if (!chainIdGlobal || !(chainIdGlobal in networks)) {
47-
await browser.storage.local.set({
48-
chainIdGlobal: default_network,
49-
});
35+
await browser.storage.local.set({chainIdGlobal: default_network});
5036
}
5137
} catch (e) {
52-
console.error("Failed to fetch networks info from the node: ", e);
38+
console.error('Failed to fetch networks info from the node: ', e);
5339
setTimeout(() => {
5440
void setChainIds();
5541
}, 1000);
5642
}
5743
};
5844

59-
setChainIds();
45+
void setChainIds();
6046

6147
browser.runtime.onMessage.addListener(async (message, sender) => {
6248
switch (message.__message_type) {
63-
case "rpc":
49+
case 'rpc':
6450
return rpcListener(message);
65-
case "registerHandler":
51+
case 'registerHandler':
6652
return registerHandlerListener(message);
67-
case "setAuthToken":
53+
case 'setAuthToken':
6854
if (!sender.url?.match(/^https:\/\/point/)) {
69-
console.error(
70-
"Attempt to set auth token from unauthorized host",
71-
);
55+
console.error('Attempt to set auth token from unauthorized host');
7256
break;
7357
}
7458
return setAuthTokenHandler(message);
75-
case "getAuthToken":
59+
case 'getAuthToken':
7660
return getAuthToken();
7761
default:
78-
if (sender.url?.match("confirmation-window")) {
62+
if (sender.url?.match('confirmation-window')) {
7963
return confirmationWindowListener(message);
8064
}
81-
console.error(
82-
"Unexpected runtime message: ",
83-
message,
84-
" from sender: ",
85-
sender,
86-
);
65+
console.error('Unexpected runtime message: ', message, ' from sender: ', sender);
8766
}
8867
});

src/background/messaging.ts

Lines changed: 46 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,164 +1,141 @@
1-
import { v4 as uuid } from "uuid";
2-
import {
3-
closeConfirmationWindow,
4-
displayConfirmationWindow,
5-
} from "./confirmationWindowApi";
6-
import { sign } from "jsonwebtoken";
1+
import {v4 as uuid} from 'uuid';
2+
import {closeConfirmationWindow, displayConfirmationWindow} from './confirmationWindowApi';
3+
import {sign} from 'jsonwebtoken';
74

8-
const socket = new WebSocket("wss://point/ws");
5+
const socket = new WebSocket('wss://point/ws');
96

107
const responseHandlers: Record<string, (v: unknown) => void> = {};
118

129
socket.onopen = () => {
13-
console.log("WS Connection with point node established");
10+
console.log('WS Connection with point node established');
1411
};
1512

16-
socket.onmessage = (e) => {
13+
socket.onmessage = e => {
1714
const payload = JSON.parse(e.data);
1815

19-
console.log("Message from node: ", payload);
16+
console.log('Message from node: ', payload);
2017

2118
if (!payload?.request?.__point_id) {
22-
console.error(
23-
"Unexpected message without __point_id from point node: ",
24-
payload,
25-
);
19+
console.error('Unexpected message without __point_id from point node: ', payload);
2620
return;
2721
}
2822
if (!responseHandlers[payload.request.__point_id]) {
29-
console.error("No handler for message from point node: ", payload);
23+
console.error('No handler for message from point node: ', payload);
3024
return;
3125
}
3226

3327
if (payload.data) {
3428
if (payload.data.reqId) {
3529
const params =
36-
payload.request.method === "solana_sendTransaction" &&
30+
payload.request.method === 'solana_sendTransaction' &&
3731
Array.isArray(payload.request.params[0].instructions)
3832
? payload.request.params[0].instructions[0]
3933
: payload.request.params[0];
40-
displayConfirmationWindow(
34+
void displayConfirmationWindow(
4135
payload.data.reqId,
4236
payload.request.__point_id,
4337
payload.request.__hostname,
4438
payload.data.network,
4539
params,
46-
payload.data.decodedTxData,
40+
payload.data.decodedTxData
4741
);
4842
} else {
4943
responseHandlers[payload.request.__point_id](payload.data);
5044
delete responseHandlers[payload.request.__point_id];
5145
}
5246
} else {
53-
console.error(
54-
"Unexpected message without data from point node: ",
55-
payload,
56-
);
47+
console.error('Unexpected message without data from point node: ', payload);
5748
}
5849
};
5950

60-
socket.onerror = (err) => {
61-
console.error("WS error: ", err);
51+
socket.onerror = err => {
52+
console.error('WS error: ', err);
6253
};
6354

6455
export const rpcListener = async (message: any) => {
6556
const messageId = uuid();
6657
let network;
6758
switch (message.__provider) {
68-
case "eth":
69-
const globalChainId = (
70-
await browser.storage.local.get("chainIdGlobal")
71-
).chainIdGlobal as string;
72-
const { host } = new URL(message.__hostname);
73-
const hostChainId = (
74-
await browser.storage.local.get(`chainId_${host}`)
75-
)[`chainId_${host}`] as string;
59+
case 'eth':
60+
const globalChainId = (await browser.storage.local.get('chainIdGlobal'))
61+
.chainIdGlobal as string;
62+
const {host} = new URL(message.__hostname);
63+
const hostChainId = (await browser.storage.local.get(`chainId_${host}`))[
64+
`chainId_${host}`
65+
] as string;
7666
network = hostChainId ?? globalChainId;
7767
break;
78-
case "solana":
79-
network = "solana_devnet"; // TODO
68+
case 'solana':
69+
network = 'solana_devnet'; // TODO
8070
break;
8171
default:
82-
throw new Error(
83-
`Unknown or missing provider type ${message.__provider}`,
84-
);
72+
throw new Error(`Unknown or missing provider type ${message.__provider}`);
8573
}
8674

8775
const msg = {
8876
...message,
8977
network,
90-
type: "rpc",
78+
type: 'rpc',
9179
__point_id: messageId,
92-
__point_token: (await getAuthToken()).token,
80+
__point_token: (await getAuthToken()).token
9381
};
94-
console.log("Sending msg to node: ", msg);
82+
console.log('Sending msg to node: ', msg);
9583
socket.send(JSON.stringify(msg));
9684

97-
return new Promise<unknown>((resolve) => {
85+
return new Promise<unknown>(resolve => {
9886
responseHandlers[messageId] = resolve;
9987
});
10088
};
10189

10290
export const confirmationWindowListener = async (message: any) => {
10391
if (message.confirm) {
10492
const msg = {
105-
method: "eth_confirmTransaction",
106-
type: "rpc",
93+
method: 'eth_confirmTransaction',
94+
type: 'rpc',
10795
__point_id: message.pointId,
10896
__point_token: (await getAuthToken()).token,
109-
params: [
110-
{
111-
reqId: message.reqId,
112-
},
113-
],
97+
params: [{reqId: message.reqId}]
11498
};
115-
console.log("Sending confirmation msg to node, ", msg);
99+
console.log('Sending confirmation msg to node, ', msg);
116100
socket.send(JSON.stringify(msg));
117101
} else {
118102
responseHandlers[message.pointId]({
119103
code: 4001,
120-
message: "User rejected the request",
104+
message: 'User rejected the request'
121105
});
122106
delete responseHandlers[message.pointId];
123107
}
124108
await closeConfirmationWindow();
125109
};
126110

127111
export const registerHandlerListener = async (message: any) =>
128-
new Promise<unknown>((resolve) => {
112+
new Promise<unknown>(resolve => {
129113
responseHandlers[message.messageId] = resolve;
130114
});
131115

132116
export const setAuthTokenHandler = async (message: any) => {
133-
const oldToken = await browser.storage.local.get("point_token");
117+
const oldToken = await browser.storage.local.get('point_token');
134118
if (oldToken) {
135119
// Checking if new token is correct, if we are replacing the token,
136120
// otherwise just inject it
137-
const jwt = sign({ payload: "point_token" }, message.token, {
138-
expiresIn: "10s",
139-
});
140-
const res = await fetch("https://point/v1/api/blockchain/networks", {
141-
headers: {
142-
"X-Point-Token": `Bearer ${jwt}`,
143-
},
144-
});
121+
const jwt = sign({payload: 'point_token'}, message.token, {expiresIn: '10s'});
122+
const opts = {headers: {'X-Point-Token': `Bearer ${jwt}`}};
123+
const res = await fetch('https://point/v1/api/blockchain/networks', opts);
145124
if (res.status !== 200) {
146125
// Not throwing error here, otherwise explorer will not redirect
147126
// Just ignoring the token instead
148-
return { ok: true };
127+
return {ok: true};
149128
}
150129
}
151-
await browser.storage.local.set({ point_token: message.token });
152-
return { ok: true };
130+
await browser.storage.local.set({point_token: message.token});
131+
return {ok: true};
153132
};
154133

155134
export const getAuthToken = async () => {
156-
const { point_token } = await browser.storage.local.get("point_token");
135+
const {point_token} = await browser.storage.local.get('point_token');
157136
if (!point_token) {
158-
throw new Error("Point token not set");
137+
throw new Error('Point token not set');
159138
}
160-
const jwt = sign({ payload: "point_token" }, point_token, {
161-
expiresIn: "10s",
162-
});
163-
return { token: jwt };
139+
const jwt = sign({payload: 'point_token'}, point_token, {expiresIn: '10s'});
140+
return {token: jwt};
164141
};

0 commit comments

Comments
 (0)