From 119231451013b37059327a676963a0931d7ed093 Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Thu, 10 Jan 2019 16:13:16 -0800 Subject: Add helper functions and expose to umd object --- packages/instant/src/index.umd.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'packages/instant/src/index.umd.ts') diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index d172f4145..5a1eb1608 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -1,3 +1,4 @@ +import { assetDataUtils } from '@0x/order-utils'; import * as _ from 'lodash'; import * as React from 'react'; import * as ReactDOM from 'react-dom'; @@ -9,6 +10,7 @@ import { INJECTED_DIV_ID, NPM_PACKAGE_VERSION, } from './constants'; +import { assetMetaDataMap } from './data/asset_meta_data_map'; import { ZeroExInstantOverlay, ZeroExInstantOverlayProps } from './index'; import { analytics } from './util/analytics'; import { assert } from './util/assert'; @@ -122,6 +124,16 @@ export const render = (config: ZeroExInstantConfig, selector: string = DEFAULT_Z window.onpopstate = onPopStateHandler; }; +export const assetDataForERC20TokenAddress = (tokenAddress: string): string => { + assert.isETHAddressHex('tokenAddress', tokenAddress); + return assetDataUtils.encodeERC20AssetData(tokenAddress); +}; + +export const hasMetaDataForAssetData = (assetData: string): boolean => { + assert.isHexString('assetData', assetData); + return assetMetaDataMap[assetData] !== undefined; +}; + // Write version info to the exported object for debugging export const GIT_SHA = GIT_SHA_FROM_CONSTANT; export const NPM_VERSION = NPM_PACKAGE_VERSION; -- cgit v1.2.3 From 742e5e039dd4e821209b5511fb6a194d11c6291c Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Fri, 11 Jan 2019 08:14:57 -0800 Subject: getLiquidityForAssetDataAsync helper method, and fix to assetBuyer to check for eth token in asset pairs --- packages/instant/src/index.umd.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'packages/instant/src/index.umd.ts') diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index 5a1eb1608..5c0ab8eae 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -1,4 +1,6 @@ +import { AssetBuyer } from '@0x/asset-buyer'; import { assetDataUtils } from '@0x/order-utils'; +import { Provider } from 'ethereum-types'; import * as _ from 'lodash'; import * as React from 'react'; import * as ReactDOM from 'react-dom'; @@ -12,8 +14,10 @@ import { } from './constants'; import { assetMetaDataMap } from './data/asset_meta_data_map'; import { ZeroExInstantOverlay, ZeroExInstantOverlayProps } from './index'; +import { Network, OrderSource } from './types'; import { analytics } from './util/analytics'; import { assert } from './util/assert'; +import { providerFactory } from './util/provider_factory'; import { util } from './util/util'; const isInstantRendered = (): boolean => !!document.getElementById(INJECTED_DIV_ID); @@ -134,6 +138,32 @@ export const hasMetaDataForAssetData = (assetData: string): boolean => { return assetMetaDataMap[assetData] !== undefined; }; +export const getLiquidityForAssetDataAsync = async ( + assetData: string, + orderSource: OrderSource, + networkId: Network = Network.Mainnet, + provider?: Provider, +) => { + assert.isHexString('assetData', assetData); + assert.isValidOrderSource('orderSource', orderSource); + assert.isNumber('networkId', networkId); + + if (provider !== undefined) { + assert.isWeb3Provider('provider', provider); + } + + const bestProvider: Provider = provider || providerFactory.getFallbackNoSigningProvider(networkId); + + const assetBuyerOptions = { networkId }; + + const assetBuyer = + typeof orderSource === 'string' + ? AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(bestProvider, orderSource, assetBuyerOptions) + : AssetBuyer.getAssetBuyerForProvidedOrders(bestProvider, orderSource, assetBuyerOptions); + + return assetBuyer.getLiquidityForAssetDataAsync(assetData); +}; + // Write version info to the exported object for debugging export const GIT_SHA = GIT_SHA_FROM_CONSTANT; export const NPM_VERSION = NPM_PACKAGE_VERSION; -- cgit v1.2.3 From ff8250cd3567a276490342a820bf9428257a0c7c Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Wed, 16 Jan 2019 15:45:01 -0800 Subject: change helper method to return a boolean --- packages/instant/src/index.umd.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'packages/instant/src/index.umd.ts') diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index 5c0ab8eae..5ef2e1695 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -1,4 +1,4 @@ -import { AssetBuyer } from '@0x/asset-buyer'; +import { AssetBuyer, BigNumber } from '@0x/asset-buyer'; import { assetDataUtils } from '@0x/order-utils'; import { Provider } from 'ethereum-types'; import * as _ from 'lodash'; @@ -138,12 +138,12 @@ export const hasMetaDataForAssetData = (assetData: string): boolean => { return assetMetaDataMap[assetData] !== undefined; }; -export const getLiquidityForAssetDataAsync = async ( +export const hasLiquidityForAssetDataAsync = async ( assetData: string, orderSource: OrderSource, networkId: Network = Network.Mainnet, provider?: Provider, -) => { +): Promise => { assert.isHexString('assetData', assetData); assert.isValidOrderSource('orderSource', orderSource); assert.isNumber('networkId', networkId); @@ -161,7 +161,8 @@ export const getLiquidityForAssetDataAsync = async ( ? AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(bestProvider, orderSource, assetBuyerOptions) : AssetBuyer.getAssetBuyerForProvidedOrders(bestProvider, orderSource, assetBuyerOptions); - return assetBuyer.getLiquidityForAssetDataAsync(assetData); + const liquidity = await assetBuyer.getLiquidityForAssetDataAsync(assetData); + return liquidity.ethValueAvailableInWei.gt(new BigNumber(0)); }; // Write version info to the exported object for debugging -- cgit v1.2.3 From 92f5ad4f1518b2aaa3f1754b44a3059ac1610e0c Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Wed, 16 Jan 2019 17:12:08 -0800 Subject: Use more specific helper method decodeAssetDataOrThrow --- packages/instant/src/index.umd.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'packages/instant/src/index.umd.ts') diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index 5ef2e1695..0acf3f2ad 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -156,10 +156,9 @@ export const hasLiquidityForAssetDataAsync = async ( const assetBuyerOptions = { networkId }; - const assetBuyer = - typeof orderSource === 'string' - ? AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(bestProvider, orderSource, assetBuyerOptions) - : AssetBuyer.getAssetBuyerForProvidedOrders(bestProvider, orderSource, assetBuyerOptions); + const assetBuyer = _.isString(orderSource) + ? AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(bestProvider, orderSource, assetBuyerOptions) + : AssetBuyer.getAssetBuyerForProvidedOrders(bestProvider, orderSource, assetBuyerOptions); const liquidity = await assetBuyer.getLiquidityForAssetDataAsync(assetData); return liquidity.ethValueAvailableInWei.gt(new BigNumber(0)); -- cgit v1.2.3