@velocity-exchange/sdk 0.4.0 → 0.6.1

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 (325) hide show
  1. package/README.md +3 -3
  2. package/lib/browser/adminClient.d.ts +52 -0
  3. package/lib/browser/adminClient.js +97 -0
  4. package/lib/browser/config.js +6 -7
  5. package/lib/browser/constants/numericConstants.d.ts +1 -1
  6. package/lib/browser/constants/numericConstants.js +1 -1
  7. package/lib/browser/decode/user.js +5 -1
  8. package/lib/browser/idl/velocity.d.ts +191 -15
  9. package/lib/browser/idl/velocity.json +192 -16
  10. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -0
  11. package/lib/browser/orderSubscriber/OrderSubscriber.js +10 -4
  12. package/lib/browser/pyth/pythLazerSubscriber.js +37 -27
  13. package/lib/browser/types.d.ts +6 -0
  14. package/lib/browser/user.d.ts +20 -3
  15. package/lib/browser/user.js +52 -4
  16. package/lib/browser/velocityClient.d.ts +46 -10
  17. package/lib/browser/velocityClient.js +107 -35
  18. package/lib/node/adminClient.d.ts +52 -0
  19. package/lib/node/adminClient.d.ts.map +1 -1
  20. package/lib/node/adminClient.js +97 -0
  21. package/lib/node/config.d.ts.map +1 -1
  22. package/lib/node/config.js +6 -7
  23. package/lib/node/constants/numericConstants.d.ts +1 -1
  24. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  25. package/lib/node/constants/numericConstants.js +1 -1
  26. package/lib/node/decode/user.d.ts.map +1 -1
  27. package/lib/node/decode/user.js +5 -1
  28. package/lib/node/idl/velocity.d.ts +191 -15
  29. package/lib/node/idl/velocity.d.ts.map +1 -1
  30. package/lib/node/idl/velocity.json +192 -16
  31. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -0
  32. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  33. package/lib/node/orderSubscriber/OrderSubscriber.js +10 -4
  34. package/lib/node/pyth/pythLazerSubscriber.d.ts.map +1 -1
  35. package/lib/node/pyth/pythLazerSubscriber.js +37 -27
  36. package/lib/node/types.d.ts +6 -0
  37. package/lib/node/types.d.ts.map +1 -1
  38. package/lib/node/user.d.ts +20 -3
  39. package/lib/node/user.d.ts.map +1 -1
  40. package/lib/node/user.js +52 -4
  41. package/lib/node/velocityClient.d.ts +46 -10
  42. package/lib/node/velocityClient.d.ts.map +1 -1
  43. package/lib/node/velocityClient.js +107 -35
  44. package/package.json +7 -3
  45. package/.prettierignore +0 -1
  46. package/CHANGELOG.md +0 -132
  47. package/build-browser.js +0 -58
  48. package/bunfig.toml +0 -3
  49. package/esbuild-shims.js +0 -12
  50. package/scripts/deposit-isolated-positions.ts +0 -110
  51. package/scripts/find-flagged-users.ts +0 -213
  52. package/scripts/grpc-client-test-comparison.ts +0 -372
  53. package/scripts/grpc-multiuser-client-test-comparison.ts +0 -158
  54. package/scripts/postbuild.js +0 -95
  55. package/scripts/single-grpc-client-test.ts +0 -284
  56. package/scripts/withdraw-isolated-positions.ts +0 -174
  57. package/src/accounts/README_WebSocketAccountSubscriberV2.md +0 -95
  58. package/src/accounts/README_WebSocketProgramAccountSubscriberV2.md +0 -135
  59. package/src/accounts/basicUserAccountSubscriber.ts +0 -79
  60. package/src/accounts/basicUserStatsAccountSubscriber.ts +0 -87
  61. package/src/accounts/bulkAccountLoader.ts +0 -358
  62. package/src/accounts/bulkUserStatsSubscription.ts +0 -40
  63. package/src/accounts/bulkUserSubscription.ts +0 -39
  64. package/src/accounts/customizedCadenceBulkAccountLoader.ts +0 -250
  65. package/src/accounts/fetch.ts +0 -200
  66. package/src/accounts/grpcAccountSubscriber.ts +0 -225
  67. package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +0 -73
  68. package/src/accounts/grpcMultiAccountSubscriber.ts +0 -566
  69. package/src/accounts/grpcMultiUserAccountSubscriber.ts +0 -328
  70. package/src/accounts/grpcProgramAccountSubscriber.ts +0 -264
  71. package/src/accounts/grpcUserAccountSubscriber.ts +0 -63
  72. package/src/accounts/grpcUserStatsAccountSubscriber.ts +0 -65
  73. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +0 -257
  74. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +0 -941
  75. package/src/accounts/laserProgramAccountSubscriber.ts +0 -266
  76. package/src/accounts/oneShotUserAccountSubscriber.ts +0 -88
  77. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +0 -94
  78. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +0 -223
  79. package/src/accounts/pollingOracleAccountSubscriber.ts +0 -151
  80. package/src/accounts/pollingTokenAccountSubscriber.ts +0 -147
  81. package/src/accounts/pollingUserAccountSubscriber.ts +0 -198
  82. package/src/accounts/pollingUserStatsAccountSubscriber.ts +0 -180
  83. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +0 -774
  84. package/src/accounts/testBulkAccountLoader.ts +0 -59
  85. package/src/accounts/types.ts +0 -428
  86. package/src/accounts/utils.ts +0 -90
  87. package/src/accounts/webSocketAccountSubscriber.ts +0 -304
  88. package/src/accounts/webSocketAccountSubscriberV2.ts +0 -536
  89. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +0 -171
  90. package/src/accounts/webSocketProgramAccountSubscriber.ts +0 -244
  91. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +0 -1048
  92. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +0 -1042
  93. package/src/accounts/webSocketUserAccountSubscriber.ts +0 -139
  94. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +0 -131
  95. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +0 -865
  96. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +0 -897
  97. package/src/accounts/websocketProgramUserAccountSubscriber.ts +0 -127
  98. package/src/addresses/marketAddresses.ts +0 -28
  99. package/src/addresses/pda.ts +0 -620
  100. package/src/adminClient.ts +0 -8136
  101. package/src/assert/assert.ts +0 -5
  102. package/src/auctionSubscriber/auctionSubscriber.ts +0 -86
  103. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +0 -99
  104. package/src/auctionSubscriber/index.ts +0 -9
  105. package/src/auctionSubscriber/types.ts +0 -30
  106. package/src/bankrun/bankrunConnection.ts +0 -630
  107. package/src/blockhashSubscriber/BlockhashSubscriber.ts +0 -160
  108. package/src/blockhashSubscriber/index.ts +0 -6
  109. package/src/blockhashSubscriber/types.ts +0 -13
  110. package/src/clock/clockSubscriber.ts +0 -146
  111. package/src/config.ts +0 -312
  112. package/src/constants/index.ts +0 -9
  113. package/src/constants/numericConstants.ts +0 -194
  114. package/src/constants/perpMarkets.ts +0 -127
  115. package/src/constants/spotMarkets.ts +0 -104
  116. package/src/constants/txConstants.ts +0 -2
  117. package/src/constituentMap/constituentMap.ts +0 -305
  118. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +0 -99
  119. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +0 -121
  120. package/src/core/VelocityCore.ts +0 -606
  121. package/src/core/index.ts +0 -12
  122. package/src/core/instructions/deposit.ts +0 -64
  123. package/src/core/instructions/fill.ts +0 -51
  124. package/src/core/instructions/funding.ts +0 -33
  125. package/src/core/instructions/liquidation.ts +0 -55
  126. package/src/core/instructions/orders.ts +0 -84
  127. package/src/core/instructions/perpOrders.ts +0 -312
  128. package/src/core/instructions/settlement.ts +0 -40
  129. package/src/core/instructions/trigger.ts +0 -41
  130. package/src/core/instructions/withdraw.ts +0 -65
  131. package/src/core/remainingAccounts.ts +0 -320
  132. package/src/core/signedMsg.ts +0 -109
  133. package/src/decode/customCoder.ts +0 -148
  134. package/src/decode/user.ts +0 -401
  135. package/src/dlob/DLOB.ts +0 -2793
  136. package/src/dlob/DLOBNode.ts +0 -305
  137. package/src/dlob/DLOBSubscriber.ts +0 -269
  138. package/src/dlob/NodeList.ts +0 -244
  139. package/src/dlob/orderBookLevels.ts +0 -695
  140. package/src/dlob/types.ts +0 -37
  141. package/src/events/eventList.ts +0 -114
  142. package/src/events/eventSubscriber.ts +0 -521
  143. package/src/events/eventsServerLogProvider.ts +0 -189
  144. package/src/events/fetchLogs.ts +0 -219
  145. package/src/events/parse.ts +0 -271
  146. package/src/events/pollingLogProvider.ts +0 -113
  147. package/src/events/sort.ts +0 -51
  148. package/src/events/txEventCache.ts +0 -92
  149. package/src/events/types.ts +0 -337
  150. package/src/events/webSocketLogProvider.ts +0 -152
  151. package/src/factory/bigNum.ts +0 -709
  152. package/src/factory/oracleClient.ts +0 -73
  153. package/src/idl/pyth.json +0 -142
  154. package/src/idl/pyth.ts +0 -97
  155. package/src/idl/pyth_solana_receiver.json +0 -628
  156. package/src/idl/token_faucet.json +0 -229
  157. package/src/idl/token_faucet.ts +0 -197
  158. package/src/idl/velocity.json +0 -23974
  159. package/src/idl/velocity.ts +0 -23980
  160. package/src/index.ts +0 -150
  161. package/src/indicative-quotes/indicativeQuotesSender.ts +0 -233
  162. package/src/isomorphic/README.md +0 -19
  163. package/src/isomorphic/anchor.browser.ts +0 -44
  164. package/src/isomorphic/anchor.node.ts +0 -1
  165. package/src/isomorphic/anchor.ts +0 -1
  166. package/src/isomorphic/anchor29.browser.ts +0 -24
  167. package/src/isomorphic/anchor29.node.ts +0 -1
  168. package/src/isomorphic/anchor29.ts +0 -1
  169. package/src/isomorphic/grpc.browser.ts +0 -4
  170. package/src/isomorphic/grpc.node.ts +0 -130
  171. package/src/isomorphic/grpc.ts +0 -1
  172. package/src/jupiter/jupiterClient.ts +0 -502
  173. package/src/keypair.ts +0 -32
  174. package/src/margin/README.md +0 -138
  175. package/src/marginCalculation.ts +0 -407
  176. package/src/marinade/idl/idl.json +0 -1962
  177. package/src/marinade/index.ts +0 -73
  178. package/src/marinade/types.ts +0 -3925
  179. package/src/math/amm.ts +0 -1758
  180. package/src/math/auction.ts +0 -480
  181. package/src/math/bankruptcy.ts +0 -138
  182. package/src/math/builder.ts +0 -130
  183. package/src/math/conversion.ts +0 -45
  184. package/src/math/exchangeStatus.ts +0 -261
  185. package/src/math/funding.ts +0 -498
  186. package/src/math/insurance.ts +0 -171
  187. package/src/math/liquidation.ts +0 -433
  188. package/src/math/margin.ts +0 -327
  189. package/src/math/market.ts +0 -487
  190. package/src/math/oracles.ts +0 -477
  191. package/src/math/orders.ts +0 -500
  192. package/src/math/position.ts +0 -381
  193. package/src/math/repeg.ts +0 -223
  194. package/src/math/spotBalance.ts +0 -996
  195. package/src/math/spotMarket.ts +0 -115
  196. package/src/math/spotPosition.ts +0 -263
  197. package/src/math/state.ts +0 -71
  198. package/src/math/superStake.ts +0 -602
  199. package/src/math/tiers.ts +0 -73
  200. package/src/math/trade.ts +0 -879
  201. package/src/math/utils.ts +0 -183
  202. package/src/memcmp.ts +0 -279
  203. package/src/oracles/oracleClientCache.ts +0 -41
  204. package/src/oracles/oracleId.ts +0 -99
  205. package/src/oracles/prelaunchOracleClient.ts +0 -63
  206. package/src/oracles/pythClient.ts +0 -125
  207. package/src/oracles/pythLazerClient.ts +0 -141
  208. package/src/oracles/quoteAssetOracleClient.ts +0 -43
  209. package/src/oracles/strictOraclePrice.ts +0 -40
  210. package/src/oracles/types.ts +0 -82
  211. package/src/oracles/utils.ts +0 -45
  212. package/src/orderParams.ts +0 -117
  213. package/src/orderSubscriber/OrderSubscriber.ts +0 -378
  214. package/src/orderSubscriber/PollingSubscription.ts +0 -50
  215. package/src/orderSubscriber/WebsocketSubscription.ts +0 -137
  216. package/src/orderSubscriber/grpcSubscription.ts +0 -155
  217. package/src/orderSubscriber/index.ts +0 -7
  218. package/src/orderSubscriber/types.ts +0 -64
  219. package/src/priorityFee/averageOverSlotsStrategy.ts +0 -17
  220. package/src/priorityFee/averageStrategy.ts +0 -13
  221. package/src/priorityFee/ewmaStrategy.ts +0 -51
  222. package/src/priorityFee/heliusPriorityFeeMethod.ts +0 -68
  223. package/src/priorityFee/index.ts +0 -16
  224. package/src/priorityFee/maxOverSlotsStrategy.ts +0 -18
  225. package/src/priorityFee/maxStrategy.ts +0 -8
  226. package/src/priorityFee/priorityFeeSubscriber.ts +0 -328
  227. package/src/priorityFee/priorityFeeSubscriberMap.ts +0 -134
  228. package/src/priorityFee/solanaPriorityFeeMethod.ts +0 -46
  229. package/src/priorityFee/types.ts +0 -82
  230. package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -53
  231. package/src/pyth/constants.ts +0 -9
  232. package/src/pyth/index.ts +0 -15
  233. package/src/pyth/pythLazerSubscriber.ts +0 -365
  234. package/src/pyth/types.ts +0 -4451
  235. package/src/pyth/utils.ts +0 -13
  236. package/src/slot/SlotSubscriber.ts +0 -126
  237. package/src/slot/SlothashSubscriber.ts +0 -163
  238. package/src/swap/UnifiedSwapClient.ts +0 -315
  239. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +0 -81
  240. package/src/swift/index.ts +0 -10
  241. package/src/swift/signedMsgUserAccountSubscriber.ts +0 -251
  242. package/src/swift/swiftOrderSubscriber.ts +0 -351
  243. package/src/testClient.ts +0 -42
  244. package/src/titan/titanClient.ts +0 -438
  245. package/src/token/index.ts +0 -13
  246. package/src/tokenFaucet.ts +0 -296
  247. package/src/tx/baseTxSender.ts +0 -651
  248. package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +0 -31
  249. package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +0 -105
  250. package/src/tx/blockhashFetcher/types.ts +0 -9
  251. package/src/tx/fastSingleTxSender.ts +0 -200
  252. package/src/tx/forwardOnlyTxSender.ts +0 -193
  253. package/src/tx/priorityFeeCalculator.ts +0 -117
  254. package/src/tx/reportTransactionError.ts +0 -176
  255. package/src/tx/retryTxSender.ts +0 -177
  256. package/src/tx/txHandler.ts +0 -1009
  257. package/src/tx/txParamProcessor.ts +0 -225
  258. package/src/tx/types.ts +0 -117
  259. package/src/tx/utils.ts +0 -133
  260. package/src/tx/whileValidTxSender.ts +0 -377
  261. package/src/types.ts +0 -2575
  262. package/src/user.ts +0 -5316
  263. package/src/userConfig.ts +0 -38
  264. package/src/userMap/PollingSubscription.ts +0 -61
  265. package/src/userMap/WebsocketSubscription.ts +0 -93
  266. package/src/userMap/grpcSubscription.ts +0 -93
  267. package/src/userMap/referrerMap.ts +0 -360
  268. package/src/userMap/revenueShareEscrowMap.ts +0 -342
  269. package/src/userMap/userMap.ts +0 -784
  270. package/src/userMap/userMapConfig.ts +0 -82
  271. package/src/userMap/userStatsMap.ts +0 -393
  272. package/src/userName.ts +0 -37
  273. package/src/userStats.ts +0 -159
  274. package/src/userStatsConfig.ts +0 -35
  275. package/src/util/TransactionConfirmationManager.ts +0 -333
  276. package/src/util/chainClock.ts +0 -65
  277. package/src/util/computeUnits.ts +0 -101
  278. package/src/util/digest.ts +0 -33
  279. package/src/util/ed25519Utils.ts +0 -95
  280. package/src/util/promiseTimeout.ts +0 -23
  281. package/src/velocityClient.ts +0 -14802
  282. package/src/velocityClientConfig.ts +0 -119
  283. package/src/wallet.ts +0 -91
  284. package/tests/VelocityCore/builder_escrow.test.ts +0 -121
  285. package/tests/VelocityCore/decode.test.ts +0 -16
  286. package/tests/VelocityCore/fill_trigger.test.ts +0 -73
  287. package/tests/VelocityCore/instructions.test.ts +0 -46
  288. package/tests/VelocityCore/pdas.test.ts +0 -30
  289. package/tests/VelocityCore/perp_orders.test.ts +0 -205
  290. package/tests/VelocityCore/remainingAccounts.test.ts +0 -72
  291. package/tests/VelocityCore/settlement_liquidation.test.ts +0 -69
  292. package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +0 -211
  293. package/tests/amm/test.ts +0 -2402
  294. package/tests/auctions/test.ts +0 -81
  295. package/tests/bn/test.ts +0 -355
  296. package/tests/builder/builderFee.test.ts +0 -42
  297. package/tests/ci/verifyConstants.ts +0 -393
  298. package/tests/decode/test.ts +0 -262
  299. package/tests/decode/userAccountBufferStrings.ts +0 -102
  300. package/tests/dlob/helpers.ts +0 -748
  301. package/tests/dlob/test.ts +0 -6969
  302. package/tests/dlob/tickSizeStandardization.ts +0 -545
  303. package/tests/events/parseLogsForCuUsage.ts +0 -139
  304. package/tests/exchangeStatus/test.ts +0 -45
  305. package/tests/insurance/test.ts +0 -40
  306. package/tests/liquidation/test.ts +0 -125
  307. package/tests/oracles/mmOracleGate.test.ts +0 -379
  308. package/tests/oracles/pythPegSnap.test.ts +0 -76
  309. package/tests/sdkParity/enumParity.test.ts +0 -84
  310. package/tests/sdkParity/marginCategoryFill.test.ts +0 -143
  311. package/tests/sdkParity/memcmpOffsets.test.ts +0 -139
  312. package/tests/spot/test.ts +0 -281
  313. package/tests/tx/TransactionConfirmationManager.test.ts +0 -312
  314. package/tests/tx/cachedBlockhashFetcher.test.ts +0 -96
  315. package/tests/tx/priorityFeeCalculator.ts +0 -77
  316. package/tests/tx/priorityFeeStrategy.ts +0 -95
  317. package/tests/user/bankruptcy.ts +0 -165
  318. package/tests/user/feeAndWithdrawLimits.ts +0 -284
  319. package/tests/user/getMarginCalculation.ts +0 -586
  320. package/tests/user/helpers.ts +0 -184
  321. package/tests/user/liquidations.ts +0 -129
  322. package/tests/user/marginCalculations.test.ts +0 -321
  323. package/tests/user/test.ts +0 -833
  324. package/tsconfig.browser.json +0 -18
  325. package/tsconfig.json +0 -36
@@ -1,194 +0,0 @@
1
- import { LAMPORTS_PER_SOL } from '@solana/web3.js';
2
- import { BN } from '../isomorphic/anchor';
3
-
4
- /** Precision constants used throughout the SDK. Each mirrors an on-chain fixed-point scale — a raw `BN` amount at that precision represents `amount / 10^exponent` in human units (e.g. `PRICE_PRECISION` = 1e6, so a raw price of `1_500_000` is `$1.50`). Values must stay numerically identical to the Rust program's `math::constants` — a mismatch here silently mis-scales every derived SDK computation. */
5
- export const ZERO = new BN(0);
6
- export const ONE = new BN(1);
7
- export const TWO = new BN(2);
8
- export const THREE = new BN(3);
9
- export const FOUR = new BN(4);
10
- export const FIVE = new BN(5);
11
- export const SIX = new BN(6);
12
- export const SEVEN = new BN(7);
13
- export const EIGHT = new BN(8);
14
- export const NINE = new BN(9);
15
- export const TEN = new BN(10);
16
- export const TEN_THOUSAND = new BN(10000);
17
- /** Largest value safely representable as a JS `number` (2^53 - 1), wrapped in a `BN`; used as a practical "infinite" ceiling, not an on-chain limit. */
18
- export const BN_MAX = new BN(Number.MAX_SAFE_INTEGER);
19
- export const TEN_MILLION = TEN_THOUSAND.mul(TEN_THOUSAND);
20
-
21
- /** Default max leverage (5x) used by SDK helpers when a market's actual `marginRatioInitial` isn't available. */
22
- export const MAX_LEVERAGE = new BN(5);
23
- /** `u64::MAX`; sentinel order size meaning "close the whole position" in reduce-only market-order helpers. */
24
- export const MAX_LEVERAGE_ORDER_SIZE = new BN('18446744073709551615');
25
-
26
- /** Exponent for `PERCENTAGE_PRECISION` (1e6). */
27
- export const PERCENTAGE_PRECISION_EXP = new BN(6);
28
- /** 1e6; precision for percentage/fraction fields (e.g. AMM concentration coefficient, funding ramp slope, LP pool volatility). */
29
- export const PERCENTAGE_PRECISION = new BN(10).pow(PERCENTAGE_PRECISION_EXP);
30
- /** Alias of `PERCENTAGE_PRECISION` (1e6) for the AMM's `concentrationCoef` field. */
31
- export const CONCENTRATION_PRECISION = PERCENTAGE_PRECISION;
32
-
33
- /** Exponent for `QUOTE_PRECISION` (1e6). */
34
- export const QUOTE_PRECISION_EXP = new BN(6);
35
- /** Exponent for `FUNDING_RATE_BUFFER_PRECISION` (1e3) — the extra precision funding rates carry beyond `PRICE_PRECISION`. */
36
- export const FUNDING_RATE_BUFFER_PRECISION_EXP = new BN(3);
37
- /** Exponent for `PRICE_PRECISION` (1e6). */
38
- export const PRICE_PRECISION_EXP = new BN(6);
39
- /** Exponent for `FUNDING_RATE_PRECISION` (1e9) = `PRICE_PRECISION_EXP` + `FUNDING_RATE_BUFFER_PRECISION_EXP`. */
40
- export const FUNDING_RATE_PRECISION_EXP = PRICE_PRECISION_EXP.add(
41
- FUNDING_RATE_BUFFER_PRECISION_EXP
42
- );
43
- /** Exponent for `PEG_PRECISION` (1e6). */
44
- export const PEG_PRECISION_EXP = new BN(6);
45
- /** Exponent for `AMM_RESERVE_PRECISION` / `BASE_PRECISION` (1e9). */
46
- export const AMM_RESERVE_PRECISION_EXP = new BN(9);
47
-
48
- /** Exponent for `SPOT_MARKET_RATE_PRECISION` (1e6). */
49
- export const SPOT_MARKET_RATE_PRECISION_EXP = new BN(6);
50
- /** 1e6; precision for spot market interest-rate fields (`optimalBorrowRate`, `maxBorrowRate`). */
51
- export const SPOT_MARKET_RATE_PRECISION = new BN(10).pow(
52
- SPOT_MARKET_RATE_PRECISION_EXP
53
- );
54
-
55
- /** Exponent for `SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION` (1e10). */
56
- export const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = new BN(10);
57
- /** 1e10; precision for `SpotMarketAccount.cumulativeDepositInterest`/`cumulativeBorrowInterest`. */
58
- export const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = new BN(10).pow(
59
- SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP
60
- );
61
-
62
- /** Exponent for `SPOT_MARKET_UTILIZATION_PRECISION` (1e6). */
63
- export const SPOT_MARKET_UTILIZATION_PRECISION_EXP = new BN(6);
64
- /** 1e6; precision for spot market utilization fields (`optimalUtilization`, `utilizationTwap`). */
65
- export const SPOT_MARKET_UTILIZATION_PRECISION = new BN(10).pow(
66
- SPOT_MARKET_UTILIZATION_PRECISION_EXP
67
- );
68
-
69
- /** 1e4; precision for spot asset/liability weight fields (`initialAssetWeight`, `maintenanceLiabilityWeight`, etc). Same scale as `MARGIN_PRECISION`. */
70
- export const SPOT_MARKET_WEIGHT_PRECISION = new BN(10000);
71
- /** Exponent for `SPOT_MARKET_BALANCE_PRECISION` (1e9). */
72
- export const SPOT_MARKET_BALANCE_PRECISION_EXP = new BN(9);
73
- /** 1e9; precision for scaled spot balances (`SpotPosition.scaledBalance`, `PoolBalance.scaledBalance`, `depositBalance`/`borrowBalance`). Multiply by the market's cumulative interest to get the token amount. */
74
- export const SPOT_MARKET_BALANCE_PRECISION = new BN(10).pow(
75
- SPOT_MARKET_BALANCE_PRECISION_EXP
76
- );
77
- /** Exponent for `SPOT_MARKET_IMF_PRECISION` (1e6). */
78
- export const SPOT_MARKET_IMF_PRECISION_EXP = new BN(6);
79
-
80
- /** 1e6; precision for `imfFactor`-style fields (deprecated alias — most `imfFactor` fields use `MARGIN_PRECISION`, 1e4). */
81
- export const SPOT_MARKET_IMF_PRECISION = new BN(10).pow(
82
- SPOT_MARKET_IMF_PRECISION_EXP
83
- );
84
- /** 1e6; precision for `liquidatorFee`/`ifLiquidationFee`/`protocolLiquidationFee` fields on perp and spot markets. */
85
- export const LIQUIDATION_FEE_PRECISION = new BN(1000000);
86
-
87
- /** 1e6; precision for quote-asset (USD-denominated) amounts — pnl, deposits/withdraws, fees, collateral. The protocol's most widely used precision. */
88
- export const QUOTE_PRECISION = new BN(10).pow(QUOTE_PRECISION_EXP);
89
- /** 1e6; precision for prices (`Order.price`, oracle prices, TWAPs, `oraclePriceOffset`). */
90
- export const PRICE_PRECISION = new BN(10).pow(PRICE_PRECISION_EXP);
91
- /** 1e9; precision for funding-rate fields (`cumulativeFundingRateLong/Short`, `lastFundingRate`, `FundingRateRecord.fundingRate`). Unit is quote per base. */
92
- export const FUNDING_RATE_PRECISION = new BN(10).pow(
93
- FUNDING_RATE_PRECISION_EXP
94
- );
95
- /** 1e3; the extra scale factor between `PRICE_PRECISION` and `FUNDING_RATE_PRECISION`. */
96
- export const FUNDING_RATE_BUFFER_PRECISION = new BN(10).pow(
97
- FUNDING_RATE_BUFFER_PRECISION_EXP
98
- );
99
- /** 1e6; precision for `AMM.pegMultiplier`, normalizing the AMM's quote reserve. */
100
- export const PEG_PRECISION = new BN(10).pow(PEG_PRECISION_EXP);
101
-
102
- /** 1e9; precision for AMM constant-product reserves (`baseAssetReserve`, `quoteAssetReserve`, `sqrtK`, etc). Same scale as `BASE_PRECISION`. */
103
- export const AMM_RESERVE_PRECISION = new BN(10).pow(AMM_RESERVE_PRECISION_EXP);
104
-
105
- /** 1e9; precision for perp base-asset amounts (position size, `Order.baseAssetAmount`, open interest). Alias of `AMM_RESERVE_PRECISION`. */
106
- export const BASE_PRECISION = AMM_RESERVE_PRECISION;
107
- export const BASE_PRECISION_EXP = AMM_RESERVE_PRECISION_EXP;
108
-
109
- /** 1e3; ratio to convert an `AMM_RESERVE_PRECISION` amount into `QUOTE_PRECISION` units (at peg = 1). */
110
- export const AMM_TO_QUOTE_PRECISION_RATIO =
111
- AMM_RESERVE_PRECISION.div(QUOTE_PRECISION); // 10^3
112
- /** 1e1 (=10); ratio between `PRICE_PRECISION` and `PEG_PRECISION`. */
113
- export const PRICE_DIV_PEG = PRICE_PRECISION.div(PEG_PRECISION); //10^1
114
- /** 1e1 (=10); ratio between `PRICE_PRECISION` and `QUOTE_PRECISION`. */
115
- export const PRICE_TO_QUOTE_PRECISION = PRICE_PRECISION.div(QUOTE_PRECISION); // 10^1
116
- /** 1e9; combined `AMM_RESERVE_PRECISION * PEG_PRECISION / QUOTE_PRECISION` conversion ratio used in AMM quote-value math. */
117
- export const AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO =
118
- AMM_RESERVE_PRECISION.mul(PEG_PRECISION).div(QUOTE_PRECISION); // 10^9
119
- /** 1e4; precision for margin-ratio fields (`marginRatioInitial`, `marginRatioMaintenance`, `imfFactor`, `maxMarginRatio`, `StateAccount.liquidationMarginBufferRatio`). */
120
- export const MARGIN_PRECISION = TEN_THOUSAND;
121
- /** 1e4; precision for basis-point fields where 1 unit = 1 bp (e.g. `PerpMarketAccount.fundingClampThreshold`). */
122
- export const BPS_PRECISION = TEN_THOUSAND; // 1 unit = 1bp
123
- /** 1e6; precision for AMM bid/ask spread fields (`baseSpread`, `maxSpread`, `longSpread`, `shortSpread`, `lastOracleReservePriceSpreadPct`). */
124
- export const BID_ASK_SPREAD_PRECISION = new BN(1000000); // 10^6
125
- /** 1e4; precision for `StateAccount.initialPctToLiquidate`, the fraction of a position liquidated per partial-liquidation pass. */
126
- export const LIQUIDATION_PCT_PRECISION = TEN_THOUSAND;
127
- /** Denominator (3333) used to derive `FUNDING_RATE_OFFSET_PERCENTAGE`; yields ~10.95% annualized when applied hourly. */
128
- export const FUNDING_RATE_OFFSET_DENOMINATOR = new BN(3333);
129
- /** `FUNDING_RATE_PRECISION / FUNDING_RATE_OFFSET_DENOMINATOR`; the default funding-rate offset floor/ceiling nudge. */
130
- export const FUNDING_RATE_OFFSET_PERCENTAGE = FUNDING_RATE_PRECISION.div(
131
- FUNDING_RATE_OFFSET_DENOMINATOR
132
- );
133
- /** Denominator (2000, i.e. 0.05%) used to clamp per-update funding-rate changes. */
134
- export const FUNDING_RATE_CLAMP_DENOMINATOR = new BN(2000);
135
- /** `PRICE_PRECISION * AMM_TO_QUOTE_PRECISION_RATIO`; combined conversion ratio used when pricing AMM reserve amounts directly in quote terms. */
136
- export const PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = PRICE_PRECISION.mul(
137
- AMM_TO_QUOTE_PRECISION_RATIO
138
- );
139
-
140
- /** 300 seconds. */
141
- export const FIVE_MINUTE = new BN(60 * 5);
142
- /** 3600 seconds. */
143
- export const ONE_HOUR = new BN(60 * 60);
144
- /** 31,536,000 seconds (365 days). */
145
- export const ONE_YEAR = new BN(31536000);
146
-
147
- /** Market index of the protocol's quote spot market (USDC on mainnet). */
148
- export const QUOTE_SPOT_MARKET_INDEX = 0;
149
-
150
- /** 1e9 (`LAMPORTS_PER_SOL`); token-mint precision for wrapped SOL spot markets. */
151
- export const LAMPORTS_PRECISION = new BN(LAMPORTS_PER_SOL);
152
- /** 9; decimal exponent for `LAMPORTS_PRECISION`. */
153
- export const LAMPORTS_EXP = new BN(Math.log10(LAMPORTS_PER_SOL));
154
-
155
- /** `QUOTE_PRECISION / 100` = $0.01; per-open-order margin requirement reserved against free collateral. */
156
- export const OPEN_ORDER_MARGIN_REQUIREMENT = QUOTE_PRECISION.div(new BN(100));
157
-
158
- /** -$25 (`QUOTE_PRECISION`); default floor for `AMM.netRevenueSinceLastFunding` below which the funding-rate spread retreats, damping the AMM from over-widening its spread after a large one-off loss. */
159
- export const DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = new BN(
160
- -25
161
- ).mul(QUOTE_PRECISION);
162
-
163
- /** 13 days in seconds; minimum account age before an idle user account becomes eligible for keeper-initiated deletion. */
164
- export const ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = 60 * 60 * 24 * 13; // 13 days
165
- /** Slots of inactivity (~1 week at `SLOT_TIME_ESTIMATE_MS`) after which a user account is eligible to be marked idle. */
166
- export const IDLE_TIME_SLOTS = 9000;
167
- /** Approximate Solana slot duration in milliseconds, used by the SDK to convert between slots and wall-clock time. */
168
- export const SLOT_TIME_ESTIMATE_MS = 400;
169
-
170
- /** `QUOTE_PRECISION / 100` = $0.01; a perp position smaller than this is treated as dust (safe to ignore/close for free). */
171
- export const DUST_POSITION_SIZE = QUOTE_PRECISION.divn(100); // Dust position is any position smaller than 1c
172
-
173
- /**
174
- * $100 (`QUOTE_PRECISION`); the cap on a user's unrealized positive perp PnL that may count toward
175
- * *initial* margin (free collateral for opening/increasing positions). Unrealized profit beyond
176
- * this amount is not double-counted as collateral for new risk — it still counts in full for
177
- * maintenance-margin (liquidation) calculations. Mirrors the Rust
178
- * `MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN` constant; keep both in sync.
179
- */
180
- export const MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN = new BN(100).mul(
181
- QUOTE_PRECISION
182
- ); // max upnl for initial margin calc
183
-
184
- /** Max number of pubkeys per `getMultipleAccounts` RPC call the SDK will batch (RPC-imposed ceiling is 100; kept at 99 for headroom). */
185
- export const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
186
-
187
- // integer constants
188
- // Built with `BN` directly (not `BigNum.fromPrint`) to avoid a module-load
189
- // circular dependency: `bigNum.ts` imports `ZERO` from this file, so importing
190
- // `bigNum.ts` first leaves `BigNum` undefined while this module body evaluates.
191
- /** `i64::MAX` (9223372036854775807). */
192
- export const MAX_I64 = new BN('9223372036854775807');
193
- /** `i64::MIN` (-9223372036854775808). */
194
- export const MIN_I64 = new BN('-9223372036854775808');
@@ -1,127 +0,0 @@
1
- import { PublicKey } from '@solana/web3.js';
2
- import { MarketStatus, OracleSource } from '../types';
3
- import { VelocityEnv } from '../config';
4
-
5
- /** Static off-chain metadata for one deployed perp market, keyed by `marketIndex`. This is a client-side registry (symbol/oracle wiring for UIs and SDK bootstrapping) — it is not decoded from chain and can drift from the live `PerpMarketAccount` if not kept in sync with deployments. */
6
- export type PerpMarketConfig = {
7
- fullName?: string;
8
- category?: string[];
9
- symbol: string;
10
- baseAssetSymbol: string;
11
- marketIndex: number;
12
- /** unix ms timestamp the market launched */
13
- launchTs: number;
14
- oracle: PublicKey;
15
- oracleSource: OracleSource;
16
- /** Pyth price-feed id (hex), for the legacy Pyth push/pull oracle path */
17
- pythFeedId?: string;
18
- /** Pyth Lazer feed id, for `OracleSource.PYTH_LAZER*` markets */
19
- pythLazerId?: number;
20
- /** current known on-chain status; omitted means `ACTIVE`. Kept here so tooling can filter out delisted markets without an RPC round-trip */
21
- marketStatus?: MarketStatus;
22
- };
23
-
24
- /**
25
- * Reflects what is actually deployed on devnet (per on-chain enumeration of
26
- * `StateAccount.numberOfMarkets`). Update when devnet adds/changes a perp market.
27
- */
28
- export const DevnetPerpMarkets: PerpMarketConfig[] = [
29
- {
30
- fullName: 'Solana',
31
- category: ['L1', 'Infra'],
32
- symbol: 'SOL-PERP',
33
- baseAssetSymbol: 'SOL',
34
- marketIndex: 0,
35
- oracle: new PublicKey('2k3UHX6ehRFzx5fTVvbL6FwXhMjkucjJDL9MuVKLo8TV'),
36
- launchTs: 1655751353000,
37
- oracleSource: OracleSource.PYTH_LAZER,
38
- pythLazerId: 6,
39
- },
40
- {
41
- fullName: 'Bitcoin',
42
- category: ['L1', 'Payment'],
43
- symbol: 'BTC-PERP',
44
- baseAssetSymbol: 'BTC',
45
- marketIndex: 1,
46
- oracle: new PublicKey('J7Fp8iTKuKdCM7PnzqHXTdTo5Jr7ykAmiDyvpz58GJGZ'),
47
- launchTs: 1782950400000,
48
- oracleSource: OracleSource.PYTH_LAZER,
49
- pythLazerId: 1,
50
- },
51
- {
52
- fullName: 'Ethereum',
53
- category: ['L1', 'Infra'],
54
- symbol: 'ETH-PERP',
55
- baseAssetSymbol: 'ETH',
56
- marketIndex: 2,
57
- oracle: new PublicKey('6wQ5RiQ7usJ3TqYZSiuAPZHrVCeSWNrvace84khDKEmH'),
58
- launchTs: 1782950400000,
59
- oracleSource: OracleSource.PYTH_LAZER,
60
- pythLazerId: 2,
61
- },
62
- ];
63
-
64
- // Relaunch set from deploy-scripts/params/relaunch-perp-markets.json (PR #188).
65
- // Oracles are the velocity program's pyth_lazer PDAs:
66
- // findProgramAddress(["pyth_lazer", u32le(lazerFeedId)], VELOCITY_PROGRAM_ID).
67
- // launchTs = planned 2026-07 mainnet relaunch init.
68
- export const MainnetPerpMarkets: PerpMarketConfig[] = [
69
- {
70
- fullName: 'Solana',
71
- category: ['L1', 'Infra', 'Solana'],
72
- symbol: 'SOL-PERP',
73
- baseAssetSymbol: 'SOL',
74
- marketIndex: 0,
75
- oracle: new PublicKey('2k3UHX6ehRFzx5fTVvbL6FwXhMjkucjJDL9MuVKLo8TV'),
76
- launchTs: 1782950400000,
77
- oracleSource: OracleSource.PYTH_LAZER,
78
- pythFeedId:
79
- '0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d',
80
- pythLazerId: 6,
81
- },
82
- {
83
- fullName: 'Bitcoin',
84
- category: ['L1', 'Payment'],
85
- symbol: 'BTC-PERP',
86
- baseAssetSymbol: 'BTC',
87
- marketIndex: 1,
88
- oracle: new PublicKey('J7Fp8iTKuKdCM7PnzqHXTdTo5Jr7ykAmiDyvpz58GJGZ'),
89
- launchTs: 1782950400000,
90
- oracleSource: OracleSource.PYTH_LAZER,
91
- pythFeedId:
92
- '0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43',
93
- pythLazerId: 1,
94
- },
95
- {
96
- fullName: 'Ethereum',
97
- category: ['L1', 'Infra'],
98
- symbol: 'ETH-PERP',
99
- baseAssetSymbol: 'ETH',
100
- marketIndex: 2,
101
- oracle: new PublicKey('6wQ5RiQ7usJ3TqYZSiuAPZHrVCeSWNrvace84khDKEmH'),
102
- launchTs: 1782950400000,
103
- oracleSource: OracleSource.PYTH_LAZER,
104
- pythFeedId:
105
- '0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace',
106
- pythLazerId: 2,
107
- },
108
- {
109
- fullName: 'Hyperliquid',
110
- category: ['DEX'],
111
- symbol: 'HYPE-PERP',
112
- baseAssetSymbol: 'HYPE',
113
- marketIndex: 3,
114
- oracle: new PublicKey('Nc9hadTxNbLw6SiYVGVGjp4WZjanWUuNiKSxdHwHNtK'),
115
- launchTs: 1782950400000,
116
- oracleSource: OracleSource.PYTH_LAZER,
117
- pythFeedId:
118
- '0x4279e31cc369bbcc2faf022b382b080e32a8e689ff20fbc530d2a603eb6cd98b',
119
- pythLazerId: 110,
120
- },
121
- ];
122
-
123
- /** Perp market registries keyed by `VelocityEnv`, for looking up a deployment's markets without hardcoding the environment. */
124
- export const PerpMarkets: { [key in VelocityEnv]: PerpMarketConfig[] } = {
125
- devnet: DevnetPerpMarkets,
126
- 'mainnet-beta': MainnetPerpMarkets,
127
- };
@@ -1,104 +0,0 @@
1
- import { PublicKey } from '@solana/web3.js';
2
- import {
3
- QUOTE_PRECISION,
4
- QUOTE_PRECISION_EXP,
5
- LAMPORTS_EXP,
6
- LAMPORTS_PRECISION,
7
- SIX,
8
- } from './numericConstants';
9
- import { OracleSource } from '../types';
10
- import { BN } from '../isomorphic/anchor';
11
- import { VelocityEnv } from '../config';
12
-
13
- /** Static off-chain metadata for one deployed spot market, keyed by `marketIndex`. Client-side registry (symbol/oracle/mint/decimals wiring) — not decoded from chain, so it must be kept in sync with deployments. */
14
- export type SpotMarketConfig = {
15
- symbol: string;
16
- marketIndex: number;
17
- /** the LP-pool "pool" this market belongs to (distinct spot markets can wrap the same mint under different pool ids, e.g. `SOL` vs `SOL-2`) */
18
- poolId: number;
19
- oracle: PublicKey;
20
- mint: PublicKey;
21
- oracleSource: OracleSource;
22
- /** `10^precisionExp`; the token mint's precision as a `BN`, i.e. one whole token */
23
- precision: BN;
24
- /** the token mint's decimals */
25
- precisionExp: BN;
26
- /** unix ms timestamp the market launched */
27
- launchTs?: number;
28
- /** Pyth price-feed id (hex), for the legacy Pyth push/pull oracle path */
29
- pythFeedId?: string;
30
- /** Pyth Lazer feed id, for `OracleSource.PYTH_LAZER*` markets */
31
- pythLazerId?: number;
32
- };
33
-
34
- /** The canonical wrapped-SOL mint address, shared across all `SOL`-symbol spot market configs. */
35
- export const WRAPPED_SOL_MINT = new PublicKey(
36
- 'So11111111111111111111111111111111111111112'
37
- );
38
-
39
- /**
40
- * Reflects what is actually deployed on devnet (per on-chain enumeration of
41
- * `StateAccount.numberOfSpotMarkets`). Update when devnet adds/changes a spot market.
42
- */
43
- export const DevnetSpotMarkets: SpotMarketConfig[] = [
44
- {
45
- symbol: 'dUSDT',
46
- marketIndex: 0,
47
- poolId: 0,
48
- oracle: new PublicKey('Dai8hT1YRBBm5rBSJUSKcdR11psM55LVAkshbypfC4k4'),
49
- oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
50
- mint: new PublicKey('GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6'),
51
- precision: new BN(10).pow(SIX),
52
- precisionExp: SIX,
53
- pythLazerId: 8,
54
- },
55
- {
56
- symbol: 'SOL',
57
- marketIndex: 1,
58
- poolId: 0,
59
- oracle: new PublicKey('2k3UHX6ehRFzx5fTVvbL6FwXhMjkucjJDL9MuVKLo8TV'),
60
- oracleSource: OracleSource.PYTH_LAZER,
61
- mint: WRAPPED_SOL_MINT,
62
- precision: LAMPORTS_PRECISION,
63
- precisionExp: LAMPORTS_EXP,
64
- pythLazerId: 6,
65
- },
66
- ];
67
-
68
- // Relaunch set from deploy-scripts/params/relaunch-spot-markets.json (PR #188).
69
- // Oracles are the velocity program's pyth_lazer PDAs:
70
- // findProgramAddress(["pyth_lazer", u32le(lazerFeedId)], VELOCITY_PROGRAM_ID).
71
- export const MainnetSpotMarkets: SpotMarketConfig[] = [
72
- {
73
- symbol: 'USDT',
74
- marketIndex: 0,
75
- poolId: 0,
76
- oracle: new PublicKey('Dai8hT1YRBBm5rBSJUSKcdR11psM55LVAkshbypfC4k4'),
77
- oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
78
- mint: new PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
79
- precision: QUOTE_PRECISION,
80
- precisionExp: QUOTE_PRECISION_EXP,
81
- pythFeedId:
82
- '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
83
- pythLazerId: 8,
84
- },
85
- {
86
- symbol: 'SOL',
87
- marketIndex: 1,
88
- poolId: 0,
89
- oracle: new PublicKey('2k3UHX6ehRFzx5fTVvbL6FwXhMjkucjJDL9MuVKLo8TV'),
90
- oracleSource: OracleSource.PYTH_LAZER,
91
- mint: WRAPPED_SOL_MINT,
92
- precision: LAMPORTS_PRECISION,
93
- precisionExp: LAMPORTS_EXP,
94
- pythFeedId:
95
- '0xef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d',
96
- pythLazerId: 6,
97
- },
98
- ];
99
-
100
- /** Spot market registries keyed by `VelocityEnv`, for looking up a deployment's markets without hardcoding the environment. */
101
- export const SpotMarkets: { [key in VelocityEnv]: SpotMarketConfig[] } = {
102
- devnet: DevnetSpotMarkets,
103
- 'mainnet-beta': MainnetSpotMarkets,
104
- };
@@ -1,2 +0,0 @@
1
- /** Error code attached to the `TxSendError` thrown when a transaction send times out without the SDK observing either a confirmation or a definite on-chain failure (see `BaseTxSender`/`TransactionConfirmationManager`). Not a Solana/program error code — it's SDK-internal, meaning "we don't know what happened." */
2
- export const NOT_CONFIRMED_ERROR_CODE = -1001;