aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rpc.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rpc.ts')
-rw-r--r--lib/rpc.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/rpc.ts b/lib/rpc.ts
new file mode 100644
index 00000000..bb57d075
--- /dev/null
+++ b/lib/rpc.ts
@@ -0,0 +1,28 @@
+import got from "got";
+
+export default ({ host, port, wallet, username, password }) =>
+ new Proxy(
+ {},
+ {
+ get:
+ (target, prop) =>
+ (...params) =>
+ ((method, ...params) => {
+ let url = `http://${host}:${port}/wallet/${wallet}`;
+ return got
+ .post(url, {
+ json: {
+ method,
+ params,
+ },
+ headers: {
+ authorization: `Basic ${Buffer.from(
+ `${username}:${password}`,
+ ).toString("base64")}`,
+ },
+ })
+ .json()
+ .then(({ result }) => result);
+ })(prop.toLowerCase(), ...params),
+ },
+ );