aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/utils
diff options
context:
space:
mode:
Diffstat (limited to 'packages/website/ts/utils')
-rw-r--r--packages/website/ts/utils/analytics.ts18
-rw-r--r--packages/website/ts/utils/configs.ts27
-rw-r--r--packages/website/ts/utils/constants.ts38
-rw-r--r--packages/website/ts/utils/doc_utils.ts6
-rw-r--r--packages/website/ts/utils/error_reporter.ts7
-rw-r--r--packages/website/ts/utils/fake_token_registry.ts879
-rw-r--r--packages/website/ts/utils/fetch_utils.ts2
-rw-r--r--packages/website/ts/utils/mui_theme.ts2
-rw-r--r--packages/website/ts/utils/order_parser.ts25
-rw-r--r--packages/website/ts/utils/token_address_overrides.ts24
-rw-r--r--packages/website/ts/utils/translate.ts7
-rw-r--r--packages/website/ts/utils/utils.ts80
12 files changed, 1025 insertions, 90 deletions
diff --git a/packages/website/ts/utils/analytics.ts b/packages/website/ts/utils/analytics.ts
index e5a1ddfa4..e990b4fc7 100644
--- a/packages/website/ts/utils/analytics.ts
+++ b/packages/website/ts/utils/analytics.ts
@@ -1,5 +1,7 @@
+import { assetDataUtils } from '@0x/order-utils';
+import { ObjectMap } from '@0x/types';
import * as _ from 'lodash';
-import { ObjectMap, Order } from 'ts/types';
+import { PortalOrder } from 'ts/types';
import { utils } from 'ts/utils/utils';
export interface HeapAnalytics {
@@ -53,12 +55,16 @@ export class Analytics {
}
// tslint:enable:no-floating-promises
// Custom methods
- public trackOrderEvent(eventName: string, order: Order): void {
+ public trackOrderEvent(eventName: string, order: PortalOrder): void {
+ const takerTokenAmount = order.signedOrder.takerAssetAmount.toString();
+ const makerTokenAmount = order.signedOrder.makerAssetAmount.toString();
+ const takerToken = assetDataUtils.decodeERC20AssetData(order.signedOrder.takerAssetData).tokenAddress;
+ const makerToken = assetDataUtils.decodeERC20AssetData(order.signedOrder.makerAssetData).tokenAddress;
const orderLoggingData = {
- takerTokenAmount: order.signedOrder.takerTokenAmount,
- makeTokenAmount: order.signedOrder.makerTokenAmount,
- takerToken: order.metadata.takerToken.symbol,
- makerToken: order.metadata.makerToken.symbol,
+ takerTokenAmount,
+ makerTokenAmount,
+ takerToken,
+ makerToken,
};
this.track(eventName, orderLoggingData);
}
diff --git a/packages/website/ts/utils/configs.ts b/packages/website/ts/utils/configs.ts
index a1c64f9cb..7b74eccfb 100644
--- a/packages/website/ts/utils/configs.ts
+++ b/packages/website/ts/utils/configs.ts
@@ -18,7 +18,7 @@ export const configs = {
DOMAIN_PRODUCTION: '0xproject.com',
GOOGLE_ANALYTICS_ID: 'UA-98720122-1',
LAST_LOCAL_STORAGE_FILL_CLEARANCE_DATE: '2017-11-22',
- LAST_LOCAL_STORAGE_TRACKED_TOKEN_CLEARANCE_DATE: '2018-7-5',
+ LAST_LOCAL_STORAGE_TRACKED_TOKEN_CLEARANCE_DATE: '2018-9-7',
OUTDATED_WRAPPED_ETHERS: [
{
42: {
@@ -44,27 +44,6 @@ export const configs = {
[3]: [`https://ropsten.infura.io/${INFURA_API_KEY}`],
[4]: [`https://rinkeby.infura.io/${INFURA_API_KEY}`],
} as PublicNodeUrlsByNetworkId,
- SYMBOLS_OF_MINTABLE_KOVAN_TOKENS: ['MKR', 'MLN', 'GNT', 'DGD', 'REP'],
- SYMBOLS_OF_MINTABLE_RINKEBY_ROPSTEN_TOKENS: [
- 'TKN0',
- 'TKN1',
- 'TKN2',
- 'TKN3',
- 'TKN4',
- 'TKN5',
- 'TKN6',
- 'TKN7',
- 'TKN8',
- 'TKN9',
- 'TKN10',
- 'TKN11',
- 'TKN12',
- 'TKN13',
- 'TKN14',
- 'TKN15',
- 'TKN16',
- 'TKN17',
- 'TKN18',
- 'TKN19',
- ],
+ SYMBOLS_OF_MINTABLE_KOVAN_TOKENS: ['ZRX', 'MKR', 'MLN', 'GNT', 'DGD', 'REP'],
+ SYMBOLS_OF_MINTABLE_ROPSTEN_TOKENS: ['ZRX', 'MKR', 'MLN', 'GNT', 'DGD', 'REP'],
};
diff --git a/packages/website/ts/utils/constants.ts b/packages/website/ts/utils/constants.ts
index 005d17823..0a8a86c50 100644
--- a/packages/website/ts/utils/constants.ts
+++ b/packages/website/ts/utils/constants.ts
@@ -1,4 +1,9 @@
-import { BigNumber } from '@0xproject/utils';
+import { ALink } from '@0x/react-shared';
+import { BigNumber } from '@0x/utils';
+import { Key, WebsitePaths } from 'ts/types';
+
+const URL_FORUM = 'https://forum.0xproject.com';
+const URL_ZEROEX_CHAT = 'https://chat.0xproject.com';
export const constants = {
DECIMAL_PLACES_ETH: 18,
@@ -24,13 +29,14 @@ export const constants = {
NETWORK_ID_MAINNET: 1,
NETWORK_ID_KOVAN: 42,
NETWORK_ID_TESTRPC: 50,
+ NETWORK_ID_ROPSTEN: 3,
NULL_ADDRESS: '0x0000000000000000000000000000000000000000',
PROVIDER_NAME_LEDGER: 'Ledger',
PROVIDER_NAME_METAMASK: 'MetaMask',
PROVIDER_NAME_PARITY_SIGNER: 'Parity Signer',
PROVIDER_NAME_MIST: 'Mist',
PROVIDER_NAME_CIPHER: 'Cipher Browser',
- PROVIDER_NAME_TOSHI: 'Toshi',
+ PROVIDER_NAME_COINBASE_WALLET: 'Coinbase Wallet',
PROVIDER_NAME_GENERIC: 'Injected Web3',
PROVIDER_NAME_PUBLIC: '0x Public',
ROLLBAR_ACCESS_TOKEN: '32c39bfa4bb6440faedc1612a9c13d28',
@@ -73,20 +79,22 @@ export const constants = {
URL_TESTNET_FAUCET: 'https://faucet.0xproject.com',
URL_GITHUB_ORG: 'https://github.com/0xProject',
URL_GITHUB_WIKI: 'https://github.com/0xProject/wiki',
+ URL_FORUM,
URL_METAMASK_CHROME_STORE: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn',
URL_METAMASK_FIREFOX_STORE: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask/',
- URL_TOSHI_IOS_APP_STORE: 'https://itunes.apple.com/us/app/toshi-ethereum-wallet/id1278383455?mt=8',
- URL_TOSHI_ANDROID_APP_STORE: 'https://play.google.com/store/apps/details?id=org.toshi&hl=en_US',
+ URL_COINBASE_WALLET_IOS_APP_STORE: 'https://itunes.apple.com/us/app/coinbase-wallet/id1278383455?mt=8',
+ URL_COINBASE_WALLET_ANDROID_APP_STORE: 'https://play.google.com/store/apps/details?id=org.toshi&hl=en',
URL_METAMASK_HOMEPAGE: 'https://metamask.io/',
URL_METAMASK_OPERA_STORE: 'https://addons.opera.com/en/extensions/details/metamask/',
URL_MIST_DOWNLOAD: 'https://github.com/ethereum/mist/releases',
URL_PARITY_CHROME_STORE:
'https://chrome.google.com/webstore/detail/parity-ethereum-integrati/himekenlppkgeaoeddcliojfddemadig',
URL_REDDIT: 'https://reddit.com/r/0xproject',
+ URL_SANDBOX: 'https://codesandbox.io/s/1qmjyp7p5j',
URL_STANDARD_RELAYER_API_GITHUB: 'https://github.com/0xProject/standard-relayer-api/blob/master/README.md',
URL_TWITTER: 'https://twitter.com/0xproject',
URL_WETH_IO: 'https://weth.io/',
- URL_ZEROEX_CHAT: 'https://chat.0xproject.com',
+ URL_ZEROEX_CHAT,
URL_WEB3_DOCS: 'https://github.com/ethereum/wiki/wiki/JavaScript-API',
URL_WEB3_DECODED_LOG_ENTRY_EVENT:
'https://github.com/0xProject/web3-typescript-typings/blob/f5bcb96/index.d.ts#L123',
@@ -94,4 +102,24 @@ export const constants = {
URL_WEB3_PROVIDER_DOCS: 'https://github.com/0xProject/web3-typescript-typings/blob/f5bcb96/index.d.ts#L150',
URL_BIGNUMBERJS_GITHUB: 'http://mikemcl.github.io/bignumber.js',
URL_MISSION_AND_VALUES_BLOG_POST: 'https://blog.0xproject.com/the-0x-mission-and-values-181a58706f9f',
+ DEVELOPER_TOPBAR_LINKS: [
+ {
+ title: Key.Home,
+ to: WebsitePaths.Home,
+ },
+ {
+ title: Key.Wiki,
+ to: WebsitePaths.Wiki,
+ },
+ {
+ title: Key.Forum,
+ to: URL_FORUM,
+ shouldOpenInNewTab: true,
+ },
+ {
+ title: Key.LiveChat,
+ to: URL_ZEROEX_CHAT,
+ shouldOpenInNewTab: true,
+ },
+ ] as ALink[],
};
diff --git a/packages/website/ts/utils/doc_utils.ts b/packages/website/ts/utils/doc_utils.ts
index b9084bba7..e0b883ace 100644
--- a/packages/website/ts/utils/doc_utils.ts
+++ b/packages/website/ts/utils/doc_utils.ts
@@ -1,5 +1,5 @@
-import { DoxityDocObj, TypeDocNode } from '@0xproject/react-docs';
-import { fetchAsync, logUtils } from '@0xproject/utils';
+import { DocAgnosticFormat, GeneratedDocJson } from '@0x/react-docs';
+import { fetchAsync, logUtils } from '@0x/utils';
import * as _ from 'lodash';
import { S3FileObject, VersionToFilePath } from 'ts/types';
import convert = require('xml-js');
@@ -70,7 +70,7 @@ export const docUtils = {
});
return versionFilePaths;
},
- async getJSONDocFileAsync(filePath: string, s3DocJsonRoot: string): Promise<TypeDocNode | DoxityDocObj> {
+ async getJSONDocFileAsync(filePath: string, s3DocJsonRoot: string): Promise<GeneratedDocJson | DocAgnosticFormat> {
const endpoint = `${s3DocJsonRoot}/${filePath}`;
const response = await fetchAsync(endpoint);
if (response.status !== 200) {
diff --git a/packages/website/ts/utils/error_reporter.ts b/packages/website/ts/utils/error_reporter.ts
index 6008fffed..6fc1216c3 100644
--- a/packages/website/ts/utils/error_reporter.ts
+++ b/packages/website/ts/utils/error_reporter.ts
@@ -1,4 +1,5 @@
-import { logUtils } from '@0xproject/utils';
+import { logUtils } from '@0x/utils';
+import Rollbar = require('rollbar');
import { configs } from 'ts/utils/configs';
import { constants } from 'ts/utils/constants';
import { utils } from 'ts/utils/utils';
@@ -36,8 +37,8 @@ const rollbarConfig = {
'SecurityError (DOM Exception 18)',
],
};
-import Rollbar = require('../../public/js/rollbar.umd.min.js');
-const rollbar = Rollbar.init(rollbarConfig);
+
+const rollbar = new Rollbar(rollbarConfig);
export const errorReporter = {
report(err: Error): void {
diff --git a/packages/website/ts/utils/fake_token_registry.ts b/packages/website/ts/utils/fake_token_registry.ts
new file mode 100644
index 000000000..607dd2553
--- /dev/null
+++ b/packages/website/ts/utils/fake_token_registry.ts
@@ -0,0 +1,879 @@
+export interface FakeTokenRegistryEntry {
+ address: string;
+ name: string;
+ symbol: string;
+ decimals: number;
+}
+
+export const fakeTokenRegistry: { [networkId: string]: FakeTokenRegistryEntry[] } = {
+ '1': [
+ {
+ address: '0xe41d2489571d322189246dafa5ebde1f4699f498',
+ name: '0x Protocol Token',
+ symbol: 'ZRX',
+ decimals: 18,
+ },
+ {
+ address: '0x4156d3342d5c385a87d264f90653733592000581',
+ name: 'Salt',
+ symbol: 'SALT',
+ decimals: 8,
+ },
+ {
+ address: '0x05f4a42e251f2d52b8ed15e9fedaacfcef1fad27',
+ name: 'Zilliqa',
+ symbol: 'ZIL',
+ decimals: 12,
+ },
+ {
+ address: '0xe0b7927c4af23765cb51314a0e0521a9645f0e2a',
+ name: 'Digix DAO Token',
+ symbol: 'DGD',
+ decimals: 9,
+ },
+ {
+ address: '0xfa05a73ffe78ef8f1a739473e462c54bae6567d9',
+ name: 'Lunyr',
+ symbol: 'LUN',
+ decimals: 18,
+ },
+ {
+ address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
+ name: 'Wrapped Ether',
+ symbol: 'WETH',
+ decimals: 18,
+ },
+ {
+ address: '0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1',
+ name: 'Melon Token',
+ symbol: 'MLN',
+ decimals: 18,
+ },
+ {
+ address: '0x9a642d6b3368ddc662ca244badf32cda716005bc',
+ name: 'Qtum',
+ symbol: 'QTUM',
+ decimals: 18,
+ },
+ {
+ address: '0xd26114cd6ee289accf82350c8d8487fedb8a0c07',
+ name: 'OmiseGO',
+ symbol: 'OMG',
+ decimals: 18,
+ },
+ {
+ address: '0xb97048628db6b661d4c2aa833e95dbe1a905b280',
+ name: 'TenXPay',
+ symbol: 'PAY',
+ decimals: 18,
+ },
+ {
+ address: '0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0',
+ name: 'Eos',
+ symbol: 'EOS',
+ decimals: 18,
+ },
+ {
+ address: '0x888666ca69e0f178ded6d75b5726cee99a87d698',
+ name: 'Iconomi',
+ symbol: 'ICN',
+ decimals: 18,
+ },
+ {
+ address: '0x744d70fdbe2ba4cf95131626614a1763df805b9e',
+ name: 'StatusNetwork',
+ symbol: 'SNT',
+ decimals: 18,
+ },
+ {
+ address: '0x6810e776880c02933d47db1b9fc05908e5386b96',
+ name: 'Gnosis',
+ symbol: 'GNO',
+ decimals: 18,
+ },
+ {
+ address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
+ name: 'Basic Attention Token',
+ symbol: 'BAT',
+ decimals: 18,
+ },
+ {
+ address: '0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac',
+ name: 'Storj',
+ symbol: 'STORJ',
+ decimals: 8,
+ },
+ {
+ address: '0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c',
+ name: 'Bancor',
+ symbol: 'BNT',
+ decimals: 18,
+ },
+ {
+ address: '0x960b236a07cf122663c4303350609a66a7b288c0',
+ name: 'Aragon',
+ symbol: 'ANT',
+ decimals: 18,
+ },
+ {
+ address: '0x0abdace70d3790235af448c88547603b945604ea',
+ name: 'district0x',
+ symbol: 'DNT',
+ decimals: 18,
+ },
+ {
+ address: '0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009',
+ name: 'SingularDTV',
+ symbol: 'SNGLS',
+ decimals: 0,
+ },
+ {
+ address: '0x419d0d8bdd9af5e606ae2232ed285aff190e711b',
+ name: 'FunFair',
+ symbol: 'FUN',
+ decimals: 8,
+ },
+ {
+ address: '0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc7',
+ name: 'FirstBlood',
+ symbol: '1ST',
+ decimals: 18,
+ },
+ {
+ address: '0x08711d3b02c8758f2fb3ab4e80228418a7f8e39c',
+ name: 'Edgeless',
+ symbol: 'EDG',
+ decimals: 0,
+ },
+ {
+ address: '0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec',
+ name: 'Polymath',
+ symbol: 'POLY',
+ decimals: 18,
+ },
+ {
+ address: '0x607f4c5bb672230e8672085532f7e901544a7375',
+ name: 'iExec',
+ symbol: 'RLC',
+ decimals: 9,
+ },
+ {
+ address: '0x667088b212ce3d06a1b553a7221e1fd19000d9af',
+ name: 'Wings',
+ symbol: 'WINGS',
+ decimals: 18,
+ },
+ {
+ address: '0x41e5560054824ea6b0732e656e3ad64e20e94e45',
+ name: 'Civic',
+ symbol: 'CVC',
+ decimals: 8,
+ },
+ {
+ address: '0xb63b606ac810a52cca15e44bb630fd42d8d1d83d',
+ name: 'Monaco',
+ symbol: 'MCO',
+ decimals: 8,
+ },
+ {
+ address: '0xf433089366899d83a9f26a773d59ec7ecf30355e',
+ name: 'Metal',
+ symbol: 'MTL',
+ decimals: 8,
+ },
+ {
+ address: '0x12fef5e57bf45873cd9b62e9dbd7bfb99e32d73e',
+ name: 'Cofoundit',
+ symbol: 'CFI',
+ decimals: 18,
+ },
+ {
+ address: '0xaaaf91d9b90df800df4f55c205fd6989c977e73a',
+ name: 'Monolith TKN',
+ symbol: 'TKN',
+ decimals: 8,
+ },
+ {
+ address: '0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c',
+ name: 'Token-as-a-Service',
+ symbol: 'TAAS',
+ decimals: 6,
+ },
+ {
+ address: '0x2e071d2966aa7d8decb1005885ba1977d6038a65',
+ name: 'DICE',
+ symbol: 'ROL',
+ decimals: 16,
+ },
+ {
+ address: '0xcb94be6f13a1182e4a4b6140cb7bf2025d28e41b',
+ name: 'Trustcoin',
+ symbol: 'TRST',
+ decimals: 6,
+ },
+ {
+ address: '0x1776e1f26f98b1a5df9cd347953a26dd3cb46671',
+ name: 'Numeraire',
+ symbol: 'NMR',
+ decimals: 18,
+ },
+ {
+ address: '0x7c5a0ce9267ed19b22f8cae653f198e3e8daf098',
+ name: 'Santiment Network Token',
+ symbol: 'SAN',
+ decimals: 18,
+ },
+ {
+ address: '0xdd974d5c2e2928dea5f71b9825b8b646686bd200',
+ name: 'Kyber Network Crystal',
+ symbol: 'KNC',
+ decimals: 18,
+ },
+ {
+ address: '0xb7cb1c96db6b22b0d3d9536e0108d062bd488f74',
+ name: 'Walton',
+ symbol: 'WTC',
+ decimals: 18,
+ },
+ {
+ address: '0xd0d6d6c5fe4a677d343cc433536bb717bae167dd',
+ name: 'adToken',
+ symbol: 'ADT',
+ decimals: 9,
+ },
+ {
+ address: '0x42d6622dece394b54999fbd73d108123806f6a18',
+ name: 'SpankChain',
+ symbol: 'SPANK',
+ decimals: 18,
+ },
+ {
+ address: '0x701c244b988a513c945973defa05de933b23fe1d',
+ name: 'openANX',
+ symbol: 'OAX',
+ decimals: 18,
+ },
+ {
+ address: '0x514910771af9ca656af840dff83e8264ecf986ca',
+ name: 'ChainLink',
+ symbol: 'LINK',
+ decimals: 18,
+ },
+ {
+ address: '0x8f8221afbb33998d8584a2b05749ba73c37a938a',
+ name: 'Request Network',
+ symbol: 'REQ',
+ decimals: 18,
+ },
+ {
+ address: '0x27054b13b1b798b345b591a4d22e6562d47ea75a',
+ name: 'AirSwap',
+ symbol: 'AST',
+ decimals: 4,
+ },
+ {
+ address: '0xf0ee6b27b759c9893ce4f094b49ad28fd15a23e4',
+ name: 'Enigma',
+ symbol: 'ENG',
+ decimals: 8,
+ },
+ {
+ address: '0x818fc6c2ec5986bc6e2cbf00939d90556ab12ce5',
+ name: 'Kin',
+ symbol: 'KIN',
+ decimals: 18,
+ },
+ {
+ address: '0x27dce1ec4d3f72c3e457cc50354f1f975ddef488',
+ name: 'AirToken',
+ symbol: 'AIR',
+ decimals: 8,
+ },
+ {
+ address: '0x12480e24eb5bec1a9d4369cab6a80cad3c0a377a',
+ name: 'Substratum',
+ symbol: 'SUB',
+ decimals: 2,
+ },
+ {
+ address: '0x0e8d6b471e332f140e7d9dbb99e5e3822f728da6',
+ name: 'ABYSS',
+ symbol: 'ABYSS',
+ decimals: 18,
+ },
+ {
+ address: '0x4ceda7906a5ed2179785cd3a40a69ee8bc99c466',
+ name: 'AION',
+ symbol: 'AION',
+ decimals: 8,
+ },
+ {
+ address: '0xd8912c10681d8b21fd3742244f44658dba12264e',
+ name: 'Pluton',
+ symbol: 'PLU',
+ decimals: 18,
+ },
+ {
+ address: '0x1a7a8bd9106f2b8d977e08582dc7d24c723ab0db',
+ name: 'AppCoins',
+ symbol: 'APPC',
+ decimals: 18,
+ },
+ {
+ address: '0xba5f11b16b155792cf3b2e6880e8706859a8aeb6',
+ name: 'Aeron',
+ symbol: 'ARN',
+ decimals: 8,
+ },
+ {
+ address: '0xfec0cf7fe078a500abf15f1284958f22049c2c7e',
+ name: 'Maecenas ART Token',
+ symbol: 'ART',
+ decimals: 18,
+ },
+ {
+ address: '0x0f5d2fb29fb7d3cfee444a200298f468908cc942',
+ name: 'Decentraland',
+ symbol: 'MANA',
+ decimals: 18,
+ },
+ {
+ address: '0x1c4481750daa5ff521a2a7490d9981ed46465dbd',
+ name: 'BlockMason Credit Protocol Token',
+ symbol: 'BCPT',
+ decimals: 18,
+ },
+ {
+ address: '0x55296f69f40ea6d20e478533c15a6b08b654e758',
+ name: 'XY Oracle',
+ symbol: 'XYO',
+ decimals: 18,
+ },
+ {
+ address: '0xd7732e3783b0047aa251928960063f863ad022d8',
+ name: 'BrahmaOS',
+ symbol: 'BRM',
+ decimals: 18,
+ },
+ {
+ address: '0x7d4b8cce0591c9044a22ee543533b72e976e36c3',
+ name: 'Change Coin',
+ symbol: 'CAG',
+ decimals: 18,
+ },
+ {
+ address: '0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0',
+ name: 'CanYaCoin',
+ symbol: 'CAN',
+ decimals: 6,
+ },
+ {
+ address: '0x1234567461d3f8db7496581774bd869c83d51c93',
+ name: 'BitClave',
+ symbol: 'CAT',
+ decimals: 18,
+ },
+ {
+ address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
+ name: 'Dai Stablecoin v1.0',
+ symbol: 'DAI',
+ decimals: 18,
+ },
+ {
+ address: '0x0cf0ee63788a0849fe5297f3407f701e122cc023',
+ name: 'Streamr DATAcoin',
+ symbol: 'DATA',
+ decimals: 18,
+ },
+ {
+ address: '0x151202c9c18e495656f372281f493eb7698961d5',
+ name: 'DEBITUM',
+ symbol: 'DEB',
+ decimals: 18,
+ },
+ {
+ address: '0xba2184520a1cc49a6159c57e61e1844e085615b6',
+ name: 'HelloGold Token',
+ symbol: 'HGT',
+ decimals: 8,
+ },
+ {
+ address: '0x13f11c9905a08ca76e3e853be63d4f0944326c72',
+ name: 'Divi Exchange Token',
+ symbol: 'DIVX',
+ decimals: 18,
+ },
+ {
+ address: '0x5b26c5d0772e5bbac8b3182ae9a13f9bb2d03765',
+ name: 'EDU Token',
+ symbol: 'EDU',
+ decimals: 8,
+ },
+ {
+ address: '0xd49ff13661451313ca1553fd6954bd1d9b6e02b9',
+ name: 'ElectrifyAsia',
+ symbol: 'ELEC',
+ decimals: 18,
+ },
+ {
+ address: '0x95daaab98046846bf4b2853e23cba236fa394a31',
+ name: 'EtheremonToken',
+ symbol: 'EMONT',
+ decimals: 8,
+ },
+ {
+ address: '0x5bc7e5f0ab8b2e10d2d0a3f21739fce62459aef3',
+ name: 'Hut34 Entropy Token',
+ symbol: 'ENTR',
+ decimals: 18,
+ },
+ {
+ address: '0x923108a439c4e8c2315c4f6521e5ce95b44e9b4c',
+ name: 'Devery.io',
+ symbol: 'EVE',
+ decimals: 18,
+ },
+ {
+ address: '0xf8e386eda857484f5a12e4b5daa9984e06e73705',
+ name: 'Indorse Token',
+ symbol: 'IND',
+ decimals: 18,
+ },
+ {
+ address: '0x4f4f0db4de903b88f2b1a2847971e231d54f8fd3',
+ name: 'Geens Platform Token',
+ symbol: 'GEE',
+ decimals: 8,
+ },
+ {
+ address: '0x543ff227f64aa17ea132bf9886cab5db55dcaddf',
+ name: 'DAOstack',
+ symbol: 'GEN',
+ decimals: 18,
+ },
+ {
+ address: '0x8a854288a5976036a725879164ca3e91d30c6a1b',
+ name: 'Guaranteed Entrance Token',
+ symbol: 'GET',
+ decimals: 18,
+ },
+ {
+ address: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2',
+ name: 'Maker',
+ symbol: 'MKR',
+ decimals: 18,
+ },
+ {
+ address: '0x9af839687f6c94542ac5ece2e317daae355493a1',
+ name: 'Hydro Protocol Token',
+ symbol: 'HOT',
+ decimals: 18,
+ },
+ {
+ address: '0x0d262e5dc4a06a0f1c90ce79c7a60c09dfc884e4',
+ name: 'JET8 Token',
+ symbol: 'J8T',
+ decimals: 8,
+ },
+ {
+ address: '0x8727c112c712c4a03371ac87a74dd6ab104af768',
+ name: 'Jetcoin Institute Token',
+ symbol: 'JET',
+ decimals: 18,
+ },
+ {
+ address: '0xa4e8c3ec456107ea67d3075bf9e3df3a75823db0',
+ name: 'Loom Network Token',
+ symbol: 'LOOM',
+ decimals: 18,
+ },
+ {
+ address: '0x957c30ab0426e0c93cd8241e2c60392d08c6ac8e',
+ name: 'Modum Token',
+ symbol: 'MOD',
+ decimals: 0,
+ },
+ {
+ address: '0x2ef27bf41236bd859a95209e17a43fbd26851f92',
+ name: 'MORPH',
+ symbol: 'MORPH',
+ decimals: 4,
+ },
+ {
+ address: '0x263c618480dbe35c300d8d5ecda19bbb986acaed',
+ name: 'MOT',
+ symbol: 'MOT',
+ decimals: 18,
+ },
+ {
+ address: '0xffe02ee4c69edf1b340fcad64fbd6b37a7b9e265',
+ name: 'NANJCOIN',
+ symbol: 'NANJ',
+ decimals: 8,
+ },
+ {
+ address: '0xc15a399c4ea7815fe36857c9e290ee452a5d6b21',
+ name: 'BoatPilot Token',
+ symbol: 'NAVI',
+ decimals: 18,
+ },
+ {
+ address: '0x9e46a38f5daabe8683e10793b06749eef7d733d1',
+ name: 'PolySwarm Nectar',
+ symbol: 'NCT',
+ decimals: 18,
+ },
+ {
+ address: '0xa54ddc7b3cce7fc8b1e3fa0256d0db80d2c10970',
+ name: 'NEVERDIE Coin',
+ symbol: 'NDC',
+ decimals: 18,
+ },
+ {
+ address: '0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206',
+ name: 'Nexo',
+ symbol: 'NEXO',
+ decimals: 18,
+ },
+ {
+ address: '0x0235fe624e044a05eed7a43e16e3083bc8a4287a',
+ name: 'Original Crypto Coin',
+ symbol: 'OCC',
+ decimals: 18,
+ },
+ {
+ address: '0xb5dbc6d3cf380079df3b27135664b6bcf45d1869',
+ name: 'Omix',
+ symbol: 'OMX',
+ decimals: 8,
+ },
+ {
+ address: '0xfedae5642668f8636a11987ff386bfd215f942ee',
+ name: 'PolicyPal Network Token',
+ symbol: 'PAL',
+ decimals: 18,
+ },
+ {
+ address: '0x2604fa406be957e542beb89e6754fcde6815e83f',
+ name: 'Playkey Token',
+ symbol: 'PKT',
+ decimals: 18,
+ },
+ {
+ address: '0xe477292f1b3268687a29376116b0ed27a9c76170',
+ name: 'Herocoin',
+ symbol: 'PLAY',
+ decimals: 18,
+ },
+ {
+ address: '0x1985365e9f78359a9b6ad760e32412f4a445e862',
+ name: 'Augur',
+ symbol: 'REP',
+ decimals: 18,
+ },
+ {
+ address: '0x408e41876cccdc0f92210600ef50372656052a38',
+ name: 'Republic Protocol',
+ symbol: 'REN',
+ decimals: 18,
+ },
+ {
+ address: '0xd0929d411954c47438dc1d871dd6081f5c5e149c',
+ name: 'Refereum',
+ symbol: 'RFR',
+ decimals: 4,
+ },
+ {
+ address: '0x3d1ba9be9f66b8ee101911bc36d3fb562eac2244',
+ name: 'Rivetz',
+ symbol: 'RVT',
+ decimals: 18,
+ },
+ {
+ address: '0x6888a16ea9792c15a4dcf2f6c623d055c8ede792',
+ name: 'Spectiv Signal Token',
+ symbol: 'SIG',
+ decimals: 18,
+ },
+ {
+ address: '0x20f7a3ddf244dc9299975b4da1c39f8d5d75f05a',
+ name: 'Sapien Network Token',
+ symbol: 'SPN',
+ decimals: 6,
+ },
+ {
+ address: '0xbbff862d906e348e9946bfb2132ecb157da3d4b4',
+ name: 'Sharder',
+ symbol: 'SS',
+ decimals: 18,
+ },
+ {
+ address: '0x12b306fa98f4cbb8d4457fdff3a0a0a56f07ccdf',
+ name: 'Spectre.ai D-Token',
+ symbol: 'SXDT',
+ decimals: 18,
+ },
+ {
+ address: '0xff3519eeeea3e76f1f699ccce5e23ee0bdda41ac',
+ name: 'Blockchain Capital',
+ symbol: 'BCAP',
+ decimals: 0,
+ },
+ {
+ address: '0xced1a8529125d1bd06b54a7b01210df357d00885',
+ name: 'Too Real Badge',
+ symbol: 'TRL',
+ decimals: 0,
+ },
+ {
+ address: '0xc86d054809623432210c107af2e3f619dcfbf652',
+ name: 'SENTINEL PROTOCOL',
+ symbol: 'UPP',
+ decimals: 18,
+ },
+ {
+ address: '0x27f610bf36eca0939093343ac28b1534a721dbb4',
+ name: 'Wand Token',
+ symbol: 'WAND',
+ decimals: 18,
+ },
+ {
+ address: '0x056017c55ae7ae32d12aef7c679df83a85ca75ff',
+ name: 'WyvernToken',
+ symbol: 'WYV',
+ decimals: 18,
+ },
+ {
+ address: '0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d',
+ name: 'Aeternity',
+ symbol: 'AE',
+ decimals: 18,
+ },
+ {
+ address: '0xbc86727e770de68b1060c91f6bb6945c73e10388',
+ name: 'Ink Protocol',
+ symbol: 'XNK',
+ decimals: 18,
+ },
+ {
+ address: '0x0f513ffb4926ff82d7f60a05069047aca295c413',
+ name: 'CrowdstartCoin',
+ symbol: 'XSC',
+ decimals: 18,
+ },
+ {
+ address: '0xb9e7f8568e08d5659f5d29c4997173d84cdf2607',
+ name: 'Swarm City Token',
+ symbol: 'SWT',
+ decimals: 18,
+ },
+ {
+ address: '0x6531f133e6deebe7f2dce5a0441aa7ef330b4e53',
+ name: 'Chronobank TIME',
+ symbol: 'TIME',
+ decimals: 8,
+ },
+ {
+ address: '0xf230b790e05390fc8295f4d3f60332c93bed42e2',
+ name: 'Tronix',
+ symbol: 'TRX',
+ decimals: 6,
+ },
+ {
+ address: '0x5c543e7ae0a1104f78406c340e9c64fd9fce5170',
+ name: 'vSlice',
+ symbol: 'VSL',
+ decimals: 0,
+ },
+ {
+ address: '0x4df812f6064def1e5e029f1ca858777cc98d2d81',
+ name: 'Xaurum',
+ symbol: 'XAUR',
+ decimals: 8,
+ },
+ ],
+ '42': [
+ {
+ address: '0x6ff6c0ff1d68b964901f986d4c9fa3ac68346570',
+ name: '0x Protocol Token',
+ symbol: 'ZRX',
+ decimals: 18,
+ },
+ {
+ address: '0x323b5d4c32345ced77393b3530b1eed0f346429d',
+ name: 'Melon Token',
+ symbol: 'MLN',
+ decimals: 18,
+ },
+ {
+ address: '0x1dad4783cf3fe3085c1426157ab175a6119a04ba',
+ name: 'Maker DAO',
+ symbol: 'MKR',
+ decimals: 18,
+ },
+ {
+ address: '0xeee3870657e4716670f185df08652dd848fe8f7e',
+ name: 'Digix DAO Token',
+ symbol: 'DGD',
+ decimals: 18,
+ },
+ {
+ address: '0xb18845c260f680d5b9d84649638813e342e4f8c9',
+ name: 'Augur Reputation Token',
+ symbol: 'REP',
+ decimals: 18,
+ },
+ {
+ address: '0xef7fff64389b814a946f3e92105513705ca6b990',
+ name: 'Golem Network Token',
+ symbol: 'GNT',
+ decimals: 18,
+ },
+ {
+ address: '0xd0a1e359811322d97991e03f863a0c30c2cf029c',
+ name: 'Wrapped Ether',
+ symbol: 'WETH',
+ decimals: 18,
+ },
+ ],
+ '3': [
+ {
+ address: '0xdf18648f5b4357d6cc1e27f7699af4f77ff44558',
+ name: 'token0',
+ symbol: 'TKN0',
+ decimals: 0,
+ },
+ {
+ address: '0xd7cdcde4302a60c4d74a11eee21fbf455f476021',
+ name: 'token1',
+ symbol: 'TKN1',
+ decimals: 1,
+ },
+ {
+ address: '0xf080f68c2113d40ff6a8528863f431908680900a',
+ name: 'token2',
+ symbol: 'TKN2',
+ decimals: 2,
+ },
+ {
+ address: '0xe982b5c62434c98e27d15fed40447dda6b75c4eb',
+ name: 'token3',
+ symbol: 'TKN3',
+ decimals: 3,
+ },
+ {
+ address: '0x2427d136751c1ca70480d3b2091261d639090a50',
+ name: 'token4',
+ symbol: 'TKN4',
+ decimals: 4,
+ },
+ {
+ address: '0x7d3eca8ec55bb32bd0056edb9485b07a53d3fbfd',
+ name: 'token5',
+ symbol: 'TKN5',
+ decimals: 5,
+ },
+ {
+ address: '0xff3c22e0a9014e9b4b1cf7a54bf39ab3107f6123',
+ name: 'token6',
+ symbol: 'TKN6',
+ decimals: 6,
+ },
+ {
+ address: '0xdec283d9e188397c841ab59d9d9160fd47bc56f8',
+ name: 'token7',
+ symbol: 'TKN7',
+ decimals: 7,
+ },
+ {
+ address: '0xedf5fd2f60d8fefbfa8011f2769b39657c54c3fd',
+ name: 'token8',
+ symbol: 'TKN8',
+ decimals: 8,
+ },
+ {
+ address: '0xcd59fe7fa1a1a0ff536966a599b631d9cd5f2914',
+ name: 'token9',
+ symbol: 'TKN9',
+ decimals: 9,
+ },
+ {
+ address: '0xaece1ee1813d56a5897f19ad50164565203b459f',
+ name: 'token10',
+ symbol: 'TKN10',
+ decimals: 10,
+ },
+ {
+ address: '0xaab3f0619e529b1f1823be291daa7fcd38a15927',
+ name: 'token11',
+ symbol: 'TKN11',
+ decimals: 11,
+ },
+ {
+ address: '0x2c46ad0b19cb1c1f3e51ae90d80654a227b08d30',
+ name: 'token12',
+ symbol: 'TKN12',
+ decimals: 12,
+ },
+ {
+ address: '0x68977f3286a503f2b3930506f1b3a17dafbd9524',
+ name: 'token13',
+ symbol: 'TKN13',
+ decimals: 13,
+ },
+ {
+ address: '0xe5c400b9ee56b823c6193a662041389624609db6',
+ name: 'token14',
+ symbol: 'TKN14',
+ decimals: 14,
+ },
+ {
+ address: '0xf16ea9b23ddbeb6b16d253edf6b595da4009bb8b',
+ name: 'token16',
+ symbol: 'TKN16',
+ decimals: 16,
+ },
+ {
+ address: '0x739a83860971e900c4bbbb92be6cfb9d459ef94a',
+ name: 'token15',
+ symbol: 'TKN15',
+ decimals: 15,
+ },
+ {
+ address: '0x5eba21470cf683fe91b594afe7106039e38f3312',
+ name: 'token17',
+ symbol: 'TKN17',
+ decimals: 17,
+ },
+ {
+ address: '0xc0ddd5df448907bb3f50350f3fe7a1da3fb2a2ee',
+ name: 'token18',
+ symbol: 'TKN18',
+ decimals: 18,
+ },
+ {
+ address: '0x30fa25e53f8031014166fbd5e4bbeac0cd25df74',
+ name: 'token19',
+ symbol: 'TKN19',
+ decimals: 19,
+ },
+ {
+ address: '0xa8e9fa8f91e5ae138c74648c9c304f1c75003a8d',
+ name: '0x Protocol Token',
+ symbol: 'ZRX',
+ decimals: 18,
+ },
+ {
+ address: '0xc778417e063141139fce010982780140aa0cd5ab',
+ name: 'Ether Token',
+ symbol: 'WETH',
+ decimals: 18,
+ },
+ {
+ address: '0x14823db576c11e4a54ca9e01ca0b28b18d3d1187',
+ name: 'b0x Protocol Token',
+ symbol: 'B0X',
+ decimals: 18,
+ },
+ ],
+}; // tslint:disable:max-file-line-count
diff --git a/packages/website/ts/utils/fetch_utils.ts b/packages/website/ts/utils/fetch_utils.ts
index e9a88b6b3..9afc5904d 100644
--- a/packages/website/ts/utils/fetch_utils.ts
+++ b/packages/website/ts/utils/fetch_utils.ts
@@ -1,4 +1,4 @@
-import { fetchAsync, logUtils } from '@0xproject/utils';
+import { fetchAsync, logUtils } from '@0x/utils';
import * as _ from 'lodash';
import * as queryString from 'query-string';
diff --git a/packages/website/ts/utils/mui_theme.ts b/packages/website/ts/utils/mui_theme.ts
index f677b4625..3f32254de 100644
--- a/packages/website/ts/utils/mui_theme.ts
+++ b/packages/website/ts/utils/mui_theme.ts
@@ -1,4 +1,4 @@
-import { colors } from '@0xproject/react-shared';
+import { colors } from '@0x/react-shared';
import { getMuiTheme } from 'material-ui/styles';
export const muiTheme = getMuiTheme({
diff --git a/packages/website/ts/utils/order_parser.ts b/packages/website/ts/utils/order_parser.ts
index be08da80e..8938fbc53 100644
--- a/packages/website/ts/utils/order_parser.ts
+++ b/packages/website/ts/utils/order_parser.ts
@@ -1,12 +1,13 @@
-import { logUtils } from '@0xproject/utils';
+import { orderParsingUtils } from '@0x/order-utils';
+import { logUtils } from '@0x/utils';
import * as _ from 'lodash';
import { portalOrderSchema } from 'ts/schemas/portal_order_schema';
import { validator } from 'ts/schemas/validator';
-import { Order } from 'ts/types';
+import { PortalOrder } from 'ts/types';
export const orderParser = {
- parse(queryString: string): Order | undefined {
+ parseQueryString(queryString: string): PortalOrder | undefined {
if (queryString.length === 0) {
return undefined;
}
@@ -28,6 +29,22 @@ export const orderParser = {
logUtils.log(`Invalid shared order: ${validationResult.errors}`);
return undefined;
}
- return order;
+ const signedOrder = _.get(order, 'signedOrder');
+ const convertedSignedOrder = orderParsingUtils.convertOrderStringFieldsToBigNumber(signedOrder);
+ const result = {
+ ...order,
+ signedOrder: convertedSignedOrder,
+ };
+ return result;
+ },
+ parseJsonString(orderJson: string): PortalOrder {
+ const order = JSON.parse(orderJson);
+ const signedOrder = _.get(order, 'signedOrder');
+ const convertedSignedOrder = orderParsingUtils.convertOrderStringFieldsToBigNumber(signedOrder);
+ const result = {
+ ...order,
+ signedOrder: convertedSignedOrder,
+ };
+ return result;
},
};
diff --git a/packages/website/ts/utils/token_address_overrides.ts b/packages/website/ts/utils/token_address_overrides.ts
new file mode 100644
index 000000000..5e7275964
--- /dev/null
+++ b/packages/website/ts/utils/token_address_overrides.ts
@@ -0,0 +1,24 @@
+import { ObjectMap } from '@0x/types';
+import { constants } from 'ts/utils/constants';
+
+// Map of networkId -> tokenSymbol -> tokenAddress
+export type TokenOverrides = ObjectMap<ObjectMap<string>>;
+
+export const tokenAddressOverrides: TokenOverrides = {
+ [constants.NETWORK_ID_KOVAN]: {
+ ZRX: '0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa',
+ REP: '0x8cb3971b8eb709c14616bd556ff6683019e90d9c',
+ DGD: '0xa4f468c9c692eb6b4b8b06270dae7a2cfeedcde9',
+ GNT: '0x31fb614e223706f15d0d3c5f4b08bdf0d5c78623',
+ MKR: '0x7b6b10caa9e8e9552ba72638ea5b47c25afea1f3',
+ MLN: '0x17e394d1df6ce29d042195ea38411a98ff3ead94',
+ },
+ [constants.NETWORK_ID_ROPSTEN]: {
+ ZRX: '0xff67881f8d12f372d91baae9752eb3631ff0ed00',
+ REP: '0xb0b443fe0e8a04c4c85e8fda9c5c1ccc057d6653',
+ DGD: '0xc4895a5aafa2708d6bc1294e20ec839aad156b1d',
+ GNT: '0x7f8acc55a359ca4517c30510566ac35b800f7cac',
+ MKR: '0x06732516acd125b6e83c127752ed5f027e1b276e',
+ MLN: '0x823ebe83d39115536274a8617e00a1ff3544fd63',
+ },
+};
diff --git a/packages/website/ts/utils/translate.ts b/packages/website/ts/utils/translate.ts
index 1ee1a59c5..5595e6e0f 100644
--- a/packages/website/ts/utils/translate.ts
+++ b/packages/website/ts/utils/translate.ts
@@ -80,7 +80,12 @@ export class Translate {
case Deco.CapWords:
const words = text.split(' ');
- const capitalizedWords = _.map(words, w => this._capitalize(w));
+ const capitalizedWords = _.map(words, (w: string, i: number) => {
+ if (w.length === 1) {
+ return w;
+ }
+ return this._capitalize(w);
+ });
text = capitalizedWords.join(' ');
break;
diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts
index 39bbd404c..87aa48018 100644
--- a/packages/website/ts/utils/utils.ts
+++ b/packages/website/ts/utils/utils.ts
@@ -1,22 +1,23 @@
-import { ContractWrappersError, ExchangeContractErrs } from '@0xproject/contract-wrappers';
-import { OrderError } from '@0xproject/order-utils';
-import { constants as sharedConstants, Networks } from '@0xproject/react-shared';
-import { ECSignature, Provider } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
-import { Web3Wrapper } from '@0xproject/web3-wrapper';
+import { ContractWrappersError } from '@0x/contract-wrappers';
+import { assetDataUtils, OrderError } from '@0x/order-utils';
+import { constants as sharedConstants, Networks } from '@0x/react-shared';
+import { ExchangeContractErrs } from '@0x/types';
+import { BigNumber } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
import * as bowser from 'bowser';
import deepEqual = require('deep-equal');
import * as _ from 'lodash';
import * as moment from 'moment';
import * as numeral from 'numeral';
+import { Provider } from 'ethereum-types';
import {
AccountState,
BlockchainCallErrs,
BrowserType,
Environments,
OperatingSystemType,
- Order,
+ PortalOrder,
Providers,
ProviderType,
ScreenWidths,
@@ -64,35 +65,36 @@ export const utils = {
return formattedDate;
},
generateOrder(
- exchangeContractAddress: string,
+ exchangeAddress: string,
sideToAssetToken: SideToAssetToken,
- expirationUnixTimestampSec: BigNumber,
+ expirationTimeSeconds: BigNumber,
orderTakerAddress: string,
orderMakerAddress: string,
makerFee: BigNumber,
takerFee: BigNumber,
- feeRecipient: string,
- ecSignature: ECSignature,
+ feeRecipientAddress: string,
+ signature: string,
tokenByAddress: TokenByAddress,
orderSalt: BigNumber,
- ): Order {
+ ): PortalOrder {
const makerToken = tokenByAddress[sideToAssetToken[Side.Deposit].address];
const takerToken = tokenByAddress[sideToAssetToken[Side.Receive].address];
const order = {
signedOrder: {
- maker: orderMakerAddress,
- taker: orderTakerAddress,
- makerFee: makerFee.toString(),
- takerFee: takerFee.toString(),
- makerTokenAmount: sideToAssetToken[Side.Deposit].amount.toString(),
- takerTokenAmount: sideToAssetToken[Side.Receive].amount.toString(),
- makerTokenAddress: makerToken.address,
- takerTokenAddress: takerToken.address,
- expirationUnixTimestampSec: expirationUnixTimestampSec.toString(),
- feeRecipient,
- salt: orderSalt.toString(),
- ecSignature,
- exchangeContractAddress,
+ senderAddress: constants.NULL_ADDRESS,
+ makerAddress: orderMakerAddress,
+ takerAddress: orderTakerAddress,
+ makerFee,
+ takerFee,
+ makerAssetAmount: sideToAssetToken[Side.Deposit].amount,
+ takerAssetAmount: sideToAssetToken[Side.Receive].amount,
+ makerAssetData: assetDataUtils.encodeERC20AssetData(makerToken.address),
+ takerAssetData: assetDataUtils.encodeERC20AssetData(takerToken.address),
+ expirationTimeSeconds,
+ feeRecipientAddress,
+ salt: orderSalt,
+ signature,
+ exchangeAddress,
},
metadata: {
makerToken: {
@@ -229,13 +231,6 @@ export const utils = {
},
zeroExErrToHumanReadableErrMsg(error: ContractWrappersError | ExchangeContractErrs, takerAddress: string): string {
const ContractWrappersErrorToHumanReadableError: { [error: string]: string } = {
- [ContractWrappersError.ExchangeContractDoesNotExist]: 'Exchange contract does not exist',
- [ContractWrappersError.EtherTokenContractDoesNotExist]: 'EtherToken contract does not exist',
- [ContractWrappersError.TokenTransferProxyContractDoesNotExist]:
- 'TokenTransferProxy contract does not exist',
- [ContractWrappersError.TokenRegistryContractDoesNotExist]: 'TokenRegistry contract does not exist',
- [ContractWrappersError.TokenContractDoesNotExist]: 'Token contract does not exist',
- [ContractWrappersError.ZRXContractDoesNotExist]: 'ZRX contract does not exist',
[BlockchainCallErrs.UserHasNoAssociatedAddresses]: 'User has no addresses available',
[OrderError.InvalidSignature]: 'Order signature is not valid',
[ContractWrappersError.ContractNotDeployedOnNetwork]: 'Contract is not deployed on the detected network',
@@ -247,12 +242,9 @@ export const utils = {
} = {
[ExchangeContractErrs.OrderFillExpired]: 'This order has expired',
[ExchangeContractErrs.OrderCancelExpired]: 'This order has expired',
- [ExchangeContractErrs.OrderCancelAmountZero]: "Order cancel amount can't be 0",
- [ExchangeContractErrs.OrderAlreadyCancelledOrFilled]:
- 'This order has already been completely filled or cancelled',
+ [ExchangeContractErrs.OrderCancelled]: 'This order has been cancelled',
[ExchangeContractErrs.OrderFillAmountZero]: "Order fill amount can't be 0",
- [ExchangeContractErrs.OrderRemainingFillAmountZero]:
- 'This order has already been completely filled or cancelled',
+ [ExchangeContractErrs.OrderRemainingFillAmountZero]: 'This order has already been completely filled',
[ExchangeContractErrs.OrderFillRoundingError]:
'Rounding error will occur when filling this order. Please try filling a different amount.',
[ExchangeContractErrs.InsufficientTakerBalance]:
@@ -324,7 +316,7 @@ export const utils = {
} else if ((provider as any).isMetaMask) {
parsedProviderName = Providers.Metamask;
} else if (!_.isUndefined(_.get(window, 'SOFA'))) {
- parsedProviderName = Providers.Toshi;
+ parsedProviderName = Providers.CoinbaseWallet;
} else if (!_.isUndefined(_.get(window, '__CIPHER__'))) {
parsedProviderName = Providers.Cipher;
}
@@ -421,6 +413,10 @@ export const utils = {
return BrowserType.Firefox;
} else if (bowser.opera) {
return BrowserType.Opera;
+ } else if (bowser.msedge) {
+ return BrowserType.Edge;
+ } else if (bowser.safari) {
+ return BrowserType.Safari;
} else {
return BrowserType.Other;
}
@@ -454,14 +450,14 @@ export const utils = {
if (isOnMobile) {
switch (operatingSystem) {
case OperatingSystemType.Android:
- downloadLink = constants.URL_TOSHI_ANDROID_APP_STORE;
+ downloadLink = constants.URL_COINBASE_WALLET_ANDROID_APP_STORE;
break;
case OperatingSystemType.iOS:
- downloadLink = constants.URL_TOSHI_IOS_APP_STORE;
+ downloadLink = constants.URL_COINBASE_WALLET_IOS_APP_STORE;
break;
default:
- // Toshi is only supported on these mobile OSes - just default to iOS
- downloadLink = constants.URL_TOSHI_IOS_APP_STORE;
+ // Coinbase wallet is only supported on these mobile OSes - just default to iOS
+ downloadLink = constants.URL_COINBASE_WALLET_IOS_APP_STORE;
}
} else {
switch (browserType) {