ccxt 4.2.29 → 4.2.30

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.
Files changed (154) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +1709 -533
  3. package/dist/ccxt.browser.min.js +7 -7
  4. package/dist/cjs/ccxt.js +3 -1
  5. package/dist/cjs/src/ascendex.js +5 -5
  6. package/dist/cjs/src/base/Exchange.js +21 -21
  7. package/dist/cjs/src/base/errors.js +3 -3
  8. package/dist/cjs/src/base/functions/type.js +12 -0
  9. package/dist/cjs/src/bigone.js +2 -2
  10. package/dist/cjs/src/binance.js +896 -217
  11. package/dist/cjs/src/bingx.js +1 -1
  12. package/dist/cjs/src/bitfinex.js +1 -1
  13. package/dist/cjs/src/bitfinex2.js +52 -62
  14. package/dist/cjs/src/bitget.js +8 -4
  15. package/dist/cjs/src/bitmart.js +3 -3
  16. package/dist/cjs/src/bitmex.js +4 -4
  17. package/dist/cjs/src/bitrue.js +1 -1
  18. package/dist/cjs/src/bitso.js +1 -1
  19. package/dist/cjs/src/bitteam.js +2 -2
  20. package/dist/cjs/src/btcalpha.js +1 -1
  21. package/dist/cjs/src/bybit.js +3 -3
  22. package/dist/cjs/src/coinbase.js +12 -5
  23. package/dist/cjs/src/coincheck.js +1 -1
  24. package/dist/cjs/src/coinex.js +2 -2
  25. package/dist/cjs/src/coinlist.js +1 -1
  26. package/dist/cjs/src/coinmate.js +1 -1
  27. package/dist/cjs/src/coinmetro.js +2 -2
  28. package/dist/cjs/src/coinsph.js +1 -1
  29. package/dist/cjs/src/cryptocom.js +3 -3
  30. package/dist/cjs/src/digifinex.js +6 -4
  31. package/dist/cjs/src/exmo.js +2 -2
  32. package/dist/cjs/src/gate.js +5 -5
  33. package/dist/cjs/src/gemini.js +3 -3
  34. package/dist/cjs/src/hitbtc.js +14 -20
  35. package/dist/cjs/src/hollaex.js +2 -2
  36. package/dist/cjs/src/htx.js +5 -5
  37. package/dist/cjs/src/huobijp.js +1 -1
  38. package/dist/cjs/src/krakenfutures.js +1 -1
  39. package/dist/cjs/src/kucoin.js +17 -17
  40. package/dist/cjs/src/kucoinfutures.js +3 -3
  41. package/dist/cjs/src/lbank.js +1 -1
  42. package/dist/cjs/src/mexc.js +7 -7
  43. package/dist/cjs/src/novadax.js +1 -1
  44. package/dist/cjs/src/okcoin.js +2 -2
  45. package/dist/cjs/src/okx.js +7 -6
  46. package/dist/cjs/src/p2b.js +1 -0
  47. package/dist/cjs/src/phemex.js +3 -3
  48. package/dist/cjs/src/poloniexfutures.js +3 -3
  49. package/dist/cjs/src/pro/alpaca.js +1 -1
  50. package/dist/cjs/src/pro/binance.js +4 -4
  51. package/dist/cjs/src/pro/bitget.js +1 -1
  52. package/dist/cjs/src/pro/bitmart.js +1 -1
  53. package/dist/cjs/src/pro/bitmex.js +49 -6
  54. package/dist/cjs/src/pro/bitvavo.js +1 -1
  55. package/dist/cjs/src/pro/bybit.js +2 -2
  56. package/dist/cjs/src/pro/cex.js +2 -2
  57. package/dist/cjs/src/pro/independentreserve.js +1 -1
  58. package/dist/cjs/src/pro/okx.js +1 -1
  59. package/dist/cjs/src/pro/onetrading.js +2 -2
  60. package/dist/cjs/src/pro/p2b.js +432 -0
  61. package/dist/cjs/src/pro/probit.js +5 -5
  62. package/dist/cjs/src/pro/whitebit.js +1 -1
  63. package/dist/cjs/src/probit.js +1 -1
  64. package/dist/cjs/src/timex.js +1 -1
  65. package/dist/cjs/src/tokocrypto.js +3 -3
  66. package/dist/cjs/src/wavesexchange.js +2 -2
  67. package/dist/cjs/src/whitebit.js +2 -2
  68. package/dist/cjs/src/woo.js +3 -3
  69. package/dist/cjs/src/yobit.js +1 -1
  70. package/dist/cjs/src/zaif.js +1 -1
  71. package/dist/cjs/src/zonda.js +3 -3
  72. package/js/ccxt.d.ts +4 -1
  73. package/js/ccxt.js +3 -1
  74. package/js/src/abstract/bybit.d.ts +2 -2
  75. package/js/src/ascendex.js +5 -5
  76. package/js/src/base/Exchange.d.ts +1 -1
  77. package/js/src/base/Exchange.js +21 -21
  78. package/js/src/base/errorHierarchy.d.ts +7 -6
  79. package/js/src/base/errorHierarchy.js +7 -6
  80. package/js/src/base/errors.d.ts +3 -3
  81. package/js/src/base/errors.js +3 -3
  82. package/js/src/base/functions/type.js +12 -0
  83. package/js/src/bigone.js +2 -2
  84. package/js/src/binance.d.ts +1 -0
  85. package/js/src/binance.js +897 -218
  86. package/js/src/bingx.js +1 -1
  87. package/js/src/bitfinex.js +1 -1
  88. package/js/src/bitfinex2.js +52 -62
  89. package/js/src/bitget.js +8 -4
  90. package/js/src/bitmart.js +3 -3
  91. package/js/src/bitmex.js +4 -4
  92. package/js/src/bitrue.js +1 -1
  93. package/js/src/bitso.d.ts +1 -1
  94. package/js/src/bitso.js +1 -1
  95. package/js/src/bitteam.js +2 -2
  96. package/js/src/btcalpha.js +1 -1
  97. package/js/src/bybit.js +3 -3
  98. package/js/src/coinbase.js +12 -5
  99. package/js/src/coincheck.js +1 -1
  100. package/js/src/coinex.js +2 -2
  101. package/js/src/coinlist.js +1 -1
  102. package/js/src/coinmate.js +1 -1
  103. package/js/src/coinmetro.d.ts +1 -1
  104. package/js/src/coinmetro.js +2 -2
  105. package/js/src/coinsph.js +1 -1
  106. package/js/src/cryptocom.js +3 -3
  107. package/js/src/digifinex.js +6 -4
  108. package/js/src/exmo.js +2 -2
  109. package/js/src/gate.js +5 -5
  110. package/js/src/gemini.d.ts +1 -1
  111. package/js/src/gemini.js +3 -3
  112. package/js/src/hitbtc.js +14 -20
  113. package/js/src/hollaex.js +2 -2
  114. package/js/src/htx.js +5 -5
  115. package/js/src/huobijp.js +1 -1
  116. package/js/src/krakenfutures.js +1 -1
  117. package/js/src/kucoin.js +17 -17
  118. package/js/src/kucoinfutures.js +3 -3
  119. package/js/src/lbank.js +1 -1
  120. package/js/src/mexc.js +7 -7
  121. package/js/src/novadax.js +1 -1
  122. package/js/src/okcoin.js +2 -2
  123. package/js/src/okx.js +7 -6
  124. package/js/src/p2b.js +1 -0
  125. package/js/src/phemex.js +3 -3
  126. package/js/src/poloniexfutures.js +3 -3
  127. package/js/src/pro/alpaca.js +1 -1
  128. package/js/src/pro/binance.js +4 -4
  129. package/js/src/pro/bitget.js +1 -1
  130. package/js/src/pro/bitmart.js +1 -1
  131. package/js/src/pro/bitmex.d.ts +2 -1
  132. package/js/src/pro/bitmex.js +49 -6
  133. package/js/src/pro/bitvavo.js +1 -1
  134. package/js/src/pro/bybit.js +2 -2
  135. package/js/src/pro/cex.js +2 -2
  136. package/js/src/pro/independentreserve.js +1 -1
  137. package/js/src/pro/okx.js +1 -1
  138. package/js/src/pro/onetrading.js +2 -2
  139. package/js/src/pro/p2b.d.ts +23 -0
  140. package/js/src/pro/p2b.js +433 -0
  141. package/js/src/pro/probit.js +5 -5
  142. package/js/src/pro/whitebit.js +1 -1
  143. package/js/src/probit.js +1 -1
  144. package/js/src/timex.js +1 -1
  145. package/js/src/tokocrypto.js +3 -3
  146. package/js/src/wavesexchange.js +2 -2
  147. package/js/src/whitebit.js +2 -2
  148. package/js/src/woo.js +3 -3
  149. package/js/src/yobit.js +1 -1
  150. package/js/src/zaif.js +1 -1
  151. package/js/src/zonda.d.ts +1 -1
  152. package/js/src/zonda.js +3 -3
  153. package/package.json +1 -1
  154. package/skip-tests.json +3 -10
@@ -1432,234 +1432,885 @@ class binance extends binance$1 {
1432
1432
  'BUSD': 'USD',
1433
1433
  },
1434
1434
  },
1435
- // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2
1436
1435
  'exceptions': {
1436
+ 'spot': {
1437
+ // https://binance-docs.github.io/apidocs/spot/en/#error-codes
1438
+ 'exact': {
1439
+ '-1000': errors.OperationFailed,
1440
+ '-1001': errors.OperationFailed,
1441
+ '-1002': errors.AuthenticationError,
1442
+ '-1003': errors.RateLimitExceeded,
1443
+ '-1004': errors.OperationFailed,
1444
+ '-1006': errors.OperationFailed,
1445
+ '-1007': errors.RequestTimeout,
1446
+ '-1008': errors.OperationFailed,
1447
+ '-1010': errors.OperationFailed,
1448
+ '-1013': errors.OperationFailed,
1449
+ '-1014': errors.InvalidOrder,
1450
+ '-1015': errors.RateLimitExceeded,
1451
+ '-1016': errors.BadRequest,
1452
+ '-1020': errors.BadRequest,
1453
+ '-1021': errors.InvalidNonce,
1454
+ '-1022': errors.AuthenticationError,
1455
+ '-1099': errors.AuthenticationError,
1456
+ '-1100': errors.BadRequest,
1457
+ '-1101': errors.BadRequest,
1458
+ '-1102': errors.BadRequest,
1459
+ '-1103': errors.BadRequest,
1460
+ '-1104': errors.BadRequest,
1461
+ '-1105': errors.BadRequest,
1462
+ '-1106': errors.BadRequest,
1463
+ '-1108': errors.BadRequest,
1464
+ '-1111': errors.BadRequest,
1465
+ '-1112': errors.OperationFailed,
1466
+ '-1114': errors.BadRequest,
1467
+ '-1115': errors.BadRequest,
1468
+ '-1116': errors.BadRequest,
1469
+ '-1117': errors.BadRequest,
1470
+ '-1118': errors.BadRequest,
1471
+ '-1119': errors.BadRequest,
1472
+ '-1120': errors.BadRequest,
1473
+ '-1121': errors.BadSymbol,
1474
+ '-1125': errors.AuthenticationError,
1475
+ '-1127': errors.BadRequest,
1476
+ '-1128': errors.BadRequest,
1477
+ '-1130': errors.BadRequest,
1478
+ '-1131': errors.BadRequest,
1479
+ '-1134': errors.BadRequest,
1480
+ '-1135': errors.BadRequest,
1481
+ '-1145': errors.BadRequest,
1482
+ '-1151': errors.BadSymbol,
1483
+ '-2008': errors.AuthenticationError,
1484
+ '-2010': errors.InvalidOrder,
1485
+ '-2011': errors.OrderNotFound,
1486
+ '-2013': errors.OrderNotFound,
1487
+ '-2014': errors.AuthenticationError,
1488
+ '-2015': errors.AuthenticationError,
1489
+ '-2016': errors.OperationRejected,
1490
+ '-2021': errors.BadResponse,
1491
+ '-2022': errors.BadResponse,
1492
+ '-2026': errors.InvalidOrder,
1493
+ // 3xxx errors are available only for spot
1494
+ '-3000': errors.OperationFailed,
1495
+ '-3001': errors.AuthenticationError,
1496
+ '-3002': errors.BadSymbol,
1497
+ '-3003': errors.BadRequest,
1498
+ '-3004': errors.OperationRejected,
1499
+ '-3005': errors.BadRequest,
1500
+ '-3006': errors.BadRequest,
1501
+ '-3007': errors.OperationFailed,
1502
+ '-3008': errors.BadRequest,
1503
+ '-3009': errors.OperationRejected,
1504
+ '-3010': errors.BadRequest,
1505
+ '-3011': errors.BadRequest,
1506
+ '-3012': errors.OperationRejected,
1507
+ '-3013': errors.BadRequest,
1508
+ '-3014': errors.AccountSuspended,
1509
+ '-3015': errors.BadRequest,
1510
+ '-3016': errors.BadRequest,
1511
+ '-3017': errors.OperationRejected,
1512
+ '-3018': errors.AccountSuspended,
1513
+ '-3019': errors.AccountSuspended,
1514
+ '-3020': errors.BadRequest,
1515
+ '-3021': errors.BadRequest,
1516
+ '-3022': errors.AccountSuspended,
1517
+ '-3023': errors.OperationRejected,
1518
+ '-3024': errors.OperationRejected,
1519
+ '-3025': errors.BadRequest,
1520
+ '-3026': errors.BadRequest,
1521
+ '-3027': errors.BadSymbol,
1522
+ '-3028': errors.BadSymbol,
1523
+ '-3029': errors.OperationFailed,
1524
+ '-3036': errors.AccountSuspended,
1525
+ '-3037': errors.OperationFailed,
1526
+ '-3038': errors.BadRequest,
1527
+ '-3041': errors.InsufficientFunds,
1528
+ '-3042': errors.BadRequest,
1529
+ '-3043': errors.PermissionDenied,
1530
+ '-3044': errors.OperationFailed,
1531
+ '-3045': errors.OperationFailed,
1532
+ '-3999': errors.PermissionDenied,
1533
+ '-4001': errors.BadRequest,
1534
+ '-4002': errors.BadRequest,
1535
+ '-4003': errors.BadRequest,
1536
+ '-4004': errors.AuthenticationError,
1537
+ '-4005': errors.RateLimitExceeded,
1538
+ '-4006': errors.BadRequest,
1539
+ '-4007': errors.PermissionDenied,
1540
+ '-4008': errors.PermissionDenied,
1541
+ '-4009': errors.ExchangeError,
1542
+ '-4010': errors.PermissionDenied,
1543
+ '-4011': errors.BadRequest,
1544
+ '-4012': errors.PermissionDenied,
1545
+ '-4013': errors.AuthenticationError,
1546
+ '-4014': errors.OperationFailed,
1547
+ '-4015': errors.PermissionDenied,
1548
+ '-4016': errors.PermissionDenied,
1549
+ '-4017': errors.PermissionDenied,
1550
+ '-4018': errors.BadSymbol,
1551
+ '-4019': errors.BadRequest,
1552
+ '-4021': errors.BadRequest,
1553
+ '-4022': errors.BadRequest,
1554
+ '-4023': errors.OperationFailed,
1555
+ '-4024': errors.InsufficientFunds,
1556
+ '-4025': errors.InsufficientFunds,
1557
+ '-4026': errors.InsufficientFunds,
1558
+ '-4027': errors.OperationFailed,
1559
+ '-4028': errors.BadRequest,
1560
+ '-4029': errors.BadRequest,
1561
+ '-4030': errors.BadResponse,
1562
+ '-4031': errors.OperationFailed,
1563
+ '-4032': errors.OperationFailed,
1564
+ '-4033': errors.BadRequest,
1565
+ '-4034': errors.OperationRejected,
1566
+ '-4035': errors.PermissionDenied,
1567
+ '-4036': errors.PermissionDenied,
1568
+ '-4037': errors.OperationFailed,
1569
+ '-4038': errors.OperationFailed,
1570
+ '-4039': errors.PermissionDenied,
1571
+ '-4040': errors.OperationRejected,
1572
+ '-4041': errors.OperationFailed,
1573
+ '-4042': errors.OperationRejected,
1574
+ '-4043': errors.OperationRejected,
1575
+ '-4044': errors.PermissionDenied,
1576
+ '-4045': errors.OperationFailed,
1577
+ '-4046': errors.AuthenticationError,
1578
+ '-4047': errors.BadRequest,
1579
+ '-4060': errors.OperationFailed,
1580
+ '-5001': errors.BadRequest,
1581
+ '-5002': errors.InsufficientFunds,
1582
+ '-5003': errors.InsufficientFunds,
1583
+ '-5004': errors.OperationRejected,
1584
+ '-5005': errors.OperationRejected,
1585
+ '-5006': errors.OperationFailed,
1586
+ '-5007': errors.BadRequest,
1587
+ '-5008': errors.OperationRejected,
1588
+ '-5009': errors.BadSymbol,
1589
+ '-5010': errors.OperationFailed,
1590
+ '-5011': errors.BadRequest,
1591
+ '-5012': errors.OperationFailed,
1592
+ '-5013': errors.InsufficientFunds,
1593
+ '-5021': errors.BadRequest,
1594
+ '-5022': errors.BadRequest,
1595
+ '-6001': errors.BadSymbol,
1596
+ '-6003': errors.PermissionDenied,
1597
+ '-6004': errors.BadRequest,
1598
+ '-6005': errors.BadRequest,
1599
+ '-6006': errors.BadRequest,
1600
+ '-6007': errors.OperationFailed,
1601
+ '-6008': errors.OperationFailed,
1602
+ '-6009': errors.RateLimitExceeded,
1603
+ '-6011': errors.OperationRejected,
1604
+ '-6012': errors.InsufficientFunds,
1605
+ '-6013': errors.BadResponse,
1606
+ '-6014': errors.OperationRejected,
1607
+ '-6015': errors.BadRequest,
1608
+ '-6016': errors.BadRequest,
1609
+ '-6017': errors.PermissionDenied,
1610
+ '-6018': errors.InsufficientFunds,
1611
+ '-6019': errors.OperationRejected,
1612
+ '-6020': errors.BadRequest,
1613
+ '-7001': errors.BadRequest,
1614
+ '-7002': errors.BadRequest,
1615
+ '-10001': errors.OperationFailed,
1616
+ '-10002': errors.BadRequest,
1617
+ '-10005': errors.BadResponse,
1618
+ '-10007': errors.BadRequest,
1619
+ '-10008': errors.BadRequest,
1620
+ '-10009': errors.BadRequest,
1621
+ '-10010': errors.BadRequest,
1622
+ '-10011': errors.InsufficientFunds,
1623
+ '-10012': errors.BadRequest,
1624
+ '-10013': errors.InsufficientFunds,
1625
+ '-10015': errors.OperationFailed,
1626
+ '-10016': errors.OperationFailed,
1627
+ '-10017': errors.OperationRejected,
1628
+ '-10018': errors.BadRequest,
1629
+ '-10019': errors.BadRequest,
1630
+ '-10020': errors.BadRequest,
1631
+ '-10021': errors.InvalidOrder,
1632
+ '-10022': errors.BadRequest,
1633
+ '-10023': errors.OperationFailed,
1634
+ '-10024': errors.BadRequest,
1635
+ '-10025': errors.OperationFailed,
1636
+ '-10026': errors.BadRequest,
1637
+ '-10028': errors.BadRequest,
1638
+ '-10029': errors.OperationRejected,
1639
+ '-10030': errors.OperationRejected,
1640
+ '-10031': errors.OperationRejected,
1641
+ '-10032': errors.OperationFailed,
1642
+ '-10034': errors.OperationRejected,
1643
+ '-10039': errors.OperationRejected,
1644
+ '-10040': errors.OperationRejected,
1645
+ '-10041': errors.OperationFailed,
1646
+ '-10042': errors.BadSymbol,
1647
+ '-10043': errors.OperationRejected,
1648
+ '-10044': errors.OperationRejected,
1649
+ '-10045': errors.OperationRejected,
1650
+ '-10046': errors.OperationRejected,
1651
+ '-10047': errors.PermissionDenied,
1652
+ '-11008': errors.OperationRejected,
1653
+ '-12014': errors.RateLimitExceeded,
1654
+ // BLVT
1655
+ '-13000': errors.OperationRejected,
1656
+ '-13001': errors.OperationRejected,
1657
+ '-13002': errors.OperationRejected,
1658
+ '-13003': errors.PermissionDenied,
1659
+ '-13004': errors.OperationRejected,
1660
+ '-13005': errors.OperationRejected,
1661
+ '-13006': errors.OperationRejected,
1662
+ '-13007': errors.PermissionDenied,
1663
+ // 18xxx - BINANCE CODE
1664
+ '-18002': errors.OperationRejected,
1665
+ '-18003': errors.OperationRejected,
1666
+ '-18004': errors.OperationRejected,
1667
+ '-18005': errors.PermissionDenied,
1668
+ '-18006': errors.OperationRejected,
1669
+ '-18007': errors.OperationRejected,
1670
+ // spot & futures algo (TBD for OPTIONS & PORTFOLIO MARGIN)
1671
+ '-20121': errors.BadSymbol,
1672
+ '-20124': errors.BadRequest,
1673
+ '-20130': errors.BadRequest,
1674
+ '-20132': errors.BadRequest,
1675
+ '-20194': errors.BadRequest,
1676
+ '-20195': errors.BadRequest,
1677
+ '-20196': errors.BadRequest,
1678
+ '-20198': errors.OperationRejected,
1679
+ '-20204': errors.BadRequest,
1680
+ // 21xxx - PORTFOLIO MARGIN
1681
+ '-21001': errors.BadRequest,
1682
+ '-21002': errors.BadRequest,
1683
+ '-21003': errors.BadResponse,
1684
+ '-21004': errors.OperationRejected,
1685
+ '-21005': errors.InsufficientFunds,
1686
+ '-21006': errors.OperationFailed,
1687
+ '-21007': errors.OperationFailed,
1688
+ '-32603': errors.BadRequest,
1689
+ '400002': errors.BadRequest,
1690
+ '100001003': errors.AuthenticationError,
1691
+ '200003903': errors.AuthenticationError, // undocumented, {"code":200003903,"msg":"Your identity verification has been rejected. Please complete identity verification again."}
1692
+ },
1693
+ },
1694
+ 'linear': {
1695
+ // https://binance-docs.github.io/apidocs/futures/en/#error-codes
1696
+ 'exact': {
1697
+ '-1000': errors.OperationFailed,
1698
+ '-1001': errors.OperationFailed,
1699
+ '-1002': errors.AuthenticationError,
1700
+ '-1003': errors.RateLimitExceeded,
1701
+ '-1004': errors.OperationRejected,
1702
+ '-1005': errors.PermissionDenied,
1703
+ '-1006': errors.OperationFailed,
1704
+ '-1007': errors.RequestTimeout,
1705
+ '-1008': errors.OperationFailed,
1706
+ '-1010': errors.OperationFailed,
1707
+ '-1011': errors.PermissionDenied,
1708
+ '-1013': errors.BadRequest,
1709
+ '-1014': errors.InvalidOrder,
1710
+ '-1015': errors.RateLimitExceeded,
1711
+ '-1016': errors.BadRequest,
1712
+ '-1020': errors.BadRequest,
1713
+ '-1021': errors.InvalidNonce,
1714
+ '-1022': errors.AuthenticationError,
1715
+ '-1023': errors.BadRequest,
1716
+ '-1099': errors.AuthenticationError,
1717
+ '-1100': errors.BadRequest,
1718
+ '-1101': errors.BadRequest,
1719
+ '-1102': errors.BadRequest,
1720
+ '-1103': errors.BadRequest,
1721
+ '-1104': errors.BadRequest,
1722
+ '-1105': errors.BadRequest,
1723
+ '-1106': errors.BadRequest,
1724
+ '-1108': errors.BadSymbol,
1725
+ '-1109': errors.PermissionDenied,
1726
+ '-1110': errors.BadRequest,
1727
+ '-1111': errors.BadRequest,
1728
+ '-1112': errors.OperationFailed,
1729
+ '-1113': errors.BadRequest,
1730
+ '-1114': errors.BadRequest,
1731
+ '-1115': errors.BadRequest,
1732
+ '-1116': errors.BadRequest,
1733
+ '-1117': errors.BadRequest,
1734
+ '-1118': errors.BadRequest,
1735
+ '-1119': errors.BadRequest,
1736
+ '-1120': errors.BadRequest,
1737
+ '-1121': errors.BadSymbol,
1738
+ '-1122': errors.BadRequest,
1739
+ '-1125': errors.AuthenticationError,
1740
+ '-1126': errors.BadSymbol,
1741
+ '-1127': errors.BadRequest,
1742
+ '-1128': errors.BadRequest,
1743
+ '-1130': errors.BadRequest,
1744
+ '-1136': errors.BadRequest,
1745
+ '-2010': errors.OrderNotFound,
1746
+ '-2011': errors.OrderNotFound,
1747
+ '-2012': errors.OperationFailed,
1748
+ '-2013': errors.OrderNotFound,
1749
+ '-2014': errors.AuthenticationError,
1750
+ '-2015': errors.AuthenticationError,
1751
+ '-2016': errors.OperationRejected,
1752
+ '-2017': errors.PermissionDenied,
1753
+ '-2018': errors.InsufficientFunds,
1754
+ '-2019': errors.InsufficientFunds,
1755
+ '-2020': errors.OperationFailed,
1756
+ '-2021': errors.OrderImmediatelyFillable,
1757
+ '-2022': errors.InvalidOrder,
1758
+ '-2023': errors.OperationFailed,
1759
+ '-2024': errors.InsufficientFunds,
1760
+ '-2025': errors.OperationRejected,
1761
+ '-2026': errors.InvalidOrder,
1762
+ '-2027': errors.OperationRejected,
1763
+ '-2028': errors.OperationRejected,
1764
+ '-4000': errors.InvalidOrder,
1765
+ '-4001': errors.BadRequest,
1766
+ '-4002': errors.BadRequest,
1767
+ '-4003': errors.BadRequest,
1768
+ '-4004': errors.BadRequest,
1769
+ '-4005': errors.BadRequest,
1770
+ '-4006': errors.BadRequest,
1771
+ '-4007': errors.BadRequest,
1772
+ '-4008': errors.BadRequest,
1773
+ '-4009': errors.BadRequest,
1774
+ '-4010': errors.BadRequest,
1775
+ '-4011': errors.BadRequest,
1776
+ '-4012': errors.BadRequest,
1777
+ '-4013': errors.BadRequest,
1778
+ '-4014': errors.BadRequest,
1779
+ '-4015': errors.BadRequest,
1780
+ '-4016': errors.OperationRejected,
1781
+ '-4017': errors.BadRequest,
1782
+ '-4018': errors.BadRequest,
1783
+ '-4019': errors.OperationRejected,
1784
+ '-4020': errors.BadRequest,
1785
+ '-4021': errors.BadRequest,
1786
+ '-4022': errors.BadRequest,
1787
+ '-4023': errors.BadRequest,
1788
+ '-4024': errors.BadRequest,
1789
+ '-4025': errors.BadRequest,
1790
+ '-4026': errors.BadRequest,
1791
+ '-4027': errors.BadRequest,
1792
+ '-4028': errors.BadRequest,
1793
+ '-4029': errors.BadRequest,
1794
+ '-4030': errors.BadRequest,
1795
+ '-4031': errors.BadRequest,
1796
+ '-4032': errors.OperationRejected,
1797
+ '-4033': errors.BadRequest,
1798
+ '-4044': errors.BadRequest,
1799
+ '-4045': errors.OperationRejected,
1800
+ '-4046': errors.OperationRejected,
1801
+ '-4047': errors.OperationRejected,
1802
+ '-4048': errors.OperationRejected,
1803
+ '-4049': errors.BadRequest,
1804
+ '-4050': errors.InsufficientFunds,
1805
+ '-4051': errors.InsufficientFunds,
1806
+ '-4052': errors.OperationRejected,
1807
+ '-4053': errors.BadRequest,
1808
+ '-4054': errors.OperationRejected,
1809
+ '-4055': errors.BadRequest,
1810
+ '-4056': errors.AuthenticationError,
1811
+ '-4057': errors.AuthenticationError,
1812
+ '-4058': errors.BadRequest,
1813
+ '-4059': errors.OperationRejected,
1814
+ '-4060': errors.BadRequest,
1815
+ '-4061': errors.BadRequest,
1816
+ '-4062': errors.BadRequest,
1817
+ '-4063': errors.BadRequest,
1818
+ '-4064': errors.BadRequest,
1819
+ '-4065': errors.BadRequest,
1820
+ '-4066': errors.BadRequest,
1821
+ '-4067': errors.OperationRejected,
1822
+ '-4068': errors.OperationRejected,
1823
+ '-4069': errors.BadRequest,
1824
+ '-4070': errors.BadRequest,
1825
+ '-4071': errors.BadRequest,
1826
+ '-4072': errors.OperationRejected,
1827
+ '-4073': errors.BadRequest,
1828
+ '-4074': errors.OperationRejected,
1829
+ '-4075': errors.BadRequest,
1830
+ '-4076': errors.OperationRejected,
1831
+ '-4077': errors.OperationRejected,
1832
+ '-4078': errors.OperationFailed,
1833
+ '-4079': errors.BadRequest,
1834
+ '-4080': errors.PermissionDenied,
1835
+ '-4081': errors.BadRequest,
1836
+ '-4082': errors.OperationRejected,
1837
+ '-4083': errors.OperationFailed,
1838
+ '-4084': errors.BadRequest,
1839
+ '-4085': errors.BadRequest,
1840
+ '-4086': errors.BadRequest,
1841
+ '-4087': errors.PermissionDenied,
1842
+ '-4088': errors.PermissionDenied,
1843
+ '-4104': errors.BadRequest,
1844
+ '-4114': errors.BadRequest,
1845
+ '-4115': errors.BadRequest,
1846
+ '-4118': errors.OperationRejected,
1847
+ '-4131': errors.OperationRejected,
1848
+ '-4135': errors.BadRequest,
1849
+ '-4137': errors.BadRequest,
1850
+ '-4138': errors.BadRequest,
1851
+ '-4139': errors.BadRequest,
1852
+ '-4140': errors.BadRequest,
1853
+ '-4141': errors.OperationRejected,
1854
+ '-4142': errors.OrderImmediatelyFillable,
1855
+ '-4144': errors.BadSymbol,
1856
+ '-4164': errors.OperationRejected,
1857
+ '-4165': errors.BadRequest,
1858
+ '-4167': errors.BadRequest,
1859
+ '-4168': errors.BadRequest,
1860
+ '-4169': errors.OperationRejected,
1861
+ '-4170': errors.OperationRejected,
1862
+ '-4171': errors.OperationRejected,
1863
+ '-4172 ': errors.OperationRejected,
1864
+ '-4183': errors.BadRequest,
1865
+ '-4184': errors.BadRequest,
1866
+ '-4192': errors.PermissionDenied,
1867
+ '-4202': errors.PermissionDenied,
1868
+ '-4203': errors.PermissionDenied,
1869
+ '-4205': errors.PermissionDenied,
1870
+ '-4206': errors.PermissionDenied,
1871
+ '-4208': errors.OperationRejected,
1872
+ '-4209': errors.OperationRejected,
1873
+ '-4210': errors.BadRequest,
1874
+ '-4211': errors.BadRequest,
1875
+ '-4400': errors.PermissionDenied,
1876
+ '-4401': errors.PermissionDenied,
1877
+ '-4402': errors.PermissionDenied,
1878
+ '-4403': errors.PermissionDenied,
1879
+ '-5021': errors.OrderNotFillable,
1880
+ '-5022': errors.OrderNotFillable,
1881
+ '-5024': errors.OperationRejected,
1882
+ '-5025': errors.OperationRejected,
1883
+ '-5026': errors.OperationRejected,
1884
+ '-5027': errors.OperationRejected,
1885
+ '-5028': errors.BadRequest,
1886
+ '-5037': errors.BadRequest,
1887
+ '-5038': errors.BadRequest,
1888
+ '-5039': errors.BadRequest,
1889
+ '-5040': errors.BadRequest,
1890
+ '-5041': errors.OperationFailed,
1891
+ //
1892
+ // spot & futures algo (TBD for OPTIONS & PORTFOLIO MARGIN)
1893
+ //
1894
+ '-20121': errors.BadSymbol,
1895
+ '-20124': errors.BadRequest,
1896
+ '-20130': errors.BadRequest,
1897
+ '-20132': errors.BadRequest,
1898
+ '-20194': errors.BadRequest,
1899
+ '-20195': errors.BadRequest,
1900
+ '-20196': errors.BadRequest,
1901
+ '-20198': errors.OperationRejected,
1902
+ '-20204': errors.BadRequest, // The notional of USD is less or more than the limit.
1903
+ },
1904
+ },
1905
+ 'inverse': {
1906
+ // https://binance-docs.github.io/apidocs/delivery/en/#error-codes
1907
+ 'exact': {
1908
+ '-1000': errors.OperationFailed,
1909
+ '-1001': errors.OperationFailed,
1910
+ '-1002': errors.AuthenticationError,
1911
+ '-1003': errors.RateLimitExceeded,
1912
+ '-1004': errors.OperationRejected,
1913
+ '-1005': errors.PermissionDenied,
1914
+ '-1006': errors.OperationFailed,
1915
+ '-1007': errors.RequestTimeout,
1916
+ '-1010': errors.OperationFailed,
1917
+ '-1011': errors.PermissionDenied,
1918
+ '-1013': errors.BadRequest,
1919
+ '-1014': errors.InvalidOrder,
1920
+ '-1015': errors.RateLimitExceeded,
1921
+ '-1016': errors.BadRequest,
1922
+ '-1020': errors.BadRequest,
1923
+ '-1021': errors.InvalidNonce,
1924
+ '-1022': errors.AuthenticationError,
1925
+ '-1023': errors.BadRequest,
1926
+ '-1100': errors.BadRequest,
1927
+ '-1101': errors.BadRequest,
1928
+ '-1102': errors.BadRequest,
1929
+ '-1103': errors.BadRequest,
1930
+ '-1104': errors.BadRequest,
1931
+ '-1105': errors.BadRequest,
1932
+ '-1106': errors.BadRequest,
1933
+ '-1108': errors.BadSymbol,
1934
+ '-1109': errors.AuthenticationError,
1935
+ '-1110': errors.BadSymbol,
1936
+ '-1111': errors.BadRequest,
1937
+ '-1112': errors.OperationFailed,
1938
+ '-1113': errors.BadRequest,
1939
+ '-1114': errors.BadRequest,
1940
+ '-1115': errors.BadRequest,
1941
+ '-1116': errors.BadRequest,
1942
+ '-1117': errors.BadRequest,
1943
+ '-1118': errors.BadRequest,
1944
+ '-1119': errors.BadRequest,
1945
+ '-1120': errors.BadRequest,
1946
+ '-1121': errors.BadSymbol,
1947
+ '-1125': errors.AuthenticationError,
1948
+ '-1127': errors.BadRequest,
1949
+ '-1128': errors.BadRequest,
1950
+ '-1130': errors.BadRequest,
1951
+ '-1136': errors.BadRequest,
1952
+ '-2010': errors.InvalidOrder,
1953
+ '-2011': errors.OrderNotFound,
1954
+ '-2013': errors.OrderNotFound,
1955
+ '-2014': errors.AuthenticationError,
1956
+ '-2015': errors.AuthenticationError,
1957
+ '-2016': errors.OperationRejected,
1958
+ '-2018': errors.InsufficientFunds,
1959
+ '-2019': errors.InsufficientFunds,
1960
+ '-2020': errors.OperationFailed,
1961
+ '-2021': errors.OrderImmediatelyFillable,
1962
+ '-2022': errors.InvalidOrder,
1963
+ '-2023': errors.OperationFailed,
1964
+ '-2024': errors.BadRequest,
1965
+ '-2025': errors.OperationRejected,
1966
+ '-2026': errors.InvalidOrder,
1967
+ '-2027': errors.OperationRejected,
1968
+ '-2028': errors.OperationRejected,
1969
+ '-4000': errors.InvalidOrder,
1970
+ '-4001': errors.BadRequest,
1971
+ '-4002': errors.BadRequest,
1972
+ '-4003': errors.BadRequest,
1973
+ '-4004': errors.BadRequest,
1974
+ '-4005': errors.BadRequest,
1975
+ '-4006': errors.BadRequest,
1976
+ '-4007': errors.BadRequest,
1977
+ '-4008': errors.BadRequest,
1978
+ '-4009': errors.BadRequest,
1979
+ '-4010': errors.BadRequest,
1980
+ '-4011': errors.BadRequest,
1981
+ '-4012': errors.BadRequest,
1982
+ '-4013': errors.BadRequest,
1983
+ '-4014': errors.BadRequest,
1984
+ '-4015': errors.BadRequest,
1985
+ '-4016': errors.BadRequest,
1986
+ '-4017': errors.BadRequest,
1987
+ '-4018': errors.BadRequest,
1988
+ '-4019': errors.OperationRejected,
1989
+ '-4020': errors.BadRequest,
1990
+ '-4021': errors.BadRequest,
1991
+ '-4022': errors.BadRequest,
1992
+ '-4023': errors.BadRequest,
1993
+ '-4024': errors.BadRequest,
1994
+ '-4025': errors.BadRequest,
1995
+ '-4026': errors.BadRequest,
1996
+ '-4027': errors.BadRequest,
1997
+ '-4028': errors.BadRequest,
1998
+ '-4029': errors.BadRequest,
1999
+ '-4030': errors.BadRequest,
2000
+ '-4031': errors.BadRequest,
2001
+ '-4032': errors.OperationRejected,
2002
+ '-4033': errors.BadRequest,
2003
+ '-4044': errors.BadRequest,
2004
+ '-4045': errors.OperationRejected,
2005
+ '-4046': errors.BadRequest,
2006
+ '-4047': errors.OperationRejected,
2007
+ '-4048': errors.OperationRejected,
2008
+ '-4049': errors.OperationRejected,
2009
+ '-4050': errors.InsufficientFunds,
2010
+ '-4051': errors.InsufficientFunds,
2011
+ '-4052': errors.OperationRejected,
2012
+ '-4053': errors.OperationRejected,
2013
+ '-4054': errors.OperationRejected,
2014
+ '-4055': errors.BadRequest,
2015
+ '-4056': errors.AuthenticationError,
2016
+ '-4057': errors.AuthenticationError,
2017
+ '-4058': errors.BadRequest,
2018
+ '-4059': errors.OperationRejected,
2019
+ '-4060': errors.BadRequest,
2020
+ '-4061': errors.OperationRejected,
2021
+ '-4062': errors.BadRequest,
2022
+ //
2023
+ '-4067': errors.OperationRejected,
2024
+ '-4068': errors.OperationRejected,
2025
+ '-4082': errors.OperationRejected,
2026
+ '-4083': errors.OperationRejected,
2027
+ '-4084': errors.BadRequest,
2028
+ '-4086': errors.BadRequest,
2029
+ '-4087': errors.BadSymbol,
2030
+ '-4088': errors.BadRequest,
2031
+ '-4089': errors.PermissionDenied,
2032
+ '-4090': errors.PermissionDenied,
2033
+ '-4104': errors.BadRequest,
2034
+ '-4110': errors.BadRequest,
2035
+ '-4111': errors.BadRequest,
2036
+ '-4112': errors.OperationRejected,
2037
+ '-4113': errors.OperationRejected,
2038
+ '-4135': errors.BadRequest,
2039
+ '-4137': errors.BadRequest,
2040
+ '-4138': errors.BadRequest,
2041
+ '-4139': errors.BadRequest,
2042
+ '-4142': errors.OrderImmediatelyFillable,
2043
+ '-4150': errors.OperationRejected,
2044
+ '-4151': errors.BadRequest,
2045
+ '-4152': errors.BadRequest,
2046
+ '-4154': errors.BadRequest,
2047
+ '-4155': errors.BadRequest,
2048
+ '-4178': errors.BadRequest,
2049
+ '-4192': errors.PermissionDenied,
2050
+ '-4194': errors.PermissionDenied,
2051
+ '-4195': errors.PermissionDenied,
2052
+ '-4196': errors.BadRequest,
2053
+ '-4197': errors.OperationRejected,
2054
+ '-4198': errors.OperationRejected,
2055
+ '-4199': errors.BadRequest,
2056
+ '-4200': errors.PermissionDenied,
2057
+ '-4201': errors.PermissionDenied,
2058
+ '-4202': errors.OperationRejected,
2059
+ '-4188': errors.BadRequest,
2060
+ //
2061
+ // spot & futures algo
2062
+ //
2063
+ '-20121': errors.BadSymbol,
2064
+ '-20124': errors.BadRequest,
2065
+ '-20130': errors.BadRequest,
2066
+ '-20132': errors.BadRequest,
2067
+ '-20194': errors.BadRequest,
2068
+ '-20195': errors.BadRequest,
2069
+ '-20196': errors.BadRequest,
2070
+ '-20198': errors.OperationRejected,
2071
+ '-20204': errors.BadRequest, // The notional of USD is less or more than the limit.
2072
+ },
2073
+ },
2074
+ 'option': {
2075
+ // https://binance-docs.github.io/apidocs/voptions/en/#error-codes
2076
+ 'exact': {
2077
+ '-1000': errors.OperationFailed,
2078
+ '-1001': errors.OperationFailed,
2079
+ '-1002': errors.AuthenticationError,
2080
+ '-1008': errors.RateLimitExceeded,
2081
+ '-1014': errors.InvalidOrder,
2082
+ '-1015': errors.RateLimitExceeded,
2083
+ '-1016': errors.BadRequest,
2084
+ '-1020': errors.BadRequest,
2085
+ '-1021': errors.InvalidNonce,
2086
+ '-1022': errors.AuthenticationError,
2087
+ '-1100': errors.BadRequest,
2088
+ '-1101': errors.BadRequest,
2089
+ '-1102': errors.BadRequest,
2090
+ '-1103': errors.BadRequest,
2091
+ '-1104': errors.BadRequest,
2092
+ '-1105': errors.BadRequest,
2093
+ '-1106': errors.BadRequest,
2094
+ '-1111': errors.BadRequest,
2095
+ '-1115': errors.BadRequest,
2096
+ '-1116': errors.BadRequest,
2097
+ '-1117': errors.BadRequest,
2098
+ '-1118': errors.BadRequest,
2099
+ '-1119': errors.BadRequest,
2100
+ '-1120': errors.BadRequest,
2101
+ '-1121': errors.BadSymbol,
2102
+ '-1125': errors.AuthenticationError,
2103
+ '-1127': errors.BadRequest,
2104
+ '-1128': errors.BadSymbol,
2105
+ '-1129': errors.BadSymbol,
2106
+ '-1130': errors.BadRequest,
2107
+ '-1131': errors.BadRequest,
2108
+ '-2010': errors.InvalidOrder,
2109
+ '-2013': errors.OrderNotFound,
2110
+ '-2014': errors.AuthenticationError,
2111
+ '-2015': errors.AuthenticationError,
2112
+ '-2018': errors.InsufficientFunds,
2113
+ '-2027': errors.InsufficientFunds,
2114
+ '-3029': errors.OperationFailed,
2115
+ '-4001': errors.BadRequest,
2116
+ '-4002': errors.BadRequest,
2117
+ '-4003': errors.BadRequest,
2118
+ '-4004': errors.BadRequest,
2119
+ '-4005': errors.BadRequest,
2120
+ '-4013': errors.BadRequest,
2121
+ '-4029': errors.BadRequest,
2122
+ '-4030': errors.BadRequest,
2123
+ '-4055': errors.BadRequest, // AMOUNT_MUST_BE_POSITIVE
2124
+ },
2125
+ },
2126
+ 'portfolioMargin': {
2127
+ 'exact': {
2128
+ '-1000': errors.OperationFailed,
2129
+ '-1001': errors.OperationFailed,
2130
+ '-1002': errors.AuthenticationError,
2131
+ '-1003': errors.RateLimitExceeded,
2132
+ '-1004': errors.OperationRejected,
2133
+ '-1005': errors.PermissionDenied,
2134
+ '-1006': errors.OperationFailed,
2135
+ '-1007': errors.RequestTimeout,
2136
+ '-1010': errors.OperationFailed,
2137
+ '-1011': errors.PermissionDenied,
2138
+ '-1013': errors.OperationFailed,
2139
+ '-1014': errors.InvalidOrder,
2140
+ '-1015': errors.RateLimitExceeded,
2141
+ '-1016': errors.BadRequest,
2142
+ '-1020': errors.BadRequest,
2143
+ '-1021': errors.InvalidNonce,
2144
+ '-1022': errors.AuthenticationError,
2145
+ '-1023': errors.BadRequest,
2146
+ '-1100': errors.BadRequest,
2147
+ '-1101': errors.BadRequest,
2148
+ '-1102': errors.BadRequest,
2149
+ '-1103': errors.BadRequest,
2150
+ '-1104': errors.BadRequest,
2151
+ '-1105': errors.BadRequest,
2152
+ '-1106': errors.BadRequest,
2153
+ '-1108': errors.BadSymbol,
2154
+ '-1109': errors.BadRequest,
2155
+ '-1110': errors.BadSymbol,
2156
+ '-1111': errors.BadRequest,
2157
+ '-1112': errors.OperationFailed,
2158
+ '-1113': errors.BadRequest,
2159
+ '-1114': errors.BadRequest,
2160
+ '-1115': errors.BadRequest,
2161
+ '-1116': errors.BadRequest,
2162
+ '-1117': errors.BadRequest,
2163
+ '-1118': errors.BadRequest,
2164
+ '-1119': errors.BadRequest,
2165
+ '-1120': errors.BadRequest,
2166
+ '-1121': errors.BadSymbol,
2167
+ '-1125': errors.AuthenticationError,
2168
+ '-1127': errors.BadRequest,
2169
+ '-1128': errors.BadRequest,
2170
+ '-1130': errors.BadRequest,
2171
+ '-1136': errors.BadRequest,
2172
+ '-2010': errors.InvalidOrder,
2173
+ '-2011': errors.OrderNotFound,
2174
+ '-2013': errors.OrderNotFound,
2175
+ '-2014': errors.AuthenticationError,
2176
+ '-2015': errors.AuthenticationError,
2177
+ '-2016': errors.OperationRejected,
2178
+ '-2018': errors.InsufficientFunds,
2179
+ '-2019': errors.InsufficientFunds,
2180
+ '-2020': errors.OrderNotFillable,
2181
+ '-2021': errors.OrderImmediatelyFillable,
2182
+ '-2022': errors.InvalidOrder,
2183
+ '-2023': errors.OperationFailed,
2184
+ '-2024': errors.OperationRejected,
2185
+ '-2025': errors.OperationRejected,
2186
+ '-2026': errors.InvalidOrder,
2187
+ '-2027': errors.OperationRejected,
2188
+ '-2028': errors.OperationRejected,
2189
+ '-4000': errors.InvalidOrder,
2190
+ '-4001': errors.BadRequest,
2191
+ '-4002': errors.BadRequest,
2192
+ '-4003': errors.BadRequest,
2193
+ '-4004': errors.BadRequest,
2194
+ '-4005': errors.BadRequest,
2195
+ '-4006': errors.BadRequest,
2196
+ '-4007': errors.BadRequest,
2197
+ '-4008': errors.BadRequest,
2198
+ '-4009': errors.BadRequest,
2199
+ '-4010': errors.BadRequest,
2200
+ '-4011': errors.BadRequest,
2201
+ '-4012': errors.BadRequest,
2202
+ '-4013': errors.BadRequest,
2203
+ '-4014': errors.BadRequest,
2204
+ '-4015': errors.BadRequest,
2205
+ '-4016': errors.BadRequest,
2206
+ '-4017': errors.BadRequest,
2207
+ '-4018': errors.BadRequest,
2208
+ '-4019': errors.OperationRejected,
2209
+ '-4020': errors.BadRequest,
2210
+ '-4021': errors.BadRequest,
2211
+ '-4022': errors.BadRequest,
2212
+ '-4023': errors.BadRequest,
2213
+ '-4024': errors.BadRequest,
2214
+ '-4025': errors.BadRequest,
2215
+ '-4026': errors.BadRequest,
2216
+ '-4027': errors.BadRequest,
2217
+ '-4028': errors.BadRequest,
2218
+ '-4029': errors.BadRequest,
2219
+ '-4030': errors.BadRequest,
2220
+ '-4031': errors.BadRequest,
2221
+ '-4032': errors.OperationRejected,
2222
+ '-4033': errors.BadRequest,
2223
+ '-4044': errors.BadRequest,
2224
+ '-4045': errors.OperationRejected,
2225
+ '-4046': errors.OperationRejected,
2226
+ '-4047': errors.OperationRejected,
2227
+ '-4048': errors.OperationRejected,
2228
+ '-4049': errors.BadRequest,
2229
+ '-4050': errors.InsufficientFunds,
2230
+ '-4051': errors.InsufficientFunds,
2231
+ '-4052': errors.OperationRejected,
2232
+ '-4053': errors.BadRequest,
2233
+ '-4054': errors.OperationRejected,
2234
+ '-4055': errors.BadRequest,
2235
+ '-4056': errors.AuthenticationError,
2236
+ '-4057': errors.AuthenticationError,
2237
+ '-4058': errors.BadRequest,
2238
+ '-4059': errors.OperationRejected,
2239
+ '-4060': errors.BadRequest,
2240
+ '-4061': errors.BadRequest,
2241
+ '-4062': errors.BadRequest,
2242
+ '-4063': errors.BadRequest,
2243
+ '-4064': errors.BadRequest,
2244
+ '-4065': errors.BadRequest,
2245
+ '-4066': errors.BadRequest,
2246
+ '-4067': errors.OperationRejected,
2247
+ '-4068': errors.OperationRejected,
2248
+ '-4069': errors.BadRequest,
2249
+ '-4070': errors.BadRequest,
2250
+ '-4071': errors.BadRequest,
2251
+ '-4072': errors.OperationRejected,
2252
+ '-4073': errors.BadRequest,
2253
+ '-4074': errors.BadRequest,
2254
+ '-4075': errors.BadRequest,
2255
+ '-4076': errors.OperationRejected,
2256
+ '-4077': errors.OperationRejected,
2257
+ '-4078': errors.OperationFailed,
2258
+ '-4079': errors.BadRequest,
2259
+ '-4080': errors.PermissionDenied,
2260
+ '-4081': errors.BadRequest,
2261
+ '-4082': errors.BadRequest,
2262
+ '-4083': errors.OperationFailed,
2263
+ '-4084': errors.BadRequest,
2264
+ '-4085': errors.BadRequest,
2265
+ '-4086': errors.BadRequest,
2266
+ '-4087': errors.PermissionDenied,
2267
+ '-4088': errors.PermissionDenied,
2268
+ '-4104': errors.BadRequest,
2269
+ '-4114': errors.BadRequest,
2270
+ '-4115': errors.BadRequest,
2271
+ '-4118': errors.OperationRejected,
2272
+ '-4131': errors.OperationRejected,
2273
+ '-4135': errors.BadRequest,
2274
+ '-4137': errors.BadRequest,
2275
+ '-4138': errors.BadRequest,
2276
+ '-4139': errors.BadRequest,
2277
+ '-4140': errors.BadRequest,
2278
+ '-4141': errors.BadRequest,
2279
+ '-4142': errors.OrderImmediatelyFillable,
2280
+ '-4144': errors.BadSymbol,
2281
+ '-4161': errors.OperationRejected,
2282
+ '-4164': errors.OperationRejected,
2283
+ '-4165': errors.BadRequest,
2284
+ '-4183': errors.BadRequest,
2285
+ '-4184': errors.BadRequest,
2286
+ '-5021': errors.OrderNotFillable,
2287
+ '-5022': errors.OrderNotFillable, // Due to the order could not be executed as maker, the Post Only order will be rejected.
2288
+ },
2289
+ },
1437
2290
  'exact': {
1438
2291
  'System is under maintenance.': errors.OnMaintenance,
1439
- 'System abnormality': errors.ExchangeError,
2292
+ 'System abnormality': errors.OperationFailed,
1440
2293
  'You are not authorized to execute this request.': errors.PermissionDenied,
1441
2294
  'API key does not exist': errors.AuthenticationError,
1442
2295
  'Order would trigger immediately.': errors.OrderImmediatelyFillable,
1443
2296
  'Stop price would trigger immediately.': errors.OrderImmediatelyFillable,
1444
2297
  'Order would immediately match and take.': errors.OrderImmediatelyFillable,
1445
2298
  'Account has insufficient balance for requested action.': errors.InsufficientFunds,
1446
- 'Rest API trading is not enabled.': errors.ExchangeNotAvailable,
1447
- 'This account may not place or cancel orders.': errors.ExchangeNotAvailable,
2299
+ 'Rest API trading is not enabled.': errors.PermissionDenied,
2300
+ 'This account may not place or cancel orders.': errors.PermissionDenied,
1448
2301
  "You don't have permission.": errors.PermissionDenied,
1449
- 'Market is closed.': errors.ExchangeNotAvailable,
1450
- 'Too many requests. Please try again later.': errors.DDoSProtection,
2302
+ 'Market is closed.': errors.OperationRejected,
2303
+ 'Too many requests. Please try again later.': errors.RateLimitExceeded,
1451
2304
  'This action is disabled on this account.': errors.AccountSuspended,
1452
2305
  'Limit orders require GTC for this phase.': errors.BadRequest,
1453
2306
  'This order type is not possible in this trading phase.': errors.BadRequest,
1454
- 'This type of sub-account exceeds the maximum number limit': errors.BadRequest,
2307
+ 'This type of sub-account exceeds the maximum number limit': errors.OperationRejected,
1455
2308
  'This symbol is restricted for this account.': errors.PermissionDenied,
1456
- 'This symbol is not permitted for this account.': errors.PermissionDenied,
1457
- '-1000': errors.ExchangeNotAvailable,
1458
- '-1001': errors.ExchangeNotAvailable,
1459
- '-1002': errors.AuthenticationError,
1460
- '-1003': errors.RateLimitExceeded,
1461
- '-1004': errors.DDoSProtection,
1462
- '-1005': errors.PermissionDenied,
1463
- '-1006': errors.BadResponse,
1464
- '-1007': errors.RequestTimeout,
1465
- '-1010': errors.BadResponse,
1466
- '-1011': errors.PermissionDenied,
1467
- '-1013': errors.InvalidOrder,
1468
- '-1014': errors.InvalidOrder,
1469
- '-1015': errors.RateLimitExceeded,
1470
- '-1016': errors.ExchangeNotAvailable,
1471
- '-1020': errors.BadRequest,
1472
- '-1021': errors.InvalidNonce,
1473
- '-1022': errors.AuthenticationError,
1474
- '-1023': errors.BadRequest,
1475
- '-1099': errors.AuthenticationError,
1476
- '-1100': errors.BadRequest,
1477
- '-1101': errors.BadRequest,
1478
- '-1102': errors.BadRequest,
1479
- '-1103': errors.BadRequest,
1480
- '-1104': errors.BadRequest,
1481
- '-1105': errors.BadRequest,
1482
- '-1106': errors.BadRequest,
1483
- '-1108': errors.BadRequest,
1484
- '-1109': errors.AuthenticationError,
1485
- '-1110': errors.BadRequest,
1486
- '-1111': errors.BadRequest,
1487
- '-1112': errors.InvalidOrder,
1488
- '-1113': errors.BadRequest,
1489
- '-1114': errors.BadRequest,
1490
- '-1115': errors.BadRequest,
1491
- '-1116': errors.BadRequest,
1492
- '-1117': errors.BadRequest,
1493
- '-1118': errors.BadRequest,
1494
- '-1119': errors.BadRequest,
1495
- '-1120': errors.BadRequest,
1496
- '-1121': errors.BadSymbol,
1497
- '-1125': errors.AuthenticationError,
1498
- '-1127': errors.BadRequest,
1499
- '-1128': errors.BadRequest,
1500
- '-1130': errors.BadRequest,
1501
- '-1131': errors.BadRequest,
1502
- '-1135': errors.BadRequest,
1503
- '-1136': errors.BadRequest,
1504
- '-2008': errors.AuthenticationError,
1505
- '-2010': errors.ExchangeError,
1506
- '-2011': errors.OrderNotFound,
1507
- '-2013': errors.OrderNotFound,
1508
- '-2014': errors.AuthenticationError,
1509
- '-2015': errors.AuthenticationError,
1510
- '-2016': errors.BadRequest,
1511
- '-2018': errors.InsufficientFunds,
1512
- '-2019': errors.InsufficientFunds,
1513
- '-2020': errors.OrderNotFillable,
1514
- '-2021': errors.OrderImmediatelyFillable,
1515
- '-2022': errors.InvalidOrder,
1516
- '-2023': errors.InsufficientFunds,
1517
- '-2024': errors.InsufficientFunds,
1518
- '-2025': errors.InvalidOrder,
1519
- '-2026': errors.InvalidOrder,
1520
- '-2027': errors.InvalidOrder,
1521
- '-2028': errors.InsufficientFunds,
1522
- '-3000': errors.ExchangeError,
1523
- '-3001': errors.AuthenticationError,
1524
- '-3002': errors.BadSymbol,
1525
- '-3003': errors.BadRequest,
1526
- '-3004': errors.ExchangeError,
1527
- '-3005': errors.InsufficientFunds,
1528
- '-3006': errors.InsufficientFunds,
1529
- '-3007': errors.ExchangeError,
1530
- '-3008': errors.InsufficientFunds,
1531
- '-3009': errors.BadRequest,
1532
- '-3010': errors.BadRequest,
1533
- '-3011': errors.BadRequest,
1534
- '-3012': errors.InsufficientFunds,
1535
- '-3013': errors.BadRequest,
1536
- '-3014': errors.AccountSuspended,
1537
- '-3015': errors.BadRequest,
1538
- '-3016': errors.BadRequest,
1539
- '-3017': errors.ExchangeError,
1540
- '-3018': errors.AccountSuspended,
1541
- '-3019': errors.AccountSuspended,
1542
- '-3020': errors.InsufficientFunds,
1543
- '-3021': errors.BadRequest,
1544
- '-3022': errors.AccountSuspended,
1545
- '-3023': errors.BadRequest,
1546
- '-3024': errors.ExchangeError,
1547
- '-3025': errors.BadRequest,
1548
- '-3026': errors.BadRequest,
1549
- '-3027': errors.BadSymbol,
1550
- '-3028': errors.BadSymbol,
1551
- '-3029': errors.ExchangeError,
1552
- '-3036': errors.AccountSuspended,
1553
- '-3037': errors.ExchangeError,
1554
- '-3038': errors.BadRequest,
1555
- '-3041': errors.InsufficientFunds,
1556
- '-3042': errors.BadRequest,
1557
- '-3043': errors.BadRequest,
1558
- '-3044': errors.DDoSProtection,
1559
- '-3045': errors.ExchangeError,
1560
- '-3999': errors.ExchangeError,
1561
- '-4001': errors.BadRequest,
1562
- '-4002': errors.BadRequest,
1563
- '-4003': errors.BadRequest,
1564
- '-4004': errors.AuthenticationError,
1565
- '-4005': errors.RateLimitExceeded,
1566
- '-4006': errors.BadRequest,
1567
- '-4007': errors.BadRequest,
1568
- '-4008': errors.BadRequest,
1569
- '-4010': errors.BadRequest,
1570
- '-4011': errors.BadRequest,
1571
- '-4012': errors.BadRequest,
1572
- '-4013': errors.AuthenticationError,
1573
- '-4014': errors.PermissionDenied,
1574
- '-4015': errors.ExchangeError,
1575
- '-4016': errors.PermissionDenied,
1576
- '-4017': errors.PermissionDenied,
1577
- '-4018': errors.BadSymbol,
1578
- '-4019': errors.BadSymbol,
1579
- '-4021': errors.BadRequest,
1580
- '-4022': errors.BadRequest,
1581
- '-4023': errors.ExchangeError,
1582
- '-4024': errors.InsufficientFunds,
1583
- '-4025': errors.InsufficientFunds,
1584
- '-4026': errors.InsufficientFunds,
1585
- '-4027': errors.ExchangeError,
1586
- '-4028': errors.BadRequest,
1587
- '-4029': errors.BadRequest,
1588
- '-4030': errors.ExchangeError,
1589
- '-4031': errors.ExchangeError,
1590
- '-4032': errors.ExchangeError,
1591
- '-4033': errors.BadRequest,
1592
- '-4034': errors.ExchangeError,
1593
- '-4035': errors.PermissionDenied,
1594
- '-4036': errors.BadRequest,
1595
- '-4037': errors.ExchangeError,
1596
- '-4038': errors.ExchangeError,
1597
- '-4039': errors.BadRequest,
1598
- '-4040': errors.BadRequest,
1599
- '-4041': errors.ExchangeError,
1600
- '-4042': errors.ExchangeError,
1601
- '-4043': errors.BadRequest,
1602
- '-4044': errors.BadRequest,
1603
- '-4045': errors.ExchangeError,
1604
- '-4046': errors.AuthenticationError,
1605
- '-4047': errors.BadRequest,
1606
- '-4054': errors.BadRequest,
1607
- '-4164': errors.InvalidOrder,
1608
- '-5001': errors.BadRequest,
1609
- '-5002': errors.InsufficientFunds,
1610
- '-5003': errors.InsufficientFunds,
1611
- '-5004': errors.BadRequest,
1612
- '-5005': errors.InsufficientFunds,
1613
- '-5006': errors.BadRequest,
1614
- '-5007': errors.BadRequest,
1615
- '-5008': errors.InsufficientFunds,
1616
- '-5009': errors.BadRequest,
1617
- '-5010': errors.ExchangeError,
1618
- '-5011': errors.BadRequest,
1619
- '-5012': errors.ExchangeError,
1620
- '-5013': errors.InsufficientFunds,
1621
- '-5021': errors.BadRequest,
1622
- '-6001': errors.BadRequest,
1623
- '-6003': errors.BadRequest,
1624
- '-6004': errors.ExchangeError,
1625
- '-6005': errors.InvalidOrder,
1626
- '-6006': errors.BadRequest,
1627
- '-6007': errors.BadRequest,
1628
- '-6008': errors.BadRequest,
1629
- '-6009': errors.RateLimitExceeded,
1630
- '-6011': errors.BadRequest,
1631
- '-6012': errors.InsufficientFunds,
1632
- '-6013': errors.ExchangeError,
1633
- '-6014': errors.BadRequest,
1634
- '-6015': errors.BadRequest,
1635
- '-6016': errors.BadRequest,
1636
- '-6017': errors.BadRequest,
1637
- '-6018': errors.BadRequest,
1638
- '-6019': errors.AuthenticationError,
1639
- '-6020': errors.BadRequest,
1640
- '-7001': errors.BadRequest,
1641
- '-7002': errors.BadRequest,
1642
- '-9000': errors.InsufficientFunds,
1643
- '-10017': errors.BadRequest,
1644
- '-11008': errors.InsufficientFunds,
1645
- '-12014': errors.RateLimitExceeded,
1646
- '-13000': errors.BadRequest,
1647
- '-13001': errors.BadRequest,
1648
- '-13002': errors.BadRequest,
1649
- '-13003': errors.BadRequest,
1650
- '-13004': errors.BadRequest,
1651
- '-13005': errors.BadRequest,
1652
- '-13006': errors.InvalidOrder,
1653
- '-13007': errors.AuthenticationError,
1654
- '-21001': errors.BadRequest,
1655
- '-21002': errors.BadRequest,
1656
- '-21003': errors.BadRequest,
1657
- '100001003': errors.AuthenticationError,
1658
- '200003903': errors.AuthenticationError, // {"code":200003903,"msg":"Your identity verification has been rejected. Please complete identity verification again."}
2309
+ 'This symbol is not permitted for this account.': errors.PermissionDenied, // {"code":-2010,"msg":"This symbol is not permitted for this account."}
1659
2310
  },
1660
2311
  'broad': {
1661
2312
  'has no operation privilege': errors.PermissionDenied,
1662
- 'MAX_POSITION': errors.InvalidOrder, // {"code":-2010,"msg":"Filter failure: MAX_POSITION"}
2313
+ 'MAX_POSITION': errors.BadRequest, // {"code":-2010,"msg":"Filter failure: MAX_POSITION"}
1663
2314
  },
1664
2315
  },
1665
2316
  });
@@ -2372,7 +3023,7 @@ class binance extends binance$1 {
2372
3023
  }
2373
3024
  }
2374
3025
  }
2375
- const isMarginTradingAllowed = this.safeValue(market, 'isMarginTradingAllowed', false);
3026
+ const isMarginTradingAllowed = this.safeBool(market, 'isMarginTradingAllowed', false);
2376
3027
  let unifiedType = undefined;
2377
3028
  if (spot) {
2378
3029
  unifiedType = 'spot';
@@ -3111,7 +3762,7 @@ class binance extends binance$1 {
3111
3762
  response = await this.dapiPublicGetTicker24hr(this.extend(request, params));
3112
3763
  }
3113
3764
  else {
3114
- const rolling = this.safeValue(params, 'rolling', false);
3765
+ const rolling = this.safeBool(params, 'rolling', false);
3115
3766
  params = this.omit(params, 'rolling');
3116
3767
  if (rolling) {
3117
3768
  response = await this.publicGetTicker(this.extend(request, params));
@@ -4564,7 +5215,7 @@ class binance extends binance$1 {
4564
5215
  }
4565
5216
  // support for testing orders
4566
5217
  if (market['spot'] || marketType === 'margin') {
4567
- const test = this.safeValue(query, 'test', false);
5218
+ const test = this.safeBool(query, 'test', false);
4568
5219
  if (test) {
4569
5220
  method += 'Test';
4570
5221
  }
@@ -5746,7 +6397,7 @@ class binance extends binance$1 {
5746
6397
  let response = undefined;
5747
6398
  const request = {};
5748
6399
  const legalMoney = this.safeValue(this.options, 'legalMoney', {});
5749
- const fiatOnly = this.safeValue(params, 'fiat', false);
6400
+ const fiatOnly = this.safeBool(params, 'fiat', false);
5750
6401
  params = this.omit(params, 'fiatOnly');
5751
6402
  const until = this.safeInteger(params, 'until');
5752
6403
  params = this.omit(params, 'until');
@@ -5858,7 +6509,7 @@ class binance extends binance$1 {
5858
6509
  return await this.fetchPaginatedCallDynamic('fetchWithdrawals', code, since, limit, params);
5859
6510
  }
5860
6511
  const legalMoney = this.safeValue(this.options, 'legalMoney', {});
5861
- const fiatOnly = this.safeValue(params, 'fiat', false);
6512
+ const fiatOnly = this.safeBool(params, 'fiat', false);
5862
6513
  params = this.omit(params, 'fiatOnly');
5863
6514
  const request = {};
5864
6515
  const until = this.safeInteger(params, 'until');
@@ -8797,6 +9448,30 @@ class binance extends binance$1 {
8797
9448
  }
8798
9449
  return { 'url': url, 'method': method, 'body': body, 'headers': headers };
8799
9450
  }
9451
+ getExceptionsByUrl(url, exactOrBroad) {
9452
+ let marketType = undefined;
9453
+ const hostname = (this.hostname !== undefined) ? this.hostname : 'binance.com';
9454
+ if (url.startsWith('https://api.' + hostname + '/')) {
9455
+ marketType = 'spot';
9456
+ }
9457
+ else if (url.startsWith('https://dapi.' + hostname + '/')) {
9458
+ marketType = 'inverse';
9459
+ }
9460
+ else if (url.startsWith('https://fapi.' + hostname + '/')) {
9461
+ marketType = 'linear';
9462
+ }
9463
+ else if (url.startsWith('https://eapi.' + hostname + '/')) {
9464
+ marketType = 'option';
9465
+ }
9466
+ else if (url.startsWith('https://papi.' + hostname + '/')) {
9467
+ marketType = 'portfoliomargin';
9468
+ }
9469
+ if (marketType !== undefined) {
9470
+ const exceptionsForMarketType = this.safeValue(this.exceptions, marketType, {});
9471
+ return this.safeValue(exceptionsForMarketType, exactOrBroad, {});
9472
+ }
9473
+ return {};
9474
+ }
8800
9475
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
8801
9476
  if ((code === 418) || (code === 429)) {
8802
9477
  throw new errors.DDoSProtection(this.id + ' ' + code.toString() + ' ' + reason + ' ' + body);
@@ -8819,7 +9494,7 @@ class binance extends binance$1 {
8819
9494
  return undefined; // fallback to default error handler
8820
9495
  }
8821
9496
  // response in format {'msg': 'The coin does not exist.', 'success': true/false}
8822
- const success = this.safeValue(response, 'success', true);
9497
+ const success = this.safeBool(response, 'success', true);
8823
9498
  if (!success) {
8824
9499
  const messageNew = this.safeString(response, 'msg');
8825
9500
  let parsedMessage = undefined;
@@ -8838,7 +9513,9 @@ class binance extends binance$1 {
8838
9513
  }
8839
9514
  const message = this.safeString(response, 'msg');
8840
9515
  if (message !== undefined) {
9516
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), message, this.id + ' ' + message);
8841
9517
  this.throwExactlyMatchedException(this.exceptions['exact'], message, this.id + ' ' + message);
9518
+ this.throwBroadlyMatchedException(this.getExceptionsByUrl(url, 'broad'), message, this.id + ' ' + message);
8842
9519
  this.throwBroadlyMatchedException(this.exceptions['broad'], message, this.id + ' ' + message);
8843
9520
  }
8844
9521
  // checks against error codes
@@ -8864,6 +9541,7 @@ class binance extends binance$1 {
8864
9541
  // binanceusdm {"code":-4046,"msg":"No need to change margin type."}
8865
9542
  throw new errors.MarginModeAlreadySet(feedback);
8866
9543
  }
9544
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), error, feedback);
8867
9545
  this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
8868
9546
  throw new errors.ExchangeError(feedback);
8869
9547
  }
@@ -8877,6 +9555,7 @@ class binance extends binance$1 {
8877
9555
  const element = response[0];
8878
9556
  const errorCode = this.safeString(element, 'code');
8879
9557
  if (errorCode !== undefined) {
9558
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), errorCode, this.id + ' ' + body);
8880
9559
  this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, this.id + ' ' + body);
8881
9560
  }
8882
9561
  }