aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/parsers/relayer_registry
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-10-25 09:34:20 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:24:48 +0800
commit5e22a862b77d4947361342972c28a8552d13018e (patch)
tree6ef99ff4d5b9d1f0c41e87c18b97d1987b5da9ab /packages/pipeline/src/parsers/relayer_registry
parentbb440b683a7a4d966694de2b897f51f22dadb31c (diff)
downloaddexon-0x-contracts-5e22a862b77d4947361342972c28a8552d13018e.tar.gz
dexon-0x-contracts-5e22a862b77d4947361342972c28a8552d13018e.tar.zst
dexon-0x-contracts-5e22a862b77d4947361342972c28a8552d13018e.zip
Implement fetching and parsing relayer info
Diffstat (limited to 'packages/pipeline/src/parsers/relayer_registry')
-rw-r--r--packages/pipeline/src/parsers/relayer_registry/index.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/pipeline/src/parsers/relayer_registry/index.ts b/packages/pipeline/src/parsers/relayer_registry/index.ts
new file mode 100644
index 000000000..6eca10167
--- /dev/null
+++ b/packages/pipeline/src/parsers/relayer_registry/index.ts
@@ -0,0 +1,28 @@
+import * as R from 'ramda';
+
+import { RelayerResponse, RelayerResponseNetwork } from '../../data_sources/relayer-registry';
+import { Relayer } from '../../entities/Relayer';
+
+export const parseRelayers = R.map(parseRelayer);
+
+function parseRelayer(relayerResp: RelayerResponse): Relayer {
+ const relayer = new Relayer();
+ relayer.name = relayerResp.name;
+ relayer.url = relayerResp.homepage_url;
+ relayer.appUrl = relayerResp.app_url;
+ const mainnet = getMainNetwork(relayerResp);
+ if (mainnet !== undefined) {
+ relayer.sraHttpEndpoint = mainnet.sra_http_endpoint || null;
+ relayer.sraWsEndpoint = mainnet.sra_ws_endpoint || null;
+ relayer.feeRecipientAddresses = R.path(['static_order_fields', 'fee_recipient_addresses'], mainnet) || [];
+ relayer.takerAddresses = R.path(['static_order_fields', 'taker_addresses'], mainnet) || [];
+ } else {
+ relayer.feeRecipientAddresses = [];
+ relayer.takerAddresses = [];
+ }
+ return relayer;
+}
+
+function getMainNetwork(relayerResp: RelayerResponse): RelayerResponseNetwork | undefined {
+ return R.find(network => network.networkId === 1, relayerResp.networks);
+}