-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcontentscript.js
64 lines (59 loc) · 1.9 KB
/
contentscript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Inject JS
var s = document.createElement('script');
s.src = chrome.runtime.getURL('stream.js');
s.onload = function () {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
var s = document.createElement('script');
s.src = chrome.runtime.getURL('avian.js');
s.onload = function () {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
const avianStream = new PostMessageStream.WindowPostMessageStream({
name: 'background',
target: 'avian',
});
avianStream.on('data', (data) => {
let method = data.method;
let args = data.args;
switch (method) {
case "getbalance":
chrome.storage.local.get('address').then((result) => {
var addr = result.address;
if (addr == undefined || addr == null) {
avianStream.write({ error: "No address" });
return;
}
addressBalance(addr).then(bal => {
avianStream.write({ result: bal });
})
});
break;
case "getaddress":
chrome.storage.local.get('address').then((result) => {
var addr = result.address;
if (addr == undefined || addr == null) {
avianStream.write({ error: "No address" });
return;
}
avianStream.write({ result: addr });
});
break;
case "sendto":
let data = btoa(JSON.stringify({ data: "sendto", args }));
let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=480,height=580`;
window.open(chrome.runtime.getURL('wallet/index.html') + "?data=" + data, 'test', params);
avianStream.write({ error: "[TODO] Null return!" });
break;
default:
avianStream.write({ result: "N/A" })
break;
}
});
async function addressBalance(address) {
const response = await fetch(`https://explorer-us.avn.network/ext/getbalance/${address}`);
const bal = await response.text();
return bal;
}