aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-11-08 07:29:34 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:24:48 +0800
commit8248fbb231a0c0acd59fd1f265114dd6dc78a253 (patch)
tree7e1ef92c4ed8245b243d4ffaedc8690f913e6ac0
parentdca2a4e9c2712f67852bed4ae6ae76c6434f7e56 (diff)
downloaddexon-sol-tools-8248fbb231a0c0acd59fd1f265114dd6dc78a253.tar.gz
dexon-sol-tools-8248fbb231a0c0acd59fd1f265114dd6dc78a253.tar.zst
dexon-sol-tools-8248fbb231a0c0acd59fd1f265114dd6dc78a253.zip
Update relayer code to use new relayer-registry format
-rw-r--r--packages/pipeline/src/data_sources/relayer-registry/index.ts4
-rw-r--r--packages/pipeline/src/entities/Relayer.ts3
-rw-r--r--packages/pipeline/src/index.ts5
-rw-r--r--packages/pipeline/src/parsers/relayer_registry/index.ts8
4 files changed, 14 insertions, 6 deletions
diff --git a/packages/pipeline/src/data_sources/relayer-registry/index.ts b/packages/pipeline/src/data_sources/relayer-registry/index.ts
index c97b50d27..8199dae14 100644
--- a/packages/pipeline/src/data_sources/relayer-registry/index.ts
+++ b/packages/pipeline/src/data_sources/relayer-registry/index.ts
@@ -26,8 +26,8 @@ export class RelayerRegistrySource {
this._url = url;
}
- public async getRelayerInfoAsync(): Promise<RelayerResponse[]> {
- const resp = await axios.get<RelayerResponse[]>(this._url);
+ public async getRelayerInfoAsync(): Promise<Map<string, RelayerResponse>> {
+ const resp = await axios.get<Map<string, RelayerResponse>>(this._url);
return resp.data;
}
}
diff --git a/packages/pipeline/src/entities/Relayer.ts b/packages/pipeline/src/entities/Relayer.ts
index ebdcbf345..605355fa8 100644
--- a/packages/pipeline/src/entities/Relayer.ts
+++ b/packages/pipeline/src/entities/Relayer.ts
@@ -2,8 +2,9 @@ import { Column, Entity, PrimaryColumn } from 'typeorm';
@Entity()
export class Relayer {
- @PrimaryColumn() public name!: string;
+ @PrimaryColumn() public uuid!: string;
+ @Column() public name!: string;
@Column() public url!: string;
@Column({ nullable: true, type: String })
public sraHttpEndpoint!: string | null;
diff --git a/packages/pipeline/src/index.ts b/packages/pipeline/src/index.ts
index 9483eb257..b42256d87 100644
--- a/packages/pipeline/src/index.ts
+++ b/packages/pipeline/src/index.ts
@@ -16,7 +16,10 @@ import { parseRelayers } from './parsers/relayer_registry';
import { parseBlock, parseTransaction } from './parsers/web3';
const EXCHANGE_START_BLOCK = 6271590; // Block number when the Exchange contract was deployed to mainnet.
-const RELAYER_REGISTRY_URL = 'https://raw.githubusercontent.com/0xProject/0x-relayer-registry/master/relayers.json';
+// NOTE(albrow): We need to manually update this URL for now. Fix this when we
+// have the relayer-registry behind semantic versioning.
+const RELAYER_REGISTRY_URL =
+ 'https://raw.githubusercontent.com/0xProject/0x-relayer-registry/4701c85677d161ea729a466aebbc1826c6aa2c0b/relayers.json';
let connection: Connection;
diff --git a/packages/pipeline/src/parsers/relayer_registry/index.ts b/packages/pipeline/src/parsers/relayer_registry/index.ts
index 6eca10167..50fd12443 100644
--- a/packages/pipeline/src/parsers/relayer_registry/index.ts
+++ b/packages/pipeline/src/parsers/relayer_registry/index.ts
@@ -3,10 +3,14 @@ import * as R from 'ramda';
import { RelayerResponse, RelayerResponseNetwork } from '../../data_sources/relayer-registry';
import { Relayer } from '../../entities/Relayer';
-export const parseRelayers = R.map(parseRelayer);
+export function parseRelayers(rawResp: Map<string, RelayerResponse>): Relayer[] {
+ const parsedAsObject = R.mapObjIndexed(parseRelayer, rawResp);
+ return R.values(parsedAsObject);
+}
-function parseRelayer(relayerResp: RelayerResponse): Relayer {
+function parseRelayer(relayerResp: RelayerResponse, uuid: string): Relayer {
const relayer = new Relayer();
+ relayer.uuid = uuid;
relayer.name = relayerResp.name;
relayer.url = relayerResp.homepage_url;
relayer.appUrl = relayerResp.app_url;