diff options
author | Francesco Agosti <francesco.agosti93@gmail.com> | 2018-09-24 23:47:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-24 23:47:59 +0800 |
commit | b830c28d83a33c0170d4f150ee287ea97ccf7865 (patch) | |
tree | 34aa214865e941723a66b34fd45c59036015ae53 /packages/asset-buyer/src/order_providers/basic_order_provider.ts | |
parent | 4a316571ff9b539a540f0503b5753eb03509fea8 (diff) | |
parent | d8d1c98a40f5cc895329f73af4d8d000c6a5195b (diff) | |
download | dexon-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.ts | 32 |
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 }; + } +} |