Skip to content

Commit 0d64f71

Browse files
committed
more config
1 parent 925da61 commit 0d64f71

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
lines changed

src/sdk/v4/NftSwapV4.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ import addresses from './addresses.json';
5656
import {
5757
ORDERBOOK_API_ROOT_URL_PRODUCTION,
5858
postOrderToOrderbook,
59+
searchOrderbook,
60+
SearchOrdersParams,
5961
} from './orderbook';
6062

6163
export enum SupportedChainIdsV4 {
@@ -580,7 +582,7 @@ class NftSwapV4 implements INftSwapV4 {
580582
};
581583

582584
postOrder = (
583-
signedOrder: SignedNftOrderV4 | SignedNftOrderV4Serialized,
585+
signedOrder: SignedNftOrderV4,
584586
chainId: string,
585587
metadata?: Record<string, string>
586588
) => {
@@ -589,7 +591,12 @@ class NftSwapV4 implements INftSwapV4 {
589591
});
590592
};
591593

592-
getOrdersByWallet = () => {};
594+
getOrders = async (filters?: Partial<SearchOrdersParams>) => {
595+
const orders = await searchOrderbook(filters, {
596+
rootUrl: this.orderbookRootUrl,
597+
});
598+
return orders;
599+
};
593600
}
594601

595602
export { NftSwapV4 };

src/sdk/v4/orderbook.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import { serializeNftOrder } from './pure';
55

66
export const ORDERBOOK_API_ROOT_URL_PRODUCTION = 'https://api.trader.xyz';
77

8-
interface OrderbookRequestOptions {
8+
export interface OrderbookRequestOptions {
99
rootUrl: string;
1010
}
1111

12-
interface PostOrderRequestPayload {
12+
export interface PostOrderRequestPayload {
1313
order: SignedNftOrderV4Serialized;
1414
chainId: string;
1515
metadata?: Record<string, string>;
@@ -28,9 +28,9 @@ export interface OrderDataPayload {
2828
metadata: Record<string, string> | null;
2929
}
3030

31-
type PostOrderResponsePayload = OrderDataPayload;
31+
export type PostOrderResponsePayload = OrderDataPayload;
3232

33-
interface SearchOrdersResponsePayload {
33+
export interface SearchOrdersResponsePayload {
3434
orders: Array<OrderDataPayload>;
3535
}
3636

@@ -76,16 +76,23 @@ const postOrderToOrderbook = async (
7676
return orderPostResult;
7777
};
7878

79-
interface SearchParams {
79+
export interface SearchOrdersParams {
80+
erc20Token: string;
81+
nftTokenId: string;
82+
nftToken: string;
83+
nftType: string;
84+
chainId: string;
85+
maker: string;
86+
taker: string;
8087
nonce: string;
8188
}
8289

8390
const searchOrderbook = async (
84-
filters: Partial<SearchParams>,
91+
filters?: Partial<SearchOrdersParams>,
8592
requestOptions?: Partial<OrderbookRequestOptions>,
8693
fetchFn: typeof unfetch = unfetch
8794
): Promise<SearchOrdersResponsePayload> => {
88-
const stringifiedQueryParams = stringify(filters);
95+
const stringifiedQueryParams = stringify(filters ?? {});
8996

9097
let rootUrl = requestOptions?.rootUrl ?? ORDERBOOK_API_ROOT_URL_PRODUCTION;
9198

test/v4/orderbook.test.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ const MAKER_ASSET: SwappableAsset = {
5151
};
5252

5353
describe('NFTSwapV4', () => {
54+
it('orderbook should return orders', async () => {
55+
const orders = await nftSwapperMaker.getOrders();
56+
57+
console.log(orders.orders.length);
58+
59+
expect(orders.orders.length).toBeGreaterThan(0);
60+
});
61+
5462
it('v4 erc721 test with orderbook e2e', async () => {
5563
// NOTE(johnrjj) - Assumes USDC and DAI are already approved w/ the ExchangeProxy
5664

@@ -70,15 +78,17 @@ describe('NFTSwapV4', () => {
7078
testMetadata
7179
);
7280

81+
console.log('createdOrder', createdOrder);
82+
7383
expect(createdOrder.order.nonce).toEqual(v4Erc721Order.nonce);
7484

7585
const orderSearch = await searchOrderbook({
7686
nonce: signedOrder.nonce.toString(),
7787
});
7888
const maybeOrder = first(orderSearch.orders);
7989

80-
expect((maybeOrder as any).order.nonce).toEqual(signedOrder.nonce);
81-
expect((maybeOrder as any).metadata).toEqual(testMetadata);
90+
expect(maybeOrder?.order.nonce).toEqual(signedOrder.nonce);
91+
expect(maybeOrder?.metadata).toEqual(testMetadata);
8292

8393
// const orderTofill = (maybeOrder as any).order as SignedNftOrderV4Serialized
8494
// const fillTx = await nftSwapperMaker.fillSignedOrder(orderTofill);

0 commit comments

Comments
 (0)