aboutsummaryrefslogtreecommitdiffstats
path: root/packages/forwarder-helper/src/forwarder_helper_factory.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/forwarder-helper/src/forwarder_helper_factory.ts')
-rw-r--r--packages/forwarder-helper/src/forwarder_helper_factory.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/forwarder-helper/src/forwarder_helper_factory.ts b/packages/forwarder-helper/src/forwarder_helper_factory.ts
new file mode 100644
index 000000000..95f11f555
--- /dev/null
+++ b/packages/forwarder-helper/src/forwarder_helper_factory.ts
@@ -0,0 +1,25 @@
+import { assert } from '@0xproject/assert';
+import { schemas } from '@0xproject/json-schemas';
+import { SignedOrder } from '@0xproject/types';
+
+import { ForwarderHelperImpl, ForwarderHelperImplConfig } from './forwarder_helper_impl';
+import { ForwarderHelper } from './types';
+
+export const forwarderHelperFactory = {
+ /**
+ * Given an array of orders and an array of feeOrders
+ * @param orders An array of objects conforming to SignedOrder. Each order should specify the same makerAssetData and takerAssetData
+ * @param feeOrders An array of objects conforming to SignedOrder. Each order should specify ZRX as makerAssetData WETH as takerAssetData
+ * @return A ForwarderHelper, see type for definition
+ */
+ getForwarderHelperForOrders(orders: SignedOrder[], feeOrders: SignedOrder[] = []): ForwarderHelper {
+ assert.doesConformToSchema('orders', orders, schemas.signedOrdersSchema);
+ assert.doesConformToSchema('feeOrders', orders, schemas.signedOrdersSchema);
+ const config: ForwarderHelperImplConfig = {
+ orders,
+ feeOrders,
+ };
+ const helper = new ForwarderHelperImpl(config);
+ return helper;
+ },
+};