0xtrails 0.0.1 → 0.0.2

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 (359) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +42 -0
  3. package/dist/abi.d.ts +37 -0
  4. package/dist/abi.d.ts.map +1 -0
  5. package/dist/abi.js +36 -0
  6. package/dist/apiClient.d.ts +9 -0
  7. package/dist/apiClient.d.ts.map +1 -0
  8. package/dist/apiClient.js +18 -0
  9. package/dist/buffer.d.ts +3 -0
  10. package/dist/buffer.d.ts.map +1 -0
  11. package/dist/buffer.js +8 -0
  12. package/dist/cctp.d.ts +84 -0
  13. package/dist/cctp.d.ts.map +1 -0
  14. package/dist/cctp.js +401 -0
  15. package/dist/chainSwitch.d.ts +7 -0
  16. package/dist/chainSwitch.d.ts.map +1 -0
  17. package/dist/chainSwitch.js +33 -0
  18. package/dist/chains.d.ts +13 -0
  19. package/dist/chains.d.ts.map +1 -0
  20. package/dist/chains.js +95 -0
  21. package/dist/constants.d.ts +11 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +16 -0
  24. package/dist/encoders.d.ts +7 -0
  25. package/dist/encoders.d.ts.map +1 -0
  26. package/dist/encoders.js +8 -0
  27. package/dist/error.d.ts +2 -0
  28. package/dist/error.d.ts.map +1 -0
  29. package/dist/error.js +12 -0
  30. package/dist/explorer.d.ts +12 -0
  31. package/dist/explorer.d.ts.map +1 -0
  32. package/dist/explorer.js +18 -0
  33. package/dist/gasless.d.ts +116 -0
  34. package/dist/gasless.d.ts.map +1 -0
  35. package/dist/gasless.js +297 -0
  36. package/dist/index.d.ts +13 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +9 -0
  39. package/dist/indexerClient.d.ts +9 -0
  40. package/dist/indexerClient.d.ts.map +1 -0
  41. package/dist/indexerClient.js +18 -0
  42. package/dist/intents.d.ts +83 -0
  43. package/dist/intents.d.ts.map +1 -0
  44. package/dist/intents.js +288 -0
  45. package/dist/metaTxnMonitor.d.ts +14 -0
  46. package/dist/metaTxnMonitor.d.ts.map +1 -0
  47. package/dist/metaTxnMonitor.js +121 -0
  48. package/dist/metaTxns.d.ts +6 -0
  49. package/dist/metaTxns.d.ts.map +1 -0
  50. package/dist/metaTxns.js +4 -0
  51. package/dist/paymasterSend.d.ts +90 -0
  52. package/dist/paymasterSend.d.ts.map +1 -0
  53. package/dist/paymasterSend.js +329 -0
  54. package/dist/preconditions.d.ts +11 -0
  55. package/dist/preconditions.d.ts.map +1 -0
  56. package/dist/preconditions.js +29 -0
  57. package/dist/prepareSend.d.ts +102 -0
  58. package/dist/prepareSend.d.ts.map +1 -0
  59. package/dist/prepareSend.js +1080 -0
  60. package/dist/prices.d.ts +18 -0
  61. package/dist/prices.d.ts.map +1 -0
  62. package/dist/prices.js +142 -0
  63. package/dist/queryParams.d.ts +9 -0
  64. package/dist/queryParams.d.ts.map +1 -0
  65. package/dist/queryParams.js +66 -0
  66. package/dist/relaySdk.d.ts +65 -0
  67. package/dist/relaySdk.d.ts.map +1 -0
  68. package/dist/relaySdk.js +314 -0
  69. package/dist/relayer.d.ts +23 -0
  70. package/dist/relayer.d.ts.map +1 -0
  71. package/dist/relayer.js +230 -0
  72. package/dist/sendUserOp.d.ts +140 -0
  73. package/dist/sendUserOp.d.ts.map +1 -0
  74. package/dist/sendUserOp.js +388 -0
  75. package/dist/sequenceWallet.d.ts +79 -0
  76. package/dist/sequenceWallet.d.ts.map +1 -0
  77. package/dist/sequenceWallet.js +374 -0
  78. package/dist/theme.d.ts +3 -0
  79. package/dist/theme.d.ts.map +1 -0
  80. package/dist/theme.js +1 -0
  81. package/dist/toSimpleSmartAccount.d.ts +95 -0
  82. package/dist/toSimpleSmartAccount.d.ts.map +1 -0
  83. package/dist/toSimpleSmartAccount.js +373 -0
  84. package/dist/tokenBalances.d.ts +118 -0
  85. package/dist/tokenBalances.d.ts.map +1 -0
  86. package/dist/tokenBalances.js +492 -0
  87. package/dist/tokens.d.ts +50 -0
  88. package/dist/tokens.d.ts.map +1 -0
  89. package/dist/tokens.js +356 -0
  90. package/dist/trails.d.ts +128 -0
  91. package/dist/trails.d.ts.map +1 -0
  92. package/dist/trails.js +1031 -0
  93. package/dist/umd/trails.min.js +12610 -0
  94. package/dist/umd/trails.min.js.map +1 -0
  95. package/dist/umd.d.ts +24 -0
  96. package/dist/umd.d.ts.map +1 -0
  97. package/dist/utils.d.ts +5 -0
  98. package/dist/utils.d.ts.map +1 -0
  99. package/dist/utils.js +9 -0
  100. package/dist/widget/ConstantsUtil-B-_-u8aQ.js +6 -0
  101. package/dist/widget/add-hVLs3ldJ.js +20 -0
  102. package/dist/widget/all-wallets-Cwxnx4BT.js +11 -0
  103. package/dist/widget/app-store-CAAVQjW0.js +22 -0
  104. package/dist/widget/apple-C3BSbglw.js +23 -0
  105. package/dist/widget/arrow-bottom-circle-BGU9MmsZ.js +16 -0
  106. package/dist/widget/arrow-bottom-hS_SA8Gp.js +13 -0
  107. package/dist/widget/arrow-left-CJZanWz7.js +13 -0
  108. package/dist/widget/arrow-right-C1qL8EMd.js +13 -0
  109. package/dist/widget/arrow-top-CbuCmbQs.js +13 -0
  110. package/dist/widget/bank-CXBEEGbb.js +19 -0
  111. package/dist/widget/bin-Dqzv3zCZ.js +9 -0
  112. package/dist/widget/bitcoin-4y3sovZp.js +18 -0
  113. package/dist/widget/browser-DyOl4_8m.js +1413 -0
  114. package/dist/widget/browser-t7Fh0sEU.js +19 -0
  115. package/dist/widget/card-Bo4CZkTs.js +19 -0
  116. package/dist/widget/ccip-BynehMIN.js +232 -0
  117. package/dist/widget/checkmark-DV6OKvnY.js +16 -0
  118. package/dist/widget/checkmark-bold-CAp1-IQ2.js +13 -0
  119. package/dist/widget/chevron-bottom-BjzsVzk9.js +13 -0
  120. package/dist/widget/chevron-left-CQZBDCiR.js +13 -0
  121. package/dist/widget/chevron-right-Dhg4zeZM.js +13 -0
  122. package/dist/widget/chevron-top-CDQmfJef.js +13 -0
  123. package/dist/widget/chrome-store-BNaC_b6w.js +66 -0
  124. package/dist/widget/circle-BC_GBj91.js +9 -0
  125. package/dist/widget/clock-BmF8-4a0.js +13 -0
  126. package/dist/widget/close-Bf61nZ8o.js +13 -0
  127. package/dist/widget/coinPlaceholder-7cZW2058.js +13 -0
  128. package/dist/widget/compass-CFC3yhnW.js +13 -0
  129. package/dist/widget/components/ChainImage.d.ts +8 -0
  130. package/dist/widget/components/ChainImage.d.ts.map +1 -0
  131. package/dist/widget/components/ChainImage.js +6 -0
  132. package/dist/widget/components/ConnectWallet.d.ts +18 -0
  133. package/dist/widget/components/ConnectWallet.d.ts.map +1 -0
  134. package/dist/widget/components/ConnectWallet.js +66 -0
  135. package/dist/widget/components/DebugScreensDropdown.d.ts +9 -0
  136. package/dist/widget/components/DebugScreensDropdown.d.ts.map +1 -0
  137. package/dist/widget/components/DebugScreensDropdown.js +40 -0
  138. package/dist/widget/components/FeeOptions.d.ts +17 -0
  139. package/dist/widget/components/FeeOptions.d.ts.map +1 -0
  140. package/dist/widget/components/FeeOptions.js +65 -0
  141. package/dist/widget/components/Footer.d.ts +9 -0
  142. package/dist/widget/components/Footer.d.ts.map +1 -0
  143. package/dist/widget/components/Footer.js +13 -0
  144. package/dist/widget/components/GreenCheckAnimation.d.ts +2 -0
  145. package/dist/widget/components/GreenCheckAnimation.d.ts.map +1 -0
  146. package/dist/widget/components/GreenCheckAnimation.js +74 -0
  147. package/dist/widget/components/Modal.d.ts +11 -0
  148. package/dist/widget/components/Modal.d.ts.map +1 -0
  149. package/dist/widget/components/Modal.js +36 -0
  150. package/dist/widget/components/Receipt.d.ts +13 -0
  151. package/dist/widget/components/Receipt.d.ts.map +1 -0
  152. package/dist/widget/components/Receipt.js +36 -0
  153. package/dist/widget/components/SendForm.d.ts +44 -0
  154. package/dist/widget/components/SendForm.d.ts.map +1 -0
  155. package/dist/widget/components/SendForm.js +177 -0
  156. package/dist/widget/components/TokenImage.d.ts +10 -0
  157. package/dist/widget/components/TokenImage.d.ts.map +1 -0
  158. package/dist/widget/components/TokenImage.js +8 -0
  159. package/dist/widget/components/TokenList.d.ts +16 -0
  160. package/dist/widget/components/TokenList.d.ts.map +1 -0
  161. package/dist/widget/components/TokenList.js +39 -0
  162. package/dist/widget/components/TransferPending.d.ts +11 -0
  163. package/dist/widget/components/TransferPending.d.ts.map +1 -0
  164. package/dist/widget/components/TransferPending.js +77 -0
  165. package/dist/widget/components/TransferPendingVertical.d.ts +18 -0
  166. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -0
  167. package/dist/widget/components/TransferPendingVertical.js +183 -0
  168. package/dist/widget/components/WalletConfirmation.d.ts +18 -0
  169. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -0
  170. package/dist/widget/components/WalletConfirmation.js +22 -0
  171. package/dist/widget/config.d.ts +4 -0
  172. package/dist/widget/config.d.ts.map +1 -0
  173. package/dist/widget/config.js +3 -0
  174. package/dist/widget/copy-e0xXvKN0.js +20 -0
  175. package/dist/widget/cursor-CqM3v0xJ.js +8 -0
  176. package/dist/widget/cursor-transparent-CUQpdsCG.js +17 -0
  177. package/dist/widget/desktop-DUDGIRpM.js +14 -0
  178. package/dist/widget/disconnect-DUFST9QQ.js +13 -0
  179. package/dist/widget/discord-C1cj365Z.js +22 -0
  180. package/dist/widget/email-BHhmb_lX.js +703 -0
  181. package/dist/widget/embedded-wallet-CuuC4eah.js +467 -0
  182. package/dist/widget/ethereum-CfmBVfeB.js +15 -0
  183. package/dist/widget/etherscan-BSiynDhW.js +11 -0
  184. package/dist/widget/exclamation-triangle-DEiFNpHw.js +9 -0
  185. package/dist/widget/extension-mRmfCDxo.js +13 -0
  186. package/dist/widget/external-link-B4xMIVnW.js +13 -0
  187. package/dist/widget/facebook-CBAZStBR.js +31 -0
  188. package/dist/widget/farcaster-LHDEDf5S.js +17 -0
  189. package/dist/widget/filters-CBijuvFv.js +13 -0
  190. package/dist/widget/github-C3ILD420.js +23 -0
  191. package/dist/widget/google-CSj73POX.js +23 -0
  192. package/dist/widget/help-circle-2hdG5IdB.js +17 -0
  193. package/dist/widget/hooks/useAmountUsd.d.ts +13 -0
  194. package/dist/widget/hooks/useAmountUsd.d.ts.map +1 -0
  195. package/dist/widget/hooks/useAmountUsd.js +35 -0
  196. package/dist/widget/hooks/useSendForm.d.ts +125 -0
  197. package/dist/widget/hooks/useSendForm.d.ts.map +1 -0
  198. package/dist/widget/hooks/useSendForm.js +450 -0
  199. package/dist/widget/hooks/useTokenList.d.ts +52 -0
  200. package/dist/widget/hooks/useTokenList.d.ts.map +1 -0
  201. package/dist/widget/hooks/useTokenList.js +252 -0
  202. package/dist/widget/id-ByYSrwsd.js +17 -0
  203. package/dist/widget/if-defined-DRXJEhv7.js +752 -0
  204. package/dist/widget/image-C90L4Rf6.js +9 -0
  205. package/dist/widget/index-B3SlQ9v3.js +46 -0
  206. package/dist/widget/index-B8LPuLXQ.js +78 -0
  207. package/dist/widget/index-BDbworWA.js +171 -0
  208. package/dist/widget/index-BTlDgFSK.js +98 -0
  209. package/dist/widget/index-BUCcjXbd.js +306 -0
  210. package/dist/widget/index-BZ34edi2.js +1055 -0
  211. package/dist/widget/index-BiCU29wK.js +147 -0
  212. package/dist/widget/index-BlmqIKsY.js +266 -0
  213. package/dist/widget/index-BlviH5nG.js +55 -0
  214. package/dist/widget/index-Bwd5X3fS.js +8306 -0
  215. package/dist/widget/index-C5gmknHK.js +78 -0
  216. package/dist/widget/index-CD6dBcRj.js +76 -0
  217. package/dist/widget/index-CDlhy529.js +63 -0
  218. package/dist/widget/index-CHXa5ke-.js +59 -0
  219. package/dist/widget/index-CK94R-H7.js +22498 -0
  220. package/dist/widget/index-CQzo3m3x.js +182 -0
  221. package/dist/widget/index-CRT8cAwG.js +325 -0
  222. package/dist/widget/index-CY7Lt2Yu.js +310 -0
  223. package/dist/widget/index-CiKfAu1E.js +79 -0
  224. package/dist/widget/index-CkCu6rMi.js +258 -0
  225. package/dist/widget/index-CngLTu_R.js +517 -0
  226. package/dist/widget/index-CsMV8-em.js +2577 -0
  227. package/dist/widget/index-Cu2Wva8v.js +200 -0
  228. package/dist/widget/index-DKBxLTEF.js +240 -0
  229. package/dist/widget/index-DQEVT3dx.js +511 -0
  230. package/dist/widget/index-DU2HcCis.js +200 -0
  231. package/dist/widget/index-DutZGWNW.js +321 -0
  232. package/dist/widget/index-O0glArmc.js +182 -0
  233. package/dist/widget/index-O8FmRjKe.js +63719 -0
  234. package/dist/widget/index-RtKXrB6I.js +576 -0
  235. package/dist/widget/index-TIYtS0gE.js +88 -0
  236. package/dist/widget/index-dQNJvWHs.js +66 -0
  237. package/dist/widget/index-wmEwdsq7.js +909 -0
  238. package/dist/widget/index.d.ts +3 -0
  239. package/dist/widget/index.d.ts.map +1 -0
  240. package/dist/widget/index.js +2 -0
  241. package/dist/widget/info-DMPChDjV.js +8 -0
  242. package/dist/widget/info-circle-DAvS_7nY.js +17 -0
  243. package/dist/widget/lightbulb-DnZ9mNEs.js +8 -0
  244. package/dist/widget/lit-html-BRjl1r6K.js +243 -0
  245. package/dist/widget/mail-DpaVSOP8.js +13 -0
  246. package/dist/widget/mobile-CRvdyu7I.js +14 -0
  247. package/dist/widget/more-C5VqW9PR.js +16 -0
  248. package/dist/widget/network-placeholder-CZ0vApma.js +19 -0
  249. package/dist/widget/nftPlaceholder-7jjIK2bT.js +13 -0
  250. package/dist/widget/off-4mHjJLLX.js +9 -0
  251. package/dist/widget/onramp-Bc0ozVsw.js +929 -0
  252. package/dist/widget/play-store-Uocul8nC.js +37 -0
  253. package/dist/widget/plus-DrYF7siO.js +18 -0
  254. package/dist/widget/prepareSend-BQJmzM5B.js +54987 -0
  255. package/dist/widget/qr-code-DcnGMUB3.js +11 -0
  256. package/dist/widget/receive-fvIVd7R_.js +184 -0
  257. package/dist/widget/recycle-horizontal-DrDwXC4D.js +14 -0
  258. package/dist/widget/ref-CXNmEjML.js +41 -0
  259. package/dist/widget/refresh-OK9lIPLS.js +13 -0
  260. package/dist/widget/reown-logo-C-Qn7mS3.js +17 -0
  261. package/dist/widget/search-DZqv1oKg.js +13 -0
  262. package/dist/widget/send-CJlmI-xe.js +1039 -0
  263. package/dist/widget/send-otoEC8uU.js +20 -0
  264. package/dist/widget/socials-BJciurWF.js +599 -0
  265. package/dist/widget/solana-Bv5Hs_0T.js +18 -0
  266. package/dist/widget/swapHorizontal-BzOPGV37.js +13 -0
  267. package/dist/widget/swapHorizontalBold-axyHnSmj.js +13 -0
  268. package/dist/widget/swapHorizontalMedium-C6YOPfPz.js +21 -0
  269. package/dist/widget/swapHorizontalRoundedBold-yVcLbWNT.js +13 -0
  270. package/dist/widget/swapVertical-BDjxt9pE.js +13 -0
  271. package/dist/widget/swaps-DEWNj4kd.js +1637 -0
  272. package/dist/widget/telegram-BQJD7dlP.js +21 -0
  273. package/dist/widget/three-dots-DW9jmSMG.js +10 -0
  274. package/dist/widget/transactions-uCseGQQt.js +38 -0
  275. package/dist/widget/twitch-XugxDfOE.js +23 -0
  276. package/dist/widget/twitterIcon-DQVObQUL.js +11 -0
  277. package/dist/widget/types.d.ts +51 -0
  278. package/dist/widget/types.d.ts.map +1 -0
  279. package/dist/widget/types.js +1 -0
  280. package/dist/widget/verify-DpMYHxLf.js +13 -0
  281. package/dist/widget/verify-filled-KpEL6ZJ_.js +13 -0
  282. package/dist/widget/w3m-modal-C8e-6Kba.js +1047 -0
  283. package/dist/widget/wallet-D8ssEB0o.js +13 -0
  284. package/dist/widget/wallet-placeholder-HtAy21Wc.js +19 -0
  285. package/dist/widget/walletconnect-Bp_4XfrY.js +37 -0
  286. package/dist/widget/warning-circle-FgYS7P7n.js +17 -0
  287. package/dist/widget/widget/index.js +7 -0
  288. package/dist/widget/widget.d.ts +47 -0
  289. package/dist/widget/widget.d.ts.map +1 -0
  290. package/dist/widget/widget.js +932 -0
  291. package/dist/widget/x-DlZBoP9k.js +17 -0
  292. package/dist/widget/x-mark-Ba9pt-_h.js +8 -0
  293. package/package.json +102 -8
  294. package/src/abi.ts +38 -0
  295. package/src/apiClient.ts +32 -0
  296. package/src/buffer.ts +10 -0
  297. package/src/cctp.ts +579 -0
  298. package/src/chainSwitch.ts +55 -0
  299. package/src/chains.ts +124 -0
  300. package/src/constants.ts +26 -0
  301. package/src/encoders.ts +20 -0
  302. package/src/error.ts +15 -0
  303. package/src/explorer.ts +37 -0
  304. package/src/gasless.ts +545 -0
  305. package/src/index.ts +48 -0
  306. package/src/indexerClient.ts +36 -0
  307. package/src/intents.ts +537 -0
  308. package/src/metaTxnMonitor.ts +163 -0
  309. package/src/metaTxns.ts +21 -0
  310. package/src/paymasterSend.ts +503 -0
  311. package/src/preconditions.ts +52 -0
  312. package/src/prepareSend.ts +1849 -0
  313. package/src/prices.ts +186 -0
  314. package/src/queryParams.ts +80 -0
  315. package/src/relaySdk.ts +481 -0
  316. package/src/relayer.ts +255 -0
  317. package/src/sendUserOp.ts +570 -0
  318. package/src/sequenceWallet.ts +579 -0
  319. package/src/theme.ts +2 -0
  320. package/src/toSimpleSmartAccount.ts +567 -0
  321. package/src/tokenBalances.ts +760 -0
  322. package/src/tokens.ts +471 -0
  323. package/src/trails.ts +1591 -0
  324. package/src/types.d.ts +11 -0
  325. package/src/umd.tsx +49 -0
  326. package/src/utils.ts +16 -0
  327. package/src/vite-env.d.ts +4 -0
  328. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +31 -0
  329. package/src/widget/assets/MetaMask-icon-fox.svg +26 -0
  330. package/src/widget/assets/MetaMask-logo-black.svg +3 -0
  331. package/src/widget/assets/MetaMask-logo-white.svg +16 -0
  332. package/src/widget/assets/Privy_Brandmark_Black.svg +9 -0
  333. package/src/widget/assets/Privy_Brandmark_White.svg +9 -0
  334. package/src/widget/assets/Trails-logo-black.svg +11 -0
  335. package/src/widget/assets/Trails-logo-white.svg +11 -0
  336. package/src/widget/components/ChainImage.tsx +28 -0
  337. package/src/widget/components/ConnectWallet.tsx +206 -0
  338. package/src/widget/components/DebugScreensDropdown.tsx +88 -0
  339. package/src/widget/components/FeeOptions.tsx +199 -0
  340. package/src/widget/components/Footer.tsx +51 -0
  341. package/src/widget/components/GreenCheckAnimation.tsx +119 -0
  342. package/src/widget/components/Modal.tsx +97 -0
  343. package/src/widget/components/Receipt.tsx +237 -0
  344. package/src/widget/components/SendForm.tsx +695 -0
  345. package/src/widget/components/TokenImage.tsx +37 -0
  346. package/src/widget/components/TokenList.tsx +287 -0
  347. package/src/widget/components/TransferPending.tsx +204 -0
  348. package/src/widget/components/TransferPendingVertical.tsx +412 -0
  349. package/src/widget/components/WalletConfirmation.tsx +172 -0
  350. package/src/widget/config.ts +5 -0
  351. package/src/widget/hooks/useAmountUsd.ts +59 -0
  352. package/src/widget/hooks/useSendForm.ts +715 -0
  353. package/src/widget/hooks/useTokenList.ts +397 -0
  354. package/src/widget/index.css +2 -0
  355. package/src/widget/index.tsx +8 -0
  356. package/src/widget/types/svg.d.ts +8 -0
  357. package/src/widget/types.ts +59 -0
  358. package/src/widget/widget.tsx +1438 -0
  359. package/index.js +0 -1
@@ -0,0 +1,373 @@
1
+ import { BaseError, concat, createWalletClient, custom, decodeAbiParameters, decodeFunctionData, encodeDeployData, encodeFunctionData, } from "viem";
2
+ import { entryPoint07Abi, entryPoint07Address, getUserOperationHash, toSmartAccount, } from "viem/account-abstraction";
3
+ import { toAccount } from "viem/accounts";
4
+ import { call, getChainId, readContract, signMessage, signTypedData, } from "viem/actions";
5
+ import { getAction } from "viem/utils";
6
+ export const getAccountInitCode = async (owner, index = BigInt(0)) => {
7
+ if (!owner)
8
+ throw new Error("Owner account not found");
9
+ return encodeFunctionData({
10
+ abi: [
11
+ {
12
+ inputs: [
13
+ {
14
+ internalType: "address",
15
+ name: "owner",
16
+ type: "address",
17
+ },
18
+ {
19
+ internalType: "uint256",
20
+ name: "salt",
21
+ type: "uint256",
22
+ },
23
+ ],
24
+ name: "createAccount",
25
+ outputs: [
26
+ {
27
+ internalType: "contract SimpleAccount",
28
+ name: "ret",
29
+ type: "address",
30
+ },
31
+ ],
32
+ stateMutability: "nonpayable",
33
+ type: "function",
34
+ },
35
+ ],
36
+ functionName: "createAccount",
37
+ args: [owner, index],
38
+ });
39
+ };
40
+ export const getFactoryAddress = (factoryAddress) => {
41
+ if (factoryAddress)
42
+ return factoryAddress;
43
+ return "0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985";
44
+ };
45
+ /**
46
+ * @description Creates an Simple Account from a private key.
47
+ *
48
+ * @returns A Private Key Simple Account.
49
+ */
50
+ export async function toSimpleSmartAccount(parameters) {
51
+ const { client, owner, factoryAddress: _factoryAddress, index = BigInt(0), address, nonceKey,
52
+ // accountLogicAddress = "0xe6Cae83BdE06E4c305530e199D7217f42808555B",
53
+ } = parameters;
54
+ const localOwner = await toOwner({ owner });
55
+ const entryPoint = parameters.entryPoint
56
+ ? {
57
+ address: parameters.entryPoint.address,
58
+ abi: entryPoint07Abi,
59
+ version: "0.7",
60
+ }
61
+ : {
62
+ address: entryPoint07Address,
63
+ abi: entryPoint07Abi,
64
+ version: "0.7",
65
+ };
66
+ const factoryAddress = getFactoryAddress(_factoryAddress);
67
+ let chainId;
68
+ const getMemoizedChainId = async () => {
69
+ if (chainId)
70
+ return chainId;
71
+ chainId = client.chain
72
+ ? client.chain.id
73
+ : await getAction(client, getChainId, "getChainId")({});
74
+ return chainId;
75
+ };
76
+ const getFactoryArgsFunc = () => async () => {
77
+ return {
78
+ factory: factoryAddress,
79
+ factoryData: await getAccountInitCode(localOwner.address, index),
80
+ };
81
+ };
82
+ const { accountAddress, getFactoryArgs } = await (async () => {
83
+ const getFactoryArgs = getFactoryArgsFunc();
84
+ if (address) {
85
+ return { accountAddress: address, getFactoryArgs };
86
+ }
87
+ const { factory, factoryData } = await getFactoryArgs();
88
+ const accountAddress = await getSenderAddress(client, {
89
+ factory,
90
+ factoryData,
91
+ entryPointAddress: entryPoint.address,
92
+ });
93
+ return { accountAddress, getFactoryArgs };
94
+ })();
95
+ return toSmartAccount({
96
+ client,
97
+ entryPoint,
98
+ getFactoryArgs,
99
+ async getAddress() {
100
+ return accountAddress;
101
+ },
102
+ async encodeCalls(calls) {
103
+ if (calls.length > 1) {
104
+ return encodeFunctionData({
105
+ abi: executeBatch07Abi,
106
+ functionName: "executeBatch",
107
+ args: [
108
+ calls.map((a) => a.to),
109
+ calls.map((a) => a.value ?? 0n),
110
+ calls.map((a) => a.data ?? "0x"),
111
+ ],
112
+ });
113
+ }
114
+ const call = calls.length === 0 ? undefined : calls[0];
115
+ if (!call) {
116
+ throw new Error("No calls to encode");
117
+ }
118
+ return encodeFunctionData({
119
+ abi: executeSingleAbi,
120
+ functionName: "execute",
121
+ args: [call.to, call.value ?? 0n, call.data ?? "0x"],
122
+ });
123
+ },
124
+ decodeCalls: async (callData) => {
125
+ try {
126
+ const calls = [];
127
+ const decodedV7 = decodeFunctionData({
128
+ abi: executeBatch07Abi,
129
+ data: callData,
130
+ });
131
+ const destinations = decodedV7.args[0];
132
+ const values = decodedV7.args[1];
133
+ const datas = decodedV7.args[2];
134
+ for (let i = 0; i < destinations.length; i++) {
135
+ calls.push({
136
+ to: destinations[i],
137
+ data: datas[i],
138
+ value: values[i],
139
+ });
140
+ }
141
+ return calls;
142
+ }
143
+ catch (_) {
144
+ const decodedSingle = decodeFunctionData({
145
+ abi: executeSingleAbi,
146
+ data: callData,
147
+ });
148
+ return [
149
+ {
150
+ to: decodedSingle.args[0],
151
+ value: decodedSingle.args[1],
152
+ data: decodedSingle.args[2],
153
+ },
154
+ ];
155
+ }
156
+ },
157
+ async getNonce(args) {
158
+ return getAccountNonce(client, {
159
+ address: await this.getAddress(),
160
+ entryPointAddress: entryPoint.address,
161
+ key: nonceKey ?? args?.key,
162
+ });
163
+ },
164
+ async getStubSignature() {
165
+ return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
166
+ },
167
+ async sign({ hash }) {
168
+ return this.signMessage({ message: hash });
169
+ },
170
+ signMessage: async (_) => {
171
+ throw new Error("Simple account isn't 1271 compliant");
172
+ },
173
+ signTypedData: async (_) => {
174
+ throw new Error("Simple account isn't 1271 compliant");
175
+ },
176
+ async signUserOperation(parameters) {
177
+ const { chainId = await getMemoizedChainId(), ...userOperation } = parameters;
178
+ return signMessage(client, {
179
+ account: localOwner,
180
+ message: {
181
+ raw: getUserOperationHash({
182
+ userOperation: {
183
+ ...userOperation,
184
+ sender: userOperation.sender ?? (await this.getAddress()),
185
+ signature: "0x",
186
+ },
187
+ entryPointAddress: entryPoint.address,
188
+ entryPointVersion: entryPoint.version,
189
+ chainId: chainId,
190
+ }),
191
+ },
192
+ });
193
+ },
194
+ });
195
+ }
196
+ export const executeSingleAbi = [
197
+ {
198
+ inputs: [
199
+ {
200
+ internalType: "address",
201
+ name: "dest",
202
+ type: "address",
203
+ },
204
+ {
205
+ internalType: "uint256",
206
+ name: "value",
207
+ type: "uint256",
208
+ },
209
+ {
210
+ internalType: "bytes",
211
+ name: "func",
212
+ type: "bytes",
213
+ },
214
+ ],
215
+ name: "execute",
216
+ outputs: [],
217
+ stateMutability: "nonpayable",
218
+ type: "function",
219
+ },
220
+ ];
221
+ const executeBatch07Abi = [
222
+ {
223
+ inputs: [
224
+ {
225
+ internalType: "address[]",
226
+ name: "dest",
227
+ type: "address[]",
228
+ },
229
+ {
230
+ internalType: "uint256[]",
231
+ name: "value",
232
+ type: "uint256[]",
233
+ },
234
+ {
235
+ internalType: "bytes[]",
236
+ name: "func",
237
+ type: "bytes[]",
238
+ },
239
+ ],
240
+ name: "executeBatch",
241
+ outputs: [],
242
+ stateMutability: "nonpayable",
243
+ type: "function",
244
+ },
245
+ ];
246
+ /**
247
+ * Returns the nonce of the account with the entry point.
248
+ */
249
+ export const getAccountNonce = async (client, args) => {
250
+ const { address, entryPointAddress, key = BigInt(0) } = args;
251
+ return await getAction(client, readContract, "readContract")({
252
+ address: entryPointAddress,
253
+ abi: [
254
+ {
255
+ inputs: [
256
+ {
257
+ name: "sender",
258
+ type: "address",
259
+ },
260
+ {
261
+ name: "key",
262
+ type: "uint192",
263
+ },
264
+ ],
265
+ name: "getNonce",
266
+ outputs: [
267
+ {
268
+ name: "nonce",
269
+ type: "uint256",
270
+ },
271
+ ],
272
+ stateMutability: "view",
273
+ type: "function",
274
+ },
275
+ ],
276
+ functionName: "getNonce",
277
+ args: [address, key],
278
+ });
279
+ };
280
+ // https://github.com/pimlicolabs/contracts/blob/80277d0de609e6b5fb4cedeeb1fb9a023caed59f/src/GetSenderAddressHelper.sol
281
+ export const GetSenderAddressHelperByteCode = "0x60806040526102a28038038091610015826100ae565b6080396040816080019112610093576080516001600160a01b03811681036100935760a0516001600160401b0381116100935782609f82011215610093578060800151610061816100fc565b9361006f60405195866100d9565b81855260a082840101116100935761008e9160a0602086019101610117565b610196565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080601f91909101601f19168101906001600160401b038211908210176100d457604052565b610098565b601f909101601f19168101906001600160401b038211908210176100d457604052565b6001600160401b0381116100d457601f01601f191660200190565b60005b83811061012a5750506000910152565b818101518382015260200161011a565b6040916020825261015a8151809281602086015260208686019101610117565b601f01601f1916010190565b3d15610191573d90610177826100fc565b9161018560405193846100d9565b82523d6000602084013e565b606090565b600091908291826040516101cd816101bf6020820195639b249f6960e01b87526024830161013a565b03601f1981018352826100d9565b51925af16101d9610166565b906102485760048151116000146101f7576024015160005260206000f35b60405162461bcd60e51b8152602060048201526024808201527f67657453656e64657241646472657373206661696c656420776974686f7574206044820152636461746160e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602b60248201527f67657453656e6465724164647265737320646964206e6f74207265766572742060448201526a185cc8195e1c1958dd195960aa1b6064820152608490fdfe";
282
+ export const GetSenderAddressHelperAbi = [
283
+ {
284
+ inputs: [
285
+ {
286
+ internalType: "address",
287
+ name: "_entryPoint",
288
+ type: "address",
289
+ },
290
+ {
291
+ internalType: "bytes",
292
+ name: "initCode",
293
+ type: "bytes",
294
+ },
295
+ ],
296
+ stateMutability: "payable",
297
+ type: "constructor",
298
+ },
299
+ ];
300
+ export class InvalidEntryPointError extends BaseError {
301
+ name = "InvalidEntryPointError";
302
+ constructor({ cause, entryPointAddress, } = {}) {
303
+ super(`The entry point address (\`entryPoint\`${entryPointAddress ? ` = ${entryPointAddress}` : ""}) is not a valid entry point. getSenderAddress did not revert with a SenderAddressResult error.`, {
304
+ cause,
305
+ });
306
+ }
307
+ }
308
+ /**
309
+ * Returns the address of the account that will be deployed with the given init code.
310
+ */
311
+ export const getSenderAddress = async (client, args) => {
312
+ const { initCode, entryPointAddress, factory, factoryData } = args;
313
+ if (!initCode && !factory && !factoryData) {
314
+ throw new Error("Either `initCode` or `factory` and `factoryData` must be provided");
315
+ }
316
+ const formattedInitCode = initCode || concat([factory, factoryData]);
317
+ const { data } = await getAction(client, call, "call")({
318
+ data: encodeDeployData({
319
+ abi: GetSenderAddressHelperAbi,
320
+ bytecode: GetSenderAddressHelperByteCode,
321
+ args: [entryPointAddress, formattedInitCode],
322
+ }),
323
+ });
324
+ if (!data) {
325
+ throw new Error("Failed to get sender address");
326
+ }
327
+ return decodeAbiParameters([{ type: "address" }], data)[0];
328
+ };
329
+ export async function toOwner({ owner, address, }) {
330
+ if ("type" in owner && owner.type === "local") {
331
+ return owner;
332
+ }
333
+ let walletClient;
334
+ if ("request" in owner) {
335
+ if (!address) {
336
+ try {
337
+ ;
338
+ [address] = await owner.request({
339
+ method: "eth_requestAccounts",
340
+ });
341
+ }
342
+ catch {
343
+ ;
344
+ [address] = await owner.request({
345
+ method: "eth_accounts",
346
+ });
347
+ }
348
+ }
349
+ if (!address) {
350
+ // For TS to be happy
351
+ throw new Error("address is required");
352
+ }
353
+ walletClient = createWalletClient({
354
+ account: address,
355
+ transport: custom(owner),
356
+ });
357
+ }
358
+ if (!walletClient) {
359
+ walletClient = owner;
360
+ }
361
+ return toAccount({
362
+ address: walletClient.account.address,
363
+ async signMessage({ message }) {
364
+ return walletClient.signMessage({ message });
365
+ },
366
+ async signTypedData(typedData) {
367
+ return getAction(walletClient, signTypedData, "signTypedData")(typedData);
368
+ },
369
+ async signTransaction(_) {
370
+ throw new Error("Smart account signer doesn't need to sign transactions");
371
+ },
372
+ });
373
+ }
@@ -0,0 +1,118 @@
1
+ import type { GetTokenBalancesSummaryReturn, NativeTokenBalance, SequenceIndexerGateway, TokenBalance } from "@0xsequence/indexer";
2
+ import type { Page, Price, SequenceAPIClient } from "@0xsequence/trails-api";
3
+ import type { Address } from "ox";
4
+ export type { NativeTokenBalance, TokenBalance };
5
+ export declare function isNativeToken(token: TokenBalance | NativeTokenBalance): token is NativeTokenBalance;
6
+ export interface TokenBalanceWithPrice extends TokenBalance {
7
+ price?: Price;
8
+ balanceUsd?: number;
9
+ balanceUsdFormatted?: string;
10
+ }
11
+ export interface NativeTokenBalanceWithPrice extends NativeTokenBalance {
12
+ price?: Price;
13
+ balanceUsd?: number;
14
+ balanceUsdFormatted?: string;
15
+ symbol?: string;
16
+ }
17
+ export type TokenBalanceExtended = TokenBalanceWithPrice | NativeTokenBalanceWithPrice;
18
+ export declare function sortTokensByPriority(a: TokenBalanceExtended, b: TokenBalanceExtended): number;
19
+ export interface GetTokenBalancesWithPrice {
20
+ page: Page;
21
+ nativeBalances: Array<NativeTokenBalance & {
22
+ price?: Price;
23
+ symbol?: string;
24
+ balanceUsd?: number;
25
+ balanceUsdFormatted?: string;
26
+ }>;
27
+ balances: Array<TokenBalance & {
28
+ price?: Price;
29
+ balanceUsd?: number;
30
+ balanceUsdFormatted?: string;
31
+ }>;
32
+ }
33
+ export declare function useTokenBalances(address: Address.Address, indexerGatewayClient?: SequenceIndexerGateway, sequenceApiClient?: SequenceAPIClient): {
34
+ tokenBalancesData: GetTokenBalancesSummaryReturn | undefined;
35
+ isLoadingBalances: boolean;
36
+ isLoadingPrices: boolean;
37
+ isLoadingSortedTokens: boolean;
38
+ balanceError: Error | null;
39
+ sortedTokens: TokenBalanceExtended[];
40
+ };
41
+ export declare function formatBalance(balance: string, decimals?: number): string;
42
+ export declare function getTokenBalanceUsd(token: TokenBalance | NativeTokenBalance, tokenPrice: Price): number;
43
+ export declare function formatValue(value: string | number): string;
44
+ export declare function formatUsdValue(value?: number | string): string;
45
+ export declare function getTokenBalanceUsdFormatted(token: TokenBalance | NativeTokenBalance, tokenPrice: Price): string;
46
+ export declare function useTokenBalanceUsdFormat(token: TokenBalance | NativeTokenBalance, tokenPrice: Price): string;
47
+ export type GetTokenBalancesParams = {
48
+ account: string;
49
+ indexerGatewayClient: SequenceIndexerGateway;
50
+ };
51
+ export declare function fetchGetTokenBalancesSummary({ account, indexerGatewayClient, }: GetTokenBalancesParams): Promise<GetTokenBalancesSummaryReturn>;
52
+ export declare function getTokenBalances({ account, indexerGatewayClient, }: GetTokenBalancesParams): Promise<GetTokenBalancesSummaryReturn>;
53
+ export declare function invalidateTokenBalancesCache(account?: string): void;
54
+ export type GetTokenBalancesFlatArrayParams = {
55
+ account: string;
56
+ indexerGatewayClient: SequenceIndexerGateway;
57
+ };
58
+ export type GetTokenBalancesFlatArrayReturn = {
59
+ balances: TokenBalance[];
60
+ };
61
+ export declare function getTokenBalancesFlatArray({ account, indexerGatewayClient, }: GetTokenBalancesFlatArrayParams): Promise<TokenBalance[]>;
62
+ export type GetTokenBalancesWithPricesParams = {
63
+ account: string;
64
+ indexerGatewayClient: SequenceIndexerGateway;
65
+ apiClient: SequenceAPIClient;
66
+ };
67
+ export type GetTokenBalancesWithPriceReturn = {
68
+ balances: TokenBalanceWithPrice[];
69
+ };
70
+ export declare function getTokenBalancesWithPrices({ account, indexerGatewayClient, apiClient, }: GetTokenBalancesWithPricesParams): Promise<GetTokenBalancesWithPriceReturn>;
71
+ export type UseAccountTokenBalanceParams = {
72
+ account?: string;
73
+ token?: string;
74
+ chainId?: number;
75
+ indexerGatewayClient?: SequenceIndexerGateway;
76
+ apiClient?: SequenceAPIClient;
77
+ };
78
+ export declare function useAccountTokenBalance({ account, token, chainId, indexerGatewayClient, apiClient, }: UseAccountTokenBalanceParams): {
79
+ tokenBalance: TokenBalanceWithPrice | null | undefined;
80
+ isLoadingTokenBalance: boolean;
81
+ };
82
+ export type HasSufficientBalanceParams = {
83
+ account: string;
84
+ token: string;
85
+ amount: string;
86
+ chainId: number;
87
+ indexerGatewayClient: SequenceIndexerGateway;
88
+ apiClient: SequenceAPIClient;
89
+ };
90
+ export declare function getHasSufficientBalanceToken({ account, token, amount, chainId, indexerGatewayClient, apiClient, }: HasSufficientBalanceParams): Promise<boolean>;
91
+ export declare function useHasSufficientBalanceToken(account: string, token: string, amount: string, chainId: number): {
92
+ hasSufficientBalanceToken: boolean;
93
+ isLoadingHasSufficientBalanceToken: boolean;
94
+ };
95
+ export type GetHasSufficientBalanceUsdParams = {
96
+ account: string;
97
+ targetAmountUsd: number | string;
98
+ indexerGatewayClient: SequenceIndexerGateway;
99
+ apiClient: SequenceAPIClient;
100
+ };
101
+ export declare function getHasSufficientBalanceUsd({ account, targetAmountUsd, indexerGatewayClient, apiClient, }: GetHasSufficientBalanceUsdParams): Promise<boolean>;
102
+ export declare function useHasSufficientBalanceUsd(account: string, targetAmountUsd?: number | string | null): {
103
+ hasSufficientBalanceUsd: boolean;
104
+ isLoadingHasSufficientBalanceUsd: boolean;
105
+ hasSufficientBalanceUsdError: Error | null;
106
+ };
107
+ export type GetAccountTotalBalanceUsdParams = {
108
+ account: string;
109
+ indexerGatewayClient: SequenceIndexerGateway;
110
+ apiClient: SequenceAPIClient;
111
+ };
112
+ export declare function getAccountTotalBalanceUsd({ account, indexerGatewayClient, apiClient, }: GetAccountTotalBalanceUsdParams): Promise<number>;
113
+ export declare function useAccountTotalBalanceUsd(account: string): {
114
+ totalBalanceUsd: number;
115
+ isLoadingTotalBalanceUsd: boolean;
116
+ totalBalanceUsdFormatted: string;
117
+ };
118
+ //# sourceMappingURL=tokenBalances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenBalances.d.ts","sourceRoot":"","sources":["../src/tokenBalances.ts"],"names":[],"mappings":"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"}