aboutsummaryrefslogtreecommitdiffstats
path: root/packages/asset-buyer/src/utils/asset_data_utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/asset-buyer/src/utils/asset_data_utils.ts')
-rw-r--r--packages/asset-buyer/src/utils/asset_data_utils.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/asset-buyer/src/utils/asset_data_utils.ts b/packages/asset-buyer/src/utils/asset_data_utils.ts
new file mode 100644
index 000000000..d05ff2504
--- /dev/null
+++ b/packages/asset-buyer/src/utils/asset_data_utils.ts
@@ -0,0 +1,26 @@
+import { ContractWrappers } from '@0xproject/contract-wrappers';
+import { assetDataUtils as sharedAssetDataUtils } from '@0xproject/order-utils';
+import * as _ from 'lodash';
+
+import { AssetBuyerError } from '../types';
+
+export const assetDataUtils = {
+ ...sharedAssetDataUtils,
+ getEtherTokenAssetDataOrThrow(contractWrappers: ContractWrappers): string {
+ const etherTokenAddressIfExists = contractWrappers.etherToken.getContractAddressIfExists();
+ if (_.isUndefined(etherTokenAddressIfExists)) {
+ throw new Error(AssetBuyerError.NoEtherTokenContractFound);
+ }
+ const etherTokenAssetData = sharedAssetDataUtils.encodeERC20AssetData(etherTokenAddressIfExists);
+ return etherTokenAssetData;
+ },
+ getZrxTokenAssetDataOrThrow(contractWrappers: ContractWrappers): string {
+ let zrxTokenAssetData: string;
+ try {
+ zrxTokenAssetData = contractWrappers.exchange.getZRXAssetData();
+ } catch (err) {
+ throw new Error(AssetBuyerError.NoZrxTokenContractFound);
+ }
+ return zrxTokenAssetData;
+ },
+};