* @method * @name p2b#createOrder * @description create a trade order * @see https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order * @param {string} symbol unified symbol of the market to create an order in * @param {string} type must be 'limit' *
(symbol: string, type: OrderType, side: OrderSide, amount: number, price: Num = undefined, params = {})
| 902 | * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure} |
| 903 | */ |
| 904 | async createOrder (symbol: string, type: OrderType, side: OrderSide, amount: number, price: Num = undefined, params = {}) { |
| 905 | await this.loadMarkets (); |
| 906 | if (type === 'market') { |
| 907 | throw new BadRequest (this.id + ' createOrder () can only accept orders with type "limit"'); |
| 908 | } |
| 909 | const market = this.market (symbol); |
| 910 | const request: Dict = { |
| 911 | 'market': market['id'], |
| 912 | 'side': side, |
| 913 | 'amount': this.amountToPrecision (symbol, amount), |
| 914 | 'price': this.priceToPrecision (symbol, price), |
| 915 | }; |
| 916 | const response = await this.privatePostOrderNew (this.extend (request, params)); |
| 917 | // |
| 918 | // { |
| 919 | // "success": true, |
| 920 | // "errorCode": "", |
| 921 | // "message": "", |
| 922 | // "result": { |
| 923 | // "orderId": 171906478744, // Order id |
| 924 | // "market": "ETH_BTC", // Market name |
| 925 | // "price": "0.04348", // Price |
| 926 | // "side": "buy", // Side |
| 927 | // "type": "limit", // Order type |
| 928 | // "timestamp": 1698484861.746517, // Order creation time |
| 929 | // "dealMoney": "0", // Filled total |
| 930 | // "dealStock": "0", // Filled amount |
| 931 | // "amount": "0.0277", // Original amount |
| 932 | // "takerFee": "0.002", // taker fee |
| 933 | // "makerFee": "0.002", // maker fee |
| 934 | // "left": "0.0277", // Unfilled amount |
| 935 | // "dealFee": "0" // Filled fee |
| 936 | // } |
| 937 | // } |
| 938 | // |
| 939 | const result = this.safeDict (response, 'result') as Dict; |
| 940 | return this.parseOrder (result, market); |
| 941 | } |
| 942 | |
| 943 | /** |
| 944 | * @method |
nothing calls this directly
no test coverage detected