aboutsummaryrefslogtreecommitdiffstats
path: root/packages/asset-buyer/src/order_providers/basic_order_provider.ts
diff options
context:
space:
mode:
authorFrancesco Agosti <francesco.agosti93@gmail.com>2018-09-24 23:47:59 +0800
committerGitHub <noreply@github.com>2018-09-24 23:47:59 +0800
commitb830c28d83a33c0170d4f150ee287ea97ccf7865 (patch)
tree34aa214865e941723a66b34fd45c59036015ae53 /packages/asset-buyer/src/order_providers/basic_order_provider.ts
parent4a316571ff9b539a540f0503b5753eb03509fea8 (diff)
parentd8d1c98a40f5cc895329f73af4d8d000c6a5195b (diff)
downloaddexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar.gz
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar.bz2
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar.lz
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar.xz
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.tar.zst
dexon-sol-tools-b830c28d83a33c0170d4f150ee287ea97ccf7865.zip
Merge pull request #1037 from 0xProject/feature/forwarder-helper/sra-and-rpc
[asset-buyer] Create new AssetBuyer class
Diffstat (limited to 'packages/asset-buyer/src/order_providers/basic_order_provider.ts')
-rw-r--r--packages/asset-buyer/src/order_providers/basic_order_provider.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/asset-buyer/src/order_providers/basic_order_provider.ts b/packages/asset-buyer/src/order_providers/basic_order_provider.ts
new file mode 100644
index 000000000..9bb2d90ac
--- /dev/null
+++ b/packages/asset-buyer/src/order_providers/basic_order_provider.ts
@@ -0,0 +1,32 @@
+import { schemas } from '@0xproject/json-schemas';
+import { SignedOrder } from '@0xproject/types';
+import * as _ from 'lodash';
+
+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';
+import { assert } from '../utils/assert';
+
+export class BasicOrderProvider implements OrderProvider {
+ public readonly orders: SignedOrder[];
+ /**
+ * Instantiates a new BasicOrderProvider instance
+ * @param orders An array of objects that conform to SignedOrder to fetch from.
+ * @return An instance of BasicOrderProvider
+ */
+ constructor(orders: SignedOrder[]) {
+ assert.doesConformToSchema('orders', orders, schemas.signedOrdersSchema);
+ this.orders = orders;
+ }
+ /**
+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.
+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.
+ * @return An instance of OrderProviderResponse. See type for more information.
+ */
+ public async getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise<OrderProviderResponse> {
+ assert.isValidOrderProviderRequest('orderProviderRequest', orderProviderRequest);
+ const { makerAssetData, takerAssetData } = orderProviderRequest;
+ const orders = _.filter(this.orders, order => {
+ return order.makerAssetData === makerAssetData && order.takerAssetData === takerAssetData;
+ });
+ return { orders };
+ }
+}