From 159dc711e17908306ec81b5ee76f76c134cdcf8c Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Mon, 18 Feb 2019 10:35:39 +1100 Subject: [PATCH 1/4] use new message json rpc API --- js/modules/loki_message_api.js | 48 +++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 5dcd82927..4ebeb1380 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -118,15 +118,22 @@ class LokiMessageAPI { }; const doRequest = async nodeUrl => { - const url = `${nodeUrl}${this.messageServerPort}/store`; + const url = `${nodeUrl}${this.messageServerPort}/v1/storage_rpc`; + const body = { + method: 'store', + args: { + pubKey, + ttl: ttl.toString(), + nonce, + timestamp: timestamp.toString(), + data: data64, + }, + }; const fetchOptions = { method: 'POST', - body: data64, + body, headers: { - 'X-Loki-pow-nonce': nonce, - 'X-Loki-timestamp': timestamp.toString(), - 'X-Loki-ttl': ttl.toString(), - 'X-Loki-recipient': pubKey, + 'X-Loki-EphemKey:': 'not implemented yet', }, }; @@ -140,7 +147,7 @@ class LokiMessageAPI { canResolve = false; } else if (e instanceof HTTPError) { log.error( - `POST ${e.response.url}`, + `POST ${e.response.url} (store)`, e.response.status, 'Error sending message' ); @@ -208,19 +215,24 @@ class LokiMessageAPI { }; const doRequest = async (nodeUrl, nodeData) => { - const url = `${nodeUrl}${this.messageServerPort}/retrieve`; + const url = `${nodeUrl}${this.messageServerPort}/v1/storage_rpc`; + const body = { + method: 'retrieve', + args: { + pubKey: ourKey, + lastHash: nodeData.lastHash, + }, + }; const headers = { - 'X-Loki-recipient': ourKey, + 'X-Loki-EphemKey:': 'not implemented yet', + }; + const fetchOptions = { + method: 'POST', + body, + headers, }; - - if (nodeData.lastHash) { - headers['X-Loki-last-hash'] = nodeData.lastHash; - } - try { - const result = await fetch(url, { - headers, - }); + const result = await fetch(url, fetchOptions); nodeComplete(nodeUrl); @@ -234,7 +246,7 @@ class LokiMessageAPI { canResolve = false; } else if (e instanceof HTTPError) { log.error( - `GET ${e.response.url}`, + `POST ${e.response.url} (retrieve)`, e.response.status, `Error retrieving messages from ${nodeUrl}` ); From ed1d06d9cec5524ef2eda7147c3822d835df2d84 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Mon, 18 Feb 2019 11:17:32 +1100 Subject: [PATCH 2/4] use 'params' as per json_rpc --- js/modules/loki_message_api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 4ebeb1380..57f7c01e4 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -121,7 +121,7 @@ class LokiMessageAPI { const url = `${nodeUrl}${this.messageServerPort}/v1/storage_rpc`; const body = { method: 'store', - args: { + params: { pubKey, ttl: ttl.toString(), nonce, @@ -218,7 +218,7 @@ class LokiMessageAPI { const url = `${nodeUrl}${this.messageServerPort}/v1/storage_rpc`; const body = { method: 'retrieve', - args: { + params: { pubKey: ourKey, lastHash: nodeData.lastHash, }, From 8eac72b60c24c6c61e15cc21841614522e19add2 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Mon, 18 Feb 2019 13:03:24 +1100 Subject: [PATCH 3/4] Fix typo --- js/modules/loki_message_api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 57f7c01e4..1a169695c 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -133,7 +133,7 @@ class LokiMessageAPI { method: 'POST', body, headers: { - 'X-Loki-EphemKey:': 'not implemented yet', + 'X-Loki-EphemKey': 'not implemented yet', }, }; @@ -224,7 +224,7 @@ class LokiMessageAPI { }, }; const headers = { - 'X-Loki-EphemKey:': 'not implemented yet', + 'X-Loki-EphemKey': 'not implemented yet', }; const fetchOptions = { method: 'POST', From d3f23db049dfe4846982825d3e0bfce7ab385a85 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Mon, 18 Feb 2019 13:17:58 +1100 Subject: [PATCH 4/4] serialise objects to json before node-fetch --- js/modules/loki_message_api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 1a169695c..8aa1a387d 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -131,7 +131,7 @@ class LokiMessageAPI { }; const fetchOptions = { method: 'POST', - body, + body: JSON.stringify(body), headers: { 'X-Loki-EphemKey': 'not implemented yet', }, @@ -228,7 +228,7 @@ class LokiMessageAPI { }; const fetchOptions = { method: 'POST', - body, + body: JSON.stringify(body), headers, }; try {