@nadohq/shared 0.1.0-alpha.4

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 (551) hide show
  1. package/README.md +2 -0
  2. package/dist/abis/Clearinghouse.cjs +891 -0
  3. package/dist/abis/Clearinghouse.cjs.map +1 -0
  4. package/dist/abis/Clearinghouse.d.cts +669 -0
  5. package/dist/abis/Clearinghouse.d.ts +669 -0
  6. package/dist/abis/Clearinghouse.js +868 -0
  7. package/dist/abis/Clearinghouse.js.map +1 -0
  8. package/dist/abis/ERC20.cjs +215 -0
  9. package/dist/abis/ERC20.cjs.map +1 -0
  10. package/dist/abis/ERC20.d.cts +143 -0
  11. package/dist/abis/ERC20.d.ts +143 -0
  12. package/dist/abis/ERC20.js +192 -0
  13. package/dist/abis/ERC20.js.map +1 -0
  14. package/dist/abis/Endpoint.cjs +589 -0
  15. package/dist/abis/Endpoint.cjs.map +1 -0
  16. package/dist/abis/Endpoint.d.cts +433 -0
  17. package/dist/abis/Endpoint.d.ts +433 -0
  18. package/dist/abis/Endpoint.js +566 -0
  19. package/dist/abis/Endpoint.js.map +1 -0
  20. package/dist/abis/MockERC20.cjs +341 -0
  21. package/dist/abis/MockERC20.cjs.map +1 -0
  22. package/dist/abis/MockERC20.d.cts +239 -0
  23. package/dist/abis/MockERC20.d.ts +239 -0
  24. package/dist/abis/MockERC20.js +318 -0
  25. package/dist/abis/MockERC20.js.map +1 -0
  26. package/dist/abis/PerpEngine.cjs +886 -0
  27. package/dist/abis/PerpEngine.cjs.map +1 -0
  28. package/dist/abis/PerpEngine.d.cts +661 -0
  29. package/dist/abis/PerpEngine.d.ts +661 -0
  30. package/dist/abis/PerpEngine.js +863 -0
  31. package/dist/abis/PerpEngine.js.map +1 -0
  32. package/dist/abis/Querier.cjs +1522 -0
  33. package/dist/abis/Querier.cjs.map +1 -0
  34. package/dist/abis/Querier.d.cts +1149 -0
  35. package/dist/abis/Querier.d.ts +1149 -0
  36. package/dist/abis/Querier.js +1499 -0
  37. package/dist/abis/Querier.js.map +1 -0
  38. package/dist/abis/SpotEngine.cjs +937 -0
  39. package/dist/abis/SpotEngine.cjs.map +1 -0
  40. package/dist/abis/SpotEngine.d.cts +701 -0
  41. package/dist/abis/SpotEngine.d.ts +701 -0
  42. package/dist/abis/SpotEngine.js +914 -0
  43. package/dist/abis/SpotEngine.js.map +1 -0
  44. package/dist/abis/WithdrawPool.cjs +307 -0
  45. package/dist/abis/WithdrawPool.cjs.map +1 -0
  46. package/dist/abis/WithdrawPool.d.cts +214 -0
  47. package/dist/abis/WithdrawPool.d.ts +214 -0
  48. package/dist/abis/WithdrawPool.js +284 -0
  49. package/dist/abis/WithdrawPool.js.map +1 -0
  50. package/dist/abis/index.cjs +41 -0
  51. package/dist/abis/index.cjs.map +1 -0
  52. package/dist/abis/index.d.cts +9 -0
  53. package/dist/abis/index.d.ts +9 -0
  54. package/dist/abis/index.js +11 -0
  55. package/dist/abis/index.js.map +1 -0
  56. package/dist/abis/nadoAbis.cjs +44 -0
  57. package/dist/abis/nadoAbis.cjs.map +1 -0
  58. package/dist/abis/nadoAbis.d.cts +3821 -0
  59. package/dist/abis/nadoAbis.d.ts +3821 -0
  60. package/dist/abis/nadoAbis.js +21 -0
  61. package/dist/abis/nadoAbis.js.map +1 -0
  62. package/dist/chunk-5WRI5ZAA.js +31 -0
  63. package/dist/chunk-5WRI5ZAA.js.map +1 -0
  64. package/dist/chunk-TUJ4HQKF.js +33 -0
  65. package/dist/chunk-TUJ4HQKF.js.map +1 -0
  66. package/dist/consts/chainEnvToChain.cjs +44 -0
  67. package/dist/consts/chainEnvToChain.cjs.map +1 -0
  68. package/dist/consts/chainEnvToChain.d.cts +388 -0
  69. package/dist/consts/chainEnvToChain.d.ts +388 -0
  70. package/dist/consts/chainEnvToChain.js +20 -0
  71. package/dist/consts/chainEnvToChain.js.map +1 -0
  72. package/dist/consts/index.cjs +27 -0
  73. package/dist/consts/index.cjs.map +1 -0
  74. package/dist/consts/index.d.cts +6 -0
  75. package/dist/consts/index.d.ts +6 -0
  76. package/dist/consts/index.js +4 -0
  77. package/dist/consts/index.js.map +1 -0
  78. package/dist/consts/productIds.cjs +34 -0
  79. package/dist/consts/productIds.cjs.map +1 -0
  80. package/dist/consts/productIds.d.cts +4 -0
  81. package/dist/consts/productIds.d.ts +4 -0
  82. package/dist/consts/productIds.js +10 -0
  83. package/dist/consts/productIds.js.map +1 -0
  84. package/dist/deployments/core/deployment.InkSepolia.json +13 -0
  85. package/dist/deployments/core/deployment.arbitrumOne.json +18 -0
  86. package/dist/deployments/core/deployment.localhost.json +18 -0
  87. package/dist/deployments/index.cjs +65 -0
  88. package/dist/deployments/index.cjs.map +1 -0
  89. package/dist/deployments/index.d.cts +13 -0
  90. package/dist/deployments/index.d.ts +13 -0
  91. package/dist/deployments/index.js +32 -0
  92. package/dist/deployments/index.js.map +1 -0
  93. package/dist/eip712/eip712ValueTypes.cjs +19 -0
  94. package/dist/eip712/eip712ValueTypes.cjs.map +1 -0
  95. package/dist/eip712/eip712ValueTypes.d.cts +48 -0
  96. package/dist/eip712/eip712ValueTypes.d.ts +48 -0
  97. package/dist/eip712/eip712ValueTypes.js +1 -0
  98. package/dist/eip712/eip712ValueTypes.js.map +1 -0
  99. package/dist/eip712/getNadoEIP712Domain.cjs +39 -0
  100. package/dist/eip712/getNadoEIP712Domain.cjs.map +1 -0
  101. package/dist/eip712/getNadoEIP712Domain.d.cts +11 -0
  102. package/dist/eip712/getNadoEIP712Domain.d.ts +11 -0
  103. package/dist/eip712/getNadoEIP712Domain.js +16 -0
  104. package/dist/eip712/getNadoEIP712Domain.js.map +1 -0
  105. package/dist/eip712/getNadoEIP712PrimaryType.cjs +35 -0
  106. package/dist/eip712/getNadoEIP712PrimaryType.cjs.map +1 -0
  107. package/dist/eip712/getNadoEIP712PrimaryType.d.cts +16 -0
  108. package/dist/eip712/getNadoEIP712PrimaryType.d.ts +16 -0
  109. package/dist/eip712/getNadoEIP712PrimaryType.js +12 -0
  110. package/dist/eip712/getNadoEIP712PrimaryType.js.map +1 -0
  111. package/dist/eip712/getNadoEIP712Types.cjs +129 -0
  112. package/dist/eip712/getNadoEIP712Types.cjs.map +1 -0
  113. package/dist/eip712/getNadoEIP712Types.d.cts +20 -0
  114. package/dist/eip712/getNadoEIP712Types.d.ts +20 -0
  115. package/dist/eip712/getNadoEIP712Types.js +106 -0
  116. package/dist/eip712/getNadoEIP712Types.js.map +1 -0
  117. package/dist/eip712/getNadoEIP712Values.cjs +206 -0
  118. package/dist/eip712/getNadoEIP712Values.cjs.map +1 -0
  119. package/dist/eip712/getNadoEIP712Values.d.cts +20 -0
  120. package/dist/eip712/getNadoEIP712Values.d.ts +20 -0
  121. package/dist/eip712/getNadoEIP712Values.js +183 -0
  122. package/dist/eip712/getNadoEIP712Values.js.map +1 -0
  123. package/dist/eip712/getOrderVerifyingAddress.cjs +34 -0
  124. package/dist/eip712/getOrderVerifyingAddress.cjs.map +1 -0
  125. package/dist/eip712/getOrderVerifyingAddress.d.cts +9 -0
  126. package/dist/eip712/getOrderVerifyingAddress.d.ts +9 -0
  127. package/dist/eip712/getOrderVerifyingAddress.js +11 -0
  128. package/dist/eip712/getOrderVerifyingAddress.js.map +1 -0
  129. package/dist/eip712/getSignedTransactionRequest.cjs +42 -0
  130. package/dist/eip712/getSignedTransactionRequest.cjs.map +1 -0
  131. package/dist/eip712/getSignedTransactionRequest.d.cts +19 -0
  132. package/dist/eip712/getSignedTransactionRequest.d.ts +19 -0
  133. package/dist/eip712/getSignedTransactionRequest.js +19 -0
  134. package/dist/eip712/getSignedTransactionRequest.js.map +1 -0
  135. package/dist/eip712/index.cjs +43 -0
  136. package/dist/eip712/index.cjs.map +1 -0
  137. package/dist/eip712/index.d.cts +17 -0
  138. package/dist/eip712/index.d.ts +17 -0
  139. package/dist/eip712/index.js +12 -0
  140. package/dist/eip712/index.js.map +1 -0
  141. package/dist/eip712/orderDigest.cjs +45 -0
  142. package/dist/eip712/orderDigest.cjs.map +1 -0
  143. package/dist/eip712/orderDigest.d.cts +20 -0
  144. package/dist/eip712/orderDigest.d.ts +20 -0
  145. package/dist/eip712/orderDigest.js +22 -0
  146. package/dist/eip712/orderDigest.js.map +1 -0
  147. package/dist/eip712/signableRequestType.cjs +19 -0
  148. package/dist/eip712/signableRequestType.cjs.map +1 -0
  149. package/dist/eip712/signableRequestType.d.cts +26 -0
  150. package/dist/eip712/signableRequestType.d.ts +26 -0
  151. package/dist/eip712/signableRequestType.js +1 -0
  152. package/dist/eip712/signableRequestType.js.map +1 -0
  153. package/dist/eip712/signatureParamTypes.cjs +19 -0
  154. package/dist/eip712/signatureParamTypes.cjs.map +1 -0
  155. package/dist/eip712/signatureParamTypes.d.cts +68 -0
  156. package/dist/eip712/signatureParamTypes.d.ts +68 -0
  157. package/dist/eip712/signatureParamTypes.js +1 -0
  158. package/dist/eip712/signatureParamTypes.js.map +1 -0
  159. package/dist/encoding/encoding.cjs +73 -0
  160. package/dist/encoding/encoding.cjs.map +1 -0
  161. package/dist/encoding/encoding.d.cts +11 -0
  162. package/dist/encoding/encoding.d.ts +11 -0
  163. package/dist/encoding/encoding.js +49 -0
  164. package/dist/encoding/encoding.js.map +1 -0
  165. package/dist/encoding/index.cjs +25 -0
  166. package/dist/encoding/index.cjs.map +1 -0
  167. package/dist/encoding/index.d.cts +7 -0
  168. package/dist/encoding/index.d.ts +7 -0
  169. package/dist/encoding/index.js +3 -0
  170. package/dist/encoding/index.js.map +1 -0
  171. package/dist/execute/approveDepositAllowance.cjs +38 -0
  172. package/dist/execute/approveDepositAllowance.cjs.map +1 -0
  173. package/dist/execute/approveDepositAllowance.d.cts +18 -0
  174. package/dist/execute/approveDepositAllowance.d.ts +18 -0
  175. package/dist/execute/approveDepositAllowance.js +15 -0
  176. package/dist/execute/approveDepositAllowance.js.map +1 -0
  177. package/dist/execute/depositCollateral.cjs +59 -0
  178. package/dist/execute/depositCollateral.cjs.map +1 -0
  179. package/dist/execute/depositCollateral.d.cts +21 -0
  180. package/dist/execute/depositCollateral.d.ts +21 -0
  181. package/dist/execute/depositCollateral.js +36 -0
  182. package/dist/execute/depositCollateral.js.map +1 -0
  183. package/dist/execute/index.cjs +27 -0
  184. package/dist/execute/index.cjs.map +1 -0
  185. package/dist/execute/index.d.cts +9 -0
  186. package/dist/execute/index.d.ts +9 -0
  187. package/dist/execute/index.js +4 -0
  188. package/dist/execute/index.js.map +1 -0
  189. package/dist/index.cjs +39 -0
  190. package/dist/index.cjs.map +1 -0
  191. package/dist/index.d.cts +67 -0
  192. package/dist/index.d.ts +67 -0
  193. package/dist/index.js +10 -0
  194. package/dist/index.js.map +1 -0
  195. package/dist/types/ChainEnv.cjs +44 -0
  196. package/dist/types/ChainEnv.cjs.map +1 -0
  197. package/dist/types/ChainEnv.d.cts +7 -0
  198. package/dist/types/ChainEnv.d.ts +7 -0
  199. package/dist/types/ChainEnv.js +18 -0
  200. package/dist/types/ChainEnv.js.map +1 -0
  201. package/dist/types/OrderExecutionType.cjs +19 -0
  202. package/dist/types/OrderExecutionType.cjs.map +1 -0
  203. package/dist/types/OrderExecutionType.d.cts +10 -0
  204. package/dist/types/OrderExecutionType.d.ts +10 -0
  205. package/dist/types/OrderExecutionType.js +1 -0
  206. package/dist/types/OrderExecutionType.js.map +1 -0
  207. package/dist/types/balanceTypes.cjs +19 -0
  208. package/dist/types/balanceTypes.cjs.map +1 -0
  209. package/dist/types/balanceTypes.d.cts +38 -0
  210. package/dist/types/balanceTypes.d.ts +38 -0
  211. package/dist/types/balanceTypes.js +1 -0
  212. package/dist/types/balanceTypes.js.map +1 -0
  213. package/dist/types/bytes.cjs +19 -0
  214. package/dist/types/bytes.cjs.map +1 -0
  215. package/dist/types/bytes.d.cts +3 -0
  216. package/dist/types/bytes.d.ts +3 -0
  217. package/dist/types/bytes.js +1 -0
  218. package/dist/types/bytes.js.map +1 -0
  219. package/dist/types/healthTypes.cjs +19 -0
  220. package/dist/types/healthTypes.cjs.map +1 -0
  221. package/dist/types/healthTypes.d.cts +15 -0
  222. package/dist/types/healthTypes.d.ts +15 -0
  223. package/dist/types/healthTypes.js +1 -0
  224. package/dist/types/healthTypes.js.map +1 -0
  225. package/dist/types/index.cjs +45 -0
  226. package/dist/types/index.cjs.map +1 -0
  227. package/dist/types/index.d.cts +15 -0
  228. package/dist/types/index.d.ts +15 -0
  229. package/dist/types/index.js +13 -0
  230. package/dist/types/index.js.map +1 -0
  231. package/dist/types/marketTypes.cjs +19 -0
  232. package/dist/types/marketTypes.cjs.map +1 -0
  233. package/dist/types/marketTypes.d.cts +31 -0
  234. package/dist/types/marketTypes.d.ts +31 -0
  235. package/dist/types/marketTypes.js +1 -0
  236. package/dist/types/marketTypes.js.map +1 -0
  237. package/dist/types/nadoContractTypes.cjs +19 -0
  238. package/dist/types/nadoContractTypes.cjs.map +1 -0
  239. package/dist/types/nadoContractTypes.d.cts +14 -0
  240. package/dist/types/nadoContractTypes.d.ts +14 -0
  241. package/dist/types/nadoContractTypes.js +1 -0
  242. package/dist/types/nadoContractTypes.js.map +1 -0
  243. package/dist/types/orderAppendixTypes.cjs +19 -0
  244. package/dist/types/orderAppendixTypes.cjs.map +1 -0
  245. package/dist/types/orderAppendixTypes.d.cts +54 -0
  246. package/dist/types/orderAppendixTypes.d.ts +54 -0
  247. package/dist/types/orderAppendixTypes.js +1 -0
  248. package/dist/types/orderAppendixTypes.js.map +1 -0
  249. package/dist/types/productTypes.cjs +47 -0
  250. package/dist/types/productTypes.cjs.map +1 -0
  251. package/dist/types/productTypes.d.cts +55 -0
  252. package/dist/types/productTypes.d.ts +55 -0
  253. package/dist/types/productTypes.js +23 -0
  254. package/dist/types/productTypes.js.map +1 -0
  255. package/dist/types/subaccountTypes.cjs +19 -0
  256. package/dist/types/subaccountTypes.cjs.map +1 -0
  257. package/dist/types/subaccountTypes.d.cts +13 -0
  258. package/dist/types/subaccountTypes.d.ts +13 -0
  259. package/dist/types/subaccountTypes.js +1 -0
  260. package/dist/types/subaccountTypes.js.map +1 -0
  261. package/dist/types/viemTypes.cjs +19 -0
  262. package/dist/types/viemTypes.cjs.map +1 -0
  263. package/dist/types/viemTypes.d.cts +23 -0
  264. package/dist/types/viemTypes.d.ts +23 -0
  265. package/dist/types/viemTypes.js +1 -0
  266. package/dist/types/viemTypes.js.map +1 -0
  267. package/dist/utils/asyncResult.cjs +36 -0
  268. package/dist/utils/asyncResult.cjs.map +1 -0
  269. package/dist/utils/asyncResult.d.cts +4 -0
  270. package/dist/utils/asyncResult.d.ts +4 -0
  271. package/dist/utils/asyncResult.js +13 -0
  272. package/dist/utils/asyncResult.js.map +1 -0
  273. package/dist/utils/balanceValue.cjs +43 -0
  274. package/dist/utils/balanceValue.cjs.map +1 -0
  275. package/dist/utils/balanceValue.d.cts +25 -0
  276. package/dist/utils/balanceValue.d.ts +25 -0
  277. package/dist/utils/balanceValue.js +18 -0
  278. package/dist/utils/balanceValue.js.map +1 -0
  279. package/dist/utils/bytes32.cjs +92 -0
  280. package/dist/utils/bytes32.cjs.map +1 -0
  281. package/dist/utils/bytes32.d.cts +47 -0
  282. package/dist/utils/bytes32.d.ts +47 -0
  283. package/dist/utils/bytes32.js +64 -0
  284. package/dist/utils/bytes32.js.map +1 -0
  285. package/dist/utils/bytes32.test.cjs +203 -0
  286. package/dist/utils/bytes32.test.cjs.map +1 -0
  287. package/dist/utils/bytes32.test.d.cts +2 -0
  288. package/dist/utils/bytes32.test.d.ts +2 -0
  289. package/dist/utils/bytes32.test.js +165 -0
  290. package/dist/utils/bytes32.test.js.map +1 -0
  291. package/dist/utils/createDeterministicLinkedSignerPrivateKey.cjs +56 -0
  292. package/dist/utils/createDeterministicLinkedSignerPrivateKey.cjs.map +1 -0
  293. package/dist/utils/createDeterministicLinkedSignerPrivateKey.d.cts +20 -0
  294. package/dist/utils/createDeterministicLinkedSignerPrivateKey.d.ts +20 -0
  295. package/dist/utils/createDeterministicLinkedSignerPrivateKey.js +33 -0
  296. package/dist/utils/createDeterministicLinkedSignerPrivateKey.js.map +1 -0
  297. package/dist/utils/errors/WalletNotProvidedError.cjs +36 -0
  298. package/dist/utils/errors/WalletNotProvidedError.cjs.map +1 -0
  299. package/dist/utils/errors/WalletNotProvidedError.d.cts +5 -0
  300. package/dist/utils/errors/WalletNotProvidedError.d.ts +5 -0
  301. package/dist/utils/errors/WalletNotProvidedError.js +13 -0
  302. package/dist/utils/errors/WalletNotProvidedError.js.map +1 -0
  303. package/dist/utils/errors/index.cjs +25 -0
  304. package/dist/utils/errors/index.cjs.map +1 -0
  305. package/dist/utils/errors/index.d.cts +1 -0
  306. package/dist/utils/errors/index.d.ts +1 -0
  307. package/dist/utils/errors/index.js +3 -0
  308. package/dist/utils/errors/index.js.map +1 -0
  309. package/dist/utils/getValidatedAddress.cjs +37 -0
  310. package/dist/utils/getValidatedAddress.cjs.map +1 -0
  311. package/dist/utils/getValidatedAddress.d.cts +9 -0
  312. package/dist/utils/getValidatedAddress.d.ts +9 -0
  313. package/dist/utils/getValidatedAddress.js +14 -0
  314. package/dist/utils/getValidatedAddress.js.map +1 -0
  315. package/dist/utils/getValidatedHex.cjs +37 -0
  316. package/dist/utils/getValidatedHex.cjs.map +1 -0
  317. package/dist/utils/getValidatedHex.d.cts +9 -0
  318. package/dist/utils/getValidatedHex.d.ts +9 -0
  319. package/dist/utils/getValidatedHex.js +14 -0
  320. package/dist/utils/getValidatedHex.js.map +1 -0
  321. package/dist/utils/index.cjs +53 -0
  322. package/dist/utils/index.cjs.map +1 -0
  323. package/dist/utils/index.d.cts +37 -0
  324. package/dist/utils/index.d.ts +37 -0
  325. package/dist/utils/index.js +17 -0
  326. package/dist/utils/index.js.map +1 -0
  327. package/dist/utils/interest.cjs +94 -0
  328. package/dist/utils/interest.cjs.map +1 -0
  329. package/dist/utils/interest.d.cts +50 -0
  330. package/dist/utils/interest.d.ts +50 -0
  331. package/dist/utils/interest.js +70 -0
  332. package/dist/utils/interest.js.map +1 -0
  333. package/dist/utils/isWriteableContract.cjs +33 -0
  334. package/dist/utils/isWriteableContract.cjs.map +1 -0
  335. package/dist/utils/isWriteableContract.d.cts +6 -0
  336. package/dist/utils/isWriteableContract.d.ts +6 -0
  337. package/dist/utils/isWriteableContract.js +10 -0
  338. package/dist/utils/isWriteableContract.js.map +1 -0
  339. package/dist/utils/mapValues.cjs +38 -0
  340. package/dist/utils/mapValues.cjs.map +1 -0
  341. package/dist/utils/mapValues.d.cts +6 -0
  342. package/dist/utils/mapValues.d.ts +6 -0
  343. package/dist/utils/mapValues.js +15 -0
  344. package/dist/utils/mapValues.js.map +1 -0
  345. package/dist/utils/math/BigDecimals.cjs +37 -0
  346. package/dist/utils/math/BigDecimals.cjs.map +1 -0
  347. package/dist/utils/math/BigDecimals.d.cts +8 -0
  348. package/dist/utils/math/BigDecimals.d.ts +8 -0
  349. package/dist/utils/math/BigDecimals.js +14 -0
  350. package/dist/utils/math/BigDecimals.js.map +1 -0
  351. package/dist/utils/math/bigDecimal.cjs +57 -0
  352. package/dist/utils/math/bigDecimal.cjs.map +1 -0
  353. package/dist/utils/math/bigDecimal.d.cts +18 -0
  354. package/dist/utils/math/bigDecimal.d.ts +18 -0
  355. package/dist/utils/math/bigDecimal.js +23 -0
  356. package/dist/utils/math/bigDecimal.js.map +1 -0
  357. package/dist/utils/math/clamp.cjs +38 -0
  358. package/dist/utils/math/clamp.cjs.map +1 -0
  359. package/dist/utils/math/clamp.d.cts +15 -0
  360. package/dist/utils/math/clamp.d.ts +15 -0
  361. package/dist/utils/math/clamp.js +15 -0
  362. package/dist/utils/math/clamp.js.map +1 -0
  363. package/dist/utils/math/decimalAdjustment.cjs +60 -0
  364. package/dist/utils/math/decimalAdjustment.cjs.map +1 -0
  365. package/dist/utils/math/decimalAdjustment.d.cts +31 -0
  366. package/dist/utils/math/decimalAdjustment.d.ts +31 -0
  367. package/dist/utils/math/decimalAdjustment.js +35 -0
  368. package/dist/utils/math/decimalAdjustment.js.map +1 -0
  369. package/dist/utils/math/index.cjs +37 -0
  370. package/dist/utils/math/index.cjs.map +1 -0
  371. package/dist/utils/math/index.d.cts +8 -0
  372. package/dist/utils/math/index.d.ts +8 -0
  373. package/dist/utils/math/index.js +9 -0
  374. package/dist/utils/math/index.js.map +1 -0
  375. package/dist/utils/math/sumBigDecimalBy.cjs +36 -0
  376. package/dist/utils/math/sumBigDecimalBy.cjs.map +1 -0
  377. package/dist/utils/math/sumBigDecimalBy.d.cts +10 -0
  378. package/dist/utils/math/sumBigDecimalBy.d.ts +10 -0
  379. package/dist/utils/math/sumBigDecimalBy.js +13 -0
  380. package/dist/utils/math/sumBigDecimalBy.js.map +1 -0
  381. package/dist/utils/math/toBigInt.cjs +34 -0
  382. package/dist/utils/math/toBigInt.cjs.map +1 -0
  383. package/dist/utils/math/toBigInt.d.cts +11 -0
  384. package/dist/utils/math/toBigInt.d.ts +11 -0
  385. package/dist/utils/math/toBigInt.js +11 -0
  386. package/dist/utils/math/toBigInt.js.map +1 -0
  387. package/dist/utils/math/toIntegerString.cjs +34 -0
  388. package/dist/utils/math/toIntegerString.cjs.map +1 -0
  389. package/dist/utils/math/toIntegerString.d.cts +11 -0
  390. package/dist/utils/math/toIntegerString.d.ts +11 -0
  391. package/dist/utils/math/toIntegerString.js +11 -0
  392. package/dist/utils/math/toIntegerString.js.map +1 -0
  393. package/dist/utils/orders/appendix/appendixTWAPValue.cjs +50 -0
  394. package/dist/utils/orders/appendix/appendixTWAPValue.cjs.map +1 -0
  395. package/dist/utils/orders/appendix/appendixTWAPValue.d.cts +31 -0
  396. package/dist/utils/orders/appendix/appendixTWAPValue.d.ts +31 -0
  397. package/dist/utils/orders/appendix/appendixTWAPValue.js +26 -0
  398. package/dist/utils/orders/appendix/appendixTWAPValue.js.map +1 -0
  399. package/dist/utils/orders/appendix/bitMaskValue.cjs +34 -0
  400. package/dist/utils/orders/appendix/bitMaskValue.cjs.map +1 -0
  401. package/dist/utils/orders/appendix/bitMaskValue.d.cts +10 -0
  402. package/dist/utils/orders/appendix/bitMaskValue.d.ts +10 -0
  403. package/dist/utils/orders/appendix/bitMaskValue.js +11 -0
  404. package/dist/utils/orders/appendix/bitMaskValue.js.map +1 -0
  405. package/dist/utils/orders/appendix/index.cjs +33 -0
  406. package/dist/utils/orders/appendix/index.cjs.map +1 -0
  407. package/dist/utils/orders/appendix/index.d.cts +9 -0
  408. package/dist/utils/orders/appendix/index.d.ts +9 -0
  409. package/dist/utils/orders/appendix/index.js +7 -0
  410. package/dist/utils/orders/appendix/index.js.map +1 -0
  411. package/dist/utils/orders/appendix/orderAppendix.test.cjs +165 -0
  412. package/dist/utils/orders/appendix/orderAppendix.test.cjs.map +1 -0
  413. package/dist/utils/orders/appendix/orderAppendix.test.d.cts +2 -0
  414. package/dist/utils/orders/appendix/orderAppendix.test.d.ts +2 -0
  415. package/dist/utils/orders/appendix/orderAppendix.test.js +120 -0
  416. package/dist/utils/orders/appendix/orderAppendix.test.js.map +1 -0
  417. package/dist/utils/orders/appendix/packOrderAppendix.cjs +88 -0
  418. package/dist/utils/orders/appendix/packOrderAppendix.cjs.map +1 -0
  419. package/dist/utils/orders/appendix/packOrderAppendix.d.cts +12 -0
  420. package/dist/utils/orders/appendix/packOrderAppendix.d.ts +12 -0
  421. package/dist/utils/orders/appendix/packOrderAppendix.js +65 -0
  422. package/dist/utils/orders/appendix/packOrderAppendix.js.map +1 -0
  423. package/dist/utils/orders/appendix/types.cjs +19 -0
  424. package/dist/utils/orders/appendix/types.cjs.map +1 -0
  425. package/dist/utils/orders/appendix/types.d.cts +19 -0
  426. package/dist/utils/orders/appendix/types.d.ts +19 -0
  427. package/dist/utils/orders/appendix/types.js +1 -0
  428. package/dist/utils/orders/appendix/types.js.map +1 -0
  429. package/dist/utils/orders/appendix/unpackOrderAppendix.cjs +106 -0
  430. package/dist/utils/orders/appendix/unpackOrderAppendix.cjs.map +1 -0
  431. package/dist/utils/orders/appendix/unpackOrderAppendix.d.cts +12 -0
  432. package/dist/utils/orders/appendix/unpackOrderAppendix.d.ts +12 -0
  433. package/dist/utils/orders/appendix/unpackOrderAppendix.js +83 -0
  434. package/dist/utils/orders/appendix/unpackOrderAppendix.js.map +1 -0
  435. package/dist/utils/orders/index.cjs +29 -0
  436. package/dist/utils/orders/index.cjs.map +1 -0
  437. package/dist/utils/orders/index.d.cts +11 -0
  438. package/dist/utils/orders/index.d.ts +11 -0
  439. package/dist/utils/orders/index.js +5 -0
  440. package/dist/utils/orders/index.js.map +1 -0
  441. package/dist/utils/orders/orderNonce.cjs +44 -0
  442. package/dist/utils/orders/orderNonce.cjs.map +1 -0
  443. package/dist/utils/orders/orderNonce.d.cts +14 -0
  444. package/dist/utils/orders/orderNonce.d.ts +14 -0
  445. package/dist/utils/orders/orderNonce.js +20 -0
  446. package/dist/utils/orders/orderNonce.js.map +1 -0
  447. package/dist/utils/orders/recvTime.cjs +33 -0
  448. package/dist/utils/orders/recvTime.cjs.map +1 -0
  449. package/dist/utils/orders/recvTime.d.cts +9 -0
  450. package/dist/utils/orders/recvTime.d.ts +9 -0
  451. package/dist/utils/orders/recvTime.js +10 -0
  452. package/dist/utils/orders/recvTime.js.map +1 -0
  453. package/dist/utils/productTypeFilter.cjs +49 -0
  454. package/dist/utils/productTypeFilter.cjs.map +1 -0
  455. package/dist/utils/productTypeFilter.d.cts +11 -0
  456. package/dist/utils/productTypeFilter.d.ts +11 -0
  457. package/dist/utils/productTypeFilter.js +25 -0
  458. package/dist/utils/productTypeFilter.js.map +1 -0
  459. package/dist/utils/time.cjs +47 -0
  460. package/dist/utils/time.cjs.map +1 -0
  461. package/dist/utils/time.d.cts +17 -0
  462. package/dist/utils/time.d.ts +17 -0
  463. package/dist/utils/time.js +22 -0
  464. package/dist/utils/time.js.map +1 -0
  465. package/dist/utils/toPrintableObject.cjs +51 -0
  466. package/dist/utils/toPrintableObject.cjs.map +1 -0
  467. package/dist/utils/toPrintableObject.d.cts +6 -0
  468. package/dist/utils/toPrintableObject.d.ts +6 -0
  469. package/dist/utils/toPrintableObject.js +28 -0
  470. package/dist/utils/toPrintableObject.js.map +1 -0
  471. package/package.json +49 -0
  472. package/src/abis/Clearinghouse.ts +861 -0
  473. package/src/abis/ERC20.ts +185 -0
  474. package/src/abis/Endpoint.ts +559 -0
  475. package/src/abis/MockERC20.ts +311 -0
  476. package/src/abis/PerpEngine.ts +856 -0
  477. package/src/abis/Querier.ts +1492 -0
  478. package/src/abis/SpotEngine.ts +907 -0
  479. package/src/abis/WithdrawPool.ts +277 -0
  480. package/src/abis/index.ts +9 -0
  481. package/src/abis/nadoAbis.ts +19 -0
  482. package/src/consts/chainEnvToChain.ts +16 -0
  483. package/src/consts/index.ts +2 -0
  484. package/src/consts/productIds.ts +3 -0
  485. package/src/deployments/core/deployment.InkSepolia.json +13 -0
  486. package/src/deployments/core/deployment.arbitrumOne.json +18 -0
  487. package/src/deployments/core/deployment.localhost.json +18 -0
  488. package/src/deployments/index.ts +40 -0
  489. package/src/eip712/eip712ValueTypes.ts +83 -0
  490. package/src/eip712/getNadoEIP712Domain.ts +20 -0
  491. package/src/eip712/getNadoEIP712PrimaryType.ts +13 -0
  492. package/src/eip712/getNadoEIP712Types.ts +113 -0
  493. package/src/eip712/getNadoEIP712Values.ts +248 -0
  494. package/src/eip712/getOrderVerifyingAddress.ts +9 -0
  495. package/src/eip712/getSignedTransactionRequest.ts +30 -0
  496. package/src/eip712/index.ts +10 -0
  497. package/src/eip712/orderDigest.ts +28 -0
  498. package/src/eip712/signableRequestType.ts +32 -0
  499. package/src/eip712/signatureParamTypes.ts +84 -0
  500. package/src/encoding/encoding.ts +50 -0
  501. package/src/encoding/index.ts +1 -0
  502. package/src/execute/approveDepositAllowance.ts +20 -0
  503. package/src/execute/depositCollateral.ts +43 -0
  504. package/src/execute/index.ts +2 -0
  505. package/src/index.ts +8 -0
  506. package/src/types/ChainEnv.ts +13 -0
  507. package/src/types/OrderExecutionType.ts +8 -0
  508. package/src/types/balanceTypes.ts +47 -0
  509. package/src/types/bytes.ts +1 -0
  510. package/src/types/healthTypes.ts +17 -0
  511. package/src/types/index.ts +11 -0
  512. package/src/types/marketTypes.ts +40 -0
  513. package/src/types/nadoContractTypes.ts +14 -0
  514. package/src/types/orderAppendixTypes.ts +58 -0
  515. package/src/types/productTypes.ts +76 -0
  516. package/src/types/subaccountTypes.ts +13 -0
  517. package/src/types/viemTypes.ts +42 -0
  518. package/src/utils/asyncResult.ts +12 -0
  519. package/src/utils/balanceValue.ts +42 -0
  520. package/src/utils/bytes32.test.ts +117 -0
  521. package/src/utils/bytes32.ts +110 -0
  522. package/src/utils/createDeterministicLinkedSignerPrivateKey.ts +46 -0
  523. package/src/utils/errors/WalletNotProvidedError.ts +6 -0
  524. package/src/utils/errors/index.ts +1 -0
  525. package/src/utils/getValidatedAddress.ts +13 -0
  526. package/src/utils/getValidatedHex.ts +13 -0
  527. package/src/utils/index.ts +15 -0
  528. package/src/utils/interest.ts +133 -0
  529. package/src/utils/isWriteableContract.ts +11 -0
  530. package/src/utils/mapValues.ts +18 -0
  531. package/src/utils/math/BigDecimals.ts +8 -0
  532. package/src/utils/math/bigDecimal.ts +32 -0
  533. package/src/utils/math/clamp.ts +26 -0
  534. package/src/utils/math/decimalAdjustment.ts +65 -0
  535. package/src/utils/math/index.ts +7 -0
  536. package/src/utils/math/sumBigDecimalBy.ts +18 -0
  537. package/src/utils/math/toBigInt.ts +11 -0
  538. package/src/utils/math/toIntegerString.ts +11 -0
  539. package/src/utils/orders/appendix/appendixTWAPValue.ts +51 -0
  540. package/src/utils/orders/appendix/bitMaskValue.ts +11 -0
  541. package/src/utils/orders/appendix/index.ts +5 -0
  542. package/src/utils/orders/appendix/orderAppendix.test.ts +121 -0
  543. package/src/utils/orders/appendix/packOrderAppendix.ts +71 -0
  544. package/src/utils/orders/appendix/types.ts +17 -0
  545. package/src/utils/orders/appendix/unpackOrderAppendix.ts +90 -0
  546. package/src/utils/orders/index.ts +3 -0
  547. package/src/utils/orders/orderNonce.ts +32 -0
  548. package/src/utils/orders/recvTime.ts +9 -0
  549. package/src/utils/productTypeFilter.ts +23 -0
  550. package/src/utils/time.ts +21 -0
  551. package/src/utils/toPrintableObject.ts +25 -0
@@ -0,0 +1,3 @@
1
+ // src/utils/errors/index.ts
2
+ export * from "./WalletNotProvidedError.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/errors/index.ts"],"sourcesContent":["export * from './WalletNotProvidedError';\n"],"mappings":";AAAA,cAAc;","names":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/getValidatedAddress.ts
21
+ var getValidatedAddress_exports = {};
22
+ __export(getValidatedAddress_exports, {
23
+ getValidatedAddress: () => getValidatedAddress
24
+ });
25
+ module.exports = __toCommonJS(getValidatedAddress_exports);
26
+ var import_viem = require("viem");
27
+ function getValidatedAddress(maybeAddress) {
28
+ if (!(0, import_viem.isAddress)(maybeAddress)) {
29
+ throw new Error(`Invalid address: ${maybeAddress}`);
30
+ }
31
+ return maybeAddress;
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ getValidatedAddress
36
+ });
37
+ //# sourceMappingURL=getValidatedAddress.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/getValidatedAddress.ts"],"sourcesContent":["import { Address, isAddress } from 'viem';\n\n/**\n * Check if the given string is a valid address. Throws an error if not.\n * @param maybeAddress\n */\nexport function getValidatedAddress(maybeAddress: string): Address {\n if (!isAddress(maybeAddress)) {\n throw new Error(`Invalid address: ${maybeAddress}`);\n }\n\n return maybeAddress;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmC;AAM5B,SAAS,oBAAoB,cAA+B;AACjE,MAAI,KAAC,uBAAU,YAAY,GAAG;AAC5B,UAAM,IAAI,MAAM,oBAAoB,YAAY,EAAE;AAAA,EACpD;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * Check if the given string is a valid address. Throws an error if not.
5
+ * @param maybeAddress
6
+ */
7
+ declare function getValidatedAddress(maybeAddress: string): Address;
8
+
9
+ export { getValidatedAddress };
@@ -0,0 +1,9 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * Check if the given string is a valid address. Throws an error if not.
5
+ * @param maybeAddress
6
+ */
7
+ declare function getValidatedAddress(maybeAddress: string): Address;
8
+
9
+ export { getValidatedAddress };
@@ -0,0 +1,14 @@
1
+ import "../chunk-5WRI5ZAA.js";
2
+
3
+ // src/utils/getValidatedAddress.ts
4
+ import { isAddress } from "viem";
5
+ function getValidatedAddress(maybeAddress) {
6
+ if (!isAddress(maybeAddress)) {
7
+ throw new Error(`Invalid address: ${maybeAddress}`);
8
+ }
9
+ return maybeAddress;
10
+ }
11
+ export {
12
+ getValidatedAddress
13
+ };
14
+ //# sourceMappingURL=getValidatedAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/getValidatedAddress.ts"],"sourcesContent":["import { Address, isAddress } from 'viem';\n\n/**\n * Check if the given string is a valid address. Throws an error if not.\n * @param maybeAddress\n */\nexport function getValidatedAddress(maybeAddress: string): Address {\n if (!isAddress(maybeAddress)) {\n throw new Error(`Invalid address: ${maybeAddress}`);\n }\n\n return maybeAddress;\n}\n"],"mappings":";;;AAAA,SAAkB,iBAAiB;AAM5B,SAAS,oBAAoB,cAA+B;AACjE,MAAI,CAAC,UAAU,YAAY,GAAG;AAC5B,UAAM,IAAI,MAAM,oBAAoB,YAAY,EAAE;AAAA,EACpD;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/getValidatedHex.ts
21
+ var getValidatedHex_exports = {};
22
+ __export(getValidatedHex_exports, {
23
+ getValidatedHex: () => getValidatedHex
24
+ });
25
+ module.exports = __toCommonJS(getValidatedHex_exports);
26
+ var import_viem = require("viem");
27
+ function getValidatedHex(maybeHex) {
28
+ if (!(0, import_viem.isHex)(maybeHex)) {
29
+ throw new Error(`Invalid hex string: ${maybeHex}`);
30
+ }
31
+ return maybeHex;
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ getValidatedHex
36
+ });
37
+ //# sourceMappingURL=getValidatedHex.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/getValidatedHex.ts"],"sourcesContent":["import { Hex, isHex } from 'viem';\n\n/**\n * Check if the given string is a valid hex string. Throws an error if not.\n * @param maybeHex\n */\nexport function getValidatedHex(maybeHex: string): Hex {\n if (!isHex(maybeHex)) {\n throw new Error(`Invalid hex string: ${maybeHex}`);\n }\n\n return maybeHex;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2B;AAMpB,SAAS,gBAAgB,UAAuB;AACrD,MAAI,KAAC,mBAAM,QAAQ,GAAG;AACpB,UAAM,IAAI,MAAM,uBAAuB,QAAQ,EAAE;AAAA,EACnD;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { Hex } from 'viem';
2
+
3
+ /**
4
+ * Check if the given string is a valid hex string. Throws an error if not.
5
+ * @param maybeHex
6
+ */
7
+ declare function getValidatedHex(maybeHex: string): Hex;
8
+
9
+ export { getValidatedHex };
@@ -0,0 +1,9 @@
1
+ import { Hex } from 'viem';
2
+
3
+ /**
4
+ * Check if the given string is a valid hex string. Throws an error if not.
5
+ * @param maybeHex
6
+ */
7
+ declare function getValidatedHex(maybeHex: string): Hex;
8
+
9
+ export { getValidatedHex };
@@ -0,0 +1,14 @@
1
+ import "../chunk-5WRI5ZAA.js";
2
+
3
+ // src/utils/getValidatedHex.ts
4
+ import { isHex } from "viem";
5
+ function getValidatedHex(maybeHex) {
6
+ if (!isHex(maybeHex)) {
7
+ throw new Error(`Invalid hex string: ${maybeHex}`);
8
+ }
9
+ return maybeHex;
10
+ }
11
+ export {
12
+ getValidatedHex
13
+ };
14
+ //# sourceMappingURL=getValidatedHex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/getValidatedHex.ts"],"sourcesContent":["import { Hex, isHex } from 'viem';\n\n/**\n * Check if the given string is a valid hex string. Throws an error if not.\n * @param maybeHex\n */\nexport function getValidatedHex(maybeHex: string): Hex {\n if (!isHex(maybeHex)) {\n throw new Error(`Invalid hex string: ${maybeHex}`);\n }\n\n return maybeHex;\n}\n"],"mappings":";;;AAAA,SAAc,aAAa;AAMpB,SAAS,gBAAgB,UAAuB;AACrD,MAAI,CAAC,MAAM,QAAQ,GAAG;AACpB,UAAM,IAAI,MAAM,uBAAuB,QAAQ,EAAE;AAAA,EACnD;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+
17
+ // src/utils/index.ts
18
+ var utils_exports = {};
19
+ module.exports = __toCommonJS(utils_exports);
20
+ __reExport(utils_exports, require("./orders/index.cjs"), module.exports);
21
+ __reExport(utils_exports, require("./interest.cjs"), module.exports);
22
+ __reExport(utils_exports, require("./productTypeFilter.cjs"), module.exports);
23
+ __reExport(utils_exports, require("./balanceValue.cjs"), module.exports);
24
+ __reExport(utils_exports, require("./bytes32.cjs"), module.exports);
25
+ __reExport(utils_exports, require("./createDeterministicLinkedSignerPrivateKey.cjs"), module.exports);
26
+ __reExport(utils_exports, require("./isWriteableContract.cjs"), module.exports);
27
+ __reExport(utils_exports, require("./errors/index.cjs"), module.exports);
28
+ __reExport(utils_exports, require("./math/index.cjs"), module.exports);
29
+ __reExport(utils_exports, require("./asyncResult.cjs"), module.exports);
30
+ __reExport(utils_exports, require("./getValidatedAddress.cjs"), module.exports);
31
+ __reExport(utils_exports, require("./getValidatedHex.cjs"), module.exports);
32
+ __reExport(utils_exports, require("./mapValues.cjs"), module.exports);
33
+ __reExport(utils_exports, require("./time.cjs"), module.exports);
34
+ __reExport(utils_exports, require("./toPrintableObject.cjs"), module.exports);
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ ...require("./orders/index.cjs"),
38
+ ...require("./interest.cjs"),
39
+ ...require("./productTypeFilter.cjs"),
40
+ ...require("./balanceValue.cjs"),
41
+ ...require("./bytes32.cjs"),
42
+ ...require("./createDeterministicLinkedSignerPrivateKey.cjs"),
43
+ ...require("./isWriteableContract.cjs"),
44
+ ...require("./errors/index.cjs"),
45
+ ...require("./math/index.cjs"),
46
+ ...require("./asyncResult.cjs"),
47
+ ...require("./getValidatedAddress.cjs"),
48
+ ...require("./getValidatedHex.cjs"),
49
+ ...require("./mapValues.cjs"),
50
+ ...require("./time.cjs"),
51
+ ...require("./toPrintableObject.cjs")
52
+ });
53
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './orders';\nexport * from './interest';\nexport * from './productTypeFilter';\nexport * from './balanceValue';\nexport * from './bytes32';\nexport * from './createDeterministicLinkedSignerPrivateKey';\nexport * from './isWriteableContract';\nexport * from './errors';\nexport * from './math';\nexport * from './asyncResult';\nexport * from './getValidatedAddress';\nexport * from './getValidatedHex';\nexport * from './mapValues';\nexport * from './time';\nexport * from './toPrintableObject';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,+BAAd;AACA,0BAAc,2BADd;AAEA,0BAAc,oCAFd;AAGA,0BAAc,+BAHd;AAIA,0BAAc,0BAJd;AAKA,0BAAc,4DALd;AAMA,0BAAc,sCANd;AAOA,0BAAc,+BAPd;AAQA,0BAAc,6BARd;AASA,0BAAc,8BATd;AAUA,0BAAc,sCAVd;AAWA,0BAAc,kCAXd;AAYA,0BAAc,4BAZd;AAaA,0BAAc,uBAbd;AAcA,0BAAc,oCAdd;","names":[]}
@@ -0,0 +1,37 @@
1
+ export { getOrderNonce, getRecvTimeFromOrderNonce } from './orders/orderNonce.cjs';
2
+ export { getDefaultRecvTime } from './orders/recvTime.cjs';
3
+ export { packTWAPOrderAppendixValue, unpackTWAPOrderAppendixValue } from './orders/appendix/appendixTWAPValue.cjs';
4
+ export { unpackOrderAppendix } from './orders/appendix/unpackOrderAppendix.cjs';
5
+ export { packOrderAppendix } from './orders/appendix/packOrderAppendix.cjs';
6
+ export { PackedOrderAppendixBits } from './orders/appendix/types.cjs';
7
+ export { bitMaskValue } from './orders/appendix/bitMaskValue.cjs';
8
+ export { calcBorrowRateForTimeRange, calcBorrowRatePerSecond, calcRealizedDepositRateForTimeRange, calcTotalBorrowed, calcTotalDeposited, calcUtilizationRatio } from './interest.cjs';
9
+ export { isPerpBalance, isPerpProduct, isSpotBalance, isSpotProduct } from './productTypeFilter.cjs';
10
+ export { calcPerpBalanceNotionalValue, calcPerpBalanceValue, calcSpotBalanceValue } from './balanceValue.cjs';
11
+ export { subaccountFromBytes32, subaccountFromHex, subaccountNameBytesToStr, subaccountNameToBytes12, subaccountToBytes32, subaccountToHex } from './bytes32.cjs';
12
+ export { createDeterministicLinkedSignerPrivateKey } from './createDeterministicLinkedSignerPrivateKey.cjs';
13
+ export { isWriteableContract } from './isWriteableContract.cjs';
14
+ export { WalletNotProvidedError } from './errors/WalletNotProvidedError.cjs';
15
+ export { BigDecimalish, toBigDecimal } from './math/bigDecimal.cjs';
16
+ export { toIntegerString } from './math/toIntegerString.cjs';
17
+ export { toBigInt } from './math/toBigInt.cjs';
18
+ export { clampBigDecimal } from './math/clamp.cjs';
19
+ export { sumBigDecimalBy } from './math/sumBigDecimalBy.cjs';
20
+ export { NADO_PRODUCT_DECIMALS, addDecimals, removeDecimals } from './math/decimalAdjustment.cjs';
21
+ export { BigDecimals } from './math/BigDecimals.cjs';
22
+ export { AsyncResult, asyncResult } from './asyncResult.cjs';
23
+ export { getValidatedAddress } from './getValidatedAddress.cjs';
24
+ export { getValidatedHex } from './getValidatedHex.cjs';
25
+ export { mapValues } from './mapValues.cjs';
26
+ export { TimeInSeconds, millisToSeconds, nowInSeconds } from './time.cjs';
27
+ export { toPrintableObject } from './toPrintableObject.cjs';
28
+ export { default as BigDecimal } from 'bignumber.js';
29
+ import '../types/orderAppendixTypes.cjs';
30
+ import '../types/OrderExecutionType.cjs';
31
+ import '../types/productTypes.cjs';
32
+ import '../types/balanceTypes.cjs';
33
+ import '../types/healthTypes.cjs';
34
+ import 'viem';
35
+ import '../types/bytes.cjs';
36
+ import '../types/subaccountTypes.cjs';
37
+ import '../types/viemTypes.cjs';
@@ -0,0 +1,37 @@
1
+ export { getOrderNonce, getRecvTimeFromOrderNonce } from './orders/orderNonce.js';
2
+ export { getDefaultRecvTime } from './orders/recvTime.js';
3
+ export { packTWAPOrderAppendixValue, unpackTWAPOrderAppendixValue } from './orders/appendix/appendixTWAPValue.js';
4
+ export { unpackOrderAppendix } from './orders/appendix/unpackOrderAppendix.js';
5
+ export { packOrderAppendix } from './orders/appendix/packOrderAppendix.js';
6
+ export { PackedOrderAppendixBits } from './orders/appendix/types.js';
7
+ export { bitMaskValue } from './orders/appendix/bitMaskValue.js';
8
+ export { calcBorrowRateForTimeRange, calcBorrowRatePerSecond, calcRealizedDepositRateForTimeRange, calcTotalBorrowed, calcTotalDeposited, calcUtilizationRatio } from './interest.js';
9
+ export { isPerpBalance, isPerpProduct, isSpotBalance, isSpotProduct } from './productTypeFilter.js';
10
+ export { calcPerpBalanceNotionalValue, calcPerpBalanceValue, calcSpotBalanceValue } from './balanceValue.js';
11
+ export { subaccountFromBytes32, subaccountFromHex, subaccountNameBytesToStr, subaccountNameToBytes12, subaccountToBytes32, subaccountToHex } from './bytes32.js';
12
+ export { createDeterministicLinkedSignerPrivateKey } from './createDeterministicLinkedSignerPrivateKey.js';
13
+ export { isWriteableContract } from './isWriteableContract.js';
14
+ export { WalletNotProvidedError } from './errors/WalletNotProvidedError.js';
15
+ export { BigDecimalish, toBigDecimal } from './math/bigDecimal.js';
16
+ export { toIntegerString } from './math/toIntegerString.js';
17
+ export { toBigInt } from './math/toBigInt.js';
18
+ export { clampBigDecimal } from './math/clamp.js';
19
+ export { sumBigDecimalBy } from './math/sumBigDecimalBy.js';
20
+ export { NADO_PRODUCT_DECIMALS, addDecimals, removeDecimals } from './math/decimalAdjustment.js';
21
+ export { BigDecimals } from './math/BigDecimals.js';
22
+ export { AsyncResult, asyncResult } from './asyncResult.js';
23
+ export { getValidatedAddress } from './getValidatedAddress.js';
24
+ export { getValidatedHex } from './getValidatedHex.js';
25
+ export { mapValues } from './mapValues.js';
26
+ export { TimeInSeconds, millisToSeconds, nowInSeconds } from './time.js';
27
+ export { toPrintableObject } from './toPrintableObject.js';
28
+ export { default as BigDecimal } from 'bignumber.js';
29
+ import '../types/orderAppendixTypes.js';
30
+ import '../types/OrderExecutionType.js';
31
+ import '../types/productTypes.js';
32
+ import '../types/balanceTypes.js';
33
+ import '../types/healthTypes.js';
34
+ import 'viem';
35
+ import '../types/bytes.js';
36
+ import '../types/subaccountTypes.js';
37
+ import '../types/viemTypes.js';
@@ -0,0 +1,17 @@
1
+ // src/utils/index.ts
2
+ export * from "./orders/index.js";
3
+ export * from "./interest.js";
4
+ export * from "./productTypeFilter.js";
5
+ export * from "./balanceValue.js";
6
+ export * from "./bytes32.js";
7
+ export * from "./createDeterministicLinkedSignerPrivateKey.js";
8
+ export * from "./isWriteableContract.js";
9
+ export * from "./errors/index.js";
10
+ export * from "./math/index.js";
11
+ export * from "./asyncResult.js";
12
+ export * from "./getValidatedAddress.js";
13
+ export * from "./getValidatedHex.js";
14
+ export * from "./mapValues.js";
15
+ export * from "./time.js";
16
+ export * from "./toPrintableObject.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './orders';\nexport * from './interest';\nexport * from './productTypeFilter';\nexport * from './balanceValue';\nexport * from './bytes32';\nexport * from './createDeterministicLinkedSignerPrivateKey';\nexport * from './isWriteableContract';\nexport * from './errors';\nexport * from './math';\nexport * from './asyncResult';\nexport * from './getValidatedAddress';\nexport * from './getValidatedHex';\nexport * from './mapValues';\nexport * from './time';\nexport * from './toPrintableObject';\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/interest.ts
21
+ var interest_exports = {};
22
+ __export(interest_exports, {
23
+ calcBorrowRateForTimeRange: () => calcBorrowRateForTimeRange,
24
+ calcBorrowRatePerSecond: () => calcBorrowRatePerSecond,
25
+ calcRealizedDepositRateForTimeRange: () => calcRealizedDepositRateForTimeRange,
26
+ calcTotalBorrowed: () => calcTotalBorrowed,
27
+ calcTotalDeposited: () => calcTotalDeposited,
28
+ calcUtilizationRatio: () => calcUtilizationRatio
29
+ });
30
+ module.exports = __toCommonJS(interest_exports);
31
+ var import_math = require("./math/index.cjs");
32
+ var import_time = require("./time.cjs");
33
+ function calcTotalBorrowed(totalBorrowsNormalized, cumulativeBorrowsMultiplierX18) {
34
+ return (0, import_math.toBigDecimal)(totalBorrowsNormalized).multipliedBy(
35
+ (0, import_math.removeDecimals)(cumulativeBorrowsMultiplierX18)
36
+ );
37
+ }
38
+ function calcTotalDeposited(totalDepositsNormalized, cumulativeDepositsMultiplierX18) {
39
+ return (0, import_math.toBigDecimal)(totalDepositsNormalized).multipliedBy(
40
+ (0, import_math.removeDecimals)(cumulativeDepositsMultiplierX18)
41
+ );
42
+ }
43
+ function calcUtilizationRatio(product) {
44
+ if (product.totalDeposited.eq(0) || product.totalBorrowed.eq(0)) {
45
+ return (0, import_math.toBigDecimal)(0);
46
+ }
47
+ return product.totalBorrowed.abs().div(product.totalDeposited);
48
+ }
49
+ function calcBorrowRatePerSecond(product) {
50
+ const {
51
+ interestFloor,
52
+ interestInflectionUtil,
53
+ interestSmallCap,
54
+ interestLargeCap
55
+ } = product;
56
+ const utilization = calcUtilizationRatio(product);
57
+ if (utilization.eq(0)) {
58
+ return (0, import_math.toBigDecimal)(0);
59
+ }
60
+ const pastInflection = utilization.gt(interestInflectionUtil);
61
+ let annualRate;
62
+ if (pastInflection) {
63
+ const utilizationTerm = interestLargeCap.times(
64
+ (0, import_math.toBigDecimal)(utilization).minus(interestInflectionUtil).div(import_math.BigDecimals.ONE.minus(interestInflectionUtil))
65
+ );
66
+ annualRate = interestFloor.plus(interestSmallCap).plus(utilizationTerm);
67
+ } else {
68
+ const utilizationTerm = utilization.div(interestInflectionUtil).times(interestSmallCap);
69
+ annualRate = interestFloor.plus(utilizationTerm);
70
+ }
71
+ return annualRate.div(import_time.TimeInSeconds.YEAR);
72
+ }
73
+ function calcBorrowRateForTimeRange(product, seconds, minDepositRate) {
74
+ const borrowRatePerSecond = calcBorrowRatePerSecond(product);
75
+ const borrowRateForTime = borrowRatePerSecond.plus(1).toNumber() ** (0, import_math.toBigDecimal)(seconds).toNumber() - 1;
76
+ return (0, import_math.toBigDecimal)(borrowRateForTime).plus((0, import_math.toBigDecimal)(minDepositRate));
77
+ }
78
+ function calcRealizedDepositRateForTimeRange(product, seconds, interestFeeFrac, minDepositRate) {
79
+ const utilization = calcUtilizationRatio(product);
80
+ if (utilization.eq(0)) {
81
+ return (0, import_math.toBigDecimal)(0);
82
+ }
83
+ return utilization.times(calcBorrowRateForTimeRange(product, seconds, (0, import_math.toBigDecimal)(0))).times(import_math.BigDecimals.ONE.minus((0, import_math.toBigDecimal)(interestFeeFrac))).plus((0, import_math.toBigDecimal)(minDepositRate));
84
+ }
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ calcBorrowRateForTimeRange,
88
+ calcBorrowRatePerSecond,
89
+ calcRealizedDepositRateForTimeRange,
90
+ calcTotalBorrowed,
91
+ calcTotalDeposited,
92
+ calcUtilizationRatio
93
+ });
94
+ //# sourceMappingURL=interest.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/interest.ts"],"sourcesContent":["import { SpotProduct } from '../types/productTypes';\nimport {\n BigDecimal,\n BigDecimalish,\n BigDecimals,\n removeDecimals,\n toBigDecimal,\n} from './math';\nimport { TimeInSeconds } from './time';\n\n/**\n * Calculate amount total borrowed for a product\n */\nexport function calcTotalBorrowed(\n totalBorrowsNormalized: BigDecimalish,\n cumulativeBorrowsMultiplierX18: BigDecimalish,\n): BigDecimal {\n return toBigDecimal(totalBorrowsNormalized).multipliedBy(\n removeDecimals(cumulativeBorrowsMultiplierX18),\n );\n}\n\n/**\n * Calculate amount total deposited for a product.\n */\nexport function calcTotalDeposited(\n totalDepositsNormalized: BigDecimalish,\n cumulativeDepositsMultiplierX18: BigDecimalish,\n): BigDecimal {\n return toBigDecimal(totalDepositsNormalized).multipliedBy(\n removeDecimals(cumulativeDepositsMultiplierX18),\n );\n}\n\n/**\n * Calculates utilization ratio = abs(total borrowed / total deposited)\n *\n * @param product Spot product\n */\nexport function calcUtilizationRatio(product: SpotProduct) {\n if (product.totalDeposited.eq(0) || product.totalBorrowed.eq(0)) {\n return toBigDecimal(0);\n }\n return product.totalBorrowed.abs().div(product.totalDeposited);\n}\n\n/**\n * Calculates per-second borrow interest rate for a product. For example, a returned rate of 0.1 indicates 10% borrower\n * interest. The calculation for interest rate is as follows:\n *\n * If utilization ratio > inflection:\n * annual rate = (1 - utilization ratio) / (1 - inflection) * interestLargeCap + interestFloor + interestSmallCap\n *\n * If utilization ratio < inflection:\n * annual rate = utilization * interestSmallCap / inflection + utilization\n *\n * The returned rate is annual rate / 31536000 seconds per year.\n *\n * @param product Spot product\n */\nexport function calcBorrowRatePerSecond(product: SpotProduct) {\n const {\n interestFloor,\n interestInflectionUtil,\n interestSmallCap,\n interestLargeCap,\n } = product;\n const utilization = calcUtilizationRatio(product);\n if (utilization.eq(0)) {\n return toBigDecimal(0);\n }\n const pastInflection = utilization.gt(interestInflectionUtil);\n\n let annualRate: BigDecimal;\n if (pastInflection) {\n const utilizationTerm = interestLargeCap.times(\n toBigDecimal(utilization)\n .minus(interestInflectionUtil)\n .div(BigDecimals.ONE.minus(interestInflectionUtil)),\n );\n annualRate = interestFloor.plus(interestSmallCap).plus(utilizationTerm);\n } else {\n const utilizationTerm = utilization\n .div(interestInflectionUtil)\n .times(interestSmallCap);\n annualRate = interestFloor.plus(utilizationTerm);\n }\n\n return annualRate.div(TimeInSeconds.YEAR);\n}\n\n/**\n * Calculates borrower interest rate compounded for a period of time.\n *\n * @param product Spot product\n * @param seconds Number of seconds for the time period\n */\nexport function calcBorrowRateForTimeRange(\n product: SpotProduct,\n seconds: BigDecimalish,\n minDepositRate: BigDecimalish,\n) {\n const borrowRatePerSecond = calcBorrowRatePerSecond(product);\n\n // Convert to number for this, with some loss of precision, but using `.pow()` causes us to hit browser resource limits\n const borrowRateForTime =\n borrowRatePerSecond.plus(1).toNumber() ** toBigDecimal(seconds).toNumber() -\n 1;\n return toBigDecimal(borrowRateForTime).plus(toBigDecimal(minDepositRate));\n}\n\n/**\n * Calculate depositor interest rate compounded for a period of time.\n *\n * @param product Spot product\n * @param seconds Number of seconds for the time period\n * @param interestFeeFrac Fraction of paid borrower interest that is paid as a fee (0.2 = 20% fee)\n */\nexport function calcRealizedDepositRateForTimeRange(\n product: SpotProduct,\n seconds: BigDecimalish,\n interestFeeFrac: BigDecimalish,\n minDepositRate: BigDecimalish,\n) {\n const utilization = calcUtilizationRatio(product);\n if (utilization.eq(0)) {\n return toBigDecimal(0);\n }\n return utilization\n .times(calcBorrowRateForTimeRange(product, seconds, toBigDecimal(0)))\n .times(BigDecimals.ONE.minus(toBigDecimal(interestFeeFrac)))\n .plus(toBigDecimal(minDepositRate));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAMO;AACP,kBAA8B;AAKvB,SAAS,kBACd,wBACA,gCACY;AACZ,aAAO,0BAAa,sBAAsB,EAAE;AAAA,QAC1C,4BAAe,8BAA8B;AAAA,EAC/C;AACF;AAKO,SAAS,mBACd,yBACA,iCACY;AACZ,aAAO,0BAAa,uBAAuB,EAAE;AAAA,QAC3C,4BAAe,+BAA+B;AAAA,EAChD;AACF;AAOO,SAAS,qBAAqB,SAAsB;AACzD,MAAI,QAAQ,eAAe,GAAG,CAAC,KAAK,QAAQ,cAAc,GAAG,CAAC,GAAG;AAC/D,eAAO,0BAAa,CAAC;AAAA,EACvB;AACA,SAAO,QAAQ,cAAc,IAAI,EAAE,IAAI,QAAQ,cAAc;AAC/D;AAgBO,SAAS,wBAAwB,SAAsB;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,cAAc,qBAAqB,OAAO;AAChD,MAAI,YAAY,GAAG,CAAC,GAAG;AACrB,eAAO,0BAAa,CAAC;AAAA,EACvB;AACA,QAAM,iBAAiB,YAAY,GAAG,sBAAsB;AAE5D,MAAI;AACJ,MAAI,gBAAgB;AAClB,UAAM,kBAAkB,iBAAiB;AAAA,UACvC,0BAAa,WAAW,EACrB,MAAM,sBAAsB,EAC5B,IAAI,wBAAY,IAAI,MAAM,sBAAsB,CAAC;AAAA,IACtD;AACA,iBAAa,cAAc,KAAK,gBAAgB,EAAE,KAAK,eAAe;AAAA,EACxE,OAAO;AACL,UAAM,kBAAkB,YACrB,IAAI,sBAAsB,EAC1B,MAAM,gBAAgB;AACzB,iBAAa,cAAc,KAAK,eAAe;AAAA,EACjD;AAEA,SAAO,WAAW,IAAI,0BAAc,IAAI;AAC1C;AAQO,SAAS,2BACd,SACA,SACA,gBACA;AACA,QAAM,sBAAsB,wBAAwB,OAAO;AAG3D,QAAM,oBACJ,oBAAoB,KAAK,CAAC,EAAE,SAAS,SAAK,0BAAa,OAAO,EAAE,SAAS,IACzE;AACF,aAAO,0BAAa,iBAAiB,EAAE,SAAK,0BAAa,cAAc,CAAC;AAC1E;AASO,SAAS,oCACd,SACA,SACA,iBACA,gBACA;AACA,QAAM,cAAc,qBAAqB,OAAO;AAChD,MAAI,YAAY,GAAG,CAAC,GAAG;AACrB,eAAO,0BAAa,CAAC;AAAA,EACvB;AACA,SAAO,YACJ,MAAM,2BAA2B,SAAS,aAAS,0BAAa,CAAC,CAAC,CAAC,EACnE,MAAM,wBAAY,IAAI,UAAM,0BAAa,eAAe,CAAC,CAAC,EAC1D,SAAK,0BAAa,cAAc,CAAC;AACtC;","names":[]}
@@ -0,0 +1,50 @@
1
+ import { SpotProduct } from '../types/productTypes.cjs';
2
+ import { BigDecimalish } from './math/bigDecimal.cjs';
3
+ import BigDecimal from 'bignumber.js';
4
+
5
+ /**
6
+ * Calculate amount total borrowed for a product
7
+ */
8
+ declare function calcTotalBorrowed(totalBorrowsNormalized: BigDecimalish, cumulativeBorrowsMultiplierX18: BigDecimalish): BigDecimal;
9
+ /**
10
+ * Calculate amount total deposited for a product.
11
+ */
12
+ declare function calcTotalDeposited(totalDepositsNormalized: BigDecimalish, cumulativeDepositsMultiplierX18: BigDecimalish): BigDecimal;
13
+ /**
14
+ * Calculates utilization ratio = abs(total borrowed / total deposited)
15
+ *
16
+ * @param product Spot product
17
+ */
18
+ declare function calcUtilizationRatio(product: SpotProduct): BigDecimal;
19
+ /**
20
+ * Calculates per-second borrow interest rate for a product. For example, a returned rate of 0.1 indicates 10% borrower
21
+ * interest. The calculation for interest rate is as follows:
22
+ *
23
+ * If utilization ratio > inflection:
24
+ * annual rate = (1 - utilization ratio) / (1 - inflection) * interestLargeCap + interestFloor + interestSmallCap
25
+ *
26
+ * If utilization ratio < inflection:
27
+ * annual rate = utilization * interestSmallCap / inflection + utilization
28
+ *
29
+ * The returned rate is annual rate / 31536000 seconds per year.
30
+ *
31
+ * @param product Spot product
32
+ */
33
+ declare function calcBorrowRatePerSecond(product: SpotProduct): BigDecimal;
34
+ /**
35
+ * Calculates borrower interest rate compounded for a period of time.
36
+ *
37
+ * @param product Spot product
38
+ * @param seconds Number of seconds for the time period
39
+ */
40
+ declare function calcBorrowRateForTimeRange(product: SpotProduct, seconds: BigDecimalish, minDepositRate: BigDecimalish): BigDecimal;
41
+ /**
42
+ * Calculate depositor interest rate compounded for a period of time.
43
+ *
44
+ * @param product Spot product
45
+ * @param seconds Number of seconds for the time period
46
+ * @param interestFeeFrac Fraction of paid borrower interest that is paid as a fee (0.2 = 20% fee)
47
+ */
48
+ declare function calcRealizedDepositRateForTimeRange(product: SpotProduct, seconds: BigDecimalish, interestFeeFrac: BigDecimalish, minDepositRate: BigDecimalish): BigDecimal;
49
+
50
+ export { calcBorrowRateForTimeRange, calcBorrowRatePerSecond, calcRealizedDepositRateForTimeRange, calcTotalBorrowed, calcTotalDeposited, calcUtilizationRatio };
@@ -0,0 +1,50 @@
1
+ import { SpotProduct } from '../types/productTypes.js';
2
+ import { BigDecimalish } from './math/bigDecimal.js';
3
+ import BigDecimal from 'bignumber.js';
4
+
5
+ /**
6
+ * Calculate amount total borrowed for a product
7
+ */
8
+ declare function calcTotalBorrowed(totalBorrowsNormalized: BigDecimalish, cumulativeBorrowsMultiplierX18: BigDecimalish): BigDecimal;
9
+ /**
10
+ * Calculate amount total deposited for a product.
11
+ */
12
+ declare function calcTotalDeposited(totalDepositsNormalized: BigDecimalish, cumulativeDepositsMultiplierX18: BigDecimalish): BigDecimal;
13
+ /**
14
+ * Calculates utilization ratio = abs(total borrowed / total deposited)
15
+ *
16
+ * @param product Spot product
17
+ */
18
+ declare function calcUtilizationRatio(product: SpotProduct): BigDecimal;
19
+ /**
20
+ * Calculates per-second borrow interest rate for a product. For example, a returned rate of 0.1 indicates 10% borrower
21
+ * interest. The calculation for interest rate is as follows:
22
+ *
23
+ * If utilization ratio > inflection:
24
+ * annual rate = (1 - utilization ratio) / (1 - inflection) * interestLargeCap + interestFloor + interestSmallCap
25
+ *
26
+ * If utilization ratio < inflection:
27
+ * annual rate = utilization * interestSmallCap / inflection + utilization
28
+ *
29
+ * The returned rate is annual rate / 31536000 seconds per year.
30
+ *
31
+ * @param product Spot product
32
+ */
33
+ declare function calcBorrowRatePerSecond(product: SpotProduct): BigDecimal;
34
+ /**
35
+ * Calculates borrower interest rate compounded for a period of time.
36
+ *
37
+ * @param product Spot product
38
+ * @param seconds Number of seconds for the time period
39
+ */
40
+ declare function calcBorrowRateForTimeRange(product: SpotProduct, seconds: BigDecimalish, minDepositRate: BigDecimalish): BigDecimal;
41
+ /**
42
+ * Calculate depositor interest rate compounded for a period of time.
43
+ *
44
+ * @param product Spot product
45
+ * @param seconds Number of seconds for the time period
46
+ * @param interestFeeFrac Fraction of paid borrower interest that is paid as a fee (0.2 = 20% fee)
47
+ */
48
+ declare function calcRealizedDepositRateForTimeRange(product: SpotProduct, seconds: BigDecimalish, interestFeeFrac: BigDecimalish, minDepositRate: BigDecimalish): BigDecimal;
49
+
50
+ export { calcBorrowRateForTimeRange, calcBorrowRatePerSecond, calcRealizedDepositRateForTimeRange, calcTotalBorrowed, calcTotalDeposited, calcUtilizationRatio };
@@ -0,0 +1,70 @@
1
+ import "../chunk-5WRI5ZAA.js";
2
+
3
+ // src/utils/interest.ts
4
+ import {
5
+ BigDecimals,
6
+ removeDecimals,
7
+ toBigDecimal
8
+ } from "./math/index.js";
9
+ import { TimeInSeconds } from "./time.js";
10
+ function calcTotalBorrowed(totalBorrowsNormalized, cumulativeBorrowsMultiplierX18) {
11
+ return toBigDecimal(totalBorrowsNormalized).multipliedBy(
12
+ removeDecimals(cumulativeBorrowsMultiplierX18)
13
+ );
14
+ }
15
+ function calcTotalDeposited(totalDepositsNormalized, cumulativeDepositsMultiplierX18) {
16
+ return toBigDecimal(totalDepositsNormalized).multipliedBy(
17
+ removeDecimals(cumulativeDepositsMultiplierX18)
18
+ );
19
+ }
20
+ function calcUtilizationRatio(product) {
21
+ if (product.totalDeposited.eq(0) || product.totalBorrowed.eq(0)) {
22
+ return toBigDecimal(0);
23
+ }
24
+ return product.totalBorrowed.abs().div(product.totalDeposited);
25
+ }
26
+ function calcBorrowRatePerSecond(product) {
27
+ const {
28
+ interestFloor,
29
+ interestInflectionUtil,
30
+ interestSmallCap,
31
+ interestLargeCap
32
+ } = product;
33
+ const utilization = calcUtilizationRatio(product);
34
+ if (utilization.eq(0)) {
35
+ return toBigDecimal(0);
36
+ }
37
+ const pastInflection = utilization.gt(interestInflectionUtil);
38
+ let annualRate;
39
+ if (pastInflection) {
40
+ const utilizationTerm = interestLargeCap.times(
41
+ toBigDecimal(utilization).minus(interestInflectionUtil).div(BigDecimals.ONE.minus(interestInflectionUtil))
42
+ );
43
+ annualRate = interestFloor.plus(interestSmallCap).plus(utilizationTerm);
44
+ } else {
45
+ const utilizationTerm = utilization.div(interestInflectionUtil).times(interestSmallCap);
46
+ annualRate = interestFloor.plus(utilizationTerm);
47
+ }
48
+ return annualRate.div(TimeInSeconds.YEAR);
49
+ }
50
+ function calcBorrowRateForTimeRange(product, seconds, minDepositRate) {
51
+ const borrowRatePerSecond = calcBorrowRatePerSecond(product);
52
+ const borrowRateForTime = borrowRatePerSecond.plus(1).toNumber() ** toBigDecimal(seconds).toNumber() - 1;
53
+ return toBigDecimal(borrowRateForTime).plus(toBigDecimal(minDepositRate));
54
+ }
55
+ function calcRealizedDepositRateForTimeRange(product, seconds, interestFeeFrac, minDepositRate) {
56
+ const utilization = calcUtilizationRatio(product);
57
+ if (utilization.eq(0)) {
58
+ return toBigDecimal(0);
59
+ }
60
+ return utilization.times(calcBorrowRateForTimeRange(product, seconds, toBigDecimal(0))).times(BigDecimals.ONE.minus(toBigDecimal(interestFeeFrac))).plus(toBigDecimal(minDepositRate));
61
+ }
62
+ export {
63
+ calcBorrowRateForTimeRange,
64
+ calcBorrowRatePerSecond,
65
+ calcRealizedDepositRateForTimeRange,
66
+ calcTotalBorrowed,
67
+ calcTotalDeposited,
68
+ calcUtilizationRatio
69
+ };
70
+ //# sourceMappingURL=interest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/interest.ts"],"sourcesContent":["import { SpotProduct } from '../types/productTypes';\nimport {\n BigDecimal,\n BigDecimalish,\n BigDecimals,\n removeDecimals,\n toBigDecimal,\n} from './math';\nimport { TimeInSeconds } from './time';\n\n/**\n * Calculate amount total borrowed for a product\n */\nexport function calcTotalBorrowed(\n totalBorrowsNormalized: BigDecimalish,\n cumulativeBorrowsMultiplierX18: BigDecimalish,\n): BigDecimal {\n return toBigDecimal(totalBorrowsNormalized).multipliedBy(\n removeDecimals(cumulativeBorrowsMultiplierX18),\n );\n}\n\n/**\n * Calculate amount total deposited for a product.\n */\nexport function calcTotalDeposited(\n totalDepositsNormalized: BigDecimalish,\n cumulativeDepositsMultiplierX18: BigDecimalish,\n): BigDecimal {\n return toBigDecimal(totalDepositsNormalized).multipliedBy(\n removeDecimals(cumulativeDepositsMultiplierX18),\n );\n}\n\n/**\n * Calculates utilization ratio = abs(total borrowed / total deposited)\n *\n * @param product Spot product\n */\nexport function calcUtilizationRatio(product: SpotProduct) {\n if (product.totalDeposited.eq(0) || product.totalBorrowed.eq(0)) {\n return toBigDecimal(0);\n }\n return product.totalBorrowed.abs().div(product.totalDeposited);\n}\n\n/**\n * Calculates per-second borrow interest rate for a product. For example, a returned rate of 0.1 indicates 10% borrower\n * interest. The calculation for interest rate is as follows:\n *\n * If utilization ratio > inflection:\n * annual rate = (1 - utilization ratio) / (1 - inflection) * interestLargeCap + interestFloor + interestSmallCap\n *\n * If utilization ratio < inflection:\n * annual rate = utilization * interestSmallCap / inflection + utilization\n *\n * The returned rate is annual rate / 31536000 seconds per year.\n *\n * @param product Spot product\n */\nexport function calcBorrowRatePerSecond(product: SpotProduct) {\n const {\n interestFloor,\n interestInflectionUtil,\n interestSmallCap,\n interestLargeCap,\n } = product;\n const utilization = calcUtilizationRatio(product);\n if (utilization.eq(0)) {\n return toBigDecimal(0);\n }\n const pastInflection = utilization.gt(interestInflectionUtil);\n\n let annualRate: BigDecimal;\n if (pastInflection) {\n const utilizationTerm = interestLargeCap.times(\n toBigDecimal(utilization)\n .minus(interestInflectionUtil)\n .div(BigDecimals.ONE.minus(interestInflectionUtil)),\n );\n annualRate = interestFloor.plus(interestSmallCap).plus(utilizationTerm);\n } else {\n const utilizationTerm = utilization\n .div(interestInflectionUtil)\n .times(interestSmallCap);\n annualRate = interestFloor.plus(utilizationTerm);\n }\n\n return annualRate.div(TimeInSeconds.YEAR);\n}\n\n/**\n * Calculates borrower interest rate compounded for a period of time.\n *\n * @param product Spot product\n * @param seconds Number of seconds for the time period\n */\nexport function calcBorrowRateForTimeRange(\n product: SpotProduct,\n seconds: BigDecimalish,\n minDepositRate: BigDecimalish,\n) {\n const borrowRatePerSecond = calcBorrowRatePerSecond(product);\n\n // Convert to number for this, with some loss of precision, but using `.pow()` causes us to hit browser resource limits\n const borrowRateForTime =\n borrowRatePerSecond.plus(1).toNumber() ** toBigDecimal(seconds).toNumber() -\n 1;\n return toBigDecimal(borrowRateForTime).plus(toBigDecimal(minDepositRate));\n}\n\n/**\n * Calculate depositor interest rate compounded for a period of time.\n *\n * @param product Spot product\n * @param seconds Number of seconds for the time period\n * @param interestFeeFrac Fraction of paid borrower interest that is paid as a fee (0.2 = 20% fee)\n */\nexport function calcRealizedDepositRateForTimeRange(\n product: SpotProduct,\n seconds: BigDecimalish,\n interestFeeFrac: BigDecimalish,\n minDepositRate: BigDecimalish,\n) {\n const utilization = calcUtilizationRatio(product);\n if (utilization.eq(0)) {\n return toBigDecimal(0);\n }\n return utilization\n .times(calcBorrowRateForTimeRange(product, seconds, toBigDecimal(0)))\n .times(BigDecimals.ONE.minus(toBigDecimal(interestFeeFrac)))\n .plus(toBigDecimal(minDepositRate));\n}\n"],"mappings":";;;AACA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAKvB,SAAS,kBACd,wBACA,gCACY;AACZ,SAAO,aAAa,sBAAsB,EAAE;AAAA,IAC1C,eAAe,8BAA8B;AAAA,EAC/C;AACF;AAKO,SAAS,mBACd,yBACA,iCACY;AACZ,SAAO,aAAa,uBAAuB,EAAE;AAAA,IAC3C,eAAe,+BAA+B;AAAA,EAChD;AACF;AAOO,SAAS,qBAAqB,SAAsB;AACzD,MAAI,QAAQ,eAAe,GAAG,CAAC,KAAK,QAAQ,cAAc,GAAG,CAAC,GAAG;AAC/D,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,SAAO,QAAQ,cAAc,IAAI,EAAE,IAAI,QAAQ,cAAc;AAC/D;AAgBO,SAAS,wBAAwB,SAAsB;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,cAAc,qBAAqB,OAAO;AAChD,MAAI,YAAY,GAAG,CAAC,GAAG;AACrB,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,QAAM,iBAAiB,YAAY,GAAG,sBAAsB;AAE5D,MAAI;AACJ,MAAI,gBAAgB;AAClB,UAAM,kBAAkB,iBAAiB;AAAA,MACvC,aAAa,WAAW,EACrB,MAAM,sBAAsB,EAC5B,IAAI,YAAY,IAAI,MAAM,sBAAsB,CAAC;AAAA,IACtD;AACA,iBAAa,cAAc,KAAK,gBAAgB,EAAE,KAAK,eAAe;AAAA,EACxE,OAAO;AACL,UAAM,kBAAkB,YACrB,IAAI,sBAAsB,EAC1B,MAAM,gBAAgB;AACzB,iBAAa,cAAc,KAAK,eAAe;AAAA,EACjD;AAEA,SAAO,WAAW,IAAI,cAAc,IAAI;AAC1C;AAQO,SAAS,2BACd,SACA,SACA,gBACA;AACA,QAAM,sBAAsB,wBAAwB,OAAO;AAG3D,QAAM,oBACJ,oBAAoB,KAAK,CAAC,EAAE,SAAS,KAAK,aAAa,OAAO,EAAE,SAAS,IACzE;AACF,SAAO,aAAa,iBAAiB,EAAE,KAAK,aAAa,cAAc,CAAC;AAC1E;AASO,SAAS,oCACd,SACA,SACA,iBACA,gBACA;AACA,QAAM,cAAc,qBAAqB,OAAO;AAChD,MAAI,YAAY,GAAG,CAAC,GAAG;AACrB,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,SAAO,YACJ,MAAM,2BAA2B,SAAS,SAAS,aAAa,CAAC,CAAC,CAAC,EACnE,MAAM,YAAY,IAAI,MAAM,aAAa,eAAe,CAAC,CAAC,EAC1D,KAAK,aAAa,cAAc,CAAC;AACtC;","names":[]}