aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/scripts/pull_trusted_tokens.ts
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/pull_trusted_tokens.ts
parent9986717671fe8e14c2168f7479bdaffe406bedc0 (diff)
downloaddexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.gz
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.bz2
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.lz
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.xz
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.tar.zst
dexon-sol-tools-c6af5131b0b06433d6294260274e187ad61f4ef7.zip
Pull token metadata re trusted tokens
Diffstat (limited to 'packages/pipeline/src/scripts/pull_trusted_tokens.ts')
-rw-r--r--packages/pipeline/src/scripts/pull_trusted_tokens.ts51
1 files changed, 51 insertions, 0 deletions
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.');
+}