@coin-voyage/crypto 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 (185) hide show
  1. package/dist/assets/icons.d.ts +1 -0
  2. package/dist/assets/icons.js +16 -0
  3. package/dist/assets/icons.js.map +1 -0
  4. package/dist/evm/base-provider.d.ts +5 -0
  5. package/dist/evm/base-provider.js +12 -0
  6. package/dist/evm/base-provider.js.map +1 -0
  7. package/dist/evm/create-default-evm-config.d.ts +41 -0
  8. package/dist/evm/create-default-evm-config.js +88 -0
  9. package/dist/evm/create-default-evm-config.js.map +1 -0
  10. package/dist/evm/external-context.d.ts +1 -0
  11. package/dist/evm/external-context.js +4 -0
  12. package/dist/evm/external-context.js.map +1 -0
  13. package/dist/evm/use-evm-transaction.d.ts +4 -0
  14. package/{src/evm/use-evm-transaction.ts → dist/evm/use-evm-transaction.js} +12 -17
  15. package/dist/evm/use-evm-transaction.js.map +1 -0
  16. package/dist/evm/use-sign-in-with-evm.d.ts +5 -0
  17. package/{src/evm/use-sign-in-with-evm.ts → dist/evm/use-sign-in-with-evm.js} +13 -22
  18. package/dist/evm/use-sign-in-with-evm.js.map +1 -0
  19. package/dist/evm/verify-message.d.ts +2 -0
  20. package/{src/evm/verify-message.ts → dist/evm/verify-message.js} +1 -1
  21. package/dist/evm/verify-message.js.map +1 -0
  22. package/dist/hooks/index.d.ts +5 -0
  23. package/dist/hooks/index.js +6 -0
  24. package/dist/hooks/index.js.map +1 -0
  25. package/dist/hooks/use-account-disconnect.d.ts +2 -0
  26. package/dist/hooks/use-account-disconnect.js +43 -0
  27. package/dist/hooks/use-account-disconnect.js.map +1 -0
  28. package/dist/hooks/use-account.d.ts +40 -0
  29. package/dist/hooks/use-account.js +117 -0
  30. package/dist/hooks/use-account.js.map +1 -0
  31. package/dist/hooks/use-combined-wallets.d.ts +12 -0
  32. package/dist/hooks/use-combined-wallets.js +113 -0
  33. package/dist/hooks/use-combined-wallets.js.map +1 -0
  34. package/dist/hooks/use-prepare-transaction.d.ts +5 -0
  35. package/dist/hooks/use-prepare-transaction.js +27 -0
  36. package/dist/hooks/use-prepare-transaction.js.map +1 -0
  37. package/dist/hooks/use-universal-connect.d.ts +20 -0
  38. package/dist/hooks/use-universal-connect.js +105 -0
  39. package/dist/hooks/use-universal-connect.js.map +1 -0
  40. package/dist/lib/config/chain.d.ts +2 -0
  41. package/{src/lib/config/chain.ts → dist/lib/config/chain.js} +3 -5
  42. package/dist/lib/config/chain.js.map +1 -0
  43. package/dist/lib/connectors/coinbase.d.ts +2 -0
  44. package/dist/lib/connectors/coinbase.js +4 -0
  45. package/dist/lib/connectors/coinbase.js.map +1 -0
  46. package/dist/lib/connectors/metaMask.d.ts +2 -0
  47. package/dist/lib/connectors/metaMask.js +4 -0
  48. package/dist/lib/connectors/metaMask.js.map +1 -0
  49. package/{src/lib/connectors/types.ts → dist/lib/connectors/types.d.ts} +6 -8
  50. package/dist/lib/connectors/types.js +2 -0
  51. package/dist/lib/connectors/types.js.map +1 -0
  52. package/dist/lib/connectors/utils.d.ts +5 -0
  53. package/dist/lib/connectors/utils.js +12 -0
  54. package/dist/lib/connectors/utils.js.map +1 -0
  55. package/dist/lib/connectors/walletConnect.d.ts +2 -0
  56. package/dist/lib/connectors/walletConnect.js +12 -0
  57. package/dist/lib/connectors/walletConnect.js.map +1 -0
  58. package/dist/lib/utils/connector.d.ts +5 -0
  59. package/dist/lib/utils/connector.js +15 -0
  60. package/dist/lib/utils/connector.js.map +1 -0
  61. package/dist/lib/utils/get-connector-icon.d.ts +2 -0
  62. package/dist/lib/utils/get-connector-icon.js +8 -0
  63. package/dist/lib/utils/get-connector-icon.js.map +1 -0
  64. package/dist/lib/utils/get-wallet-priority.d.ts +1 -0
  65. package/dist/lib/utils/get-wallet-priority.js +15 -0
  66. package/dist/lib/utils/get-wallet-priority.js.map +1 -0
  67. package/dist/lib/utils/is-wallet-installed.d.ts +1 -0
  68. package/dist/lib/utils/is-wallet-installed.js +34 -0
  69. package/dist/lib/utils/is-wallet-installed.js.map +1 -0
  70. package/dist/lib/utils/message.d.ts +2 -0
  71. package/dist/lib/utils/message.js +21 -0
  72. package/dist/lib/utils/message.js.map +1 -0
  73. package/dist/solana/base-provider.d.ts +5 -0
  74. package/dist/solana/base-provider.js +10 -0
  75. package/dist/solana/base-provider.js.map +1 -0
  76. package/dist/solana/external-context.d.ts +1 -0
  77. package/dist/solana/external-context.js +3 -0
  78. package/dist/solana/external-context.js.map +1 -0
  79. package/dist/solana/get-or-create-ata.d.ts +19 -0
  80. package/dist/solana/get-or-create-ata.js +51 -0
  81. package/dist/solana/get-or-create-ata.js.map +1 -0
  82. package/dist/solana/use-solana-transaction.d.ts +4 -0
  83. package/dist/solana/use-solana-transaction.js +48 -0
  84. package/dist/solana/use-solana-transaction.js.map +1 -0
  85. package/dist/sui/base-provider.d.ts +5 -0
  86. package/dist/sui/base-provider.js +9 -0
  87. package/dist/sui/base-provider.js.map +1 -0
  88. package/dist/sui/client.d.ts +2 -0
  89. package/{src/sui/client.ts → dist/sui/client.js} +2 -2
  90. package/dist/sui/client.js.map +1 -0
  91. package/dist/sui/constants.d.ts +1 -0
  92. package/{src/sui/constants.ts → dist/sui/constants.js} +3 -3
  93. package/dist/sui/constants.js.map +1 -0
  94. package/dist/sui/external-context.d.ts +1 -0
  95. package/dist/sui/external-context.js +3 -0
  96. package/dist/sui/external-context.js.map +1 -0
  97. package/dist/sui/use-sign-in-with-sui.d.ts +5 -0
  98. package/dist/sui/use-sign-in-with-sui.js +48 -0
  99. package/dist/sui/use-sign-in-with-sui.js.map +1 -0
  100. package/dist/sui/use-sui-transaction.d.ts +4 -0
  101. package/dist/sui/use-sui-transaction.js +45 -0
  102. package/dist/sui/use-sui-transaction.js.map +1 -0
  103. package/dist/sui/verify-message.d.ts +1 -0
  104. package/{src/sui/verify-message.ts → dist/sui/verify-message.js} +8 -11
  105. package/dist/sui/verify-message.js.map +1 -0
  106. package/{src/types/index.ts → dist/types/index.d.ts} +14 -17
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -0
  109. package/{src/types/sign-in-with.ts → dist/types/sign-in-with.d.ts} +3 -6
  110. package/dist/types/sign-in-with.js +2 -0
  111. package/dist/types/sign-in-with.js.map +1 -0
  112. package/dist/types/utxo-connector-id.d.ts +8 -0
  113. package/dist/types/utxo-connector-id.js +11 -0
  114. package/dist/types/utxo-connector-id.js.map +1 -0
  115. package/dist/types/wallet-connector.d.ts +5 -0
  116. package/dist/types/wallet-connector.js +2 -0
  117. package/dist/types/wallet-connector.js.map +1 -0
  118. package/dist/types/wallet.d.ts +38 -0
  119. package/dist/types/wallet.js +2 -0
  120. package/dist/types/wallet.js.map +1 -0
  121. package/dist/utxo/base-provider.d.ts +5 -0
  122. package/dist/utxo/base-provider.js +17 -0
  123. package/dist/utxo/base-provider.js.map +1 -0
  124. package/dist/utxo/create-default-bigmi-config.d.ts +33 -0
  125. package/dist/utxo/create-default-bigmi-config.js +47 -0
  126. package/dist/utxo/create-default-bigmi-config.js.map +1 -0
  127. package/dist/utxo/create-psbt-tx.d.ts +3 -0
  128. package/{src/utxo/create-psbt-tx.ts → dist/utxo/create-psbt-tx.js} +14 -25
  129. package/dist/utxo/create-psbt-tx.js.map +1 -0
  130. package/dist/utxo/external-context.d.ts +1 -0
  131. package/dist/utxo/external-context.js +3 -0
  132. package/dist/utxo/external-context.js.map +1 -0
  133. package/dist/utxo/get-address-utxo.d.ts +7 -0
  134. package/dist/utxo/get-address-utxo.js +27 -0
  135. package/dist/utxo/get-address-utxo.js.map +1 -0
  136. package/dist/utxo/send-btc.d.ts +23 -0
  137. package/{src/utxo/send-btc.ts → dist/utxo/send-btc.js} +41 -93
  138. package/dist/utxo/send-btc.js.map +1 -0
  139. package/dist/utxo/use-utxo-transaction.d.ts +4 -0
  140. package/dist/utxo/use-utxo-transaction.js +21 -0
  141. package/dist/utxo/use-utxo-transaction.js.map +1 -0
  142. package/dist/utxo/utxo-public-client.d.ts +9 -0
  143. package/dist/utxo/utxo-public-client.js +39 -0
  144. package/dist/utxo/utxo-public-client.js.map +1 -0
  145. package/dist/utxo/verify-message.d.ts +1 -0
  146. package/dist/utxo/verify-message.js +27 -0
  147. package/dist/utxo/verify-message.js.map +1 -0
  148. package/package.json +15 -15
  149. package/src/assets/icons.tsx +0 -16
  150. package/src/evm/base-provider.tsx +0 -22
  151. package/src/evm/create-default-evm-config.ts +0 -123
  152. package/src/evm/external-context.ts +0 -4
  153. package/src/hooks/index.ts +0 -6
  154. package/src/hooks/use-account-disconnect.ts +0 -47
  155. package/src/hooks/use-account.ts +0 -171
  156. package/src/hooks/use-combined-wallets.ts +0 -165
  157. package/src/hooks/use-prepare-transaction.ts +0 -32
  158. package/src/hooks/use-universal-connect.ts +0 -141
  159. package/src/lib/connectors/coinbase.ts +0 -9
  160. package/src/lib/connectors/metaMask.ts +0 -6
  161. package/src/lib/connectors/utils.ts +0 -23
  162. package/src/lib/connectors/walletConnect.ts +0 -18
  163. package/src/lib/utils/connector.ts +0 -22
  164. package/src/lib/utils/get-connector-icon.ts +0 -13
  165. package/src/lib/utils/get-wallet-priority.ts +0 -15
  166. package/src/lib/utils/is-wallet-installed.ts +0 -40
  167. package/src/lib/utils/message.ts +0 -29
  168. package/src/solana/base-provider.tsx +0 -29
  169. package/src/solana/external-context.ts +0 -3
  170. package/src/solana/get-or-create-ata.ts +0 -85
  171. package/src/solana/use-solana-transaction.ts +0 -83
  172. package/src/sui/base-provider.tsx +0 -22
  173. package/src/sui/external-context.ts +0 -3
  174. package/src/sui/use-sign-in-with-sui.ts +0 -55
  175. package/src/sui/use-sui-transaction.ts +0 -56
  176. package/src/types/utxo-connector-id.ts +0 -10
  177. package/src/types/wallet-connector.ts +0 -14
  178. package/src/types/wallet.ts +0 -55
  179. package/src/utxo/base-provider.tsx +0 -24
  180. package/src/utxo/create-default-bigmi-config.ts +0 -69
  181. package/src/utxo/external-context.ts +0 -3
  182. package/src/utxo/get-address-utxo.ts +0 -36
  183. package/src/utxo/use-utxo-transaction.tsx +0 -28
  184. package/src/utxo/utxo-public-client.ts +0 -60
  185. package/src/utxo/verify-message.ts +0 -35
@@ -0,0 +1 @@
1
+ export declare const getWalletIcon: (id: string) => string | undefined;
@@ -0,0 +1,16 @@
1
+ export const getWalletIcon = (id) => {
2
+ switch (id) {
3
+ case "walletConnect":
4
+ return "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512'%3e %3cradialGradient id='a' cx='0%25' cy='50%25' r='100%25'%3e %3cstop offset='0' stop-color='%235d9df6'/%3e %3cstop offset='1' stop-color='%23006fff'/%3e %3c/radialGradient%3e %3cg fill='none' fill-rule='evenodd'%3e %3cpath fill='url(%23a)' d='M256 0c141.385 0 256 114.615 256 256S397.385 512 256 512 0 397.385 0 256 114.615 0 256 0z'/%3e %3cpath fill='white' fill-rule='nonzero' d='M162.692 197.709c51.533-50.279 135.084-50.279 186.617 0l6.202 6.05a6.327 6.327 0 0 1 0 9.105l-21.216 20.7a3.357 3.357 0 0 1-4.666 0l-8.535-8.328c-35.95-35.075-94.238-35.075-130.188 0l-9.14 8.918a3.357 3.357 0 0 1-4.666 0l-21.216-20.7a6.327 6.327 0 0 1 0-9.104zm230.493 42.809 18.883 18.422a6.327 6.327 0 0 1 0 9.104l-85.142 83.07c-2.577 2.514-6.754 2.514-9.33 0l-60.43-58.957a1.679 1.679 0 0 0-2.332 0l-60.427 58.958c-2.576 2.513-6.754 2.514-9.33 0l-85.145-83.072a6.327 6.327 0 0 1 0-9.104l18.883-18.422c2.576-2.514 6.754-2.514 9.33 0l60.43 58.958a1.679 1.679 0 0 0 2.332 0l60.427-58.958c2.576-2.514 6.754-2.514 9.33 0l60.43 58.958a1.679 1.679 0 0 0 2.332 0l60.428-58.957c2.577-2.514 6.755-2.514 9.331 0z'/%3e %3c/g%3e %3c/svg%3e";
5
+ case "coinbaseWalletSDK":
6
+ return "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 40 40'%3e %3cpath fill='%231652F0' d='M20 40c11.046 0 20-8.954 20-20S31.046 0 20 0 0 8.954 0 20s8.954 20 20 20Z'/%3e %3cpath fill='white' fill-rule='evenodd' d='M5.455 20c0 8.034 6.512 14.546 14.546 14.546 8.033 0 14.545-6.512 14.545-14.545 0-8.034-6.512-14.546-14.545-14.546-8.034 0-14.546 6.512-14.546 14.546Zm11.859-4.685a2 2 0 0 0-2 2v5.373a2 2 0 0 0 2 2h5.373a2 2 0 0 0 2-2v-5.373a2 2 0 0 0-2-2h-5.373Z' clip-rule='evenodd'/%3e %3c/svg%3e";
7
+ case "safe":
8
+ return "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 661.62 661.47'%3e %3cpath fill='%2312ff80' d='M531.98 330.7h-49.42c-14.76 0-26.72 11.96-26.72 26.72v71.73c0 14.76-11.96 26.72-26.72 26.72H232.51c-14.76 0-26.72 11.96-26.72 26.72v49.42c0 14.76 11.96 26.72 26.72 26.72H440.5c14.76 0 26.55-11.96 26.55-26.72v-39.65c0-14.76 11.96-25.23 26.72-25.23h38.2c14.76 0 26.72-11.96 26.72-26.72v-83.3c0-14.76-11.96-26.41-26.72-26.41Zm-326.2-98.18c0-14.76 11.96-26.72 26.72-26.72h196.49c14.76 0 26.72-11.96 26.72-26.72v-49.42c0-14.76-11.96-26.72-26.72-26.72H221.11c-14.76 0-26.72 11.96-26.72 26.72v38.08c0 14.76-11.96 26.72-26.72 26.72h-38.03c-14.76 0-26.72 11.96-26.72 26.72v83.39c0 14.76 12.01 26.12 26.77 26.12h49.42c14.76 0 26.72-11.96 26.72-26.72l-.05-71.44Zm101.77 46.23h47.47c15.47 0 28.02 12.56 28.02 28.02v47.47c0 15.47-12.56 28.02-28.02 28.02h-47.47c-15.47 0-28.02-12.56-28.02-28.02v-47.47c0-15.47 12.56-28.02 28.02-28.02Z'/%3e %3c/svg%3e";
9
+ case "metaMaskSDK":
10
+ case "io.metamask":
11
+ return "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' fill='none'%3e %3cpath fill='%23E17726' stroke='%23E17726' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m26.815 5-9.38 6.939 1.749-4.09z'/%3e %3cpath fill='%23E27625' stroke='%23E27625' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m5.185 5 9.295 6.996-1.664-4.14zM23.44 21.083l-2.499 3.812 5.347 1.47 1.527-5.196zm-19.246.086 1.52 5.197 5.333-1.47-2.484-3.813z'/%3e %3cpath fill='%23E27625' stroke='%23E27625' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m10.76 14.645-1.484 2.241 5.282.243-.171-5.69-3.626 3.213zm10.48.007-3.684-3.284-.12 5.761 5.282-.243zM11.046 24.896l3.205-1.542-2.755-2.142zm6.71-1.55 3.184 1.55-.428-3.69z'/%3e %3cpath fill='%23D5BFB2' stroke='%23D5BFB2' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m20.94 24.896-3.184-1.543.257 2.07-.029.879zm-9.895 0 2.97 1.406-.021-.878.257-2.07z'/%3e %3cpath fill='%23233447' stroke='%23233447' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m14.065 19.834-2.64-.771 1.87-.857.777 1.628zm3.862 0 .786-1.635 1.877.857-2.663.785z'/%3e %3cpath fill='%23CC6228' stroke='%23CC6228' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m11.046 24.895.464-3.812-2.948.086zm9.444-3.812.45 3.812 2.499-3.726zm2.235-4.197-5.283.242.486 2.713.785-1.642 1.877.857zm-11.3 2.177 1.87-.857.778 1.628.492-2.713-5.282-.235z'/%3e %3cpath fill='%23E27525' stroke='%23E27525' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m9.283 16.886 2.213 4.319-.072-2.142zm11.307 2.177-.085 2.142 2.213-4.32zm-6.025-1.934-.5 2.712.629 3.198.143-4.219zm2.87 0-.257 1.684.128 4.226.622-3.205-.493-2.713z'/%3e %3cpath fill='%23F5841F' stroke='%23F5841F' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m17.928 19.834-.621 3.206.45.314 2.748-2.142.085-2.148zm-6.504-.77.072 2.141 2.755 2.142.443-.307-.621-3.206-2.656-.77z'/%3e %3cpath fill='%23C0AC9D' stroke='%23C0AC9D' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m17.991 26.302.022-.878-.243-.2h-3.54l-.236.2.021.878-2.97-1.407 1.043.857 2.106 1.45h3.605l2.113-1.457 1.027-.85-2.955 1.407z'/%3e %3cpath fill='%23161616' stroke='%23161616' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m17.756 23.345-.45-.307h-2.613l-.442.314-.257 2.07.236-.2h3.54l.243.2-.257-2.07z'/%3e %3cpath fill='%23763E1A' stroke='%23763E1A' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='M27.215 12.389 28 8.569 26.815 5l-9.066 6.71 3.49 2.934 4.926 1.435 1.085-1.263-.47-.343.749-.685-.571-.443.75-.571-.5-.385zM4 8.562l.8 3.827-.514.378.763.57-.57.45.742.686-.471.343 1.085 1.263 4.925-1.428 3.491-2.948L5.185 5z'/%3e %3cpath fill='%23F5841F' stroke='%23F5841F' stroke-linecap='round' stroke-linejoin='round' stroke-width='.303' d='m26.166 16.078-4.926-1.427 1.485 2.234-2.213 4.319 2.927-.036h4.375zM10.76 14.644l-4.925 1.434-1.642 5.09h4.376l2.927.036-2.213-4.319 1.485-2.241zm6.675 2.484.321-5.425 1.428-3.855h-6.368l1.428 3.855.321 5.425.122 1.699v4.212h2.62l.014-4.212z'/%3e %3c/svg%3e";
12
+ default:
13
+ break;
14
+ }
15
+ };
16
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/assets/icons.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAsB,EAAE;IAC5D,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,eAAe;YAClB,OAAO,irCAAirC,CAAA;QAC1rC,KAAK,mBAAmB;YACtB,OAAO,mhBAAmhB,CAAA;QAC5hB,KAAK,MAAM;YACT,OAAO,87BAA87B,CAAA;QACv8B,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,qnGAAqnG,CAAA;QAC9nG;YACE,MAAK;IACT,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { type PropsWithChildren } from "react";
2
+ import { DefaultWagmiConfigProps } from "./create-default-evm-config";
3
+ export declare function EVMBaseProvider({ children, config }: PropsWithChildren<{
4
+ config?: DefaultWagmiConfigProps;
5
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef } from "react";
3
+ import { WagmiProvider } from "wagmi";
4
+ import { createDefaultEVMConfig, } from "./create-default-evm-config";
5
+ export function EVMBaseProvider({ children, config }) {
6
+ const evm = useRef(null);
7
+ if (!evm?.current) {
8
+ evm.current = createDefaultEVMConfig(config);
9
+ }
10
+ return (_jsx(WagmiProvider, { config: evm.current.config, reconnectOnMount: false, children: children }));
11
+ }
12
+ //# sourceMappingURL=base-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../src/evm/base-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA0B,MAAM,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAGL,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AAEpC,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAEhD;IACA,MAAM,GAAG,GAAG,MAAM,CAAkC,IAAI,CAAC,CAAA;IACzD,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAClB,GAAG,CAAC,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,CACL,KAAC,aAAa,IAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,YAC/D,QAAQ,GACK,CACjB,CAAA;AACH,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Config, CreateConnectorFn } from "wagmi";
2
+ import { type CoinbaseWalletParameters, type MetaMaskParameters, type WalletConnectParameters } from "wagmi/connectors";
3
+ export interface DefaultWagmiConfigProps {
4
+ walletConnect?: WalletConnectParameters;
5
+ coinbase?: CoinbaseWalletParameters;
6
+ metaMask?: MetaMaskParameters;
7
+ evmConfig?: {
8
+ ssr?: boolean;
9
+ multiInjectedProviderDiscovery?: boolean;
10
+ };
11
+ connectors?: CreateConnectorFn[];
12
+ /**
13
+ * Load Wallet SDKs only if the wallet is the most recently connected wallet
14
+ */
15
+ lazy?: boolean;
16
+ }
17
+ export interface DefaultWagmiConfigResult {
18
+ config: Config;
19
+ }
20
+ /**
21
+ * Creates default EVM config that can be later synced (via useSyncEVMConfig) with chains fetched from user config.
22
+ * @param props Properties to setup connectors. {@link DefaultWagmiConfigProps}
23
+ * @returns EVM config and connectors. {@link DefaultWagmiConfigResult}
24
+ * @example
25
+ * const { config, connectors } = createDefaultEVMConfig({
26
+ * walletConnect: {
27
+ * projectId: import.meta.env.VITE_WALLET_CONNECT,
28
+ * },
29
+ * coinbase: { appName: 'Coin Voyage' },
30
+ * });
31
+ * export const WalletProvider: FC<PropsWithChildren> = ({ children }) => {
32
+ * const { chains } = useAvailableChains();
33
+ * useSyncEVMConfig(config, connectors, chains);
34
+ * return (
35
+ * <WagmiProvider config={wagmi.config} reconnectOnMount={false}>
36
+ * {children}
37
+ * </WagmiProvider>
38
+ * );
39
+ * };
40
+ */
41
+ export declare function createDefaultEVMConfig(props?: DefaultWagmiConfigProps): DefaultWagmiConfigResult;
@@ -0,0 +1,88 @@
1
+ import { createClient, http } from "viem";
2
+ import { createConfig } from "wagmi";
3
+ import { safe, } from "wagmi/connectors";
4
+ import { DEFAULT_CHAINS } from "../lib/config/chain";
5
+ import { createCoinbaseConnector } from "../lib/connectors/coinbase";
6
+ import { createMetaMaskConnector } from "../lib/connectors/metaMask";
7
+ import { createWalletConnectConnector } from "../lib/connectors/walletConnect";
8
+ import { isWalletInstalled } from "../lib/utils/is-wallet-installed";
9
+ /**
10
+ * Creates default EVM config that can be later synced (via useSyncEVMConfig) with chains fetched from user config.
11
+ * @param props Properties to setup connectors. {@link DefaultWagmiConfigProps}
12
+ * @returns EVM config and connectors. {@link DefaultWagmiConfigResult}
13
+ * @example
14
+ * const { config, connectors } = createDefaultEVMConfig({
15
+ * walletConnect: {
16
+ * projectId: import.meta.env.VITE_WALLET_CONNECT,
17
+ * },
18
+ * coinbase: { appName: 'Coin Voyage' },
19
+ * });
20
+ * export const WalletProvider: FC<PropsWithChildren> = ({ children }) => {
21
+ * const { chains } = useAvailableChains();
22
+ * useSyncEVMConfig(config, connectors, chains);
23
+ * return (
24
+ * <WagmiProvider config={wagmi.config} reconnectOnMount={false}>
25
+ * {children}
26
+ * </WagmiProvider>
27
+ * );
28
+ * };
29
+ */
30
+ export function createDefaultEVMConfig(props) {
31
+ const connectors = [...(props?.connectors ?? [])];
32
+ const anyWindow = typeof window !== "undefined" ? window : undefined;
33
+ const localStorage = anyWindow?.localStorage;
34
+ // in Multisig env, window.parent is not equal to window
35
+ const shouldUseSafeConnector = anyWindow && anyWindow.parent !== anyWindow;
36
+ const multiInjectedProviderDiscovery = shouldUseSafeConnector
37
+ ? false
38
+ : (props?.evmConfig?.multiInjectedProviderDiscovery ?? true);
39
+ if (shouldUseSafeConnector) {
40
+ connectors.unshift(safe({
41
+ allowedDomains: [/gnosis-safe.io$/, /app.safe.global$/],
42
+ }));
43
+ }
44
+ // Retrieve the ID of the most recently connected wallet connector from storage
45
+ const recentConnectorId = localStorage?.getItem(`wagmi.recentConnectorId`);
46
+ // If WalletConnect is the most recently connected wallet or lazy loading is disabled,
47
+ // add the WalletConnect connector to the beginning of the connectors list
48
+ const walletConnect = createWalletConnectConnector({
49
+ ...props?.walletConnect,
50
+ projectId: props?.walletConnect?.projectId ?? "ea6c5b36001c18b96e06128f14c06f40",
51
+ });
52
+ if (recentConnectorId?.includes?.("walletConnect") || !props?.lazy) {
53
+ connectors.unshift(walletConnect);
54
+ }
55
+ else {
56
+ connectors.push(walletConnect);
57
+ }
58
+ if (!isWalletInstalled("coinbase")) {
59
+ const coinbase = createCoinbaseConnector(props?.coinbase ?? {
60
+ appName: "Coin Voyage",
61
+ overrideIsMetaMask: false
62
+ });
63
+ if (recentConnectorId?.includes?.("coinbaseWalletSDK") || !props?.lazy) {
64
+ connectors.unshift(coinbase);
65
+ }
66
+ else {
67
+ connectors.push(coinbase);
68
+ }
69
+ }
70
+ if (props?.metaMask && !isWalletInstalled("metaMask")) {
71
+ if (recentConnectorId?.includes?.("metaMaskSDK") || !props.lazy) {
72
+ connectors.unshift(createMetaMaskConnector(props.metaMask));
73
+ }
74
+ }
75
+ const config = createConfig({
76
+ ...props?.evmConfig,
77
+ chains: DEFAULT_CHAINS,
78
+ client({ chain }) {
79
+ return createClient({ chain, transport: http() });
80
+ },
81
+ connectors,
82
+ multiInjectedProviderDiscovery
83
+ });
84
+ return {
85
+ config
86
+ };
87
+ }
88
+ //# sourceMappingURL=create-default-evm-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-default-evm-config.js","sourceRoot":"","sources":["../../src/evm/create-default-evm-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const EVMExternalContext: import("react").Context<boolean>;
@@ -0,0 +1,4 @@
1
+ import { createContext } from "react";
2
+ // This context is used when the implementing party provides a context (External Wagmi Context)
3
+ export const EVMExternalContext = createContext(false);
4
+ //# sourceMappingURL=external-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-context.js","sourceRoot":"","sources":["../../src/evm/external-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAU,KAAK,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { PaymentDetails } from "@coin-voyage/shared/api";
2
+ export declare function useEVMTransaction(): {
3
+ execute: (paymentDetails: PaymentDetails) => Promise<string>;
4
+ };
@@ -1,18 +1,13 @@
1
- import type { PaymentDetails } from "@coin-voyage/shared/api";
2
- import { Address, erc20Abi } from "viem";
1
+ import { erc20Abi } from "viem";
3
2
  import { useSendTransaction, useWriteContract } from "wagmi";
4
-
5
- export function useEVMTransaction(): {
6
- execute: (paymentDetails: PaymentDetails) => Promise<string>;
7
- } {
3
+ export function useEVMTransaction() {
8
4
  const { writeContractAsync } = useWriteContract();
9
5
  const { sendTransactionAsync } = useSendTransaction();
10
-
11
- const execute = async (paymentDetails: PaymentDetails) => {
12
- const value = paymentDetails.source_amount.raw_amount
13
- const isNative = !paymentDetails.source_currency.address
14
- const to = paymentDetails.deposit_address as Address
15
- const chainId = paymentDetails.source_currency.chain_id
6
+ const execute = async (paymentDetails) => {
7
+ const value = paymentDetails.source_amount.raw_amount;
8
+ const isNative = !paymentDetails.source_currency.address;
9
+ const to = paymentDetails.deposit_address;
10
+ const chainId = paymentDetails.source_currency.chain_id;
16
11
  if (!isNative) {
17
12
  return sendTransactionAsync({
18
13
  to,
@@ -23,13 +18,13 @@ export function useEVMTransaction(): {
23
18
  const contractAddress = paymentDetails.source_currency.address;
24
19
  const tx = await writeContractAsync({
25
20
  abi: erc20Abi,
26
- address: contractAddress as Address,
21
+ address: contractAddress,
27
22
  functionName: "transfer",
28
23
  chainId,
29
24
  args: [to, value],
30
25
  });
31
- return tx as string
32
- }
33
-
34
- return { execute }
26
+ return tx;
27
+ };
28
+ return { execute };
35
29
  }
30
+ //# sourceMappingURL=use-evm-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-evm-transaction.js","sourceRoot":"","sources":["../../src/evm/use-evm-transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAE7D,MAAM,UAAU,iBAAiB;IAG7B,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAClD,MAAM,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,EAAE,cAA8B,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,UAAU,CAAA;QACrD,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAA;QACxD,MAAM,EAAE,GAAG,cAAc,CAAC,eAA0B,CAAA;QACpD,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAA;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,oBAAoB,CAAC;gBACxB,EAAE;gBACF,KAAK;gBACL,OAAO;aACV,CAAC,CAAC;QACP,CAAC;QACD,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;QAC/D,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC;YAChC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,eAA0B;YACnC,YAAY,EAAE,UAAU;YACxB,OAAO;YACP,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;SACpB,CAAC,CAAC;QACH,OAAO,EAAY,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SignInWith } from "../types/sign-in-with";
2
+ export declare function useSignInWithEvm({ signIn, callbackUrl }: SignInWith): {
3
+ onSelect: (id: string) => Promise<void>;
4
+ installedWallets: import("../hooks/use-combined-wallets").CombinedWallet[];
5
+ };
@@ -1,19 +1,13 @@
1
1
  import { ChainType } from "@coin-voyage/shared/common";
2
- import { Connector, useAccount, useConnect, useSignMessage } from "wagmi";
2
+ import { useAccount, useConnect, useSignMessage } from "wagmi";
3
3
  import { useCombinedWallets } from "../hooks/use-combined-wallets";
4
4
  import { toMessage } from "../lib/utils/message";
5
- import { SignInMessage } from "../types";
6
- import { SignInWith } from "../types/sign-in-with";
7
-
8
-
9
- export function useSignInWithEvm({ signIn, callbackUrl }: SignInWith) {
5
+ export function useSignInWithEvm({ signIn, callbackUrl }) {
10
6
  const { address, connector } = useAccount();
11
7
  const { connectAsync } = useConnect();
12
-
13
- const { installedWallets } = useCombinedWallets(ChainType.EVM)
8
+ const { installedWallets } = useCombinedWallets(ChainType.EVM);
14
9
  const { signMessageAsync } = useSignMessage();
15
-
16
- const handleSignature = async (address: string) => {
10
+ const handleSignature = async (address) => {
17
11
  const msg = {
18
12
  domain: window.location.host,
19
13
  address,
@@ -21,11 +15,9 @@ export function useSignInWithEvm({ signIn, callbackUrl }: SignInWith) {
21
15
  uri: window.location.origin,
22
16
  nonce: Math.random().toString(),
23
17
  version: "1"
24
- } as SignInMessage;
25
-
18
+ };
26
19
  const message = toMessage(msg, "Ethereum");
27
20
  const signature = await signMessageAsync({ message });
28
-
29
21
  signIn("ethereum", {
30
22
  address,
31
23
  message,
@@ -34,21 +26,20 @@ export function useSignInWithEvm({ signIn, callbackUrl }: SignInWith) {
34
26
  callbackUrl: callbackUrl ?? "/"
35
27
  });
36
28
  };
37
-
38
- const onSelect = async (id: string) => {
29
+ const onSelect = async (id) => {
39
30
  const selectedWallet = installedWallets.find((w) => w.id === id);
40
- const selectedConnector = selectedWallet?.connectors?.[0].connector as Connector | undefined;
41
- if (!selectedConnector) return;
42
-
31
+ const selectedConnector = selectedWallet?.connectors?.[0].connector;
32
+ if (!selectedConnector)
33
+ return;
43
34
  if (connector?.id === selectedConnector.id && address) {
44
35
  handleSignature(address);
45
36
  return;
46
37
  }
47
-
48
38
  const res = await connectAsync({ connector: selectedConnector });
49
- if (!res.accounts[0]) return;
39
+ if (!res.accounts[0])
40
+ return;
50
41
  handleSignature(res.accounts[0]);
51
42
  };
52
-
53
43
  return { onSelect, installedWallets };
54
- }
44
+ }
45
+ //# sourceMappingURL=use-sign-in-with-evm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sign-in-with-evm.js","sourceRoot":"","sources":["../../src/evm/use-sign-in-with-evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAa,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAc;IAChE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IAC5C,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;IAEtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9D,MAAM,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAAC;IAE9C,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG;YACR,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC5B,OAAO;YACP,SAAS,EAAE,wCAAwC;YACnD,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC3B,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,OAAO,EAAE,GAAG;SACE,CAAC;QAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,UAAU,EAAE;YACf,OAAO;YACP,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC5B,SAAS;YACT,WAAW,EAAE,WAAW,IAAI,GAAG;SAClC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAG,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAkC,CAAC;QAC7F,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,IAAI,SAAS,EAAE,EAAE,KAAK,iBAAiB,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;YACpD,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO;QAC7B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { verifyMessage as verifyMessageInternal } from 'viem';
2
+ export declare const verifyMessage: typeof verifyMessageInternal;
@@ -1,3 +1,3 @@
1
1
  import { verifyMessage as verifyMessageInternal } from 'viem';
2
-
3
2
  export const verifyMessage = verifyMessageInternal;
3
+ //# sourceMappingURL=verify-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-message.js","sourceRoot":"","sources":["../../src/evm/verify-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,MAAM,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./use-account";
2
+ export * from "./use-account-disconnect";
3
+ export * from "./use-combined-wallets";
4
+ export * from "./use-prepare-transaction";
5
+ export * from "./use-universal-connect";
@@ -0,0 +1,6 @@
1
+ export * from "./use-account";
2
+ export * from "./use-account-disconnect";
3
+ export * from "./use-combined-wallets";
4
+ export * from "./use-prepare-transaction";
5
+ export * from "./use-universal-connect";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Account } from "./use-account";
2
+ export declare const useAccountDisconnect: () => (account?: Account) => Promise<void>;
@@ -0,0 +1,43 @@
1
+ import { useConfig as useBigmiConfig } from "@bigmi/react";
2
+ import { ChainType } from "@coin-voyage/shared/common";
3
+ import { useDisconnectWallet } from "@mysten/dapp-kit";
4
+ import { useWallet } from "@solana/wallet-adapter-react";
5
+ import { useConfig as useWagmiConfig } from "wagmi";
6
+ import { disconnect, getAccount } from "wagmi/actions";
7
+ export const useAccountDisconnect = () => {
8
+ const bigmiConfig = useBigmiConfig();
9
+ const wagmiConfig = useWagmiConfig();
10
+ const { disconnect: solanaDisconnect } = useWallet();
11
+ const { mutateAsync: suiDisconnect } = useDisconnectWallet();
12
+ const handleDisconnect = async (config) => {
13
+ const connectedAccount = getAccount(config);
14
+ if (connectedAccount.connector) {
15
+ await disconnect(config, { connector: connectedAccount.connector });
16
+ }
17
+ };
18
+ return async (account) => {
19
+ switch (account?.chainType) {
20
+ case ChainType.EVM:
21
+ await handleDisconnect(wagmiConfig);
22
+ break;
23
+ case ChainType.UTXO:
24
+ await handleDisconnect(bigmiConfig);
25
+ break;
26
+ case ChainType.SOL:
27
+ await solanaDisconnect();
28
+ break;
29
+ case ChainType.SUI:
30
+ await suiDisconnect();
31
+ break;
32
+ default:
33
+ // disconnect all wallets
34
+ Promise.all([
35
+ handleDisconnect(wagmiConfig),
36
+ handleDisconnect(bigmiConfig),
37
+ solanaDisconnect(),
38
+ suiDisconnect(),
39
+ ]);
40
+ }
41
+ };
42
+ };
43
+ //# sourceMappingURL=use-account-disconnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-account-disconnect.js","sourceRoot":"","sources":["../../src/hooks/use-account-disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAA;IACpD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAE5D,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QAChD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,KAAK,EAAE,OAAiB,EAAE,EAAE;QACjC,QAAQ,OAAO,EAAE,SAAS,EAAE,CAAC;YAC3B,KAAK,SAAS,CAAC,GAAG;gBAChB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAA;gBACnC,MAAK;YACP,KAAK,SAAS,CAAC,IAAI;gBACjB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAA;gBACnC,MAAK;YACP,KAAK,SAAS,CAAC,GAAG;gBAChB,MAAM,gBAAgB,EAAE,CAAA;gBACxB,MAAK;YACP,KAAK,SAAS,CAAC,GAAG;gBAChB,MAAM,aAAa,EAAE,CAAA;gBACrB,MAAK;YACP;gBACE,yBAAyB;gBACzB,OAAO,CAAC,GAAG,CAAC;oBACV,gBAAgB,CAAC,WAAW,CAAC;oBAC7B,gBAAgB,CAAC,WAAW,CAAC;oBAC7B,gBAAgB,EAAE;oBAClB,aAAa,EAAE;iBAChB,CAAC,CAAA;QACN,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { ChainType } from "@coin-voyage/shared/common";
2
+ import type { Connector } from "wagmi";
3
+ import type { WalletAdapterExtended } from "../lib/connectors/types";
4
+ import type { WalletProps } from "../types/wallet";
5
+ import { SuiConnector } from "../types/wallet-connector";
6
+ export interface AccountBase<CT extends ChainType, ConnectorType = undefined> {
7
+ address?: string;
8
+ addresses?: readonly string[];
9
+ chainId?: number;
10
+ chainType: CT;
11
+ connector?: ConnectorType;
12
+ isConnected: boolean;
13
+ isConnecting: boolean;
14
+ isDisconnected: boolean;
15
+ isReconnecting: boolean;
16
+ status: "connected" | "reconnecting" | "connecting" | "disconnected";
17
+ }
18
+ export type EVMAccount = AccountBase<ChainType.EVM, Connector>;
19
+ export type SOLANAAccount = AccountBase<ChainType.SOL, WalletAdapterExtended>;
20
+ export type UTXOAccount = AccountBase<ChainType.UTXO, Connector>;
21
+ export type SUIAccount = AccountBase<ChainType.SUI, SuiConnector>;
22
+ export type DefaultAccount = AccountBase<ChainType>;
23
+ export type Account = EVMAccount | SOLANAAccount | UTXOAccount | SUIAccount | DefaultAccount;
24
+ export interface AccountResult {
25
+ account: Account;
26
+ /**
27
+ * Connected accounts
28
+ */
29
+ accounts: Account[];
30
+ }
31
+ interface UseAccountArgs {
32
+ selectedWallet: WalletProps | undefined;
33
+ chainType: ChainType | undefined;
34
+ }
35
+ /**
36
+ * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
37
+ * @returns - Account result
38
+ */
39
+ export declare const useAccount: (args?: UseAccountArgs) => AccountResult;
40
+ export {};
@@ -0,0 +1,117 @@
1
+ import { useConfig as useBigmiConfig } from "@bigmi/react";
2
+ import { ChainId, ChainType } from "@coin-voyage/shared/common";
3
+ import { useCurrentAccount, useCurrentWallet } from "@mysten/dapp-kit";
4
+ import { useWallet } from "@solana/wallet-adapter-react";
5
+ import { useMemo } from "react";
6
+ import { useAccount as useAccountInternal } from "wagmi";
7
+ import { extendsWalletAdapter } from "../lib/connectors/utils";
8
+ import { getConnector } from "../lib/utils/connector";
9
+ const defaultAccount = {
10
+ chainType: ChainType.EVM,
11
+ isConnected: false,
12
+ isConnecting: false,
13
+ isReconnecting: false,
14
+ isDisconnected: true,
15
+ status: "disconnected",
16
+ };
17
+ /**
18
+ * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
19
+ * @returns - Account result
20
+ */
21
+ export const useAccount = (args) => {
22
+ const bigmiConfig = useBigmiConfig();
23
+ const bigmiAccount = useAccountInternal({ config: bigmiConfig });
24
+ const wagmiAccount = useAccountInternal();
25
+ const { wallet } = useWallet();
26
+ const suiWallet = useCurrentWallet();
27
+ const suiAccount = useCurrentAccount();
28
+ const lastConnectedAccount = args?.selectedWallet
29
+ ? getConnector(args?.selectedWallet.connectors, args?.chainType)
30
+ : undefined;
31
+ // biome-ignore lint/correctness/useExhaustiveDependencies:
32
+ return useMemo(() => {
33
+ const solana = wallet?.adapter.publicKey
34
+ ? {
35
+ address: wallet?.adapter.publicKey.toString(),
36
+ chainId: ChainId.SOL,
37
+ chainType: ChainType.SOL,
38
+ connector: extendsWalletAdapter(wallet.adapter, wallet.adapter.name),
39
+ isConnected: Boolean(wallet?.adapter.publicKey),
40
+ isConnecting: false,
41
+ isReconnecting: false,
42
+ isDisconnected: !wallet,
43
+ status: "connected",
44
+ }
45
+ : {
46
+ chainType: ChainType.SOL,
47
+ isConnected: false,
48
+ isConnecting: false,
49
+ isReconnecting: false,
50
+ isDisconnected: true,
51
+ status: "disconnected",
52
+ };
53
+ const sui = suiAccount
54
+ ? {
55
+ address: suiAccount.address,
56
+ chainId: ChainId.SUI,
57
+ chainType: ChainType.SUI,
58
+ connector: suiWallet.currentWallet ?? undefined,
59
+ isConnected: Boolean(suiWallet.connectionStatus === "connected"),
60
+ isConnecting: false,
61
+ isReconnecting: false,
62
+ isDisconnected: !suiWallet,
63
+ status: "connected",
64
+ }
65
+ : {
66
+ chainType: ChainType.SUI,
67
+ isConnected: false,
68
+ isConnecting: false,
69
+ isReconnecting: false,
70
+ isDisconnected: true,
71
+ status: "disconnected",
72
+ };
73
+ const evm = { ...wagmiAccount, chainType: ChainType.EVM };
74
+ const utxo = { ...bigmiAccount, chainType: ChainType.UTXO };
75
+ const accounts = [evm, solana, sui, utxo];
76
+ const connectedAccounts = accounts.filter((account) => account.isConnected && account.address);
77
+ // If a chainType argument is provided, attempt to find a connected account with the matching chainType.
78
+ // If no matching account is found, fallback to the default account.
79
+ // If no chainType argument, selectedAccount should be used.
80
+ const selectedChainTypeAccount = args?.chainType
81
+ ? connectedAccounts.find((account) => account.chainType === args?.chainType) || defaultAccount
82
+ : undefined;
83
+ // If lastConnectedAccount exists, attempt to find a connected account with a matching connector ID or name.
84
+ // If no matching account is found, fallback to the first connected account.
85
+ // If lastConnectedAccount is not present, simply select the first connected account.
86
+ const selectedAccount = lastConnectedAccount
87
+ ? connectedAccounts.find((account) => {
88
+ const connectorIdMatch = lastConnectedAccount?.id ===
89
+ account.connector?.id;
90
+ const connectorNameMatch = !lastConnectedAccount?.id &&
91
+ lastConnectedAccount?.name ===
92
+ account.connector?.name;
93
+ return connectorIdMatch || connectorNameMatch;
94
+ }) || connectedAccounts[0]
95
+ : connectedAccounts[0];
96
+ return {
97
+ account: selectedChainTypeAccount || selectedAccount || defaultAccount,
98
+ // We need to return only connected account list
99
+ accounts: connectedAccounts,
100
+ };
101
+ }, [
102
+ wallet?.adapter.publicKey,
103
+ wagmiAccount.connector?.uid,
104
+ wagmiAccount.connector?.id,
105
+ wagmiAccount.status,
106
+ wagmiAccount.address,
107
+ wagmiAccount.chainId,
108
+ bigmiAccount.connector?.uid,
109
+ bigmiAccount.connector?.id,
110
+ bigmiAccount.status,
111
+ bigmiAccount.address,
112
+ bigmiAccount.chainId,
113
+ args?.chainType,
114
+ lastConnectedAccount,
115
+ ]);
116
+ };
117
+ //# sourceMappingURL=use-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-account.js","sourceRoot":"","sources":["../../src/hooks/use-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AA2CrD,MAAM,cAAc,GAA2B;IAC7C,SAAS,EAAE,SAAS,CAAC,GAAG;IACxB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,cAAc;CACvB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAiB,EAAE;IACjE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAA;IACpC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;IAEtC,MAAM,oBAAoB,GAAG,IAAI,EAAE,cAAc;QAC/C,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;QAChE,CAAC,CAAC,SAAS,CAAA;IACb,2DAA2D;IAC3D,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,MAAM,GAAY,MAAM,EAAE,OAAO,CAAC,SAAS;YAC/C,CAAC,CAAC;gBACA,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC7C,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;gBAC/C,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,CAAC,MAAM;gBACvB,MAAM,EAAE,WAAW;aACpB;YACD,CAAC,CAAC;gBACA,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,cAAc;aACvB,CAAA;QACH,MAAM,GAAG,GAAY,UAAU;YAC7B,CAAC,CAAC;gBACA,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,SAAS,EAAE,SAAS,CAAC,aAAa,IAAI,SAAS;gBAC/C,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,KAAK,WAAW,CAAC;gBAChE,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,CAAC,SAAS;gBAC1B,MAAM,EAAE,WAAW;aACpB;YACD,CAAC,CAAC;gBACA,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,cAAc;aACvB,CAAA;QACH,MAAM,GAAG,GAAY,EAAE,GAAG,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAA;QAClE,MAAM,IAAI,GAAY,EAAE,GAAG,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,CAAA;QACpE,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CACpD,CAAA;QAED,wGAAwG;QACxG,oEAAoE;QACpE,4DAA4D;QAC5D,MAAM,wBAAwB,GAAG,IAAI,EAAE,SAAS;YAC9C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CACtB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,SAAS,CACnD,IAAI,cAAc;YACnB,CAAC,CAAC,SAAS,CAAA;QAEb,4GAA4G;QAC5G,4EAA4E;QAC5E,qFAAqF;QACrF,MAAM,eAAe,GAAG,oBAAoB;YAC1C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,gBAAgB,GACnB,oBAAkC,EAAE,EAAE;oBACtC,OAAO,CAAC,SAAuB,EAAE,EAAE,CAAA;gBACtC,MAAM,kBAAkB,GACtB,CAAE,oBAAkC,EAAE,EAAE;oBACvC,oBAA8C,EAAE,IAAI;wBACrD,OAAO,CAAC,SAAS,EAAE,IAAI,CAAA;gBACzB,OAAO,gBAAgB,IAAI,kBAAkB,CAAA;YAC/C,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAExB,OAAO;YACL,OAAO,EAAE,wBAAwB,IAAI,eAAe,IAAI,cAAc;YACtE,gDAAgD;YAChD,QAAQ,EAAE,iBAAiB;SAC5B,CAAA;IACH,CAAC,EAAE;QACD,MAAM,EAAE,OAAO,CAAC,SAAS;QACzB,YAAY,CAAC,SAAS,EAAE,GAAG;QAC3B,YAAY,CAAC,SAAS,EAAE,EAAE;QAC1B,YAAY,CAAC,MAAM;QACnB,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,SAAS,EAAE,GAAG;QAC3B,YAAY,CAAC,SAAS,EAAE,EAAE;QAC1B,YAAY,CAAC,MAAM;QACnB,YAAY,CAAC,OAAO;QACpB,YAAY,CAAC,OAAO;QACpB,IAAI,EAAE,SAAS;QACf,oBAAoB;KACrB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { ChainType } from "@coin-voyage/shared/common";
2
+ import type { ChainTypeWalletConnector } from "../types/wallet";
3
+ export type CombinedWallet = {
4
+ id: string;
5
+ name: string;
6
+ icon?: string;
7
+ connectors: ChainTypeWalletConnector[];
8
+ };
9
+ export declare const useCombinedWallets: (filterChainType?: ChainType) => {
10
+ installedWallets: CombinedWallet[];
11
+ };
12
+ export declare const walletComparator: (a: CombinedWallet, b: CombinedWallet) => number;