@otim/utils 0.0.2-development.0

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 (421) hide show
  1. package/LICENSE +201 -0
  2. package/dist/api/api.d.mts +18 -0
  3. package/dist/api/api.d.ts +18 -0
  4. package/dist/api/api.d.ts.map +1 -0
  5. package/dist/api/core/error.d.mts +74 -0
  6. package/dist/api/core/error.d.ts +74 -0
  7. package/dist/api/core/error.d.ts.map +1 -0
  8. package/dist/api/core/index.d.mts +4 -0
  9. package/dist/api/core/index.d.ts +4 -0
  10. package/dist/api/core/index.d.ts.map +1 -0
  11. package/dist/api/core/instance.d.mts +13 -0
  12. package/dist/api/core/instance.d.ts +13 -0
  13. package/dist/api/core/instance.d.ts.map +1 -0
  14. package/dist/api/core/service.d.mts +51 -0
  15. package/dist/api/core/service.d.ts +51 -0
  16. package/dist/api/core/service.d.ts.map +1 -0
  17. package/dist/api/index.d.mts +7 -0
  18. package/dist/api/index.d.ts +7 -0
  19. package/dist/api/index.d.ts.map +1 -0
  20. package/dist/api/index.js +2061 -0
  21. package/dist/api/index.js.map +7 -0
  22. package/dist/api/index.mjs +2030 -0
  23. package/dist/api/index.mjs.map +7 -0
  24. package/dist/api/schemas/account.d.mts +44 -0
  25. package/dist/api/schemas/account.d.ts +44 -0
  26. package/dist/api/schemas/account.d.ts.map +1 -0
  27. package/dist/api/schemas/activity.d.mts +277 -0
  28. package/dist/api/schemas/activity.d.ts +277 -0
  29. package/dist/api/schemas/activity.d.ts.map +1 -0
  30. package/dist/api/schemas/auth.d.mts +127 -0
  31. package/dist/api/schemas/auth.d.ts +127 -0
  32. package/dist/api/schemas/auth.d.ts.map +1 -0
  33. package/dist/api/schemas/chain.d.mts +15 -0
  34. package/dist/api/schemas/chain.d.ts +15 -0
  35. package/dist/api/schemas/chain.d.ts.map +1 -0
  36. package/dist/api/schemas/config.d.mts +33 -0
  37. package/dist/api/schemas/config.d.ts +33 -0
  38. package/dist/api/schemas/config.d.ts.map +1 -0
  39. package/dist/api/schemas/contacts.d.mts +27 -0
  40. package/dist/api/schemas/contacts.d.ts +27 -0
  41. package/dist/api/schemas/contacts.d.ts.map +1 -0
  42. package/dist/api/schemas/index.d.mts +12 -0
  43. package/dist/api/schemas/index.d.ts +12 -0
  44. package/dist/api/schemas/index.d.ts.map +1 -0
  45. package/dist/api/schemas/instruction.d.mts +446 -0
  46. package/dist/api/schemas/instruction.d.ts +446 -0
  47. package/dist/api/schemas/instruction.d.ts.map +1 -0
  48. package/dist/api/schemas/integration.d.mts +166 -0
  49. package/dist/api/schemas/integration.d.ts +166 -0
  50. package/dist/api/schemas/integration.d.ts.map +1 -0
  51. package/dist/api/schemas/operating-account.d.mts +11 -0
  52. package/dist/api/schemas/operating-account.d.ts +11 -0
  53. package/dist/api/schemas/operating-account.d.ts.map +1 -0
  54. package/dist/api/schemas/payments.d.mts +196 -0
  55. package/dist/api/schemas/payments.d.ts +196 -0
  56. package/dist/api/schemas/payments.d.ts.map +1 -0
  57. package/dist/api/schemas/transaction.d.mts +37 -0
  58. package/dist/api/schemas/transaction.d.ts +37 -0
  59. package/dist/api/schemas/transaction.d.ts.map +1 -0
  60. package/dist/api/services/account.d.mts +8 -0
  61. package/dist/api/services/account.d.ts +8 -0
  62. package/dist/api/services/account.d.ts.map +1 -0
  63. package/dist/api/services/activity.d.mts +7 -0
  64. package/dist/api/services/activity.d.ts +7 -0
  65. package/dist/api/services/activity.d.ts.map +1 -0
  66. package/dist/api/services/auth.d.mts +12 -0
  67. package/dist/api/services/auth.d.ts +12 -0
  68. package/dist/api/services/auth.d.ts.map +1 -0
  69. package/dist/api/services/base.d.mts +10 -0
  70. package/dist/api/services/base.d.ts +10 -0
  71. package/dist/api/services/base.d.ts.map +1 -0
  72. package/dist/api/services/config.d.mts +10 -0
  73. package/dist/api/services/config.d.ts +10 -0
  74. package/dist/api/services/config.d.ts.map +1 -0
  75. package/dist/api/services/contacts.d.mts +8 -0
  76. package/dist/api/services/contacts.d.ts +8 -0
  77. package/dist/api/services/contacts.d.ts.map +1 -0
  78. package/dist/api/services/developer.d.mts +6 -0
  79. package/dist/api/services/developer.d.ts +6 -0
  80. package/dist/api/services/developer.d.ts.map +1 -0
  81. package/dist/api/services/index.d.mts +13 -0
  82. package/dist/api/services/index.d.ts +13 -0
  83. package/dist/api/services/index.d.ts.map +1 -0
  84. package/dist/api/services/instruction.d.mts +12 -0
  85. package/dist/api/services/instruction.d.ts +12 -0
  86. package/dist/api/services/instruction.d.ts.map +1 -0
  87. package/dist/api/services/integration.d.mts +8 -0
  88. package/dist/api/services/integration.d.ts +8 -0
  89. package/dist/api/services/integration.d.ts.map +1 -0
  90. package/dist/api/services/operating-account.d.mts +8 -0
  91. package/dist/api/services/operating-account.d.ts +8 -0
  92. package/dist/api/services/operating-account.d.ts.map +1 -0
  93. package/dist/api/services/payments.d.mts +13 -0
  94. package/dist/api/services/payments.d.ts +13 -0
  95. package/dist/api/services/payments.d.ts.map +1 -0
  96. package/dist/api/services/transaction.d.mts +8 -0
  97. package/dist/api/services/transaction.d.ts +8 -0
  98. package/dist/api/services/transaction.d.ts.map +1 -0
  99. package/dist/api/services/uniswap-token-list-service.d.mts +66 -0
  100. package/dist/api/services/uniswap-token-list-service.d.ts +66 -0
  101. package/dist/api/services/uniswap-token-list-service.d.ts.map +1 -0
  102. package/dist/api/utils/index.d.mts +2 -0
  103. package/dist/api/utils/index.d.ts +2 -0
  104. package/dist/api/utils/index.d.ts.map +1 -0
  105. package/dist/api/utils/pagination.d.mts +32 -0
  106. package/dist/api/utils/pagination.d.ts +32 -0
  107. package/dist/api/utils/pagination.d.ts.map +1 -0
  108. package/dist/chains/config/all-chains.d.mts +4243 -0
  109. package/dist/chains/config/all-chains.d.ts +4243 -0
  110. package/dist/chains/config/all-chains.d.ts.map +1 -0
  111. package/dist/chains/config/custom-chains.d.mts +49 -0
  112. package/dist/chains/config/custom-chains.d.ts +49 -0
  113. package/dist/chains/config/custom-chains.d.ts.map +1 -0
  114. package/dist/chains/config/mainnet-chains.d.mts +1063 -0
  115. package/dist/chains/config/mainnet-chains.d.ts +1063 -0
  116. package/dist/chains/config/mainnet-chains.d.ts.map +1 -0
  117. package/dist/chains/config/supported-chains.d.mts +2172 -0
  118. package/dist/chains/config/supported-chains.d.ts +2172 -0
  119. package/dist/chains/config/supported-chains.d.ts.map +1 -0
  120. package/dist/chains/config/testnet-chains.d.mts +1110 -0
  121. package/dist/chains/config/testnet-chains.d.ts +1110 -0
  122. package/dist/chains/config/testnet-chains.d.ts.map +1 -0
  123. package/dist/chains/index.d.mts +16 -0
  124. package/dist/chains/index.d.ts +16 -0
  125. package/dist/chains/index.d.ts.map +1 -0
  126. package/dist/chains/index.js +490 -0
  127. package/dist/chains/index.js.map +7 -0
  128. package/dist/chains/index.mjs +505 -0
  129. package/dist/chains/index.mjs.map +7 -0
  130. package/dist/chains/lambda/chain-mapping.d.mts +55 -0
  131. package/dist/chains/lambda/chain-mapping.d.ts +55 -0
  132. package/dist/chains/lambda/chain-mapping.d.ts.map +1 -0
  133. package/dist/chains/lambda/index.d.mts +2 -0
  134. package/dist/chains/lambda/index.d.ts +2 -0
  135. package/dist/chains/lambda/index.d.ts.map +1 -0
  136. package/dist/chains/tokens/chain-tokens.d.mts +6 -0
  137. package/dist/chains/tokens/chain-tokens.d.ts +6 -0
  138. package/dist/chains/tokens/chain-tokens.d.ts.map +1 -0
  139. package/dist/chains/tokens/token-addresses.d.mts +8 -0
  140. package/dist/chains/tokens/token-addresses.d.ts +8 -0
  141. package/dist/chains/tokens/token-addresses.d.ts.map +1 -0
  142. package/dist/chains/tokens/token-metadata.d.mts +5 -0
  143. package/dist/chains/tokens/token-metadata.d.ts +5 -0
  144. package/dist/chains/tokens/token-metadata.d.ts.map +1 -0
  145. package/dist/chains/types.d.mts +23 -0
  146. package/dist/chains/types.d.ts +23 -0
  147. package/dist/chains/types.d.ts.map +1 -0
  148. package/dist/chains/utils/filter-tokens.d.mts +3 -0
  149. package/dist/chains/utils/filter-tokens.d.ts +3 -0
  150. package/dist/chains/utils/filter-tokens.d.ts.map +1 -0
  151. package/dist/chains/utils/stablecoin.d.mts +7 -0
  152. package/dist/chains/utils/stablecoin.d.ts +7 -0
  153. package/dist/chains/utils/stablecoin.d.ts.map +1 -0
  154. package/dist/chains/utils/token-maps.d.mts +10 -0
  155. package/dist/chains/utils/token-maps.d.ts +10 -0
  156. package/dist/chains/utils/token-maps.d.ts.map +1 -0
  157. package/dist/constants.d.mts +31 -0
  158. package/dist/constants.d.ts +31 -0
  159. package/dist/constants.d.ts.map +1 -0
  160. package/dist/constants.js +47 -0
  161. package/dist/constants.js.map +7 -0
  162. package/dist/constants.mjs +26 -0
  163. package/dist/constants.mjs.map +7 -0
  164. package/dist/env.d.mts +17 -0
  165. package/dist/env.d.ts +17 -0
  166. package/dist/env.d.ts.map +1 -0
  167. package/dist/formatters/index.d.mts +2 -0
  168. package/dist/formatters/index.d.ts +2 -0
  169. package/dist/formatters/index.d.ts.map +1 -0
  170. package/dist/formatters/index.js +19 -0
  171. package/dist/formatters/index.js.map +7 -0
  172. package/dist/formatters/index.mjs +1 -0
  173. package/dist/formatters/index.mjs.map +7 -0
  174. package/dist/helpers/address.d.mts +7 -0
  175. package/dist/helpers/address.d.ts +7 -0
  176. package/dist/helpers/address.d.ts.map +1 -0
  177. package/dist/helpers/blockchain.d.mts +41 -0
  178. package/dist/helpers/blockchain.d.ts +41 -0
  179. package/dist/helpers/blockchain.d.ts.map +1 -0
  180. package/dist/helpers/date.d.mts +70 -0
  181. package/dist/helpers/date.d.ts +70 -0
  182. package/dist/helpers/date.d.ts.map +1 -0
  183. package/dist/helpers/datetime.d.mts +57 -0
  184. package/dist/helpers/datetime.d.ts +57 -0
  185. package/dist/helpers/datetime.d.ts.map +1 -0
  186. package/dist/helpers/domain.d.mts +2 -0
  187. package/dist/helpers/domain.d.ts +2 -0
  188. package/dist/helpers/domain.d.ts.map +1 -0
  189. package/dist/helpers/index.d.mts +19 -0
  190. package/dist/helpers/index.d.ts +19 -0
  191. package/dist/helpers/index.d.ts.map +1 -0
  192. package/dist/helpers/index.js +1322 -0
  193. package/dist/helpers/index.js.map +7 -0
  194. package/dist/helpers/index.mjs +1294 -0
  195. package/dist/helpers/index.mjs.map +7 -0
  196. package/dist/helpers/intl.d.mts +20 -0
  197. package/dist/helpers/intl.d.ts +20 -0
  198. package/dist/helpers/intl.d.ts.map +1 -0
  199. package/dist/helpers/logger.d.mts +26 -0
  200. package/dist/helpers/logger.d.ts +26 -0
  201. package/dist/helpers/logger.d.ts.map +1 -0
  202. package/dist/helpers/mask-options.d.mts +10 -0
  203. package/dist/helpers/mask-options.d.ts +10 -0
  204. package/dist/helpers/mask-options.d.ts.map +1 -0
  205. package/dist/helpers/num-formatter.d.mts +3 -0
  206. package/dist/helpers/num-formatter.d.ts +3 -0
  207. package/dist/helpers/num-formatter.d.ts.map +1 -0
  208. package/dist/helpers/polling.d.mts +39 -0
  209. package/dist/helpers/polling.d.ts +39 -0
  210. package/dist/helpers/polling.d.ts.map +1 -0
  211. package/dist/helpers/random.d.mts +10 -0
  212. package/dist/helpers/random.d.ts +10 -0
  213. package/dist/helpers/random.d.ts.map +1 -0
  214. package/dist/helpers/sdk-loader.d.mts +25 -0
  215. package/dist/helpers/sdk-loader.d.ts +25 -0
  216. package/dist/helpers/sdk-loader.d.ts.map +1 -0
  217. package/dist/helpers/signatures.d.mts +17 -0
  218. package/dist/helpers/signatures.d.ts +17 -0
  219. package/dist/helpers/signatures.d.ts.map +1 -0
  220. package/dist/helpers/string.d.mts +17 -0
  221. package/dist/helpers/string.d.ts +17 -0
  222. package/dist/helpers/string.d.ts.map +1 -0
  223. package/dist/helpers/types.d.mts +39 -0
  224. package/dist/helpers/types.d.ts +39 -0
  225. package/dist/helpers/types.d.ts.map +1 -0
  226. package/dist/helpers/url.d.mts +11 -0
  227. package/dist/helpers/url.d.ts +11 -0
  228. package/dist/helpers/url.d.ts.map +1 -0
  229. package/dist/helpers/window.d.mts +37 -0
  230. package/dist/helpers/window.d.ts +37 -0
  231. package/dist/helpers/window.d.ts.map +1 -0
  232. package/dist/helpers/zod.d.mts +30 -0
  233. package/dist/helpers/zod.d.ts +30 -0
  234. package/dist/helpers/zod.d.ts.map +1 -0
  235. package/dist/index.d.mts +1 -0
  236. package/dist/index.d.ts +1 -0
  237. package/dist/index.d.ts.map +1 -0
  238. package/dist/index.js +2 -0
  239. package/dist/index.js.map +7 -0
  240. package/dist/index.mjs +1 -0
  241. package/dist/index.mjs.map +7 -0
  242. package/dist/instructions/actions/index.d.mts +5 -0
  243. package/dist/instructions/actions/index.d.ts +5 -0
  244. package/dist/instructions/actions/index.d.ts.map +1 -0
  245. package/dist/instructions/actions/refuel/index.d.mts +15 -0
  246. package/dist/instructions/actions/refuel/index.d.ts +15 -0
  247. package/dist/instructions/actions/refuel/index.d.ts.map +1 -0
  248. package/dist/instructions/actions/swap/index.d.mts +19 -0
  249. package/dist/instructions/actions/swap/index.d.ts +19 -0
  250. package/dist/instructions/actions/swap/index.d.ts.map +1 -0
  251. package/dist/instructions/actions/sweep/index.d.mts +16 -0
  252. package/dist/instructions/actions/sweep/index.d.ts +16 -0
  253. package/dist/instructions/actions/sweep/index.d.ts.map +1 -0
  254. package/dist/instructions/actions/transfer/index.d.mts +13 -0
  255. package/dist/instructions/actions/transfer/index.d.ts +13 -0
  256. package/dist/instructions/actions/transfer/index.d.ts.map +1 -0
  257. package/dist/instructions/activate.d.mts +84 -0
  258. package/dist/instructions/activate.d.ts +84 -0
  259. package/dist/instructions/activate.d.ts.map +1 -0
  260. package/dist/instructions/build.d.mts +146 -0
  261. package/dist/instructions/build.d.ts +146 -0
  262. package/dist/instructions/build.d.ts.map +1 -0
  263. package/dist/instructions/constants.d.mts +9 -0
  264. package/dist/instructions/constants.d.ts +9 -0
  265. package/dist/instructions/constants.d.ts.map +1 -0
  266. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.mts +609 -0
  267. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.ts +609 -0
  268. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.ts.map +1 -0
  269. package/dist/instructions/index.d.mts +6 -0
  270. package/dist/instructions/index.d.ts +6 -0
  271. package/dist/instructions/index.d.ts.map +1 -0
  272. package/dist/instructions/index.js +1152 -0
  273. package/dist/instructions/index.js.map +7 -0
  274. package/dist/instructions/index.mjs +1119 -0
  275. package/dist/instructions/index.mjs.map +7 -0
  276. package/dist/instructions/types.d.mts +289 -0
  277. package/dist/instructions/types.d.ts +289 -0
  278. package/dist/instructions/types.d.ts.map +1 -0
  279. package/dist/payments/action-names.d.mts +16 -0
  280. package/dist/payments/action-names.d.ts +16 -0
  281. package/dist/payments/action-names.d.ts.map +1 -0
  282. package/dist/payments/actions/index.d.mts +5 -0
  283. package/dist/payments/actions/index.d.ts +5 -0
  284. package/dist/payments/actions/index.d.ts.map +1 -0
  285. package/dist/payments/actions/sweep-cctp.d.mts +15 -0
  286. package/dist/payments/actions/sweep-cctp.d.ts +15 -0
  287. package/dist/payments/actions/sweep-cctp.d.ts.map +1 -0
  288. package/dist/payments/actions/sweep-erc20.d.mts +12 -0
  289. package/dist/payments/actions/sweep-erc20.d.ts +12 -0
  290. package/dist/payments/actions/sweep-erc20.d.ts.map +1 -0
  291. package/dist/payments/actions/sweep-uniswap-v3.d.mts +17 -0
  292. package/dist/payments/actions/sweep-uniswap-v3.d.ts +17 -0
  293. package/dist/payments/actions/sweep-uniswap-v3.d.ts.map +1 -0
  294. package/dist/payments/actions/sweep.d.mts +12 -0
  295. package/dist/payments/actions/sweep.d.ts +12 -0
  296. package/dist/payments/actions/sweep.d.ts.map +1 -0
  297. package/dist/payments/build.d.mts +27 -0
  298. package/dist/payments/build.d.ts +27 -0
  299. package/dist/payments/build.d.ts.map +1 -0
  300. package/dist/payments/chain-token-config-builder.d.mts +10 -0
  301. package/dist/payments/chain-token-config-builder.d.ts +10 -0
  302. package/dist/payments/chain-token-config-builder.d.ts.map +1 -0
  303. package/dist/payments/comprehensive-payment-request.d.mts +25 -0
  304. package/dist/payments/comprehensive-payment-request.d.ts +25 -0
  305. package/dist/payments/comprehensive-payment-request.d.ts.map +1 -0
  306. package/dist/payments/config/cctp.d.mts +14 -0
  307. package/dist/payments/config/cctp.d.ts +14 -0
  308. package/dist/payments/config/cctp.d.ts.map +1 -0
  309. package/dist/payments/config/index.d.mts +3 -0
  310. package/dist/payments/config/index.d.ts +3 -0
  311. package/dist/payments/config/index.d.ts.map +1 -0
  312. package/dist/payments/config/tokens.d.mts +14 -0
  313. package/dist/payments/config/tokens.d.ts +14 -0
  314. package/dist/payments/config/tokens.d.ts.map +1 -0
  315. package/dist/payments/index.d.mts +16 -0
  316. package/dist/payments/index.d.ts +16 -0
  317. package/dist/payments/index.d.ts.map +1 -0
  318. package/dist/payments/index.js +1303 -0
  319. package/dist/payments/index.js.map +7 -0
  320. package/dist/payments/index.mjs +1281 -0
  321. package/dist/payments/index.mjs.map +7 -0
  322. package/dist/payments/instruction-registry.d.mts +19 -0
  323. package/dist/payments/instruction-registry.d.ts +19 -0
  324. package/dist/payments/instruction-registry.d.ts.map +1 -0
  325. package/dist/payments/payment-metadata-builder.d.mts +56 -0
  326. package/dist/payments/payment-metadata-builder.d.ts +56 -0
  327. package/dist/payments/payment-metadata-builder.d.ts.map +1 -0
  328. package/dist/payments/payment-metadata.d.mts +15 -0
  329. package/dist/payments/payment-metadata.d.ts +15 -0
  330. package/dist/payments/payment-metadata.d.ts.map +1 -0
  331. package/dist/payments/payment-request-token-resolver.d.mts +25 -0
  332. package/dist/payments/payment-request-token-resolver.d.ts +25 -0
  333. package/dist/payments/payment-request-token-resolver.d.ts.map +1 -0
  334. package/dist/payments/types.d.mts +40 -0
  335. package/dist/payments/types.d.ts +40 -0
  336. package/dist/payments/types.d.ts.map +1 -0
  337. package/dist/payments/validation.d.mts +19 -0
  338. package/dist/payments/validation.d.ts +19 -0
  339. package/dist/payments/validation.d.ts.map +1 -0
  340. package/dist/schemas/account.d.mts +9 -0
  341. package/dist/schemas/account.d.ts +9 -0
  342. package/dist/schemas/account.d.ts.map +1 -0
  343. package/dist/schemas/brand.d.mts +7 -0
  344. package/dist/schemas/brand.d.ts +7 -0
  345. package/dist/schemas/brand.d.ts.map +1 -0
  346. package/dist/schemas/contact.d.mts +18 -0
  347. package/dist/schemas/contact.d.ts +18 -0
  348. package/dist/schemas/contact.d.ts.map +1 -0
  349. package/dist/schemas/index.d.mts +10 -0
  350. package/dist/schemas/index.d.ts +10 -0
  351. package/dist/schemas/index.d.ts.map +1 -0
  352. package/dist/schemas/index.js +433 -0
  353. package/dist/schemas/index.js.map +7 -0
  354. package/dist/schemas/index.mjs +410 -0
  355. package/dist/schemas/index.mjs.map +7 -0
  356. package/dist/schemas/instruction.d.mts +248 -0
  357. package/dist/schemas/instruction.d.ts +248 -0
  358. package/dist/schemas/instruction.d.ts.map +1 -0
  359. package/dist/schemas/misc.d.mts +36 -0
  360. package/dist/schemas/misc.d.ts +36 -0
  361. package/dist/schemas/misc.d.ts.map +1 -0
  362. package/dist/schemas/payment.d.mts +64 -0
  363. package/dist/schemas/payment.d.ts +64 -0
  364. package/dist/schemas/payment.d.ts.map +1 -0
  365. package/dist/schemas/token.d.mts +17 -0
  366. package/dist/schemas/token.d.ts +17 -0
  367. package/dist/schemas/token.d.ts.map +1 -0
  368. package/dist/schemas/transaction.d.mts +65 -0
  369. package/dist/schemas/transaction.d.ts +65 -0
  370. package/dist/schemas/transaction.d.ts.map +1 -0
  371. package/dist/schemas/user.d.mts +24 -0
  372. package/dist/schemas/user.d.ts +24 -0
  373. package/dist/schemas/user.d.ts.map +1 -0
  374. package/dist/server/client.d.mts +3 -0
  375. package/dist/server/client.d.ts +3 -0
  376. package/dist/server/client.d.ts.map +1 -0
  377. package/dist/server/index.d.mts +3 -0
  378. package/dist/server/index.d.ts +3 -0
  379. package/dist/server/index.d.ts.map +1 -0
  380. package/dist/server/index.js +420 -0
  381. package/dist/server/index.js.map +7 -0
  382. package/dist/server/index.mjs +389 -0
  383. package/dist/server/index.mjs.map +7 -0
  384. package/dist/server/routes/account.d.mts +4 -0
  385. package/dist/server/routes/account.d.ts +4 -0
  386. package/dist/server/routes/account.d.ts.map +1 -0
  387. package/dist/server/routes/auth.d.mts +28 -0
  388. package/dist/server/routes/auth.d.ts +28 -0
  389. package/dist/server/routes/auth.d.ts.map +1 -0
  390. package/dist/server/routes/bridge.d.mts +192 -0
  391. package/dist/server/routes/bridge.d.ts +192 -0
  392. package/dist/server/routes/bridge.d.ts.map +1 -0
  393. package/dist/server/routes/config.d.mts +3 -0
  394. package/dist/server/routes/config.d.ts +3 -0
  395. package/dist/server/routes/config.d.ts.map +1 -0
  396. package/dist/server/routes/index.d.mts +8 -0
  397. package/dist/server/routes/index.d.ts +8 -0
  398. package/dist/server/routes/index.d.ts.map +1 -0
  399. package/dist/server/routes/instruction.d.mts +4 -0
  400. package/dist/server/routes/instruction.d.ts +4 -0
  401. package/dist/server/routes/instruction.d.ts.map +1 -0
  402. package/dist/server/routes/integration.d.mts +4 -0
  403. package/dist/server/routes/integration.d.ts +4 -0
  404. package/dist/server/routes/integration.d.ts.map +1 -0
  405. package/dist/server/routes/payments.d.mts +4 -0
  406. package/dist/server/routes/payments.d.ts +4 -0
  407. package/dist/server/routes/payments.d.ts.map +1 -0
  408. package/dist/server/routes/verify.d.mts +3 -0
  409. package/dist/server/routes/verify.d.ts +3 -0
  410. package/dist/server/routes/verify.d.ts.map +1 -0
  411. package/dist/wallet/wagmi/config.d.mts +18 -0
  412. package/dist/wallet/wagmi/config.d.ts +18 -0
  413. package/dist/wallet/wagmi/config.d.ts.map +1 -0
  414. package/dist/wallet/wagmi/index.d.mts +2 -0
  415. package/dist/wallet/wagmi/index.d.ts +2 -0
  416. package/dist/wallet/wagmi/index.d.ts.map +1 -0
  417. package/dist/wallet/wagmi/index.js +429 -0
  418. package/dist/wallet/wagmi/index.js.map +7 -0
  419. package/dist/wallet/wagmi/index.mjs +431 -0
  420. package/dist/wallet/wagmi/index.mjs.map +7 -0
  421. package/package.json +222 -0
@@ -0,0 +1,431 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+
5
+ // src/wallet/wagmi/config.ts
6
+ import { base as base3, baseSepolia as baseSepolia3 } from "viem/chains";
7
+ import { cookieStorage, createConfig, createStorage, http } from "wagmi";
8
+
9
+ // src/chains/config/custom-chains.ts
10
+ var pecorinoSignet = {
11
+ id: 14174,
12
+ name: "Pecorino Signet",
13
+ nativeCurrency: {
14
+ decimals: 18,
15
+ name: "USD",
16
+ symbol: "USD"
17
+ },
18
+ rpcUrls: {
19
+ default: { http: ["https://rpc.pecorino.signet.sh/"] },
20
+ public: { http: ["https://rpc.pecorino.signet.sh/"] }
21
+ },
22
+ blockExplorers: {
23
+ default: {
24
+ name: "Pecorino Signet Explorer",
25
+ url: "https://explorer.pecorino.signet.sh/"
26
+ }
27
+ },
28
+ testnet: true
29
+ };
30
+ var pecorinoHost = {
31
+ id: 3151908,
32
+ name: "Pecorino Host",
33
+ nativeCurrency: {
34
+ decimals: 18,
35
+ name: "ETH",
36
+ symbol: "ETH"
37
+ },
38
+ rpcUrls: {
39
+ default: { http: ["https://host-rpc.pecorino.signet.sh/"] },
40
+ public: { http: ["https://host-rpc.pecorino.signet.sh/"] }
41
+ },
42
+ blockExplorers: {
43
+ default: {
44
+ name: "Pecorino Host Explorer",
45
+ url: "https://explorer-host.pecorino.signet.sh/"
46
+ }
47
+ },
48
+ testnet: true
49
+ };
50
+
51
+ // src/env.ts
52
+ var BUILD_MODE = "development";
53
+
54
+ // src/chains/config/mainnet-chains.ts
55
+ import { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from "viem/chains";
56
+ var mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon];
57
+ var mainnetChainsById = new Map(
58
+ mainnetChains.map((chain) => [chain.id, chain])
59
+ );
60
+
61
+ // src/chains/config/testnet-chains.ts
62
+ import {
63
+ arbitrumSepolia,
64
+ baseSepolia,
65
+ bscTestnet,
66
+ optimismSepolia,
67
+ polygonAmoy,
68
+ sepolia,
69
+ unichainSepolia
70
+ } from "viem/chains";
71
+ var testnetChains = [
72
+ sepolia,
73
+ baseSepolia,
74
+ arbitrumSepolia,
75
+ optimismSepolia,
76
+ bscTestnet,
77
+ unichainSepolia,
78
+ polygonAmoy,
79
+ pecorinoHost,
80
+ pecorinoSignet
81
+ ];
82
+ var testnetChainsById = new Map(
83
+ testnetChains.map((chain) => [chain.id, chain])
84
+ );
85
+
86
+ // src/chains/tokens/token-addresses.ts
87
+ import {
88
+ arbitrum as arbitrum2,
89
+ arbitrumSepolia as arbitrumSepolia2,
90
+ base as base2,
91
+ baseSepolia as baseSepolia2,
92
+ bsc as bsc2,
93
+ bscTestnet as bscTestnet2,
94
+ mainnet as mainnet2,
95
+ optimism as optimism2,
96
+ optimismSepolia as optimismSepolia2,
97
+ polygon as polygon2,
98
+ polygonAmoy as polygonAmoy2,
99
+ sepolia as sepolia2,
100
+ unichain as unichain2,
101
+ unichainSepolia as unichainSepolia2
102
+ } from "viem/chains";
103
+
104
+ // src/helpers/blockchain.ts
105
+ import { isAddressEqual } from "viem";
106
+ var DEFAULT_ADDRESS = "0x0000000000000000000000000000000000000000";
107
+
108
+ // src/helpers/logger.ts
109
+ var Logger = class {
110
+ constructor() {
111
+ __publicField(this, "isDevelopment", BUILD_MODE === "development");
112
+ }
113
+ debug(message, options) {
114
+ if (this.isDevelopment) {
115
+ this.log("debug", message, options);
116
+ }
117
+ }
118
+ info(message, options) {
119
+ this.log("info", message, options);
120
+ }
121
+ warn(message, options) {
122
+ this.log("warn", message, options);
123
+ }
124
+ error(message, options) {
125
+ this.log("error", message, options);
126
+ }
127
+ /**
128
+ * Log errors with context - useful for non-API errors
129
+ * For API errors, use the existing getErrorMessage from @otim/utils/api
130
+ */
131
+ logError(error, options = {}) {
132
+ const { context, operation, metadata } = options;
133
+ const prefix = this.buildPrefix(context, operation);
134
+ let message = "Unknown error";
135
+ if (error instanceof Error) {
136
+ message = error.message;
137
+ } else if (typeof error === "string") {
138
+ message = error;
139
+ } else if (error && typeof error === "object" && "message" in error) {
140
+ message = String(error.message);
141
+ }
142
+ console.error(prefix ? `${prefix} ${message}` : message);
143
+ if (metadata && Object.keys(metadata).length > 0) {
144
+ console.error("Context:", metadata);
145
+ }
146
+ if (error instanceof Error && error.stack) {
147
+ console.error("Stack:", error.stack);
148
+ } else {
149
+ console.error("Error details:", error);
150
+ }
151
+ }
152
+ buildPrefix(context, operation) {
153
+ const parts = [];
154
+ if (context) parts.push(`[${context}]`);
155
+ if (operation) parts.push(`[${operation}]`);
156
+ return parts.join(" ");
157
+ }
158
+ log(level, message, options) {
159
+ const prefix = options?.context ? `[${options.context}]` : "";
160
+ const fullMessage = `${prefix} ${message}`.trim();
161
+ switch (level) {
162
+ case "debug":
163
+ case "info":
164
+ console.log(fullMessage);
165
+ break;
166
+ case "warn":
167
+ console.warn(fullMessage);
168
+ break;
169
+ case "error":
170
+ console.error(fullMessage);
171
+ break;
172
+ }
173
+ if (options?.data) {
174
+ console.dir(options.data, { depth: null });
175
+ }
176
+ }
177
+ };
178
+ var logger = new Logger();
179
+
180
+ // src/chains/tokens/token-addresses.ts
181
+ var tokenAddresses = {
182
+ [mainnet2.id]: {
183
+ ETH: DEFAULT_ADDRESS,
184
+ WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
185
+ USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
186
+ USDT: "0xdAC17F958D2ee523a2206206994597C13D831ec7"
187
+ },
188
+ [base2.id]: {
189
+ ETH: DEFAULT_ADDRESS,
190
+ WETH: "0x4200000000000000000000000000000000000006",
191
+ USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
192
+ USDT: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"
193
+ },
194
+ [arbitrum2.id]: {
195
+ ETH: DEFAULT_ADDRESS,
196
+ WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
197
+ USDC: "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
198
+ USDT: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
199
+ },
200
+ [optimism2.id]: {
201
+ ETH: DEFAULT_ADDRESS,
202
+ WETH: "0x4200000000000000000000000000000000000006",
203
+ USDC: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
204
+ USDT: "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"
205
+ },
206
+ [sepolia2.id]: {
207
+ ETH: DEFAULT_ADDRESS,
208
+ WETH: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
209
+ USDC: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
210
+ USDT: "0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0"
211
+ },
212
+ [baseSepolia2.id]: {
213
+ ETH: DEFAULT_ADDRESS,
214
+ WETH: "0x4200000000000000000000000000000000000006",
215
+ USDC: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
216
+ USDT: "0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673"
217
+ },
218
+ [arbitrumSepolia2.id]: {
219
+ ETH: DEFAULT_ADDRESS,
220
+ WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
221
+ USDC: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",
222
+ USDT: "0xE5b6C29411b3ad31C3613BbA0145293fC9957256"
223
+ },
224
+ [optimismSepolia2.id]: {
225
+ ETH: DEFAULT_ADDRESS,
226
+ WETH: "0x4200000000000000000000000000000000000006",
227
+ USDC: "0x5fd84259d66Cd46123540766Be93DFE6D43130D7",
228
+ USDT: "0xebca682b6c15d539284432edc5b960771f0009e8"
229
+ },
230
+ [bsc2.id]: {
231
+ BNB: DEFAULT_ADDRESS,
232
+ WBNB: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
233
+ USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
234
+ USDT: "0x55d398326f99059fF775485246999027B3197955"
235
+ },
236
+ [bscTestnet2.id]: {
237
+ BNB: DEFAULT_ADDRESS,
238
+ WBNB: "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd",
239
+ USDC: "0x64544969ed7EBf5f083679233325356EbE738930"
240
+ },
241
+ [unichain2.id]: {
242
+ ETH: DEFAULT_ADDRESS,
243
+ WETH: "0x4200000000000000000000000000000000000006",
244
+ USDC: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA"
245
+ },
246
+ [unichainSepolia2.id]: {
247
+ ETH: DEFAULT_ADDRESS,
248
+ WETH: "0x4200000000000000000000000000000000000006",
249
+ USDC: "0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87"
250
+ },
251
+ [polygon2.id]: {
252
+ POL: DEFAULT_ADDRESS,
253
+ MATIC: DEFAULT_ADDRESS,
254
+ WMATIC: "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
255
+ USDC: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
256
+ USDT: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
257
+ },
258
+ [polygonAmoy2.id]: {
259
+ POL: DEFAULT_ADDRESS,
260
+ MATIC: DEFAULT_ADDRESS,
261
+ WMATIC: "0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9",
262
+ USDC: "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582"
263
+ },
264
+ [pecorinoSignet.id]: {
265
+ USD: DEFAULT_ADDRESS
266
+ },
267
+ [pecorinoHost.id]: {
268
+ ETH: DEFAULT_ADDRESS
269
+ }
270
+ };
271
+ function getTokenAddresses(chainId) {
272
+ return tokenAddresses[chainId] || {};
273
+ }
274
+
275
+ // src/chains/tokens/token-metadata.ts
276
+ var tokenMetadata = {
277
+ ETH: {
278
+ name: "Ether",
279
+ symbol: "ETH",
280
+ decimals: 18,
281
+ logoURI: "/tokens/eth.svg"
282
+ },
283
+ WETH: {
284
+ name: "Wrapped Ether",
285
+ symbol: "WETH",
286
+ decimals: 18,
287
+ logoURI: "/tokens/eth.svg",
288
+ type: "ERC20"
289
+ },
290
+ USD: {
291
+ name: "US Dollar",
292
+ symbol: "USD",
293
+ decimals: 18,
294
+ logoURI: "/tokens/usd.svg"
295
+ },
296
+ USDC: {
297
+ name: "USD Coin",
298
+ symbol: "USDC",
299
+ decimals: 6,
300
+ logoURI: "https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
301
+ type: "ERC20"
302
+ },
303
+ USDT: {
304
+ name: "Tether",
305
+ symbol: "USDT",
306
+ decimals: 6,
307
+ logoURI: "https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png",
308
+ type: "ERC20"
309
+ }
310
+ };
311
+ function getTokenMetadata(symbol) {
312
+ return tokenMetadata[symbol.toUpperCase()];
313
+ }
314
+
315
+ // src/chains/tokens/chain-tokens.ts
316
+ function getChainTokens(chainId) {
317
+ const addresses = getTokenAddresses(chainId);
318
+ const tokens = [];
319
+ for (const [symbol, address] of Object.entries(addresses)) {
320
+ const metadata = getTokenMetadata(symbol);
321
+ if (metadata && address) {
322
+ tokens.push({ ...metadata, address, chainId });
323
+ }
324
+ }
325
+ return tokens;
326
+ }
327
+
328
+ // src/chains/config/supported-chains.ts
329
+ var allChains = [...mainnetChains, ...testnetChains];
330
+ var chainById = new Map(
331
+ allChains.map((chain) => [chain.id, chain])
332
+ );
333
+ function getMainnetChains() {
334
+ return mainnetChains.map((chain) => ({
335
+ chain,
336
+ isTestnet: false,
337
+ tokens: getChainTokens(chain.id)
338
+ }));
339
+ }
340
+ function getTestnetChains() {
341
+ return testnetChains.map((chain) => ({
342
+ chain,
343
+ isTestnet: true,
344
+ tokens: getChainTokens(chain.id)
345
+ }));
346
+ }
347
+ function getAllChains() {
348
+ return [...getMainnetChains(), ...getTestnetChains()];
349
+ }
350
+
351
+ // src/wallet/wagmi/config.ts
352
+ function getOrderedChains() {
353
+ const mainnets = getMainnetChains().map(
354
+ (config) => config.chain
355
+ );
356
+ const testnets = getTestnetChains().map(
357
+ (config) => config.chain
358
+ );
359
+ const filteredMainnets = mainnets.filter((chain) => chain.id !== 8453);
360
+ const filteredTestnets = testnets.filter(
361
+ (chain) => chain.id !== baseSepolia3.id
362
+ );
363
+ return [base3, ...filteredMainnets, baseSepolia3, ...filteredTestnets].filter(
364
+ (chain) => chain !== void 0
365
+ );
366
+ }
367
+ function isTurnkeyConnection(connection) {
368
+ if (!connection || typeof connection !== "object") {
369
+ return false;
370
+ }
371
+ const conn = connection;
372
+ return conn.connector?.id === "turnkey";
373
+ }
374
+ function filterTurnkeyConnections(connections) {
375
+ return connections.filter((conn) => !isTurnkeyConnection(conn));
376
+ }
377
+ function sanitizeWagmiState(state) {
378
+ if (!state || typeof state !== "object") {
379
+ return state;
380
+ }
381
+ const wagmiState = state;
382
+ const sanitized = { ...wagmiState };
383
+ if (Array.isArray(sanitized.connections)) {
384
+ sanitized.connections = filterTurnkeyConnections(sanitized.connections);
385
+ }
386
+ if (sanitized.state && typeof sanitized.state === "object" && Array.isArray(sanitized.state.connections)) {
387
+ sanitized.state = {
388
+ ...sanitized.state,
389
+ connections: filterTurnkeyConnections(sanitized.state.connections)
390
+ };
391
+ }
392
+ return sanitized;
393
+ }
394
+ function createSafeStorage() {
395
+ const storage = cookieStorage;
396
+ return {
397
+ ...storage,
398
+ setItem: (key, value) => {
399
+ try {
400
+ const parsed = JSON.parse(value);
401
+ const sanitized = sanitizeWagmiState(parsed);
402
+ return storage.setItem(key, JSON.stringify(sanitized));
403
+ } catch (error) {
404
+ logger.logError(error, {
405
+ context: createSafeStorage.name
406
+ });
407
+ return;
408
+ }
409
+ }
410
+ };
411
+ }
412
+ function getTransports() {
413
+ const chains = getAllChains();
414
+ const transports = {};
415
+ for (const { chain } of chains) {
416
+ transports[chain.id] = http();
417
+ }
418
+ return transports;
419
+ }
420
+ var baseConfig = {
421
+ chains: getOrderedChains(),
422
+ ssr: true,
423
+ storage: createStorage({ storage: createSafeStorage() }),
424
+ transports: getTransports()
425
+ };
426
+ var serverConfig = createConfig(baseConfig);
427
+ export {
428
+ baseConfig,
429
+ serverConfig
430
+ };
431
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/wallet/wagmi/config.ts", "../../../src/chains/config/custom-chains.ts", "../../../src/env.ts", "../../../src/chains/config/mainnet-chains.ts", "../../../src/chains/config/testnet-chains.ts", "../../../src/chains/tokens/token-addresses.ts", "../../../src/helpers/blockchain.ts", "../../../src/helpers/logger.ts", "../../../src/chains/tokens/token-metadata.ts", "../../../src/chains/tokens/chain-tokens.ts", "../../../src/chains/config/supported-chains.ts"],
4
+ "sourcesContent": ["/**\n * @file Wagmi Configuration\n * @description Base Wagmi configuration shared across client and server.\n * Handles chain setup, transports, and SSR-safe storage.\n */\n\nimport type { ChainConfig } from \"@otim/utils/chains\";\nimport type { Chain } from \"viem\";\nimport type { CreateConfigParameters } from \"wagmi\";\n\nimport { base, baseSepolia } from \"viem/chains\";\nimport { cookieStorage, createConfig, createStorage, http } from \"wagmi\";\n\nimport {\n getAllChains,\n getMainnetChains,\n getTestnetChains,\n} from \"@otim/utils/chains\";\nimport { logger } from \"@otim/utils/helpers\";\n\n/**\n * Returns chains ordered by priority.\n * Base mainnet and Base Sepolia are prioritized first.\n */\nfunction getOrderedChains(): Chain[] {\n const mainnets = getMainnetChains().map(\n (config: ChainConfig) => config.chain,\n );\n const testnets = getTestnetChains().map(\n (config: ChainConfig) => config.chain,\n );\n\n const filteredMainnets = mainnets.filter((chain: Chain) => chain.id !== 8453);\n const filteredTestnets = testnets.filter(\n (chain: Chain) => chain.id !== baseSepolia.id,\n );\n\n return [base, ...filteredMainnets, baseSepolia, ...filteredTestnets].filter(\n (chain): chain is Chain => chain !== undefined,\n );\n}\n\ninterface WagmiConnection {\n [key: string]: unknown;\n connector?: {\n [key: string]: unknown;\n id: string;\n };\n}\n\ninterface WagmiState {\n [key: string]: unknown;\n connections?: WagmiConnection[];\n state?: {\n [key: string]: unknown;\n connections?: WagmiConnection[];\n };\n}\n\n/**\n * Type guard to identify Turnkey connections.\n * Turnkey connections must be filtered from storage to prevent SSR issues.\n */\nfunction isTurnkeyConnection(\n connection: unknown,\n): connection is WagmiConnection & { connector: { id: \"turnkey\" } } {\n if (!connection || typeof connection !== \"object\") {\n return false;\n }\n\n const conn = connection as WagmiConnection;\n return conn.connector?.id === \"turnkey\";\n}\n\nfunction filterTurnkeyConnections<T>(connections: T[]): T[] {\n return connections.filter((conn) => !isTurnkeyConnection(conn));\n}\n\n/**\n * Removes Turnkey connections from Wagmi state.\n * This prevents SSR hydration mismatches when Turnkey is used.\n */\nfunction sanitizeWagmiState(state: unknown): WagmiState {\n if (!state || typeof state !== \"object\") {\n return state as WagmiState;\n }\n\n const wagmiState = state as WagmiState;\n const sanitized = { ...wagmiState };\n\n if (Array.isArray(sanitized.connections)) {\n sanitized.connections = filterTurnkeyConnections(sanitized.connections);\n }\n\n if (\n sanitized.state &&\n typeof sanitized.state === \"object\" &&\n Array.isArray(sanitized.state.connections)\n ) {\n sanitized.state = {\n ...sanitized.state,\n connections: filterTurnkeyConnections(sanitized.state.connections),\n };\n }\n\n return sanitized;\n}\n\n/**\n * Creates SSR-safe cookie storage with Turnkey connection filtering.\n * Ensures Turnkey connections don't cause hydration mismatches.\n */\nfunction createSafeStorage() {\n const storage = cookieStorage;\n\n return {\n ...storage,\n setItem: (key: string, value: string) => {\n try {\n const parsed = JSON.parse(value);\n const sanitized = sanitizeWagmiState(parsed);\n return storage.setItem(key, JSON.stringify(sanitized));\n } catch (error) {\n logger.logError(error, {\n context: createSafeStorage.name,\n });\n return;\n }\n },\n };\n}\n\n/**\n * Creates HTTP transports for all supported chains.\n * Each chain gets its own transport instance.\n */\nfunction getTransports(): Record<number, ReturnType<typeof http>> {\n const chains = getAllChains();\n const transports: Record<number, ReturnType<typeof http>> = {};\n\n for (const { chain } of chains) {\n transports[chain.id] = http();\n }\n\n return transports;\n}\n\n/**\n * Base Wagmi configuration shared across client and server.\n * Includes SSR support and safe storage handling.\n */\nexport const baseConfig: CreateConfigParameters = {\n chains: getOrderedChains() as [Chain, ...Chain[]],\n ssr: true,\n storage: createStorage({ storage: createSafeStorage() }),\n transports: getTransports(),\n};\n\n/**\n * Server-side Wagmi configuration.\n * Used for SSR and server-side data fetching.\n */\nexport const serverConfig: ReturnType<typeof createConfig> =\n createConfig(baseConfig);\n", "import type { Chain } from \"viem/chains\";\n\nexport const pecorinoSignet = {\n id: 14174,\n name: \"Pecorino Signet\",\n nativeCurrency: {\n decimals: 18,\n name: \"USD\",\n symbol: \"USD\",\n },\n rpcUrls: {\n default: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Signet Explorer\",\n url: \"https://explorer.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n\nexport const pecorinoHost = {\n id: 3151908,\n name: \"Pecorino Host\",\n nativeCurrency: {\n decimals: 18,\n name: \"ETH\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Host Explorer\",\n url: \"https://explorer-host.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from \"viem/chains\";\n\nexport const mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon] as const;\n\nexport const mainnetChainsById = new Map<number, Chain>(\n mainnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getMainnetChain(chainId: number): Optional<Chain> {\n return mainnetChainsById.get(chainId);\n}\n\nexport function isMainnetChain(chainId: number): boolean {\n return mainnetChainsById.has(chainId);\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport {\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n optimismSepolia,\n polygonAmoy,\n sepolia,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\n\nexport const testnetChains = [\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n] as const;\n\nexport const testnetChainsById = new Map<number, Chain>(\n testnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getTestnetChain(chainId: number): Optional<Chain> {\n return testnetChainsById.get(chainId);\n}\n\nexport function isTestnetChain(chainId: number): boolean {\n return testnetChainsById.has(chainId);\n}\n", "import type { ChainTokenAddresses } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Address } from \"@otim/utils/schemas\";\n\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { DEFAULT_ADDRESS } from \"../../helpers\";\nimport { pecorinoHost, pecorinoSignet } from \"../config/custom-chains\";\n\nexport const tokenAddresses: Record<number, ChainTokenAddresses> = {\n [mainnet.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n USDC: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n [base.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n USDT: \"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2\",\n },\n [arbitrum.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n USDT: \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n },\n [optimism.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n USDT: \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n },\n [sepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14\",\n USDC: \"0x1c7d4b196cb0c7b01d743fbc6116a902379c7238\",\n USDT: \"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0\",\n },\n [baseSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n USDT: \"0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673\",\n },\n [arbitrumSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n USDT: \"0xE5b6C29411b3ad31C3613BbA0145293fC9957256\",\n },\n [optimismSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x5fd84259d66Cd46123540766Be93DFE6D43130D7\",\n USDT: \"0xebca682b6c15d539284432edc5b960771f0009e8\",\n },\n [bsc.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n USDC: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n USDT: \"0x55d398326f99059fF775485246999027B3197955\",\n },\n [bscTestnet.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n USDC: \"0x64544969ed7EBf5f083679233325356EbE738930\",\n },\n [unichain.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n },\n [unichainSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87\",\n },\n [polygon.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n USDC: \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n USDT: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n },\n [polygonAmoy.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9\",\n USDC: \"0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582\",\n },\n [pecorinoSignet.id]: {\n USD: DEFAULT_ADDRESS,\n },\n [pecorinoHost.id]: {\n ETH: DEFAULT_ADDRESS,\n },\n};\n\nexport function getTokenAddresses(chainId: number): ChainTokenAddresses {\n return tokenAddresses[chainId] || {};\n}\n\nexport function getTokenAddress(\n chainId: number,\n symbol: string,\n): Optional<Address> {\n const addresses = getTokenAddresses(chainId);\n return addresses[symbol.toUpperCase()];\n}\n\nexport function isTokenSupported(chainId: number, symbol: string): boolean {\n return getTokenAddress(chainId, symbol) !== undefined;\n}\n", "import type { EIP2098Signature, HexString, VRS } from \"@otim/utils/schemas\";\nimport type { Chain } from \"viem\";\n\nimport { isAddressEqual } from \"viem\";\n\nexport const truncateAddress = (address: string): string => {\n if (!address) return \"\";\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Ethereum address regex pattern\n * Matches addresses like 0x1234...abcd (40 hex characters after 0x prefix)\n */\nexport const ETHEREUM_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;\n\n/**\n * Validates if a string is a valid Ethereum address format\n * @param address - The address string to validate\n * @returns true if the address matches the Ethereum address format\n */\nexport const isValidEthereumAddress = (address: string): boolean => {\n return ETHEREUM_ADDRESS_REGEX.test(address);\n};\n\n/**\n * Parses a signature string into its v, r, s components.\n * @param signature - The signature string to parse (must be 0x-prefixed, 132 chars total)\n * @returns VRS object containing v, r, and s values\n */\nexport const parseSignatureToVRS = (signature: string): VRS => {\n if (typeof signature !== \"string\") {\n throw new Error(\"Signature must be a string\");\n }\n\n if (!signature.startsWith(\"0x\")) {\n throw new Error('Signature must start with \"0x\"');\n }\n\n if (signature.length !== 132) {\n throw new Error(\n 'Signature must be 65 bytes (130 hex chars) plus \"0x\" = 132 total length',\n );\n }\n\n const r = signature.slice(2, 66);\n const s = signature.slice(66, 130);\n const vHex = signature.slice(130, 132);\n const v = parseInt(vHex, 16);\n return { v, r: `0x${r}`, s: `0x${s}` };\n};\n\n/**\n * Checks if a v value is valid according to EIP-155.\n */\nexport const isValidV = (v: number): boolean => {\n return v === 0 || v === 1 || v === 27 || v === 28 || v >= 35;\n};\n\n/**\n * Normalizes v value for EIP-155 compliance.\n */\nexport const normalizeV = (v: number) => {\n if (!isValidV(v)) return 0;\n\n const cmp = v <= 1 ? 1 : 0;\n const result = v % 2 === cmp;\n\n return Number(result) % 2;\n};\n\n/**\n * Creates an EIP-2098 compact signature from VRS components.\n * @param vrs - The VRS signature components\n * @returns EIP2098Signature object with yParity, r, and s\n */\nexport const createEIP2098Signature = (vrs: VRS): EIP2098Signature => {\n const v = vrs.v;\n const r = vrs.r;\n const s = vrs.s;\n\n return { yParity: normalizeV(v), r, s };\n};\n\nexport const getChainRpcUrl = (\n chainId: number,\n chains: readonly [Chain, ...Chain[]],\n) => {\n const chain = chains.find((chain) => chain.id === chainId);\n return chain?.rpcUrls.default;\n};\n\nexport const DEFAULT_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const isNullAddress = (address: HexString) => {\n return isAddressEqual(address, DEFAULT_ADDRESS);\n};\n", "import { BUILD_MODE } from \"../env\";\n\ntype LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\ninterface LoggerOptions {\n context?: string;\n data?: unknown;\n}\n\ninterface ErrorLogOptions {\n context?: string;\n operation?: string;\n metadata?: Record<string, unknown>;\n}\n\nclass Logger {\n private isDevelopment = BUILD_MODE === \"development\";\n\n debug(message: string, options?: LoggerOptions): void {\n if (this.isDevelopment) {\n this.log(\"debug\", message, options);\n }\n }\n\n info(message: string, options?: LoggerOptions): void {\n this.log(\"info\", message, options);\n }\n\n warn(message: string, options?: LoggerOptions): void {\n this.log(\"warn\", message, options);\n }\n\n error(message: string, options?: LoggerOptions): void {\n this.log(\"error\", message, options);\n }\n\n /**\n * Log errors with context - useful for non-API errors\n * For API errors, use the existing getErrorMessage from @otim/utils/api\n */\n logError(error: unknown, options: ErrorLogOptions = {}): void {\n const { context, operation, metadata } = options;\n const prefix = this.buildPrefix(context, operation);\n\n // Extract basic error message\n let message = \"Unknown error\";\n if (error instanceof Error) {\n message = error.message;\n } else if (typeof error === \"string\") {\n message = error;\n } else if (error && typeof error === \"object\" && \"message\" in error) {\n message = String((error as { message: unknown }).message);\n }\n\n console.error(prefix ? `${prefix} ${message}` : message);\n\n // Log metadata if provided\n if (metadata && Object.keys(metadata).length > 0) {\n console.error(\"Context:\", metadata);\n }\n\n // Log the full error object for debugging\n if (error instanceof Error && error.stack) {\n console.error(\"Stack:\", error.stack);\n } else {\n console.error(\"Error details:\", error);\n }\n }\n\n private buildPrefix(context?: string, operation?: string): string {\n const parts: string[] = [];\n if (context) parts.push(`[${context}]`);\n if (operation) parts.push(`[${operation}]`);\n return parts.join(\" \");\n }\n\n private log(level: LogLevel, message: string, options?: LoggerOptions): void {\n const prefix = options?.context ? `[${options.context}]` : \"\";\n const fullMessage = `${prefix} ${message}`.trim();\n\n switch (level) {\n case \"debug\":\n case \"info\":\n console.log(fullMessage);\n break;\n case \"warn\":\n console.warn(fullMessage);\n break;\n case \"error\":\n console.error(fullMessage);\n break;\n }\n\n if (options?.data) {\n console.dir(options.data, { depth: null });\n }\n }\n}\n\nexport const logger = new Logger();\n", "import type { TokenMetadata } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport const tokenMetadata: Record<string, TokenMetadata> = {\n ETH: {\n name: \"Ether\",\n symbol: \"ETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n },\n WETH: {\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n type: \"ERC20\",\n },\n USD: {\n name: \"US Dollar\",\n symbol: \"USD\",\n decimals: 18,\n logoURI: \"/tokens/usd.svg\",\n },\n USDC: {\n name: \"USD Coin\",\n symbol: \"USDC\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n type: \"ERC20\",\n },\n USDT: {\n name: \"Tether\",\n symbol: \"USDT\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n type: \"ERC20\",\n },\n};\n\nexport function getTokenMetadata(symbol: string): Optional<TokenMetadata> {\n return tokenMetadata[symbol.toUpperCase()];\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nimport { getTokenAddresses } from \"./token-addresses\";\nimport { getTokenMetadata } from \"./token-metadata\";\n\nexport function getChainTokens(chainId: number): ChainToken[] {\n const addresses = getTokenAddresses(chainId);\n const tokens: ChainToken[] = [];\n\n for (const [symbol, address] of Object.entries(addresses)) {\n const metadata = getTokenMetadata(symbol);\n\n if (metadata && address) {\n tokens.push({ ...metadata, address, chainId });\n }\n }\n\n return tokens;\n}\n\nexport function getChainToken(\n chainId: number,\n symbol: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n}\n\nexport function getChainTokenByAddress(\n chainId: number,\n address: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.address.toLowerCase() === address.toLowerCase(),\n );\n}\n", "import type { ChainConfig } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { mainnetChains } from \"./mainnet-chains\";\nimport { testnetChains } from \"./testnet-chains\";\nimport { getChainTokens } from \"../tokens/chain-tokens\";\n\nexport const allChains = [...mainnetChains, ...testnetChains] as const;\n\nexport type SupportedChainId = (typeof allChains)[number][\"id\"];\n\nexport const chainById = new Map<number, Chain>(\n allChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getChainById(chainId: number): Optional<Chain> {\n return chainById.get(chainId);\n}\n\nexport function getChainConfig(chainId: number): Optional<ChainConfig> {\n const chain = getChainById(chainId);\n if (!chain) return undefined;\n\n return {\n chain,\n isTestnet: chain.testnet ?? false,\n tokens: getChainTokens(chain.id),\n };\n}\n\nexport function getMainnetChains(): ChainConfig[] {\n return mainnetChains.map((chain) => ({\n chain,\n isTestnet: false,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getTestnetChains(): ChainConfig[] {\n return testnetChains.map((chain) => ({\n chain,\n isTestnet: true,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getAllChains(): ChainConfig[] {\n return [...getMainnetChains(), ...getTestnetChains()];\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return chainById.has(chainId);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["base", "baseSepolia", "arbitrum", "arbitrumSepolia", "base", "baseSepolia", "bsc", "bscTestnet", "mainnet", "optimism", "optimismSepolia", "polygon", "polygonAmoy", "sepolia", "unichain", "unichainSepolia", "mainnet", "base", "arbitrum", "optimism", "sepolia", "baseSepolia", "arbitrumSepolia", "optimismSepolia", "bsc", "bscTestnet", "unichain", "unichainSepolia", "polygon", "polygonAmoy", "baseSepolia", "base"]
7
+ }