@polymarket/clob-client-v2 1.0.4 → 1.0.6-main.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/client.cjs +892 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +167 -0
- package/dist/client.d.ts +169 -0
- package/dist/client.js +892 -0
- package/dist/client.js.map +1 -0
- package/dist/config.cjs +37 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +17 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.js +34 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.cjs +15 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -0
- package/dist/endpoints.cjs +125 -0
- package/dist/endpoints.cjs.map +1 -0
- package/dist/endpoints.js +65 -0
- package/dist/endpoints.js.map +1 -0
- package/dist/errors.cjs +20 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +11 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.js +17 -0
- package/dist/errors.js.map +1 -0
- package/dist/fees/index.cjs +21 -0
- package/dist/fees/index.cjs.map +1 -0
- package/dist/fees/index.d.cts +5 -0
- package/dist/fees/index.d.ts +5 -0
- package/dist/fees/index.js +19 -0
- package/dist/fees/index.js.map +1 -0
- package/dist/headers/index.cjs +34 -0
- package/dist/headers/index.cjs.map +1 -0
- package/dist/headers/index.d.cts +9 -0
- package/dist/headers/index.d.ts +11 -0
- package/dist/headers/index.js +33 -0
- package/dist/headers/index.js.map +1 -0
- package/dist/http-helpers/index.cjs +109 -0
- package/dist/http-helpers/index.cjs.map +1 -0
- package/dist/http-helpers/index.js +101 -0
- package/dist/http-helpers/index.js.map +1 -0
- package/dist/index.cjs +35 -2600
- package/dist/index.d.cts +15 -1039
- package/dist/index.d.ts +17 -1039
- package/dist/index.js +15 -2543
- package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs +43 -0
- package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs.map +1 -0
- package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js +42 -0
- package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js.map +1 -0
- package/dist/order-builder/helpers/buildOrder.cjs +34 -0
- package/dist/order-builder/helpers/buildOrder.cjs.map +1 -0
- package/dist/order-builder/helpers/buildOrder.js +34 -0
- package/dist/order-builder/helpers/buildOrder.js.map +1 -0
- package/dist/order-builder/helpers/buildOrderCreationArgs.cjs +45 -0
- package/dist/order-builder/helpers/buildOrderCreationArgs.cjs.map +1 -0
- package/dist/order-builder/helpers/buildOrderCreationArgs.js +44 -0
- package/dist/order-builder/helpers/buildOrderCreationArgs.js.map +1 -0
- package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs +24 -0
- package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs.map +1 -0
- package/dist/order-builder/helpers/calculateBuyMarketPrice.js +24 -0
- package/dist/order-builder/helpers/calculateBuyMarketPrice.js.map +1 -0
- package/dist/order-builder/helpers/calculateSellMarketPrice.cjs +24 -0
- package/dist/order-builder/helpers/calculateSellMarketPrice.cjs.map +1 -0
- package/dist/order-builder/helpers/calculateSellMarketPrice.js +24 -0
- package/dist/order-builder/helpers/calculateSellMarketPrice.js.map +1 -0
- package/dist/order-builder/helpers/createExchangeV3OrderFromAmounts.cjs +31 -0
- package/dist/order-builder/helpers/createExchangeV3OrderFromAmounts.cjs.map +1 -0
- package/dist/order-builder/helpers/createExchangeV3OrderFromAmounts.js +31 -0
- package/dist/order-builder/helpers/createExchangeV3OrderFromAmounts.js.map +1 -0
- package/dist/order-builder/helpers/createMarketOrder.cjs +34 -0
- package/dist/order-builder/helpers/createMarketOrder.cjs.map +1 -0
- package/dist/order-builder/helpers/createMarketOrder.js +34 -0
- package/dist/order-builder/helpers/createMarketOrder.js.map +1 -0
- package/dist/order-builder/helpers/createOrder.cjs +34 -0
- package/dist/order-builder/helpers/createOrder.cjs.map +1 -0
- package/dist/order-builder/helpers/createOrder.js +34 -0
- package/dist/order-builder/helpers/createOrder.js.map +1 -0
- package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs +36 -0
- package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs.map +1 -0
- package/dist/order-builder/helpers/getMarketOrderRawAmounts.js +36 -0
- package/dist/order-builder/helpers/getMarketOrderRawAmounts.js.map +1 -0
- package/dist/order-builder/helpers/getOrderRawAmounts.cjs +36 -0
- package/dist/order-builder/helpers/getOrderRawAmounts.cjs.map +1 -0
- package/dist/order-builder/helpers/getOrderRawAmounts.js +36 -0
- package/dist/order-builder/helpers/getOrderRawAmounts.js.map +1 -0
- package/dist/order-builder/helpers/roundingConfig.cjs +28 -0
- package/dist/order-builder/helpers/roundingConfig.cjs.map +1 -0
- package/dist/order-builder/helpers/roundingConfig.js +27 -0
- package/dist/order-builder/helpers/roundingConfig.js.map +1 -0
- package/dist/order-builder/index.d.ts +1 -0
- package/dist/order-builder/orderBuilder.cjs +58 -0
- package/dist/order-builder/orderBuilder.cjs.map +1 -0
- package/dist/order-builder/orderBuilder.d.cts +42 -0
- package/dist/order-builder/orderBuilder.d.ts +44 -0
- package/dist/order-builder/orderBuilder.js +58 -0
- package/dist/order-builder/orderBuilder.js.map +1 -0
- package/dist/order-utils/exchangeOrderBuilderV1.cjs +128 -0
- package/dist/order-utils/exchangeOrderBuilderV1.cjs.map +1 -0
- package/dist/order-utils/exchangeOrderBuilderV1.d.ts +2 -0
- package/dist/order-utils/exchangeOrderBuilderV1.js +127 -0
- package/dist/order-utils/exchangeOrderBuilderV1.js.map +1 -0
- package/dist/order-utils/exchangeOrderBuilderV2.cjs +196 -0
- package/dist/order-utils/exchangeOrderBuilderV2.cjs.map +1 -0
- package/dist/order-utils/exchangeOrderBuilderV2.d.ts +2 -0
- package/dist/order-utils/exchangeOrderBuilderV2.js +194 -0
- package/dist/order-utils/exchangeOrderBuilderV2.js.map +1 -0
- package/dist/order-utils/index.d.ts +7 -0
- package/dist/order-utils/model/ctfExchangeV1TypedData.cjs +60 -0
- package/dist/order-utils/model/ctfExchangeV1TypedData.cjs.map +1 -0
- package/dist/order-utils/model/ctfExchangeV1TypedData.js +57 -0
- package/dist/order-utils/model/ctfExchangeV1TypedData.js.map +1 -0
- package/dist/order-utils/model/ctfExchangeV2TypedData.cjs +58 -0
- package/dist/order-utils/model/ctfExchangeV2TypedData.cjs.map +1 -0
- package/dist/order-utils/model/ctfExchangeV2TypedData.js +54 -0
- package/dist/order-utils/model/ctfExchangeV2TypedData.js.map +1 -0
- package/dist/order-utils/model/eip712.cjs +24 -0
- package/dist/order-utils/model/eip712.cjs.map +1 -0
- package/dist/order-utils/model/eip712.d.cts +9 -0
- package/dist/order-utils/model/eip712.d.ts +9 -0
- package/dist/order-utils/model/eip712.js +23 -0
- package/dist/order-utils/model/eip712.js.map +1 -0
- package/dist/order-utils/model/order.d.cts +5 -0
- package/dist/order-utils/model/order.d.ts +5 -0
- package/dist/order-utils/model/orderDataV1.d.cts +68 -0
- package/dist/order-utils/model/orderDataV1.d.ts +69 -0
- package/dist/order-utils/model/orderDataV2.d.cts +68 -0
- package/dist/order-utils/model/orderDataV2.d.ts +69 -0
- package/dist/order-utils/model/side.cjs +11 -0
- package/dist/order-utils/model/side.cjs.map +1 -0
- package/dist/order-utils/model/side.d.cts +8 -0
- package/dist/order-utils/model/side.d.ts +8 -0
- package/dist/order-utils/model/side.js +10 -0
- package/dist/order-utils/model/side.js.map +1 -0
- package/dist/order-utils/model/signatureTypeV1.cjs +21 -0
- package/dist/order-utils/model/signatureTypeV1.cjs.map +1 -0
- package/dist/order-utils/model/signatureTypeV1.d.cts +18 -0
- package/dist/order-utils/model/signatureTypeV1.d.ts +18 -0
- package/dist/order-utils/model/signatureTypeV1.js +20 -0
- package/dist/order-utils/model/signatureTypeV1.js.map +1 -0
- package/dist/order-utils/model/signatureTypeV2.cjs +25 -0
- package/dist/order-utils/model/signatureTypeV2.cjs.map +1 -0
- package/dist/order-utils/model/signatureTypeV2.d.cts +22 -0
- package/dist/order-utils/model/signatureTypeV2.d.ts +22 -0
- package/dist/order-utils/model/signatureTypeV2.js +24 -0
- package/dist/order-utils/model/signatureTypeV2.js.map +1 -0
- package/dist/order-utils/utils.cjs +9 -0
- package/dist/order-utils/utils.cjs.map +1 -0
- package/dist/order-utils/utils.js +8 -0
- package/dist/order-utils/utils.js.map +1 -0
- package/dist/signing/constants.cjs +7 -0
- package/dist/signing/constants.cjs.map +1 -0
- package/dist/signing/constants.js +6 -0
- package/dist/signing/constants.js.map +1 -0
- package/dist/signing/eip712.cjs +51 -0
- package/dist/signing/eip712.cjs.map +1 -0
- package/dist/signing/eip712.d.ts +2 -0
- package/dist/signing/eip712.js +51 -0
- package/dist/signing/eip712.js.map +1 -0
- package/dist/signing/hmac.cjs +40 -0
- package/dist/signing/hmac.cjs.map +1 -0
- package/dist/signing/hmac.js +39 -0
- package/dist/signing/hmac.js.map +1 -0
- package/dist/signing/index.d.ts +2 -0
- package/dist/signing/signer.cjs +41 -0
- package/dist/signing/signer.cjs.map +1 -0
- package/dist/signing/signer.d.cts +17 -0
- package/dist/signing/signer.d.ts +17 -0
- package/dist/signing/signer.js +39 -0
- package/dist/signing/signer.js.map +1 -0
- package/dist/types/clob.cjs +35 -0
- package/dist/types/clob.cjs.map +1 -0
- package/dist/types/clob.d.cts +427 -0
- package/dist/types/clob.d.ts +427 -0
- package/dist/types/clob.js +32 -0
- package/dist/types/clob.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/ordersV1.cjs +29 -0
- package/dist/types/ordersV1.cjs.map +1 -0
- package/dist/types/ordersV1.d.cts +115 -0
- package/dist/types/ordersV1.d.ts +116 -0
- package/dist/types/ordersV1.js +28 -0
- package/dist/types/ordersV1.js.map +1 -0
- package/dist/types/ordersV2.cjs +30 -0
- package/dist/types/ordersV2.cjs.map +1 -0
- package/dist/types/ordersV2.d.cts +113 -0
- package/dist/types/ordersV2.d.ts +114 -0
- package/dist/types/ordersV2.js +29 -0
- package/dist/types/ordersV2.js.map +1 -0
- package/dist/types/ordersV3.d.cts +43 -0
- package/dist/types/ordersV3.d.ts +43 -0
- package/dist/types/unifiedOrder.cjs +10 -0
- package/dist/types/unifiedOrder.cjs.map +1 -0
- package/dist/types/unifiedOrder.d.cts +56 -0
- package/dist/types/unifiedOrder.d.ts +57 -0
- package/dist/types/unifiedOrder.js +9 -0
- package/dist/types/unifiedOrder.js.map +1 -0
- package/dist/utilities.cjs +50 -0
- package/dist/utilities.cjs.map +1 -0
- package/dist/utilities.js +43 -0
- package/dist/utilities.js.map +1 -0
- package/package.json +3 -3
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const require_signer = require('../../signing/signer.cjs');
|
|
2
|
+
const require_config = require('../../config.cjs');
|
|
3
|
+
const require_signatureTypeV2 = require('../../order-utils/model/signatureTypeV2.cjs');
|
|
4
|
+
const require_buildOrder = require('./buildOrder.cjs');
|
|
5
|
+
const require_buildOrderCreationArgs = require('./buildOrderCreationArgs.cjs');
|
|
6
|
+
const require_roundingConfig = require('./roundingConfig.cjs');
|
|
7
|
+
|
|
8
|
+
//#region src/order-builder/helpers/createOrder.ts
|
|
9
|
+
const createOrder = async (eoaSigner, chainId, signatureType, funderAddress, userOrder, options, version) => {
|
|
10
|
+
const eoaSignerAddress = await require_signer.getSignerAddress(eoaSigner);
|
|
11
|
+
const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
|
|
12
|
+
const signerForOrder = signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
|
|
13
|
+
const contractConfig = require_config.getContractConfig(chainId);
|
|
14
|
+
const orderData = await require_buildOrderCreationArgs.buildOrderCreationArgs(signerForOrder, maker, signatureType, userOrder, require_roundingConfig.ROUNDING_CONFIG[options.tickSize], version);
|
|
15
|
+
let exchangeContract;
|
|
16
|
+
switch (version) {
|
|
17
|
+
case 1:
|
|
18
|
+
if (signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
|
|
19
|
+
exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
|
|
20
|
+
break;
|
|
21
|
+
case 2:
|
|
22
|
+
exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
|
|
23
|
+
break;
|
|
24
|
+
case 3:
|
|
25
|
+
exchangeContract = contractConfig.exchangeV3;
|
|
26
|
+
break;
|
|
27
|
+
default: throw new Error(`unsupported order version ${version}`);
|
|
28
|
+
}
|
|
29
|
+
return require_buildOrder.buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.createOrder = createOrder;
|
|
34
|
+
//# sourceMappingURL=createOrder.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createOrder.cjs","names":["getSignerAddress","SignatureTypeV2","getContractConfig","buildOrderCreationArgs","ROUNDING_CONFIG","exchangeContract: string","buildOrder"],"sources":["../../../src/order-builder/helpers/createOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type { Chain, CreateOrderOptions, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { buildOrderCreationArgs } from \"./buildOrderCreationArgs.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AASA,MAAa,cAAc,OAC1B,WACA,SACA,eACA,eACA,WACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAMA,gCAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkBC,wCAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiBC,iCAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAMC,sDACvB,gBACA,OACA,eACA,WACAC,uCAAgB,QAAQ,WACxB,QACA;CACD,IAAIC;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkBJ,wCAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAEzD,QAAOK,8BAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getSignerAddress } from "../../signing/signer.js";
|
|
2
|
+
import { getContractConfig } from "../../config.js";
|
|
3
|
+
import { SignatureTypeV2 } from "../../order-utils/model/signatureTypeV2.js";
|
|
4
|
+
import { buildOrder } from "./buildOrder.js";
|
|
5
|
+
import { buildOrderCreationArgs } from "./buildOrderCreationArgs.js";
|
|
6
|
+
import { ROUNDING_CONFIG } from "./roundingConfig.js";
|
|
7
|
+
|
|
8
|
+
//#region src/order-builder/helpers/createOrder.ts
|
|
9
|
+
const createOrder = async (eoaSigner, chainId, signatureType, funderAddress, userOrder, options, version) => {
|
|
10
|
+
const eoaSignerAddress = await getSignerAddress(eoaSigner);
|
|
11
|
+
const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
|
|
12
|
+
const signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
|
|
13
|
+
const contractConfig = getContractConfig(chainId);
|
|
14
|
+
const orderData = await buildOrderCreationArgs(signerForOrder, maker, signatureType, userOrder, ROUNDING_CONFIG[options.tickSize], version);
|
|
15
|
+
let exchangeContract;
|
|
16
|
+
switch (version) {
|
|
17
|
+
case 1:
|
|
18
|
+
if (signatureType === SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
|
|
19
|
+
exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
|
|
20
|
+
break;
|
|
21
|
+
case 2:
|
|
22
|
+
exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
|
|
23
|
+
break;
|
|
24
|
+
case 3:
|
|
25
|
+
exchangeContract = contractConfig.exchangeV3;
|
|
26
|
+
break;
|
|
27
|
+
default: throw new Error(`unsupported order version ${version}`);
|
|
28
|
+
}
|
|
29
|
+
return buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
export { createOrder };
|
|
34
|
+
//# sourceMappingURL=createOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createOrder.js","names":["exchangeContract: string"],"sources":["../../../src/order-builder/helpers/createOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type { Chain, CreateOrderOptions, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { buildOrderCreationArgs } from \"./buildOrderCreationArgs.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AASA,MAAa,cAAc,OAC1B,WACA,SACA,eACA,eACA,WACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAM,iBAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkB,gBAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiB,kBAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAM,uBACvB,gBACA,OACA,eACA,WACA,gBAAgB,QAAQ,WACxB,QACA;CACD,IAAIA;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkB,gBAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAEzD,QAAO,WAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const require_side = require('../../order-utils/model/side.cjs');
|
|
2
|
+
const require_utilities = require('../../utilities.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/order-builder/helpers/getMarketOrderRawAmounts.ts
|
|
5
|
+
const getMarketOrderRawAmounts = (side, amount, price, roundConfig) => {
|
|
6
|
+
const rawPrice = require_utilities.roundDown(price, roundConfig.price);
|
|
7
|
+
if (side === require_side.Side.BUY) {
|
|
8
|
+
const rawMakerAmt = require_utilities.roundDown(amount, roundConfig.size);
|
|
9
|
+
let rawTakerAmt = rawMakerAmt / rawPrice;
|
|
10
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
11
|
+
rawTakerAmt = require_utilities.roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
12
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = require_utilities.roundDown(rawTakerAmt, roundConfig.amount);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
side: require_side.Side.BUY,
|
|
16
|
+
rawMakerAmt,
|
|
17
|
+
rawTakerAmt
|
|
18
|
+
};
|
|
19
|
+
} else {
|
|
20
|
+
const rawMakerAmt = require_utilities.roundDown(amount, roundConfig.size);
|
|
21
|
+
let rawTakerAmt = rawMakerAmt * rawPrice;
|
|
22
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
23
|
+
rawTakerAmt = require_utilities.roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
24
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = require_utilities.roundDown(rawTakerAmt, roundConfig.amount);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
side: require_side.Side.SELL,
|
|
28
|
+
rawMakerAmt,
|
|
29
|
+
rawTakerAmt
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.getMarketOrderRawAmounts = getMarketOrderRawAmounts;
|
|
36
|
+
//# sourceMappingURL=getMarketOrderRawAmounts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketOrderRawAmounts.cjs","names":["roundDown","Side","decimalPlaces","roundUp"],"sources":["../../../src/order-builder/helpers/getMarketOrderRawAmounts.ts"],"sourcesContent":["import { type RoundConfig, Side } from \"../../types/index.js\";\nimport { decimalPlaces, roundDown, roundUp } from \"../../utilities.js\";\n\nexport const getMarketOrderRawAmounts = (\n\tside: Side,\n\tamount: number,\n\tprice: number,\n\troundConfig: RoundConfig,\n): { side: Side; rawMakerAmt: number; rawTakerAmt: number } => {\n\t// force 2 decimals places\n\tconst rawPrice = roundDown(price, roundConfig.price);\n\n\tif (side === Side.BUY) {\n\t\tconst rawMakerAmt = roundDown(amount, roundConfig.size);\n\t\tlet rawTakerAmt = rawMakerAmt / rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tside: Side.BUY,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t} else {\n\t\tconst rawMakerAmt = roundDown(amount, roundConfig.size);\n\t\tlet rawTakerAmt = rawMakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.SELL,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t}\n};\n"],"mappings":";;;;AAGA,MAAa,4BACZ,MACA,QACA,OACA,gBAC8D;CAE9D,MAAM,WAAWA,4BAAU,OAAO,YAAY,MAAM;AAEpD,KAAI,SAASC,kBAAK,KAAK;EACtB,MAAM,cAAcD,4BAAU,QAAQ,YAAY,KAAK;EACvD,IAAI,cAAc,cAAc;AAChC,MAAIE,gCAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAcC,0BAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAID,gCAAc,YAAY,GAAG,YAAY,OAC5C,eAAcF,4BAAU,aAAa,YAAY,OAAO;;AAG1D,SAAO;GACN,MAAMC,kBAAK;GACX;GACA;GACA;QACK;EACN,MAAM,cAAcD,4BAAU,QAAQ,YAAY,KAAK;EACvD,IAAI,cAAc,cAAc;AAChC,MAAIE,gCAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAcC,0BAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAID,gCAAc,YAAY,GAAG,YAAY,OAC5C,eAAcF,4BAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAMC,kBAAK;GACX;GACA;GACA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Side } from "../../order-utils/model/side.js";
|
|
2
|
+
import { decimalPlaces, roundDown, roundUp } from "../../utilities.js";
|
|
3
|
+
|
|
4
|
+
//#region src/order-builder/helpers/getMarketOrderRawAmounts.ts
|
|
5
|
+
const getMarketOrderRawAmounts = (side, amount, price, roundConfig) => {
|
|
6
|
+
const rawPrice = roundDown(price, roundConfig.price);
|
|
7
|
+
if (side === Side.BUY) {
|
|
8
|
+
const rawMakerAmt = roundDown(amount, roundConfig.size);
|
|
9
|
+
let rawTakerAmt = rawMakerAmt / rawPrice;
|
|
10
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
11
|
+
rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
12
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
side: Side.BUY,
|
|
16
|
+
rawMakerAmt,
|
|
17
|
+
rawTakerAmt
|
|
18
|
+
};
|
|
19
|
+
} else {
|
|
20
|
+
const rawMakerAmt = roundDown(amount, roundConfig.size);
|
|
21
|
+
let rawTakerAmt = rawMakerAmt * rawPrice;
|
|
22
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
23
|
+
rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
24
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
side: Side.SELL,
|
|
28
|
+
rawMakerAmt,
|
|
29
|
+
rawTakerAmt
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { getMarketOrderRawAmounts };
|
|
36
|
+
//# sourceMappingURL=getMarketOrderRawAmounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketOrderRawAmounts.js","names":[],"sources":["../../../src/order-builder/helpers/getMarketOrderRawAmounts.ts"],"sourcesContent":["import { type RoundConfig, Side } from \"../../types/index.js\";\nimport { decimalPlaces, roundDown, roundUp } from \"../../utilities.js\";\n\nexport const getMarketOrderRawAmounts = (\n\tside: Side,\n\tamount: number,\n\tprice: number,\n\troundConfig: RoundConfig,\n): { side: Side; rawMakerAmt: number; rawTakerAmt: number } => {\n\t// force 2 decimals places\n\tconst rawPrice = roundDown(price, roundConfig.price);\n\n\tif (side === Side.BUY) {\n\t\tconst rawMakerAmt = roundDown(amount, roundConfig.size);\n\t\tlet rawTakerAmt = rawMakerAmt / rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tside: Side.BUY,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t} else {\n\t\tconst rawMakerAmt = roundDown(amount, roundConfig.size);\n\t\tlet rawTakerAmt = rawMakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.SELL,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t}\n};\n"],"mappings":";;;;AAGA,MAAa,4BACZ,MACA,QACA,OACA,gBAC8D;CAE9D,MAAM,WAAW,UAAU,OAAO,YAAY,MAAM;AAEpD,KAAI,SAAS,KAAK,KAAK;EACtB,MAAM,cAAc,UAAU,QAAQ,YAAY,KAAK;EACvD,IAAI,cAAc,cAAc;AAChC,MAAI,cAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAc,QAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAI,cAAc,YAAY,GAAG,YAAY,OAC5C,eAAc,UAAU,aAAa,YAAY,OAAO;;AAG1D,SAAO;GACN,MAAM,KAAK;GACX;GACA;GACA;QACK;EACN,MAAM,cAAc,UAAU,QAAQ,YAAY,KAAK;EACvD,IAAI,cAAc,cAAc;AAChC,MAAI,cAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAc,QAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAI,cAAc,YAAY,GAAG,YAAY,OAC5C,eAAc,UAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAM,KAAK;GACX;GACA;GACA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const require_side = require('../../order-utils/model/side.cjs');
|
|
2
|
+
const require_utilities = require('../../utilities.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/order-builder/helpers/getOrderRawAmounts.ts
|
|
5
|
+
const getOrderRawAmounts = (side, size, price, roundConfig) => {
|
|
6
|
+
const rawPrice = require_utilities.roundNormal(price, roundConfig.price);
|
|
7
|
+
if (side === require_side.Side.BUY) {
|
|
8
|
+
const rawTakerAmt = require_utilities.roundDown(size, roundConfig.size);
|
|
9
|
+
let rawMakerAmt = rawTakerAmt * rawPrice;
|
|
10
|
+
if (require_utilities.decimalPlaces(rawMakerAmt) > roundConfig.amount) {
|
|
11
|
+
rawMakerAmt = require_utilities.roundUp(rawMakerAmt, roundConfig.amount + 4);
|
|
12
|
+
if (require_utilities.decimalPlaces(rawMakerAmt) > roundConfig.amount) rawMakerAmt = require_utilities.roundDown(rawMakerAmt, roundConfig.amount);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
side: require_side.Side.BUY,
|
|
16
|
+
rawMakerAmt,
|
|
17
|
+
rawTakerAmt
|
|
18
|
+
};
|
|
19
|
+
} else {
|
|
20
|
+
const rawMakerAmt = require_utilities.roundDown(size, roundConfig.size);
|
|
21
|
+
let rawTakerAmt = rawMakerAmt * rawPrice;
|
|
22
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
23
|
+
rawTakerAmt = require_utilities.roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
24
|
+
if (require_utilities.decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = require_utilities.roundDown(rawTakerAmt, roundConfig.amount);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
side: require_side.Side.SELL,
|
|
28
|
+
rawMakerAmt,
|
|
29
|
+
rawTakerAmt
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.getOrderRawAmounts = getOrderRawAmounts;
|
|
36
|
+
//# sourceMappingURL=getOrderRawAmounts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrderRawAmounts.cjs","names":["roundNormal","Side","roundDown","decimalPlaces","roundUp"],"sources":["../../../src/order-builder/helpers/getOrderRawAmounts.ts"],"sourcesContent":["import { type RoundConfig, Side } from \"../../types/index.js\";\nimport { decimalPlaces, roundDown, roundNormal, roundUp } from \"../../utilities.js\";\n\nexport const getOrderRawAmounts = (\n\tside: Side,\n\tsize: number,\n\tprice: number,\n\troundConfig: RoundConfig,\n): { side: Side; rawMakerAmt: number; rawTakerAmt: number } => {\n\tconst rawPrice = roundNormal(price, roundConfig.price);\n\n\tif (side === Side.BUY) {\n\t\t// force 2 decimals places\n\t\tconst rawTakerAmt = roundDown(size, roundConfig.size);\n\n\t\tlet rawMakerAmt = rawTakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawMakerAmt) > roundConfig.amount) {\n\t\t\trawMakerAmt = roundUp(rawMakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawMakerAmt) > roundConfig.amount) {\n\t\t\t\trawMakerAmt = roundDown(rawMakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.BUY,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t} else {\n\t\tconst rawMakerAmt = roundDown(size, roundConfig.size);\n\n\t\tlet rawTakerAmt = rawMakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.SELL,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t}\n};\n"],"mappings":";;;;AAGA,MAAa,sBACZ,MACA,MACA,OACA,gBAC8D;CAC9D,MAAM,WAAWA,8BAAY,OAAO,YAAY,MAAM;AAEtD,KAAI,SAASC,kBAAK,KAAK;EAEtB,MAAM,cAAcC,4BAAU,MAAM,YAAY,KAAK;EAErD,IAAI,cAAc,cAAc;AAChC,MAAIC,gCAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAcC,0BAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAID,gCAAc,YAAY,GAAG,YAAY,OAC5C,eAAcD,4BAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAMD,kBAAK;GACX;GACA;GACA;QACK;EACN,MAAM,cAAcC,4BAAU,MAAM,YAAY,KAAK;EAErD,IAAI,cAAc,cAAc;AAChC,MAAIC,gCAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAcC,0BAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAID,gCAAc,YAAY,GAAG,YAAY,OAC5C,eAAcD,4BAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAMD,kBAAK;GACX;GACA;GACA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Side } from "../../order-utils/model/side.js";
|
|
2
|
+
import { decimalPlaces, roundDown, roundNormal, roundUp } from "../../utilities.js";
|
|
3
|
+
|
|
4
|
+
//#region src/order-builder/helpers/getOrderRawAmounts.ts
|
|
5
|
+
const getOrderRawAmounts = (side, size, price, roundConfig) => {
|
|
6
|
+
const rawPrice = roundNormal(price, roundConfig.price);
|
|
7
|
+
if (side === Side.BUY) {
|
|
8
|
+
const rawTakerAmt = roundDown(size, roundConfig.size);
|
|
9
|
+
let rawMakerAmt = rawTakerAmt * rawPrice;
|
|
10
|
+
if (decimalPlaces(rawMakerAmt) > roundConfig.amount) {
|
|
11
|
+
rawMakerAmt = roundUp(rawMakerAmt, roundConfig.amount + 4);
|
|
12
|
+
if (decimalPlaces(rawMakerAmt) > roundConfig.amount) rawMakerAmt = roundDown(rawMakerAmt, roundConfig.amount);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
side: Side.BUY,
|
|
16
|
+
rawMakerAmt,
|
|
17
|
+
rawTakerAmt
|
|
18
|
+
};
|
|
19
|
+
} else {
|
|
20
|
+
const rawMakerAmt = roundDown(size, roundConfig.size);
|
|
21
|
+
let rawTakerAmt = rawMakerAmt * rawPrice;
|
|
22
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
|
|
23
|
+
rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
|
|
24
|
+
if (decimalPlaces(rawTakerAmt) > roundConfig.amount) rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
side: Side.SELL,
|
|
28
|
+
rawMakerAmt,
|
|
29
|
+
rawTakerAmt
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { getOrderRawAmounts };
|
|
36
|
+
//# sourceMappingURL=getOrderRawAmounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrderRawAmounts.js","names":[],"sources":["../../../src/order-builder/helpers/getOrderRawAmounts.ts"],"sourcesContent":["import { type RoundConfig, Side } from \"../../types/index.js\";\nimport { decimalPlaces, roundDown, roundNormal, roundUp } from \"../../utilities.js\";\n\nexport const getOrderRawAmounts = (\n\tside: Side,\n\tsize: number,\n\tprice: number,\n\troundConfig: RoundConfig,\n): { side: Side; rawMakerAmt: number; rawTakerAmt: number } => {\n\tconst rawPrice = roundNormal(price, roundConfig.price);\n\n\tif (side === Side.BUY) {\n\t\t// force 2 decimals places\n\t\tconst rawTakerAmt = roundDown(size, roundConfig.size);\n\n\t\tlet rawMakerAmt = rawTakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawMakerAmt) > roundConfig.amount) {\n\t\t\trawMakerAmt = roundUp(rawMakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawMakerAmt) > roundConfig.amount) {\n\t\t\t\trawMakerAmt = roundDown(rawMakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.BUY,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t} else {\n\t\tconst rawMakerAmt = roundDown(size, roundConfig.size);\n\n\t\tlet rawTakerAmt = rawMakerAmt * rawPrice;\n\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\trawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);\n\t\t\tif (decimalPlaces(rawTakerAmt) > roundConfig.amount) {\n\t\t\t\trawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tside: Side.SELL,\n\t\t\trawMakerAmt,\n\t\t\trawTakerAmt,\n\t\t};\n\t}\n};\n"],"mappings":";;;;AAGA,MAAa,sBACZ,MACA,MACA,OACA,gBAC8D;CAC9D,MAAM,WAAW,YAAY,OAAO,YAAY,MAAM;AAEtD,KAAI,SAAS,KAAK,KAAK;EAEtB,MAAM,cAAc,UAAU,MAAM,YAAY,KAAK;EAErD,IAAI,cAAc,cAAc;AAChC,MAAI,cAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAc,QAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAI,cAAc,YAAY,GAAG,YAAY,OAC5C,eAAc,UAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAM,KAAK;GACX;GACA;GACA;QACK;EACN,MAAM,cAAc,UAAU,MAAM,YAAY,KAAK;EAErD,IAAI,cAAc,cAAc;AAChC,MAAI,cAAc,YAAY,GAAG,YAAY,QAAQ;AACpD,iBAAc,QAAQ,aAAa,YAAY,SAAS,EAAE;AAC1D,OAAI,cAAc,YAAY,GAAG,YAAY,OAC5C,eAAc,UAAU,aAAa,YAAY,OAAO;;AAI1D,SAAO;GACN,MAAM,KAAK;GACX;GACA;GACA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/order-builder/helpers/roundingConfig.ts
|
|
3
|
+
const ROUNDING_CONFIG = {
|
|
4
|
+
"0.1": {
|
|
5
|
+
price: 1,
|
|
6
|
+
size: 2,
|
|
7
|
+
amount: 3
|
|
8
|
+
},
|
|
9
|
+
"0.01": {
|
|
10
|
+
price: 2,
|
|
11
|
+
size: 2,
|
|
12
|
+
amount: 4
|
|
13
|
+
},
|
|
14
|
+
"0.001": {
|
|
15
|
+
price: 3,
|
|
16
|
+
size: 2,
|
|
17
|
+
amount: 5
|
|
18
|
+
},
|
|
19
|
+
"0.0001": {
|
|
20
|
+
price: 4,
|
|
21
|
+
size: 2,
|
|
22
|
+
amount: 6
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.ROUNDING_CONFIG = ROUNDING_CONFIG;
|
|
28
|
+
//# sourceMappingURL=roundingConfig.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roundingConfig.cjs","names":["ROUNDING_CONFIG: Record<TickSize, RoundConfig>"],"sources":["../../../src/order-builder/helpers/roundingConfig.ts"],"sourcesContent":["import type { RoundConfig, TickSize } from \"../../types/index.js\";\n\nexport const ROUNDING_CONFIG: Record<TickSize, RoundConfig> = {\n\t\"0.1\": {\n\t\tprice: 1,\n\t\tsize: 2,\n\t\tamount: 3,\n\t},\n\t\"0.01\": {\n\t\tprice: 2,\n\t\tsize: 2,\n\t\tamount: 4,\n\t},\n\t\"0.001\": {\n\t\tprice: 3,\n\t\tsize: 2,\n\t\tamount: 5,\n\t},\n\t\"0.0001\": {\n\t\tprice: 4,\n\t\tsize: 2,\n\t\tamount: 6,\n\t},\n};\n"],"mappings":";;AAEA,MAAaA,kBAAiD;CAC7D,OAAO;EACN,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,SAAS;EACR,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,UAAU;EACT,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/order-builder/helpers/roundingConfig.ts
|
|
2
|
+
const ROUNDING_CONFIG = {
|
|
3
|
+
"0.1": {
|
|
4
|
+
price: 1,
|
|
5
|
+
size: 2,
|
|
6
|
+
amount: 3
|
|
7
|
+
},
|
|
8
|
+
"0.01": {
|
|
9
|
+
price: 2,
|
|
10
|
+
size: 2,
|
|
11
|
+
amount: 4
|
|
12
|
+
},
|
|
13
|
+
"0.001": {
|
|
14
|
+
price: 3,
|
|
15
|
+
size: 2,
|
|
16
|
+
amount: 5
|
|
17
|
+
},
|
|
18
|
+
"0.0001": {
|
|
19
|
+
price: 4,
|
|
20
|
+
size: 2,
|
|
21
|
+
amount: 6
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ROUNDING_CONFIG };
|
|
27
|
+
//# sourceMappingURL=roundingConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roundingConfig.js","names":["ROUNDING_CONFIG: Record<TickSize, RoundConfig>"],"sources":["../../../src/order-builder/helpers/roundingConfig.ts"],"sourcesContent":["import type { RoundConfig, TickSize } from \"../../types/index.js\";\n\nexport const ROUNDING_CONFIG: Record<TickSize, RoundConfig> = {\n\t\"0.1\": {\n\t\tprice: 1,\n\t\tsize: 2,\n\t\tamount: 3,\n\t},\n\t\"0.01\": {\n\t\tprice: 2,\n\t\tsize: 2,\n\t\tamount: 4,\n\t},\n\t\"0.001\": {\n\t\tprice: 3,\n\t\tsize: 2,\n\t\tamount: 5,\n\t},\n\t\"0.0001\": {\n\t\tprice: 4,\n\t\tsize: 2,\n\t\tamount: 6,\n\t},\n};\n"],"mappings":";AAEA,MAAaA,kBAAiD;CAC7D,OAAO;EACN,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,SAAS;EACR,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD,UAAU;EACT,OAAO;EACP,MAAM;EACN,QAAQ;EACR;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { OrderBuilder } from "./orderBuilder.js";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const require_signatureTypeV2 = require('../order-utils/model/signatureTypeV2.cjs');
|
|
2
|
+
const require_createMarketOrder = require('./helpers/createMarketOrder.cjs');
|
|
3
|
+
const require_createOrder = require('./helpers/createOrder.cjs');
|
|
4
|
+
const require_createExchangeV3OrderFromAmounts = require('./helpers/createExchangeV3OrderFromAmounts.cjs');
|
|
5
|
+
|
|
6
|
+
//#region src/order-builder/orderBuilder.ts
|
|
7
|
+
var OrderBuilder = class {
|
|
8
|
+
signer;
|
|
9
|
+
chainId;
|
|
10
|
+
signatureType;
|
|
11
|
+
funderAddress;
|
|
12
|
+
/**
|
|
13
|
+
* Optional function to dynamically resolve the signer.
|
|
14
|
+
* If provided, this function will be called to obtain a fresh signer instance
|
|
15
|
+
* (e.g., for smart contract wallets or when the signer may change).
|
|
16
|
+
* Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
|
|
17
|
+
* If not provided, the static `signer` property is used.
|
|
18
|
+
*/
|
|
19
|
+
getSigner;
|
|
20
|
+
constructor(signer, chainId, signatureType, funderAddress, getSigner) {
|
|
21
|
+
this.signer = signer;
|
|
22
|
+
this.chainId = chainId;
|
|
23
|
+
this.signatureType = signatureType === void 0 ? require_signatureTypeV2.SignatureTypeV2.EOA : signatureType;
|
|
24
|
+
this.funderAddress = funderAddress;
|
|
25
|
+
this.getSigner = getSigner;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate and sign a order
|
|
29
|
+
*/
|
|
30
|
+
async buildOrder(userOrder, options, version) {
|
|
31
|
+
return require_createOrder.createOrder(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userOrder, options, version);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Generate and sign a market order
|
|
35
|
+
*/
|
|
36
|
+
async buildMarketOrder(userMarketOrder, options, version) {
|
|
37
|
+
return require_createMarketOrder.createMarketOrder(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userMarketOrder, options, version);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Generate and sign an ExchangeV3 order using exact base-unit amounts.
|
|
41
|
+
*/
|
|
42
|
+
async buildExchangeV3OrderFromAmounts(userOrder) {
|
|
43
|
+
return require_createExchangeV3OrderFromAmounts.createExchangeV3OrderFromAmounts(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userOrder);
|
|
44
|
+
}
|
|
45
|
+
/** Unified getter: use fresh signer if available */
|
|
46
|
+
async resolveSigner() {
|
|
47
|
+
if (this.getSigner) {
|
|
48
|
+
const s = await this.getSigner();
|
|
49
|
+
if (!s) throw new Error("getSigner() function returned undefined or null");
|
|
50
|
+
return s;
|
|
51
|
+
}
|
|
52
|
+
return this.signer;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
exports.OrderBuilder = OrderBuilder;
|
|
58
|
+
//# sourceMappingURL=orderBuilder.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderBuilder.cjs","names":["SignatureTypeV2","createOrder","createMarketOrder","createExchangeV3OrderFromAmounts"],"sources":["../../src/order-builder/orderBuilder.ts"],"sourcesContent":["import { SignatureTypeV2, type SignedOrderV1, type SignedOrderV2 } from \"../order-utils/index.js\";\nimport type { ClobSigner } from \"../signing/signer.js\";\nimport type {\n\tChain,\n\tCreateOrderOptions,\n\tExchangeV3OrderAmounts,\n\tUserMarketOrderV1,\n\tUserMarketOrderV2,\n\tUserOrderV1,\n\tUserOrderV2,\n} from \"../types/index.js\";\n\nimport { createExchangeV3OrderFromAmounts } from \"./helpers/createExchangeV3OrderFromAmounts.js\";\nimport { createMarketOrder, createOrder } from \"./helpers/index.js\";\n\nexport class OrderBuilder {\n\treadonly signer: ClobSigner;\n\n\treadonly chainId: Chain;\n\n\t// Signature type used sign orders, defaults to EOA type\n\treadonly signatureType: SignatureTypeV2;\n\n\t// Address which holds funds to be used.\n\t// Used for Polymarket proxy wallets and other smart contract wallets\n\t// If not provided, funderAddress is the signer address\n\treadonly funderAddress?: string;\n\n\t/**\n\t * Optional function to dynamically resolve the signer.\n\t * If provided, this function will be called to obtain a fresh signer instance\n\t * (e.g., for smart contract wallets or when the signer may change).\n\t * Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.\n\t * If not provided, the static `signer` property is used.\n\t */\n\tprivate getSigner?: () => Promise<ClobSigner> | ClobSigner;\n\n\tconstructor(\n\t\tsigner: ClobSigner,\n\t\tchainId: Chain,\n\t\tsignatureType?: SignatureTypeV2,\n\t\tfunderAddress?: string,\n\t\tgetSigner?: () => Promise<ClobSigner> | ClobSigner,\n\t) {\n\t\tthis.signer = signer;\n\t\tthis.chainId = chainId;\n\t\tthis.signatureType = signatureType === undefined ? SignatureTypeV2.EOA : signatureType;\n\t\tthis.funderAddress = funderAddress;\n\t\tthis.getSigner = getSigner;\n\t}\n\n\t/**\n\t * Generate and sign a order\n\t */\n\tpublic async buildOrder(\n\t\tuserOrder: UserOrderV1 | UserOrderV2,\n\t\toptions: CreateOrderOptions,\n\t\tversion: number,\n\t): Promise<SignedOrderV1 | SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createOrder(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserOrder,\n\t\t\toptions,\n\t\t\tversion,\n\t\t);\n\t}\n\n\t/**\n\t * Generate and sign a market order\n\t */\n\tpublic async buildMarketOrder(\n\t\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\t\toptions: CreateOrderOptions,\n\t\tversion: number,\n\t): Promise<SignedOrderV1 | SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createMarketOrder(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserMarketOrder,\n\t\t\toptions,\n\t\t\tversion,\n\t\t);\n\t}\n\n\t/**\n\t * Generate and sign an ExchangeV3 order using exact base-unit amounts.\n\t */\n\tpublic async buildExchangeV3OrderFromAmounts(\n\t\tuserOrder: ExchangeV3OrderAmounts,\n\t): Promise<SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createExchangeV3OrderFromAmounts(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserOrder,\n\t\t);\n\t}\n\n\t/** Unified getter: use fresh signer if available */\n\tprivate async resolveSigner(): Promise<ClobSigner> {\n\t\tif (this.getSigner) {\n\t\t\tconst s = await this.getSigner();\n\t\t\tif (!s) throw new Error(\"getSigner() function returned undefined or null\");\n\t\t\treturn s;\n\t\t}\n\t\treturn this.signer;\n\t}\n}\n"],"mappings":";;;;;;AAeA,IAAa,eAAb,MAA0B;CACzB,AAAS;CAET,AAAS;CAGT,AAAS;CAKT,AAAS;;;;;;;;CAST,AAAQ;CAER,YACC,QACA,SACA,eACA,eACA,WACC;AACD,OAAK,SAAS;AACd,OAAK,UAAU;AACf,OAAK,gBAAgB,kBAAkB,SAAYA,wCAAgB,MAAM;AACzE,OAAK,gBAAgB;AACrB,OAAK,YAAY;;;;;CAMlB,MAAa,WACZ,WACA,SACA,SACyC;AAEzC,SAAOC,gCADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,WACA,SACA,QACA;;;;;CAMF,MAAa,iBACZ,iBACA,SACA,SACyC;AAEzC,SAAOC,4CADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,iBACA,SACA,QACA;;;;;CAMF,MAAa,gCACZ,WACyB;AAEzB,SAAOC,0EADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,UACA;;;CAIF,MAAc,gBAAqC;AAClD,MAAI,KAAK,WAAW;GACnB,MAAM,IAAI,MAAM,KAAK,WAAW;AAChC,OAAI,CAAC,EAAG,OAAM,IAAI,MAAM,kDAAkD;AAC1E,UAAO;;AAER,SAAO,KAAK"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ClobSigner } from "../signing/signer.cjs";
|
|
2
|
+
import { Chain, CreateOrderOptions } from "../types/clob.cjs";
|
|
3
|
+
import { UserMarketOrderV1, UserOrderV1 } from "../types/ordersV1.cjs";
|
|
4
|
+
import { UserMarketOrderV2, UserOrderV2 } from "../types/ordersV2.cjs";
|
|
5
|
+
import { ExchangeV3OrderAmounts } from "../types/ordersV3.cjs";
|
|
6
|
+
import { SignedOrderV1 } from "../order-utils/model/orderDataV1.cjs";
|
|
7
|
+
import { SignatureTypeV2 } from "../order-utils/model/signatureTypeV2.cjs";
|
|
8
|
+
import { SignedOrderV2 } from "../order-utils/model/orderDataV2.cjs";
|
|
9
|
+
|
|
10
|
+
//#region src/order-builder/orderBuilder.d.ts
|
|
11
|
+
declare class OrderBuilder {
|
|
12
|
+
readonly signer: ClobSigner;
|
|
13
|
+
readonly chainId: Chain;
|
|
14
|
+
readonly signatureType: SignatureTypeV2;
|
|
15
|
+
readonly funderAddress?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Optional function to dynamically resolve the signer.
|
|
18
|
+
* If provided, this function will be called to obtain a fresh signer instance
|
|
19
|
+
* (e.g., for smart contract wallets or when the signer may change).
|
|
20
|
+
* Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
|
|
21
|
+
* If not provided, the static `signer` property is used.
|
|
22
|
+
*/
|
|
23
|
+
private getSigner?;
|
|
24
|
+
constructor(signer: ClobSigner, chainId: Chain, signatureType?: SignatureTypeV2, funderAddress?: string, getSigner?: () => Promise<ClobSigner> | ClobSigner);
|
|
25
|
+
/**
|
|
26
|
+
* Generate and sign a order
|
|
27
|
+
*/
|
|
28
|
+
buildOrder(userOrder: UserOrderV1 | UserOrderV2, options: CreateOrderOptions, version: number): Promise<SignedOrderV1 | SignedOrderV2>;
|
|
29
|
+
/**
|
|
30
|
+
* Generate and sign a market order
|
|
31
|
+
*/
|
|
32
|
+
buildMarketOrder(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options: CreateOrderOptions, version: number): Promise<SignedOrderV1 | SignedOrderV2>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate and sign an ExchangeV3 order using exact base-unit amounts.
|
|
35
|
+
*/
|
|
36
|
+
buildExchangeV3OrderFromAmounts(userOrder: ExchangeV3OrderAmounts): Promise<SignedOrderV2>;
|
|
37
|
+
/** Unified getter: use fresh signer if available */
|
|
38
|
+
private resolveSigner;
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { OrderBuilder };
|
|
42
|
+
//# sourceMappingURL=orderBuilder.d.cts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ClobSigner } from "../signing/signer.js";
|
|
2
|
+
import { Chain, CreateOrderOptions } from "../types/clob.js";
|
|
3
|
+
import { UserMarketOrderV1, UserOrderV1 } from "../types/ordersV1.js";
|
|
4
|
+
import { UserMarketOrderV2, UserOrderV2 } from "../types/ordersV2.js";
|
|
5
|
+
import { ExchangeV3OrderAmounts } from "../types/ordersV3.js";
|
|
6
|
+
import "../types/index.js";
|
|
7
|
+
import { SignedOrderV1 } from "../order-utils/model/orderDataV1.js";
|
|
8
|
+
import { SignatureTypeV2 } from "../order-utils/model/signatureTypeV2.js";
|
|
9
|
+
import { SignedOrderV2 } from "../order-utils/model/orderDataV2.js";
|
|
10
|
+
import "../order-utils/index.js";
|
|
11
|
+
|
|
12
|
+
//#region src/order-builder/orderBuilder.d.ts
|
|
13
|
+
declare class OrderBuilder {
|
|
14
|
+
readonly signer: ClobSigner;
|
|
15
|
+
readonly chainId: Chain;
|
|
16
|
+
readonly signatureType: SignatureTypeV2;
|
|
17
|
+
readonly funderAddress?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Optional function to dynamically resolve the signer.
|
|
20
|
+
* If provided, this function will be called to obtain a fresh signer instance
|
|
21
|
+
* (e.g., for smart contract wallets or when the signer may change).
|
|
22
|
+
* Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
|
|
23
|
+
* If not provided, the static `signer` property is used.
|
|
24
|
+
*/
|
|
25
|
+
private getSigner?;
|
|
26
|
+
constructor(signer: ClobSigner, chainId: Chain, signatureType?: SignatureTypeV2, funderAddress?: string, getSigner?: () => Promise<ClobSigner> | ClobSigner);
|
|
27
|
+
/**
|
|
28
|
+
* Generate and sign a order
|
|
29
|
+
*/
|
|
30
|
+
buildOrder(userOrder: UserOrderV1 | UserOrderV2, options: CreateOrderOptions, version: number): Promise<SignedOrderV1 | SignedOrderV2>;
|
|
31
|
+
/**
|
|
32
|
+
* Generate and sign a market order
|
|
33
|
+
*/
|
|
34
|
+
buildMarketOrder(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options: CreateOrderOptions, version: number): Promise<SignedOrderV1 | SignedOrderV2>;
|
|
35
|
+
/**
|
|
36
|
+
* Generate and sign an ExchangeV3 order using exact base-unit amounts.
|
|
37
|
+
*/
|
|
38
|
+
buildExchangeV3OrderFromAmounts(userOrder: ExchangeV3OrderAmounts): Promise<SignedOrderV2>;
|
|
39
|
+
/** Unified getter: use fresh signer if available */
|
|
40
|
+
private resolveSigner;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { OrderBuilder };
|
|
44
|
+
//# sourceMappingURL=orderBuilder.d.ts.map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SignatureTypeV2 } from "../order-utils/model/signatureTypeV2.js";
|
|
2
|
+
import { createMarketOrder } from "./helpers/createMarketOrder.js";
|
|
3
|
+
import { createOrder } from "./helpers/createOrder.js";
|
|
4
|
+
import { createExchangeV3OrderFromAmounts } from "./helpers/createExchangeV3OrderFromAmounts.js";
|
|
5
|
+
|
|
6
|
+
//#region src/order-builder/orderBuilder.ts
|
|
7
|
+
var OrderBuilder = class {
|
|
8
|
+
signer;
|
|
9
|
+
chainId;
|
|
10
|
+
signatureType;
|
|
11
|
+
funderAddress;
|
|
12
|
+
/**
|
|
13
|
+
* Optional function to dynamically resolve the signer.
|
|
14
|
+
* If provided, this function will be called to obtain a fresh signer instance
|
|
15
|
+
* (e.g., for smart contract wallets or when the signer may change).
|
|
16
|
+
* Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
|
|
17
|
+
* If not provided, the static `signer` property is used.
|
|
18
|
+
*/
|
|
19
|
+
getSigner;
|
|
20
|
+
constructor(signer, chainId, signatureType, funderAddress, getSigner) {
|
|
21
|
+
this.signer = signer;
|
|
22
|
+
this.chainId = chainId;
|
|
23
|
+
this.signatureType = signatureType === void 0 ? SignatureTypeV2.EOA : signatureType;
|
|
24
|
+
this.funderAddress = funderAddress;
|
|
25
|
+
this.getSigner = getSigner;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate and sign a order
|
|
29
|
+
*/
|
|
30
|
+
async buildOrder(userOrder, options, version) {
|
|
31
|
+
return createOrder(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userOrder, options, version);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Generate and sign a market order
|
|
35
|
+
*/
|
|
36
|
+
async buildMarketOrder(userMarketOrder, options, version) {
|
|
37
|
+
return createMarketOrder(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userMarketOrder, options, version);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Generate and sign an ExchangeV3 order using exact base-unit amounts.
|
|
41
|
+
*/
|
|
42
|
+
async buildExchangeV3OrderFromAmounts(userOrder) {
|
|
43
|
+
return createExchangeV3OrderFromAmounts(await this.resolveSigner(), this.chainId, this.signatureType, this.funderAddress, userOrder);
|
|
44
|
+
}
|
|
45
|
+
/** Unified getter: use fresh signer if available */
|
|
46
|
+
async resolveSigner() {
|
|
47
|
+
if (this.getSigner) {
|
|
48
|
+
const s = await this.getSigner();
|
|
49
|
+
if (!s) throw new Error("getSigner() function returned undefined or null");
|
|
50
|
+
return s;
|
|
51
|
+
}
|
|
52
|
+
return this.signer;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { OrderBuilder };
|
|
58
|
+
//# sourceMappingURL=orderBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orderBuilder.js","names":[],"sources":["../../src/order-builder/orderBuilder.ts"],"sourcesContent":["import { SignatureTypeV2, type SignedOrderV1, type SignedOrderV2 } from \"../order-utils/index.js\";\nimport type { ClobSigner } from \"../signing/signer.js\";\nimport type {\n\tChain,\n\tCreateOrderOptions,\n\tExchangeV3OrderAmounts,\n\tUserMarketOrderV1,\n\tUserMarketOrderV2,\n\tUserOrderV1,\n\tUserOrderV2,\n} from \"../types/index.js\";\n\nimport { createExchangeV3OrderFromAmounts } from \"./helpers/createExchangeV3OrderFromAmounts.js\";\nimport { createMarketOrder, createOrder } from \"./helpers/index.js\";\n\nexport class OrderBuilder {\n\treadonly signer: ClobSigner;\n\n\treadonly chainId: Chain;\n\n\t// Signature type used sign orders, defaults to EOA type\n\treadonly signatureType: SignatureTypeV2;\n\n\t// Address which holds funds to be used.\n\t// Used for Polymarket proxy wallets and other smart contract wallets\n\t// If not provided, funderAddress is the signer address\n\treadonly funderAddress?: string;\n\n\t/**\n\t * Optional function to dynamically resolve the signer.\n\t * If provided, this function will be called to obtain a fresh signer instance\n\t * (e.g., for smart contract wallets or when the signer may change).\n\t * Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.\n\t * If not provided, the static `signer` property is used.\n\t */\n\tprivate getSigner?: () => Promise<ClobSigner> | ClobSigner;\n\n\tconstructor(\n\t\tsigner: ClobSigner,\n\t\tchainId: Chain,\n\t\tsignatureType?: SignatureTypeV2,\n\t\tfunderAddress?: string,\n\t\tgetSigner?: () => Promise<ClobSigner> | ClobSigner,\n\t) {\n\t\tthis.signer = signer;\n\t\tthis.chainId = chainId;\n\t\tthis.signatureType = signatureType === undefined ? SignatureTypeV2.EOA : signatureType;\n\t\tthis.funderAddress = funderAddress;\n\t\tthis.getSigner = getSigner;\n\t}\n\n\t/**\n\t * Generate and sign a order\n\t */\n\tpublic async buildOrder(\n\t\tuserOrder: UserOrderV1 | UserOrderV2,\n\t\toptions: CreateOrderOptions,\n\t\tversion: number,\n\t): Promise<SignedOrderV1 | SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createOrder(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserOrder,\n\t\t\toptions,\n\t\t\tversion,\n\t\t);\n\t}\n\n\t/**\n\t * Generate and sign a market order\n\t */\n\tpublic async buildMarketOrder(\n\t\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\t\toptions: CreateOrderOptions,\n\t\tversion: number,\n\t): Promise<SignedOrderV1 | SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createMarketOrder(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserMarketOrder,\n\t\t\toptions,\n\t\t\tversion,\n\t\t);\n\t}\n\n\t/**\n\t * Generate and sign an ExchangeV3 order using exact base-unit amounts.\n\t */\n\tpublic async buildExchangeV3OrderFromAmounts(\n\t\tuserOrder: ExchangeV3OrderAmounts,\n\t): Promise<SignedOrderV2> {\n\t\tconst signer = await this.resolveSigner();\n\t\treturn createExchangeV3OrderFromAmounts(\n\t\t\tsigner,\n\t\t\tthis.chainId,\n\t\t\tthis.signatureType,\n\t\t\tthis.funderAddress,\n\t\t\tuserOrder,\n\t\t);\n\t}\n\n\t/** Unified getter: use fresh signer if available */\n\tprivate async resolveSigner(): Promise<ClobSigner> {\n\t\tif (this.getSigner) {\n\t\t\tconst s = await this.getSigner();\n\t\t\tif (!s) throw new Error(\"getSigner() function returned undefined or null\");\n\t\t\treturn s;\n\t\t}\n\t\treturn this.signer;\n\t}\n}\n"],"mappings":";;;;;;AAeA,IAAa,eAAb,MAA0B;CACzB,AAAS;CAET,AAAS;CAGT,AAAS;CAKT,AAAS;;;;;;;;CAST,AAAQ;CAER,YACC,QACA,SACA,eACA,eACA,WACC;AACD,OAAK,SAAS;AACd,OAAK,UAAU;AACf,OAAK,gBAAgB,kBAAkB,SAAY,gBAAgB,MAAM;AACzE,OAAK,gBAAgB;AACrB,OAAK,YAAY;;;;;CAMlB,MAAa,WACZ,WACA,SACA,SACyC;AAEzC,SAAO,YADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,WACA,SACA,QACA;;;;;CAMF,MAAa,iBACZ,iBACA,SACA,SACyC;AAEzC,SAAO,kBADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,iBACA,SACA,QACA;;;;;CAMF,MAAa,gCACZ,WACyB;AAEzB,SAAO,iCADQ,MAAM,KAAK,eAAe,EAGxC,KAAK,SACL,KAAK,eACL,KAAK,eACL,UACA;;;CAIF,MAAc,gBAAqC;AAClD,MAAI,KAAK,WAAW;GACnB,MAAM,IAAI,MAAM,KAAK,WAAW;AAChC,OAAI,CAAC,EAAG,OAAM,IAAI,MAAM,kDAAkD;AAC1E,UAAO;;AAER,SAAO,KAAK"}
|