From 4de6d0171534d2749c5d983fdec7727b47eea56c Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Wed, 21 Oct 2020 15:01:05 -0700 Subject: [PATCH 1/2] Remove trailing slashes from endpoints --- libs/src/services/ethContracts/serviceProviderFactoryClient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/src/services/ethContracts/serviceProviderFactoryClient.js b/libs/src/services/ethContracts/serviceProviderFactoryClient.js index 1c911f0c4fe..9f3dff92043 100644 --- a/libs/src/services/ethContracts/serviceProviderFactoryClient.js +++ b/libs/src/services/ethContracts/serviceProviderFactoryClient.js @@ -278,7 +278,7 @@ class ServiceProviderFactoryClient extends GovernedContractClient { const info = await method.call() return { owner: info.owner, - endpoint: info.endpoint, + endpoint: info.endpoint.replace(/\/$/, ''), spID: parseInt(serviceId), type: serviceType, blockNumber: parseInt(info.blockNumber), From 6402bb18ecf2a353baa903916d4af18cfdbb7bbd Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Wed, 21 Oct 2020 15:19:22 -0700 Subject: [PATCH 2/2] Sanitize registration endpoint --- .../services/ethContracts/serviceProviderFactoryClient.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libs/src/services/ethContracts/serviceProviderFactoryClient.js b/libs/src/services/ethContracts/serviceProviderFactoryClient.js index 9f3dff92043..9c3e60c315e 100644 --- a/libs/src/services/ethContracts/serviceProviderFactoryClient.js +++ b/libs/src/services/ethContracts/serviceProviderFactoryClient.js @@ -26,14 +26,16 @@ class ServiceProviderFactoryClient extends GovernedContractClient { } async registerWithDelegate (serviceType, endpoint, amount, delegateOwnerWallet) { - if (!this.isDebug && !Utils.isFQDN(endpoint)) { + const sanitizedEndpoint = endpoint.replace(/\/$/, '') + + if (!this.isDebug && !Utils.isFQDN(sanitizedEndpoint)) { throw new Error('Not a fully qualified domain name!') } if (!Number.isInteger(amount) && !Utils.isBN(amount)) { throw new Error('Invalid amount') } - const requestUrl = urlJoin(endpoint, 'health_check') + const requestUrl = urlJoin(sanitizedEndpoint, 'health_check') const axiosRequestObj = { url: requestUrl, method: 'get', @@ -61,7 +63,7 @@ class ServiceProviderFactoryClient extends GovernedContractClient { // Register and stake const method = await this.getMethod('register', Utils.utf8ToHex(serviceType), - endpoint, + sanitizedEndpoint, amount, delegateOwnerWallet) const tx = await this.web3Manager.sendTransaction(method, 1000000)