Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,6 @@ console.log(resp);

See [examples](examples/) for more information.

Limit and market orders automatically use Exchange V3 for protocol V2 position IDs.
Legacy CTF token IDs use the server's exchange version. To override automatic
selection, pass `version: 1`, `version: 2`, or `version: 3` in the order options,
for example `{ tickSize: "0.01", version: 3 }`.

### Market Orders

```ts
Expand Down
25 changes: 5 additions & 20 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ import {
} from "./order-builder/helpers/index.js";
import { OrderBuilder } from "./order-builder/index.js";
import { SignatureTypeV2 } from "./order-utils/model/signatureTypeV2.js";
import { isV2PositionId } from "./protocol.js";
import type { ClobSigner } from "./signing/signer.js";
import type {
ApiKeyCreds,
Expand Down Expand Up @@ -910,7 +909,7 @@ export class ClobClient {
}
orderToSign.price = roundNormal(orderToSign.price, ROUNDING_CONFIG[tickSize].price);

const version = await this.resolveOrderVersion(tokenID, options?.version);
const version = options?.version ?? (await this.resolveVersion());

if (
version !== 1 &&
Expand Down Expand Up @@ -1001,7 +1000,7 @@ export class ClobClient {
}

const negRisk = options?.negRisk ?? (await this.getNegRisk(tokenID));
const version = await this.resolveOrderVersion(tokenID, options?.version);
const version = options?.version ?? (await this.resolveVersion());

if (version === 1) {
const userFeeRateBps =
Expand Down Expand Up @@ -1044,7 +1043,7 @@ export class ClobClient {
): Promise<OrderResponse> {
let postOrderResponse: OrderResponse | undefined;

await this._retryOnVersionUpdate(userOrder.tokenID, options?.version, async () => {
await this._retryOnVersionUpdate(async () => {
const order = await this.createOrder(userOrder, options);
postOrderResponse = await this.postOrder(order, orderType, postOnly, deferExec);
});
Expand All @@ -1060,7 +1059,7 @@ export class ClobClient {
): Promise<OrderResponse> {
let postOrderMarketResponse: OrderResponse | undefined;

await this._retryOnVersionUpdate(userMarketOrder.tokenID, options?.version, async () => {
await this._retryOnVersionUpdate(async () => {
const order = await this.createMarketOrder(userMarketOrder, options);
postOrderMarketResponse = await this.postOrder(order, orderType, false, deferExec);
});
Expand Down Expand Up @@ -1762,10 +1761,6 @@ export class ClobClient {
return marketFeeRateBps;
}

private async resolveOrderVersion(tokenID: string, version?: number): Promise<number> {
return version ?? (isV2PositionId(tokenID) ? 3 : this.resolveVersion());
}

private async resolveVersion(forceUpdate: boolean = false): Promise<number> {
// Use cached version if given
if (!forceUpdate && this.cachedVersion !== undefined) {
Expand All @@ -1779,17 +1774,7 @@ export class ClobClient {
return apiVersion;
}

private async _retryOnVersionUpdate(
tokenID: string,
explicitVersion: number | undefined,
retryFunc: () => Promise<unknown>,
) {
// Only server-selected versions can change during migration recovery.
if (explicitVersion != null || isV2PositionId(tokenID)) {
await retryFunc();
return;
}

private async _retryOnVersionUpdate(retryFunc: () => Promise<unknown>) {
const version = await this.resolveVersion();

for (let attempt = 0; attempt < 2; attempt++) {
Expand Down
17 changes: 0 additions & 17 deletions src/protocol.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/types/clob.ts
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,6 @@ export type OrderVersion = 1 | 2 | 3;
export type CreateOrderOptions = {
tickSize: TickSize;
negRisk?: boolean;
/** Omit to select Exchange V3 for protocol V2 positions, or the server version for CTF tokens. */
version?: OrderVersion;
};

Expand Down
80 changes: 0 additions & 80 deletions tests/client/orderVersion.test.ts

This file was deleted.

19 changes: 0 additions & 19 deletions tests/protocol.test.ts

This file was deleted.

Loading