@@ -107,35 +107,38 @@ export type GenericAPIResponse<T = any> = Promise<T>;
107107// throw new Error(msg);
108108// }
109109
110- export function getOrderIdPrefix ( network : BinanceBaseUrlKey ) : string {
110+ export function getOrderIdPrefix (
111+ network : BinanceBaseUrlKey ,
112+ prefixVersion : 'v1' | 'v2' ,
113+ ) : string {
111114 switch ( network ) {
112115 case 'spot' :
113116 case 'spot1' :
114117 case 'spot2' :
115118 case 'spot3' :
116119 case 'spot4' :
117- return 'U5D79M5B' ;
120+ return prefixVersion === 'v2' ? 'QJ6WSMZX' : 'U5D79M5B' ;
118121
119122 case 'usdm' :
120123 case 'usdmtest' :
121124 case 'coinm' :
122125 case 'coinmtest' :
123126 case 'papi' :
124- return '15PC4ZJy' ;
127+ return prefixVersion === 'v2' ? 'r1wQQsTn' : '15PC4ZJy' ;
125128
126129 case 'voptions' :
127130 case 'voptionstest' :
128131 return '' ;
129132
130133 default :
131134 // throwUnhandledSwitch(network, `"${network}" unhandled`);
132- return 'U5D79M5B' ;
135+ return prefixVersion === 'v2' ? 'QJ6WSMZX' : 'U5D79M5B' ;
133136 }
134137}
135138
136139export function generateNewOrderId ( network : BinanceBaseUrlKey ) : string {
137140 const id = nanoid ( 22 ) ; // must pass ^[\.A-Z\:/a-z0-9_-]{1,32}$ with prefix
138- const prefixedId = 'x-' + getOrderIdPrefix ( network ) + id ;
141+ const prefixedId = 'x-' + getOrderIdPrefix ( network , 'v2' ) + id ;
139142
140143 return prefixedId ;
141144}
@@ -295,9 +298,17 @@ export function validateWSAPINewClientOID(
295298 continue ;
296299 }
297300
298- const expectedOrderIdPrefix = `x-${ getOrderIdPrefix ( baseUrlKey ) } ` ;
299- if ( ! request . params [ orderIdProperty ] . startsWith ( expectedOrderIdPrefix ) ) {
300- logInvalidOrderId ( orderIdProperty , expectedOrderIdPrefix , request . params ) ;
301+ const expectedOrderIdPrefix1 = `x-${ getOrderIdPrefix ( baseUrlKey , 'v1' ) } ` ;
302+ const expectedOrderIdPrefix2 = `x-${ getOrderIdPrefix ( baseUrlKey , 'v2' ) } ` ;
303+ if (
304+ ! request . params [ orderIdProperty ] . startsWith ( expectedOrderIdPrefix1 ) ||
305+ ! request . params [ orderIdProperty ] . startsWith ( expectedOrderIdPrefix2 )
306+ ) {
307+ logInvalidOrderId (
308+ orderIdProperty ,
309+ expectedOrderIdPrefix2 ,
310+ request . params ,
311+ ) ;
301312 }
302313 }
303314}
0 commit comments