Update relayer code to use new relayer-registry format

This commit is contained in:
Alex Browne
2018-11-07 15:29:34 -08:00
parent dca2a4e9c2
commit 8248fbb231
4 changed files with 14 additions and 6 deletions

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;