aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/scripts
diff options
context:
space:
mode:
authorJake Ellowitz <jake.ellowitz@gmail.com>2018-11-20 08:24:07 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-12-05 06:24:48 +0800
commitc6af5131b0b06433d6294260274e187ad61f4ef7 (patch)
tree338aaeaaa2673ea4c33773e3f99c53e4a10e3c42 /packages/pipeline/src/scripts
parent9986717671fe8e14c2168f7479bdaffe406bedc0 (diff)
downloaddexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.gz
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.bz2
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.lz
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.xz
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.zst
dexon-0x-contracts-c6af5131b0b06433d6294260274e187ad61f4ef7.zip
Pull token metadata re trusted tokens
Diffstat (limited to 'packages/pipeline/src/scripts')
-rw-r--r--packages/pipeline/src/scripts/pull_missing_events.ts4
-rw-r--r--packages/pipeline/src/scripts/pull_trusted_tokens.ts51
2 files changed, 53 insertions, 2 deletions
diff --git a/packages/pipeline/src/scripts/pull_missing_events.ts b/packages/pipeline/src/scripts/pull_missing_events.ts
index 0b7f6287f..68cabe3de 100644
--- a/packages/pipeline/src/scripts/pull_missing_events.ts
+++ b/packages/pipeline/src/scripts/pull_missing_events.ts
@@ -64,7 +64,7 @@ async function getCancelUpToEventsAsync(eventsSource: ExchangeEventsSource): Pro
await saveEventsAsync(startBlock === EXCHANGE_START_BLOCK, repository, events);
}
-const tabelNameRegex = /^[a-zA-Z_]*$/;
+const tableNameRegex = /^[a-zA-Z_]*$/;
async function getStartBlockAsync<T extends ExchangeEvent>(repository: Repository<T>): Promise<number> {
const fillEventCount = await repository.count();
@@ -73,7 +73,7 @@ async function getStartBlockAsync<T extends ExchangeEvent>(repository: Repositor
return EXCHANGE_START_BLOCK;
}
const tableName = repository.metadata.tableName;
- if (!tabelNameRegex.test(tableName)) {
+ if (!tableNameRegex.test(tableName)) {
throw new Error('Unexpected special character in table name: ' + tableName);
}
const queryResult = await connection.query(
diff --git a/packages/pipeline/src/scripts/pull_trusted_tokens.ts b/packages/pipeline/src/scripts/pull_trusted_tokens.ts
new file mode 100644
index 000000000..67d9e08d1
--- /dev/null
+++ b/packages/pipeline/src/scripts/pull_trusted_tokens.ts
@@ -0,0 +1,51 @@
+import 'reflect-metadata';
+import { Connection, ConnectionOptions, createConnection } from 'typeorm';
+
+import { MetamaskTrustedTokenMeta, TrustedTokenSource, ZeroExTrustedTokenMeta } from '../data_sources/trusted_tokens';
+import { TrustedToken } from '../entities';
+import * as ormConfig from '../ormconfig';
+import { parseMetamaskTrustedTokens, parseZeroExTrustedTokens } from '../parsers/trusted_tokens';
+import { handleError } from '../utils';
+
+const METAMASK_TRUSTED_TOKENS_URL =
+ 'https://raw.githubusercontent.com/MetaMask/eth-contract-metadata/master/contract-map.json';
+
+const ZEROEX_TRUSTED_TOKENS_URL =
+ 'https://website-api.0xproject.com/tokens';
+
+let connection: Connection;
+
+(async () => {
+ connection = await createConnection(ormConfig as ConnectionOptions);
+ await getMetamaskTrustedTokens();
+ await getZeroExTrustedTokens();
+ process.exit(0);
+})().catch(handleError);
+
+async function getMetamaskTrustedTokens(): Promise<void> {
+ // tslint:disable-next-line
+ console.log('Getting latest metamask trusted tokens list ...');
+ const trustedTokensRepository = connection.getRepository(TrustedToken);
+ const trustedTokensSource = new TrustedTokenSource<Map<string, MetamaskTrustedTokenMeta>>(METAMASK_TRUSTED_TOKENS_URL);
+ const resp = await trustedTokensSource.getTrustedTokenMetaAsync();
+ const trustedTokens = parseMetamaskTrustedTokens(resp);
+ // tslint:disable-next-line
+ console.log('Saving metamask trusted tokens list');
+ await trustedTokensRepository.save(trustedTokens);
+ // tslint:disable-next-line
+ console.log('Done saving metamask trusted tokens.')
+}
+
+async function getZeroExTrustedTokens(): Promise<void> {
+ // tslint:disable-next-line
+ console.log('Getting latest 0x trusted tokens list ...');
+ const trustedTokensRepository = connection.getRepository(TrustedToken);
+ const trustedTokensSource = new TrustedTokenSource<ZeroExTrustedTokenMeta[]>(ZEROEX_TRUSTED_TOKENS_URL);
+ const resp = await trustedTokensSource.getTrustedTokenMetaAsync();
+ const trustedTokens = parseZeroExTrustedTokens(resp);
+ // tslint:disable-next-line
+ console.log('Saving metamask trusted tokens list');
+ await trustedTokensRepository.save(trustedTokens);
+ // tslint:disable-next-line
+ console.log('Done saving metamask trusted tokens.');
+}