aboutsummaryrefslogtreecommitdiffstats
path: root/packages/utils
diff options
context:
space:
mode:
Diffstat (limited to 'packages/utils')
-rw-r--r--packages/utils/CHANGELOG.json16
-rw-r--r--packages/utils/CHANGELOG.md6
-rw-r--r--packages/utils/package.json16
-rw-r--r--packages/utils/src/abi_decoder.ts2
-rw-r--r--packages/utils/src/fetchAsync.ts37
-rw-r--r--packages/utils/src/index.ts1
6 files changed, 59 insertions, 19 deletions
diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json
index c6736dc4d..0ac49952b 100644
--- a/packages/utils/CHANGELOG.json
+++ b/packages/utils/CHANGELOG.json
@@ -1,14 +1,5 @@
[
{
- "version": "0.7.3",
- "changes": [
- {
- "note": "Fixes uncaught Error in abi_decoder",
- "pr": 763
- }
- ]
- },
- {
"version": "0.7.2",
"changes": [
{
@@ -17,8 +8,13 @@
{
"note": "Add logUtils.warn",
"pr": 589
+ },
+ {
+ "note": "Fixes uncaught Error in abi_decoder",
+ "pr": 763
}
- ]
+ ],
+ "timestamp": 1531149657
},
{
"timestamp": 1529397769,
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index 60a575297..e2464232c 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -5,6 +5,12 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v0.7.2 - _July 9, 2018_
+
+ * Added errorUtils.spawnSwitchErr
+ * Add logUtils.warn (#589)
+ * Fixes uncaught Error in abi_decoder (#763)
+
## v0.7.1 - _June 19, 2018_
* Dependencies updated
diff --git a/packages/utils/package.json b/packages/utils/package.json
index f4f39956c..a454b35ee 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0xproject/utils",
- "version": "0.7.3",
+ "version": "0.7.2",
"engines": {
"node": ">=6.12"
},
@@ -24,8 +24,8 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/utils/README.md",
"devDependencies": {
- "@0xproject/monorepo-scripts": "^0.2.1",
- "@0xproject/tslint-config": "^0.4.20",
+ "@0xproject/monorepo-scripts": "^0.2.2",
+ "@0xproject/tslint-config": "^0.4.21",
"@types/lodash": "4.14.104",
"copyfiles": "^1.2.0",
"make-promises-safe": "^1.1.0",
@@ -35,15 +35,17 @@
"typescript": "2.7.1"
},
"dependencies": {
- "ethereum-types": "^0.0.1",
+ "@0xproject/types": "^1.0.0",
"@0xproject/typescript-typings": "^0.4.2",
"@types/node": "^8.0.53",
- "ethereumjs-util": "^5.1.1",
"bignumber.js": "~4.1.0",
+ "detect-node": "2.0.3",
+ "ethereum-types": "^0.0.2",
+ "ethereumjs-util": "^5.1.1",
"ethers": "3.0.22",
+ "isomorphic-fetch": "^2.2.1",
"js-sha3": "^0.7.0",
- "lodash": "^4.17.4",
- "web3": "^0.20.0"
+ "lodash": "^4.17.4"
},
"publishConfig": {
"access": "public"
diff --git a/packages/utils/src/abi_decoder.ts b/packages/utils/src/abi_decoder.ts
index d0c1ddc7d..b75387e3e 100644
--- a/packages/utils/src/abi_decoder.ts
+++ b/packages/utils/src/abi_decoder.ts
@@ -16,7 +16,6 @@ import { addressUtils } from './address_utils';
import { BigNumber } from './configured_bignumber';
export class AbiDecoder {
- private _savedABIs: AbiDefinition[] = [];
private _methodIds: { [signatureHash: string]: EventAbi } = {};
constructor(abiArrays: AbiDefinition[][]) {
_.forEach(abiArrays, this.addABI.bind(this));
@@ -87,6 +86,5 @@ export class AbiDecoder {
this._methodIds[topic] = abi;
}
});
- this._savedABIs = this._savedABIs.concat(abiArray);
}
}
diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
new file mode 100644
index 000000000..c02e5baba
--- /dev/null
+++ b/packages/utils/src/fetchAsync.ts
@@ -0,0 +1,37 @@
+import isNode = require('detect-node');
+import 'isomorphic-fetch';
+
+export const fetchAsync = async (
+ endpoint: string,
+ options: RequestInit = {},
+ timeoutMs: number = 20000,
+): Promise<Response> => {
+ if (options.signal || (options as any).timeout) {
+ throw new Error(
+ 'Cannot call fetchAsync with options.signal or options.timeout. To set a timeout, please use the supplied "timeoutMs" parameter.',
+ );
+ }
+ let optionsWithAbortParam;
+ if (!isNode) {
+ const controller = new AbortController();
+ const signal = controller.signal;
+ setTimeout(() => {
+ controller.abort();
+ }, timeoutMs);
+ optionsWithAbortParam = {
+ signal,
+ ...options,
+ };
+ } else {
+ // HACK: the `timeout` param only exists in `node-fetch`, and not on the `isomorphic-fetch`
+ // `RequestInit` type. Since `isomorphic-fetch` conditionally wraps `node-fetch` when the
+ // execution environment is `Node.js`, we need to cast it to `any` in that scenario.
+ optionsWithAbortParam = {
+ timeout: timeoutMs,
+ ...options,
+ } as any;
+ }
+
+ const response = await fetch(endpoint, optionsWithAbortParam);
+ return response;
+};
diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts
index fd102cecb..b8e0b1775 100644
--- a/packages/utils/src/index.ts
+++ b/packages/utils/src/index.ts
@@ -8,3 +8,4 @@ export { logUtils } from './log_utils';
export { abiUtils } from './abi_utils';
export { NULL_BYTES } from './constants';
export { errorUtils } from './error_utils';
+export { fetchAsync } from './fetchAsync';