aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/parsers/token_metadata/index.ts
diff options
context:
space:
mode:
authorJake Ellowitz <jake.ellowitz@gmail.com>2018-11-20 11:11:51 +0800
committerFred Carlsen <fred@sjelfull.no>2018-12-06 19:04:25 +0800
commit72c45d9ea90237d87053fd1ddc751fc699527937 (patch)
tree140a9b62ec450fa2cfb2ac39c90265638ab2ce0c /packages/pipeline/src/parsers/token_metadata/index.ts
parent75df8a0e8b375f198555f55bd6ed47af75c2b043 (diff)
downloaddexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar.gz
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar.bz2
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar.lz
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar.xz
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.tar.zst
dexon-0x-contracts-72c45d9ea90237d87053fd1ddc751fc699527937.zip
metadata and trusted sources in same raw table
Diffstat (limited to 'packages/pipeline/src/parsers/token_metadata/index.ts')
-rw-r--r--packages/pipeline/src/parsers/token_metadata/index.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/pipeline/src/parsers/token_metadata/index.ts b/packages/pipeline/src/parsers/token_metadata/index.ts
new file mode 100644
index 000000000..d09def0db
--- /dev/null
+++ b/packages/pipeline/src/parsers/token_metadata/index.ts
@@ -0,0 +1,47 @@
+import * as R from 'ramda';
+
+import { MetamaskTrustedTokenMeta, ZeroExTrustedTokenMeta } from '../../data_sources/trusted_tokens';
+import { TokenMetadata } from '../../entities';
+
+/**
+ * Parses Metamask's trusted tokens list.
+ * @param rawResp raw response from the metamask json file.
+ */
+export function parseMetamaskTrustedTokens(rawResp: Map<string, MetamaskTrustedTokenMeta>): TokenMetadata[] {
+ const parsedAsObject = R.mapObjIndexed(parseMetamaskTrustedToken, rawResp);
+ return R.values(parsedAsObject);
+}
+
+/**
+ * Parses 0x's trusted tokens list.
+ * @param rawResp raw response from the 0x json file.
+ */
+export function parseZeroExTrustedTokens(rawResp: ZeroExTrustedTokenMeta[]): TokenMetadata[] {
+ return R.map(parseZeroExTrustedToken, rawResp);
+}
+
+function parseMetamaskTrustedToken(resp: MetamaskTrustedTokenMeta, address: string): TokenMetadata {
+
+ const trustedToken = new TokenMetadata();
+
+ trustedToken.address = address;
+ trustedToken.decimals = resp.decimals;
+ trustedToken.symbol = resp.symbol;
+ trustedToken.name = resp.name;
+ trustedToken.authority = 'metamask';
+
+ return trustedToken;
+}
+
+function parseZeroExTrustedToken(resp: ZeroExTrustedTokenMeta): TokenMetadata {
+
+ const trustedToken = new TokenMetadata();
+
+ trustedToken.address = resp.address;
+ trustedToken.decimals = resp.decimals;
+ trustedToken.symbol = resp.symbol;
+ trustedToken.name = resp.name;
+ trustedToken.authority = '0x';
+
+ return trustedToken;
+}