@dynamic-labs-sdk/bitcoin 0.1.2 → 0.2.3

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 (377) hide show
  1. package/dist/BitcoinNetworkProvider.types.d.ts.map +1 -0
  2. package/dist/BitcoinWalletAccount.types.d.ts.map +1 -0
  3. package/dist/BitcoinWalletProvider.types.d.ts.map +1 -0
  4. package/{src → dist}/addBitcoinExtension/addBitcoinExtension.d.ts +1 -1
  5. package/dist/addBitcoinExtension/addBitcoinExtension.d.ts.map +1 -0
  6. package/dist/addBitcoinExtension/index.d.ts.map +1 -0
  7. package/dist/addBitcoinInjectedWalletsExtension-CseEWCFz.cjs.js +1524 -0
  8. package/dist/addBitcoinInjectedWalletsExtension-CseEWCFz.cjs.js.map +1 -0
  9. package/dist/addBitcoinInjectedWalletsExtension-DXXPos47.esm.js +1495 -0
  10. package/dist/addBitcoinInjectedWalletsExtension-DXXPos47.esm.js.map +1 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/errors/InvalidPsbtError.d.ts.map +1 -0
  13. package/dist/errors/NotBitcoinProviderError.d.ts.map +1 -0
  14. package/dist/errors/SendBitcoinRawTransactionError.d.ts.map +1 -0
  15. package/dist/exports/index.d.ts.map +1 -0
  16. package/dist/exports/injected.d.ts.map +1 -0
  17. package/dist/index.cjs.js +194 -0
  18. package/dist/index.cjs.js.map +1 -0
  19. package/dist/index.esm.js +186 -0
  20. package/dist/index.esm.js.map +1 -0
  21. package/{src → dist}/injected/addBitcoinInjectedWalletsExtension/addBitcoinInjectedWalletsExtension.d.ts +1 -1
  22. package/dist/injected/addBitcoinInjectedWalletsExtension/addBitcoinInjectedWalletsExtension.d.ts.map +1 -0
  23. package/dist/injected/addBitcoinInjectedWalletsExtension/index.d.ts.map +1 -0
  24. package/dist/injected/utils/binance/BinanceBitcoinInjectedProvider.types.d.ts.map +1 -0
  25. package/dist/injected/utils/binance/createBinanceBitcoinWalletProvider/createBinanceBitcoinWalletProvider.d.ts.map +1 -0
  26. package/dist/injected/utils/binance/createBinanceBitcoinWalletProvider/index.d.ts.map +1 -0
  27. package/dist/injected/utils/binance/getBinanceBitcoinInjectedProvider/getBinanceBitcoinInjectedProvider.d.ts +3 -0
  28. package/dist/injected/utils/binance/getBinanceBitcoinInjectedProvider/getBinanceBitcoinInjectedProvider.d.ts.map +1 -0
  29. package/dist/injected/utils/binance/getBinanceBitcoinInjectedProvider/index.d.ts.map +1 -0
  30. package/dist/injected/utils/bitget/createBitgetBitcoinWalletProvider/createBitgetBitcoinWalletProvider.d.ts.map +1 -0
  31. package/dist/injected/utils/bitget/createBitgetBitcoinWalletProvider/index.d.ts.map +1 -0
  32. package/dist/injected/utils/bitget/getBitgetBitcoinInjectedProvider/getBitgetBitcoinInjectedProvider.d.ts +3 -0
  33. package/dist/injected/utils/bitget/getBitgetBitcoinInjectedProvider/getBitgetBitcoinInjectedProvider.d.ts.map +1 -0
  34. package/dist/injected/utils/bitget/getBitgetBitcoinInjectedProvider/index.d.ts.map +1 -0
  35. package/dist/injected/utils/leather/LeatherBitcoinInjectedProvider.types.d.ts.map +1 -0
  36. package/dist/injected/utils/leather/convertNetworkIdToLeatherNetworkName/convertNetworkIdToLeatherNetworkName.d.ts.map +1 -0
  37. package/dist/injected/utils/leather/convertNetworkIdToLeatherNetworkName/index.d.ts.map +1 -0
  38. package/dist/injected/utils/leather/createLeatherBitcoinWalletProvider/createLeatherBitcoinWalletProvider.d.ts.map +1 -0
  39. package/dist/injected/utils/leather/createLeatherBitcoinWalletProvider/index.d.ts.map +1 -0
  40. package/dist/injected/utils/leather/getLeatherBitcoinInjectedProvider/getLeatherBitcoinInjectedProvider.d.ts +2 -0
  41. package/dist/injected/utils/leather/getLeatherBitcoinInjectedProvider/getLeatherBitcoinInjectedProvider.d.ts.map +1 -0
  42. package/dist/injected/utils/leather/getLeatherBitcoinInjectedProvider/index.d.ts.map +1 -0
  43. package/dist/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/createMagicEdenBitcoinWalletProvider.d.ts.map +1 -0
  44. package/dist/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/index.d.ts.map +1 -0
  45. package/dist/injected/utils/magicEden/getMagicEdenInjectedProvider/getMagicEdenInjectedProvider.d.ts +3 -0
  46. package/dist/injected/utils/magicEden/getMagicEdenInjectedProvider/getMagicEdenInjectedProvider.d.ts.map +1 -0
  47. package/dist/injected/utils/magicEden/getMagicEdenInjectedProvider/index.d.ts.map +1 -0
  48. package/dist/injected/utils/okx/OkxBitcoinInjectedProvider.types.d.ts.map +1 -0
  49. package/dist/injected/utils/okx/createOkxBitcoinWalletProvider/createOkxBitcoinWalletProvider.d.ts.map +1 -0
  50. package/dist/injected/utils/okx/createOkxBitcoinWalletProvider/index.d.ts.map +1 -0
  51. package/dist/injected/utils/okx/getOkxBitcoinInjectedProvider/getOkxBitcoinInjectedProvider.d.ts +3 -0
  52. package/dist/injected/utils/okx/getOkxBitcoinInjectedProvider/getOkxBitcoinInjectedProvider.d.ts.map +1 -0
  53. package/dist/injected/utils/okx/getOkxBitcoinInjectedProvider/index.d.ts.map +1 -0
  54. package/dist/injected/utils/oneKey/OneKeyBitcoinInjectedProvider.types.d.ts.map +1 -0
  55. package/dist/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/createOneKeyBitcoinWalletProvider.d.ts.map +1 -0
  56. package/dist/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/index.d.ts.map +1 -0
  57. package/dist/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/getOneKeyBitcoinInjectedProvider.d.ts +3 -0
  58. package/dist/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/getOneKeyBitcoinInjectedProvider.d.ts.map +1 -0
  59. package/dist/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/index.d.ts.map +1 -0
  60. package/dist/injected/utils/oyl/OylBitcoinInjectedProvider.types.d.ts.map +1 -0
  61. package/dist/injected/utils/oyl/createOylBitcoinWalletProvider/createOylBitcoinWalletProvider.d.ts.map +1 -0
  62. package/dist/injected/utils/oyl/createOylBitcoinWalletProvider/index.d.ts.map +1 -0
  63. package/dist/injected/utils/oyl/getOylBitcoinInjectedProvider/getOylBitcoinInjectedProvider.d.ts +3 -0
  64. package/dist/injected/utils/oyl/getOylBitcoinInjectedProvider/getOylBitcoinInjectedProvider.d.ts.map +1 -0
  65. package/dist/injected/utils/oyl/getOylBitcoinInjectedProvider/index.d.ts.map +1 -0
  66. package/dist/injected/utils/phantom/PhantomBitcoinInjectedProvider.types.d.ts.map +1 -0
  67. package/dist/injected/utils/phantom/createPhantomBitcoinWalletProvider/createPhantomBitcoinWalletProvider.d.ts.map +1 -0
  68. package/dist/injected/utils/phantom/createPhantomBitcoinWalletProvider/index.d.ts.map +1 -0
  69. package/dist/injected/utils/phantom/getPhantomInjectedProvider/getPhantomInjectedProvider.d.ts +3 -0
  70. package/dist/injected/utils/phantom/getPhantomInjectedProvider/getPhantomInjectedProvider.d.ts.map +1 -0
  71. package/dist/injected/utils/phantom/getPhantomInjectedProvider/index.d.ts.map +1 -0
  72. package/dist/injected/utils/unisat/UnisatInjectedProvider.types.d.ts.map +1 -0
  73. package/dist/injected/utils/unisat/createUnisatWalletProvider/createUnisatWalletProvider.d.ts.map +1 -0
  74. package/dist/injected/utils/unisat/createUnisatWalletProvider/index.d.ts.map +1 -0
  75. package/dist/injected/utils/unisat/getUnisatInjectedProvider/getUnisatInjectedProvider.d.ts +3 -0
  76. package/dist/injected/utils/unisat/getUnisatInjectedProvider/getUnisatInjectedProvider.d.ts.map +1 -0
  77. package/dist/injected/utils/unisat/getUnisatInjectedProvider/index.d.ts.map +1 -0
  78. package/dist/injected/utils/xverse/createXverseBitcoinWalletProvider/createXverseBitcoinWalletProvider.d.ts.map +1 -0
  79. package/dist/injected/utils/xverse/createXverseBitcoinWalletProvider/index.d.ts.map +1 -0
  80. package/dist/injected/utils/xverse/getXverseInjectedProvider/getXverseInjectedProvider.d.ts +3 -0
  81. package/dist/injected/utils/xverse/getXverseInjectedProvider/getXverseInjectedProvider.d.ts.map +1 -0
  82. package/dist/injected/utils/xverse/getXverseInjectedProvider/index.d.ts.map +1 -0
  83. package/dist/injected.cjs.js +9 -0
  84. package/dist/injected.cjs.js.map +1 -0
  85. package/dist/injected.esm.js +9 -0
  86. package/dist/injected.esm.js.map +1 -0
  87. package/dist/isBitcoinNetworkProvider/index.d.ts.map +1 -0
  88. package/dist/isBitcoinNetworkProvider/isBitcoinNetworkProvider.d.ts.map +1 -0
  89. package/dist/isBitcoinWalletAccount/index.d.ts.map +1 -0
  90. package/dist/isBitcoinWalletAccount/isBitcoinWalletAccount.d.ts.map +1 -0
  91. package/dist/isBitcoinWalletProvider/index.d.ts.map +1 -0
  92. package/dist/isBitcoinWalletProvider/isBitcoinWalletProvider.d.ts.map +1 -0
  93. package/dist/registerBitcoinNetworkProviderBuilder/index.d.ts.map +1 -0
  94. package/dist/registerBitcoinNetworkProviderBuilder/registerBitcoinNetworkProviderBuilder.d.ts.map +1 -0
  95. package/dist/sendBitcoin/index.d.ts.map +1 -0
  96. package/{src → dist}/sendBitcoin/sendBitcoin.d.ts +1 -1
  97. package/dist/sendBitcoin/sendBitcoin.d.ts.map +1 -0
  98. package/dist/sendRawTransaction/index.d.ts.map +1 -0
  99. package/{src → dist}/sendRawTransaction/sendRawTransaction.d.ts +1 -1
  100. package/dist/sendRawTransaction/sendRawTransaction.d.ts.map +1 -0
  101. package/{src/utils/signMultipleTransactionsWithSatsConnect → dist/signMessageWithCustomOptions}/index.d.ts.map +1 -1
  102. package/{src → dist}/signMessageWithCustomOptions/signMessageWithCustomOptions.d.ts +1 -1
  103. package/dist/signMessageWithCustomOptions/signMessageWithCustomOptions.d.ts.map +1 -0
  104. package/dist/signPsbt/index.d.ts.map +1 -0
  105. package/{src → dist}/signPsbt/signPsbt.d.ts +1 -1
  106. package/dist/signPsbt/signPsbt.d.ts.map +1 -0
  107. package/dist/signPsbts/index.d.ts.map +1 -0
  108. package/{src → dist}/signPsbts/signPsbts.d.ts +1 -1
  109. package/dist/signPsbts/signPsbts.d.ts.map +1 -0
  110. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  111. package/dist/utils/convertNetworkIdForPsbt/convertNetworkIdForPsbt.d.ts.map +1 -0
  112. package/dist/utils/convertNetworkIdForPsbt/index.d.ts.map +1 -0
  113. package/dist/utils/convertNetworkIdToSatsConnectNetworkType/convertNetworkIdToSatsConnectNetworkType.d.ts.map +1 -0
  114. package/dist/utils/convertNetworkIdToSatsConnectNetworkType/index.d.ts.map +1 -0
  115. package/dist/utils/createBitcoinNetworkProvider/createBitcoinNetworkProvider.d.ts.map +1 -0
  116. package/dist/utils/createBitcoinNetworkProvider/index.d.ts.map +1 -0
  117. package/dist/utils/createPsbtOptions/createPsbtOptions.d.ts.map +1 -0
  118. package/dist/utils/createPsbtOptions/index.d.ts.map +1 -0
  119. package/dist/utils/fetchBtcBalance/fetchBtcBalance.d.ts.map +1 -0
  120. package/dist/utils/fetchBtcBalance/index.d.ts.map +1 -0
  121. package/dist/utils/getMempoolApiUrl/getMempoolApiUrl.d.ts +2 -0
  122. package/dist/utils/getMempoolApiUrl/getMempoolApiUrl.d.ts.map +1 -0
  123. package/dist/utils/getMempoolApiUrl/index.d.ts.map +1 -0
  124. package/{src → dist}/utils/getNetworkIdFromNetworkName/getNetworkIdFromNetworkName.d.ts +1 -1
  125. package/dist/utils/getNetworkIdFromNetworkName/getNetworkIdFromNetworkName.d.ts.map +1 -0
  126. package/dist/utils/getNetworkIdFromNetworkName/index.d.ts.map +1 -0
  127. package/dist/utils/getPsbtInputsToSignForSatsConnect/getPsbtInputsToSignForSatsConnect.d.ts.map +1 -0
  128. package/dist/utils/getPsbtInputsToSignForSatsConnect/index.d.ts.map +1 -0
  129. package/dist/utils/getSatsConnectSigningProtocol/getSatsConnectSigningProtocol.d.ts.map +1 -0
  130. package/dist/utils/getSatsConnectSigningProtocol/index.d.ts.map +1 -0
  131. package/dist/utils/getSigHashType/getSigHashType.d.ts.map +1 -0
  132. package/dist/utils/getSigHashType/index.d.ts.map +1 -0
  133. package/dist/utils/parseBitcoinConnectionResult/index.d.ts.map +1 -0
  134. package/{src → dist}/utils/parseBitcoinConnectionResult/parseBitcoinConnectionResult.d.ts +1 -0
  135. package/dist/utils/parseBitcoinConnectionResult/parseBitcoinConnectionResult.d.ts.map +1 -0
  136. package/dist/utils/satoshisToBtc/index.d.ts.map +1 -0
  137. package/dist/utils/satoshisToBtc/satoshisToBtc.d.ts.map +1 -0
  138. package/dist/utils/signMultipleTransactionsWithSatsConnect/index.d.ts.map +1 -0
  139. package/dist/utils/signMultipleTransactionsWithSatsConnect/signMultipleTransactionsWithSatsConnect.d.ts.map +1 -0
  140. package/dist/utils/validatePsbt/extractAddressFromInput/extractAddressFromInput.d.ts.map +1 -0
  141. package/dist/utils/validatePsbt/extractAddressFromInput/index.d.ts.map +1 -0
  142. package/dist/utils/validatePsbt/index.d.ts.map +1 -0
  143. package/dist/utils/validatePsbt/validatePsbt.d.ts.map +1 -0
  144. package/dist/utils/validatePsbt/validateSigHash/index.d.ts.map +1 -0
  145. package/dist/utils/validatePsbt/validateSigHash/validateSigHash.d.ts.map +1 -0
  146. package/dist/utils/validatePsbt/validateSigningAddress/index.d.ts.map +1 -0
  147. package/dist/utils/validatePsbt/validateSigningAddress/validateSigningAddress.d.ts.map +1 -0
  148. package/package.json +30 -16
  149. package/CHANGELOG.md +0 -606
  150. package/addBitcoinInjectedWalletsExtension.cjs.js +0 -1958
  151. package/addBitcoinInjectedWalletsExtension.esm.js +0 -1952
  152. package/index.cjs.d.ts +0 -1
  153. package/index.cjs.js +0 -205
  154. package/index.esm.d.ts +0 -1
  155. package/index.esm.js +0 -196
  156. package/injected.cjs.d.ts +0 -1
  157. package/injected.cjs.js +0 -14
  158. package/injected.esm.d.ts +0 -1
  159. package/injected.esm.js +0 -11
  160. package/src/BitcoinNetworkProvider.types.d.ts.map +0 -1
  161. package/src/BitcoinWalletAccount.types.d.ts.map +0 -1
  162. package/src/BitcoinWalletProvider.types.d.ts.map +0 -1
  163. package/src/addBitcoinExtension/addBitcoinExtension.d.ts.map +0 -1
  164. package/src/addBitcoinExtension/index.d.ts.map +0 -1
  165. package/src/constants.d.ts.map +0 -1
  166. package/src/errors/InvalidPsbtError.d.ts.map +0 -1
  167. package/src/errors/NotBitcoinProviderError.d.ts.map +0 -1
  168. package/src/errors/SendBitcoinRawTransactionError.d.ts.map +0 -1
  169. package/src/exports/index.d.ts.map +0 -1
  170. package/src/exports/injected.d.ts.map +0 -1
  171. package/src/injected/addBitcoinInjectedWalletsExtension/addBitcoinInjectedWalletsExtension.d.ts.map +0 -1
  172. package/src/injected/addBitcoinInjectedWalletsExtension/index.d.ts.map +0 -1
  173. package/src/injected/utils/binance/BinanceBitcoinInjectedProvider.types.d.ts.map +0 -1
  174. package/src/injected/utils/binance/createBinanceBitcoinWalletProvider/createBinanceBitcoinWalletProvider.d.ts.map +0 -1
  175. package/src/injected/utils/binance/createBinanceBitcoinWalletProvider/index.d.ts.map +0 -1
  176. package/src/injected/utils/binance/getBinanceBitcoinInjectedProvider/getBinanceBitcoinInjectedProvider.d.ts +0 -2
  177. package/src/injected/utils/binance/getBinanceBitcoinInjectedProvider/getBinanceBitcoinInjectedProvider.d.ts.map +0 -1
  178. package/src/injected/utils/binance/getBinanceBitcoinInjectedProvider/index.d.ts.map +0 -1
  179. package/src/injected/utils/bitget/createBitgetBitcoinWalletProvider/createBitgetBitcoinWalletProvider.d.ts.map +0 -1
  180. package/src/injected/utils/bitget/createBitgetBitcoinWalletProvider/index.d.ts.map +0 -1
  181. package/src/injected/utils/bitget/getBitgetBitcoinInjectedProvider/getBitgetBitcoinInjectedProvider.d.ts +0 -2
  182. package/src/injected/utils/bitget/getBitgetBitcoinInjectedProvider/getBitgetBitcoinInjectedProvider.d.ts.map +0 -1
  183. package/src/injected/utils/bitget/getBitgetBitcoinInjectedProvider/index.d.ts.map +0 -1
  184. package/src/injected/utils/leather/LeatherBitcoinInjectedProvider.types.d.ts.map +0 -1
  185. package/src/injected/utils/leather/convertNetworkIdToLeatherNetworkName/convertNetworkIdToLeatherNetworkName.d.ts.map +0 -1
  186. package/src/injected/utils/leather/convertNetworkIdToLeatherNetworkName/index.d.ts.map +0 -1
  187. package/src/injected/utils/leather/createLeatherBitcoinWalletProvider/createLeatherBitcoinWalletProvider.d.ts.map +0 -1
  188. package/src/injected/utils/leather/createLeatherBitcoinWalletProvider/index.d.ts.map +0 -1
  189. package/src/injected/utils/leather/getLeatherBitcoinInjectedProvider/getLeatherBitcoinInjectedProvider.d.ts +0 -2
  190. package/src/injected/utils/leather/getLeatherBitcoinInjectedProvider/getLeatherBitcoinInjectedProvider.d.ts.map +0 -1
  191. package/src/injected/utils/leather/getLeatherBitcoinInjectedProvider/index.d.ts.map +0 -1
  192. package/src/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/createMagicEdenBitcoinWalletProvider.d.ts.map +0 -1
  193. package/src/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/index.d.ts.map +0 -1
  194. package/src/injected/utils/magicEden/getMagicEdenInjectedProvider/getMagicEdenInjectedProvider.d.ts +0 -2
  195. package/src/injected/utils/magicEden/getMagicEdenInjectedProvider/getMagicEdenInjectedProvider.d.ts.map +0 -1
  196. package/src/injected/utils/magicEden/getMagicEdenInjectedProvider/index.d.ts.map +0 -1
  197. package/src/injected/utils/okx/OkxBitcoinInjectedProvider.types.d.ts.map +0 -1
  198. package/src/injected/utils/okx/createOkxBitcoinWalletProvider/createOkxBitcoinWalletProvider.d.ts.map +0 -1
  199. package/src/injected/utils/okx/createOkxBitcoinWalletProvider/index.d.ts.map +0 -1
  200. package/src/injected/utils/okx/getOkxBitcoinInjectedProvider/getOkxBitcoinInjectedProvider.d.ts +0 -2
  201. package/src/injected/utils/okx/getOkxBitcoinInjectedProvider/getOkxBitcoinInjectedProvider.d.ts.map +0 -1
  202. package/src/injected/utils/okx/getOkxBitcoinInjectedProvider/index.d.ts.map +0 -1
  203. package/src/injected/utils/oneKey/OneKeyBitcoinInjectedProvider.types.d.ts.map +0 -1
  204. package/src/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/createOneKeyBitcoinWalletProvider.d.ts.map +0 -1
  205. package/src/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/index.d.ts.map +0 -1
  206. package/src/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/getOneKeyBitcoinInjectedProvider.d.ts +0 -2
  207. package/src/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/getOneKeyBitcoinInjectedProvider.d.ts.map +0 -1
  208. package/src/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/index.d.ts.map +0 -1
  209. package/src/injected/utils/oyl/OylBitcoinInjectedProvider.types.d.ts.map +0 -1
  210. package/src/injected/utils/oyl/createOylBitcoinWalletProvider/createOylBitcoinWalletProvider.d.ts.map +0 -1
  211. package/src/injected/utils/oyl/createOylBitcoinWalletProvider/index.d.ts.map +0 -1
  212. package/src/injected/utils/oyl/getOylBitcoinInjectedProvider/getOylBitcoinInjectedProvider.d.ts +0 -2
  213. package/src/injected/utils/oyl/getOylBitcoinInjectedProvider/getOylBitcoinInjectedProvider.d.ts.map +0 -1
  214. package/src/injected/utils/oyl/getOylBitcoinInjectedProvider/index.d.ts.map +0 -1
  215. package/src/injected/utils/phantom/PhantomBitcoinInjectedProvider.types.d.ts.map +0 -1
  216. package/src/injected/utils/phantom/createPhantomBitcoinWalletProvider/createPhantomBitcoinWalletProvider.d.ts.map +0 -1
  217. package/src/injected/utils/phantom/createPhantomBitcoinWalletProvider/index.d.ts.map +0 -1
  218. package/src/injected/utils/phantom/getPhantomInjectedProvider/getPhantomInjectedProvider.d.ts +0 -2
  219. package/src/injected/utils/phantom/getPhantomInjectedProvider/getPhantomInjectedProvider.d.ts.map +0 -1
  220. package/src/injected/utils/phantom/getPhantomInjectedProvider/index.d.ts.map +0 -1
  221. package/src/injected/utils/unisat/UnisatInjectedProvider.types.d.ts.map +0 -1
  222. package/src/injected/utils/unisat/createUnisatWalletProvider/createUnisatWalletProvider.d.ts.map +0 -1
  223. package/src/injected/utils/unisat/createUnisatWalletProvider/index.d.ts.map +0 -1
  224. package/src/injected/utils/unisat/getUnisatInjectedProvider/getUnisatInjectedProvider.d.ts +0 -2
  225. package/src/injected/utils/unisat/getUnisatInjectedProvider/getUnisatInjectedProvider.d.ts.map +0 -1
  226. package/src/injected/utils/unisat/getUnisatInjectedProvider/index.d.ts.map +0 -1
  227. package/src/injected/utils/xverse/createXverseBitcoinWalletProvider/createXverseBitcoinWalletProvider.d.ts.map +0 -1
  228. package/src/injected/utils/xverse/createXverseBitcoinWalletProvider/index.d.ts.map +0 -1
  229. package/src/injected/utils/xverse/getXverseInjectedProvider/getXverseInjectedProvider.d.ts +0 -2
  230. package/src/injected/utils/xverse/getXverseInjectedProvider/getXverseInjectedProvider.d.ts.map +0 -1
  231. package/src/injected/utils/xverse/getXverseInjectedProvider/index.d.ts.map +0 -1
  232. package/src/isBitcoinNetworkProvider/index.d.ts.map +0 -1
  233. package/src/isBitcoinNetworkProvider/isBitcoinNetworkProvider.d.ts.map +0 -1
  234. package/src/isBitcoinWalletAccount/index.d.ts.map +0 -1
  235. package/src/isBitcoinWalletAccount/isBitcoinWalletAccount.d.ts.map +0 -1
  236. package/src/isBitcoinWalletProvider/index.d.ts.map +0 -1
  237. package/src/isBitcoinWalletProvider/isBitcoinWalletProvider.d.ts.map +0 -1
  238. package/src/registerBitcoinNetworkProviderBuilder/index.d.ts.map +0 -1
  239. package/src/registerBitcoinNetworkProviderBuilder/registerBitcoinNetworkProviderBuilder.d.ts.map +0 -1
  240. package/src/sendBitcoin/index.d.ts.map +0 -1
  241. package/src/sendBitcoin/sendBitcoin.d.ts.map +0 -1
  242. package/src/sendRawTransaction/index.d.ts.map +0 -1
  243. package/src/sendRawTransaction/sendRawTransaction.d.ts.map +0 -1
  244. package/src/signMessageWithCustomOptions/index.d.ts.map +0 -1
  245. package/src/signMessageWithCustomOptions/signMessageWithCustomOptions.d.ts.map +0 -1
  246. package/src/signPsbt/index.d.ts.map +0 -1
  247. package/src/signPsbt/signPsbt.d.ts.map +0 -1
  248. package/src/signPsbts/index.d.ts.map +0 -1
  249. package/src/signPsbts/signPsbts.d.ts.map +0 -1
  250. package/src/utils/convertNetworkIdForPsbt/convertNetworkIdForPsbt.d.ts.map +0 -1
  251. package/src/utils/convertNetworkIdForPsbt/index.d.ts.map +0 -1
  252. package/src/utils/convertNetworkIdToSatsConnectNetworkType/convertNetworkIdToSatsConnectNetworkType.d.ts.map +0 -1
  253. package/src/utils/convertNetworkIdToSatsConnectNetworkType/index.d.ts.map +0 -1
  254. package/src/utils/createBitcoinNetworkProvider/createBitcoinNetworkProvider.d.ts.map +0 -1
  255. package/src/utils/createBitcoinNetworkProvider/index.d.ts.map +0 -1
  256. package/src/utils/createPsbtOptions/createPsbtOptions.d.ts.map +0 -1
  257. package/src/utils/createPsbtOptions/index.d.ts.map +0 -1
  258. package/src/utils/fetchBtcBalance/fetchBtcBalance.d.ts.map +0 -1
  259. package/src/utils/fetchBtcBalance/index.d.ts.map +0 -1
  260. package/src/utils/getMempoolApiUrl/getMempoolApiUrl.d.ts +0 -2
  261. package/src/utils/getMempoolApiUrl/getMempoolApiUrl.d.ts.map +0 -1
  262. package/src/utils/getMempoolApiUrl/index.d.ts.map +0 -1
  263. package/src/utils/getNetworkIdFromNetworkName/getNetworkIdFromNetworkName.d.ts.map +0 -1
  264. package/src/utils/getNetworkIdFromNetworkName/index.d.ts.map +0 -1
  265. package/src/utils/getPsbtInputsToSignForSatsConnect/getPsbtInputsToSignForSatsConnect.d.ts.map +0 -1
  266. package/src/utils/getPsbtInputsToSignForSatsConnect/index.d.ts.map +0 -1
  267. package/src/utils/getSatsConnectSigningProtocol/getSatsConnectSigningProtocol.d.ts.map +0 -1
  268. package/src/utils/getSatsConnectSigningProtocol/index.d.ts.map +0 -1
  269. package/src/utils/getSigHashType/getSigHashType.d.ts.map +0 -1
  270. package/src/utils/getSigHashType/index.d.ts.map +0 -1
  271. package/src/utils/parseBitcoinConnectionResult/index.d.ts.map +0 -1
  272. package/src/utils/parseBitcoinConnectionResult/parseBitcoinConnectionResult.d.ts.map +0 -1
  273. package/src/utils/satoshisToBtc/index.d.ts.map +0 -1
  274. package/src/utils/satoshisToBtc/satoshisToBtc.d.ts.map +0 -1
  275. package/src/utils/signMultipleTransactionsWithSatsConnect/signMultipleTransactionsWithSatsConnect.d.ts.map +0 -1
  276. package/src/utils/validatePsbt/extractAddressFromInput/extractAddressFromInput.d.ts.map +0 -1
  277. package/src/utils/validatePsbt/extractAddressFromInput/index.d.ts.map +0 -1
  278. package/src/utils/validatePsbt/index.d.ts.map +0 -1
  279. package/src/utils/validatePsbt/validatePsbt.d.ts.map +0 -1
  280. package/src/utils/validatePsbt/validateSigHash/index.d.ts.map +0 -1
  281. package/src/utils/validatePsbt/validateSigHash/validateSigHash.d.ts.map +0 -1
  282. package/src/utils/validatePsbt/validateSigningAddress/index.d.ts.map +0 -1
  283. package/src/utils/validatePsbt/validateSigningAddress/validateSigningAddress.d.ts.map +0 -1
  284. /package/{src → dist}/BitcoinNetworkProvider.types.d.ts +0 -0
  285. /package/{src → dist}/BitcoinWalletAccount.types.d.ts +0 -0
  286. /package/{src → dist}/BitcoinWalletProvider.types.d.ts +0 -0
  287. /package/{src → dist}/addBitcoinExtension/index.d.ts +0 -0
  288. /package/{src → dist}/constants.d.ts +0 -0
  289. /package/{src → dist}/errors/InvalidPsbtError.d.ts +0 -0
  290. /package/{src → dist}/errors/NotBitcoinProviderError.d.ts +0 -0
  291. /package/{src → dist}/errors/SendBitcoinRawTransactionError.d.ts +0 -0
  292. /package/{src → dist}/exports/index.d.ts +0 -0
  293. /package/{src → dist}/exports/injected.d.ts +0 -0
  294. /package/{src → dist}/injected/addBitcoinInjectedWalletsExtension/index.d.ts +0 -0
  295. /package/{src → dist}/injected/utils/binance/BinanceBitcoinInjectedProvider.types.d.ts +0 -0
  296. /package/{src → dist}/injected/utils/binance/createBinanceBitcoinWalletProvider/createBinanceBitcoinWalletProvider.d.ts +0 -0
  297. /package/{src → dist}/injected/utils/binance/createBinanceBitcoinWalletProvider/index.d.ts +0 -0
  298. /package/{src → dist}/injected/utils/binance/getBinanceBitcoinInjectedProvider/index.d.ts +0 -0
  299. /package/{src → dist}/injected/utils/bitget/createBitgetBitcoinWalletProvider/createBitgetBitcoinWalletProvider.d.ts +0 -0
  300. /package/{src → dist}/injected/utils/bitget/createBitgetBitcoinWalletProvider/index.d.ts +0 -0
  301. /package/{src → dist}/injected/utils/bitget/getBitgetBitcoinInjectedProvider/index.d.ts +0 -0
  302. /package/{src → dist}/injected/utils/leather/LeatherBitcoinInjectedProvider.types.d.ts +0 -0
  303. /package/{src → dist}/injected/utils/leather/convertNetworkIdToLeatherNetworkName/convertNetworkIdToLeatherNetworkName.d.ts +0 -0
  304. /package/{src → dist}/injected/utils/leather/convertNetworkIdToLeatherNetworkName/index.d.ts +0 -0
  305. /package/{src → dist}/injected/utils/leather/createLeatherBitcoinWalletProvider/createLeatherBitcoinWalletProvider.d.ts +0 -0
  306. /package/{src → dist}/injected/utils/leather/createLeatherBitcoinWalletProvider/index.d.ts +0 -0
  307. /package/{src → dist}/injected/utils/leather/getLeatherBitcoinInjectedProvider/index.d.ts +0 -0
  308. /package/{src → dist}/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/createMagicEdenBitcoinWalletProvider.d.ts +0 -0
  309. /package/{src → dist}/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/index.d.ts +0 -0
  310. /package/{src → dist}/injected/utils/magicEden/getMagicEdenInjectedProvider/index.d.ts +0 -0
  311. /package/{src → dist}/injected/utils/okx/OkxBitcoinInjectedProvider.types.d.ts +0 -0
  312. /package/{src → dist}/injected/utils/okx/createOkxBitcoinWalletProvider/createOkxBitcoinWalletProvider.d.ts +0 -0
  313. /package/{src → dist}/injected/utils/okx/createOkxBitcoinWalletProvider/index.d.ts +0 -0
  314. /package/{src → dist}/injected/utils/okx/getOkxBitcoinInjectedProvider/index.d.ts +0 -0
  315. /package/{src → dist}/injected/utils/oneKey/OneKeyBitcoinInjectedProvider.types.d.ts +0 -0
  316. /package/{src → dist}/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/createOneKeyBitcoinWalletProvider.d.ts +0 -0
  317. /package/{src → dist}/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/index.d.ts +0 -0
  318. /package/{src → dist}/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/index.d.ts +0 -0
  319. /package/{src → dist}/injected/utils/oyl/OylBitcoinInjectedProvider.types.d.ts +0 -0
  320. /package/{src → dist}/injected/utils/oyl/createOylBitcoinWalletProvider/createOylBitcoinWalletProvider.d.ts +0 -0
  321. /package/{src → dist}/injected/utils/oyl/createOylBitcoinWalletProvider/index.d.ts +0 -0
  322. /package/{src → dist}/injected/utils/oyl/getOylBitcoinInjectedProvider/index.d.ts +0 -0
  323. /package/{src → dist}/injected/utils/phantom/PhantomBitcoinInjectedProvider.types.d.ts +0 -0
  324. /package/{src → dist}/injected/utils/phantom/createPhantomBitcoinWalletProvider/createPhantomBitcoinWalletProvider.d.ts +0 -0
  325. /package/{src → dist}/injected/utils/phantom/createPhantomBitcoinWalletProvider/index.d.ts +0 -0
  326. /package/{src → dist}/injected/utils/phantom/getPhantomInjectedProvider/index.d.ts +0 -0
  327. /package/{src → dist}/injected/utils/unisat/UnisatInjectedProvider.types.d.ts +0 -0
  328. /package/{src → dist}/injected/utils/unisat/createUnisatWalletProvider/createUnisatWalletProvider.d.ts +0 -0
  329. /package/{src → dist}/injected/utils/unisat/createUnisatWalletProvider/index.d.ts +0 -0
  330. /package/{src → dist}/injected/utils/unisat/getUnisatInjectedProvider/index.d.ts +0 -0
  331. /package/{src → dist}/injected/utils/xverse/createXverseBitcoinWalletProvider/createXverseBitcoinWalletProvider.d.ts +0 -0
  332. /package/{src → dist}/injected/utils/xverse/createXverseBitcoinWalletProvider/index.d.ts +0 -0
  333. /package/{src → dist}/injected/utils/xverse/getXverseInjectedProvider/index.d.ts +0 -0
  334. /package/{src → dist}/isBitcoinNetworkProvider/index.d.ts +0 -0
  335. /package/{src → dist}/isBitcoinNetworkProvider/isBitcoinNetworkProvider.d.ts +0 -0
  336. /package/{src → dist}/isBitcoinWalletAccount/index.d.ts +0 -0
  337. /package/{src → dist}/isBitcoinWalletAccount/isBitcoinWalletAccount.d.ts +0 -0
  338. /package/{src → dist}/isBitcoinWalletProvider/index.d.ts +0 -0
  339. /package/{src → dist}/isBitcoinWalletProvider/isBitcoinWalletProvider.d.ts +0 -0
  340. /package/{src → dist}/registerBitcoinNetworkProviderBuilder/index.d.ts +0 -0
  341. /package/{src → dist}/registerBitcoinNetworkProviderBuilder/registerBitcoinNetworkProviderBuilder.d.ts +0 -0
  342. /package/{src → dist}/sendBitcoin/index.d.ts +0 -0
  343. /package/{src → dist}/sendRawTransaction/index.d.ts +0 -0
  344. /package/{src → dist}/signMessageWithCustomOptions/index.d.ts +0 -0
  345. /package/{src → dist}/signPsbt/index.d.ts +0 -0
  346. /package/{src → dist}/signPsbts/index.d.ts +0 -0
  347. /package/{src → dist}/utils/convertNetworkIdForPsbt/convertNetworkIdForPsbt.d.ts +0 -0
  348. /package/{src → dist}/utils/convertNetworkIdForPsbt/index.d.ts +0 -0
  349. /package/{src → dist}/utils/convertNetworkIdToSatsConnectNetworkType/convertNetworkIdToSatsConnectNetworkType.d.ts +0 -0
  350. /package/{src → dist}/utils/convertNetworkIdToSatsConnectNetworkType/index.d.ts +0 -0
  351. /package/{src → dist}/utils/createBitcoinNetworkProvider/createBitcoinNetworkProvider.d.ts +0 -0
  352. /package/{src → dist}/utils/createBitcoinNetworkProvider/index.d.ts +0 -0
  353. /package/{src → dist}/utils/createPsbtOptions/createPsbtOptions.d.ts +0 -0
  354. /package/{src → dist}/utils/createPsbtOptions/index.d.ts +0 -0
  355. /package/{src → dist}/utils/fetchBtcBalance/fetchBtcBalance.d.ts +0 -0
  356. /package/{src → dist}/utils/fetchBtcBalance/index.d.ts +0 -0
  357. /package/{src → dist}/utils/getMempoolApiUrl/index.d.ts +0 -0
  358. /package/{src → dist}/utils/getNetworkIdFromNetworkName/index.d.ts +0 -0
  359. /package/{src → dist}/utils/getPsbtInputsToSignForSatsConnect/getPsbtInputsToSignForSatsConnect.d.ts +0 -0
  360. /package/{src → dist}/utils/getPsbtInputsToSignForSatsConnect/index.d.ts +0 -0
  361. /package/{src → dist}/utils/getSatsConnectSigningProtocol/getSatsConnectSigningProtocol.d.ts +0 -0
  362. /package/{src → dist}/utils/getSatsConnectSigningProtocol/index.d.ts +0 -0
  363. /package/{src → dist}/utils/getSigHashType/getSigHashType.d.ts +0 -0
  364. /package/{src → dist}/utils/getSigHashType/index.d.ts +0 -0
  365. /package/{src → dist}/utils/parseBitcoinConnectionResult/index.d.ts +0 -0
  366. /package/{src → dist}/utils/satoshisToBtc/index.d.ts +0 -0
  367. /package/{src → dist}/utils/satoshisToBtc/satoshisToBtc.d.ts +0 -0
  368. /package/{src → dist}/utils/signMultipleTransactionsWithSatsConnect/index.d.ts +0 -0
  369. /package/{src → dist}/utils/signMultipleTransactionsWithSatsConnect/signMultipleTransactionsWithSatsConnect.d.ts +0 -0
  370. /package/{src → dist}/utils/validatePsbt/extractAddressFromInput/extractAddressFromInput.d.ts +0 -0
  371. /package/{src → dist}/utils/validatePsbt/extractAddressFromInput/index.d.ts +0 -0
  372. /package/{src → dist}/utils/validatePsbt/index.d.ts +0 -0
  373. /package/{src → dist}/utils/validatePsbt/validatePsbt.d.ts +0 -0
  374. /package/{src → dist}/utils/validatePsbt/validateSigHash/index.d.ts +0 -0
  375. /package/{src → dist}/utils/validatePsbt/validateSigHash/validateSigHash.d.ts +0 -0
  376. /package/{src → dist}/utils/validatePsbt/validateSigningAddress/index.d.ts +0 -0
  377. /package/{src → dist}/utils/validatePsbt/validateSigningAddress/validateSigningAddress.d.ts +0 -0
@@ -0,0 +1,1524 @@
1
+ let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
2
+ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
3
+ let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
4
+ let bitcoinjs_lib = require("bitcoinjs-lib");
5
+ let jsontokens = require("jsontokens");
6
+ let sats_connect = require("sats-connect");
7
+
8
+ //#region package.json
9
+ var name = "@dynamic-labs-sdk/bitcoin";
10
+ var version = "0.2.3";
11
+
12
+ //#endregion
13
+ //#region src/constants.ts
14
+ const MEMPOOL_API_URL = "https://mempool.space/api";
15
+ const MEMPOOL_API_URL_TESTNET = "https://mempool.space/testnet/api";
16
+
17
+ //#endregion
18
+ //#region src/utils/getMempoolApiUrl/getMempoolApiUrl.ts
19
+ const getMempoolApiUrl = (address$1) => address$1.startsWith("t") ? MEMPOOL_API_URL_TESTNET : MEMPOOL_API_URL;
20
+
21
+ //#endregion
22
+ //#region src/utils/satoshisToBtc/satoshisToBtc.ts
23
+ const satoshisToBtc = (satoshis) => satoshis / 1e8;
24
+
25
+ //#endregion
26
+ //#region src/utils/fetchBtcBalance/fetchBtcBalance.ts
27
+ const fetchBtcBalance = async ({ address: address$1 }) => {
28
+ const API_URL = getMempoolApiUrl(address$1);
29
+ const response = await fetch(`${API_URL}/address/${address$1}`);
30
+ if (!response.ok) return null;
31
+ const addressInfo = await response.json();
32
+ if (!addressInfo?.chain_stats || !addressInfo?.mempool_stats) return null;
33
+ return satoshisToBtc(Number(addressInfo.chain_stats.funded_txo_sum) - Number(addressInfo.chain_stats.spent_txo_sum) + (Number(addressInfo.mempool_stats.funded_txo_sum) - Number(addressInfo.mempool_stats.spent_txo_sum))).toString();
34
+ };
35
+
36
+ //#endregion
37
+ //#region src/utils/createBitcoinNetworkProvider/createBitcoinNetworkProvider.ts
38
+ const createBitcoinNetworkProvider = (networkData) => ({
39
+ ...(0, _dynamic_labs_sdk_client_core.createBaseNetworkProvider)("BTC", networkData),
40
+ cluster: networkData.cluster,
41
+ getBalance: async ({ address: address$1 }) => ({ balance: await fetchBtcBalance({ address: address$1 }) })
42
+ });
43
+
44
+ //#endregion
45
+ //#region src/registerBitcoinNetworkProviderBuilder/registerBitcoinNetworkProviderBuilder.ts
46
+ const registerBitcoinNetworkProviderBuilder = (client) => {
47
+ const networkProviderBuilderRegistry = (0, _dynamic_labs_sdk_client_core.getNetworkProviderBuilderRegistry)(client);
48
+ /**
49
+ * If the Bitcoin network provider builder is already registered, return.
50
+ */
51
+ if (networkProviderBuilderRegistry.get().get("BTC")) return;
52
+ networkProviderBuilderRegistry.register({
53
+ builder: createBitcoinNetworkProvider,
54
+ chain: "BTC"
55
+ });
56
+ };
57
+
58
+ //#endregion
59
+ //#region src/errors/InvalidPsbtError.ts
60
+ var InvalidPsbtError = class extends _dynamic_labs_sdk_client.BaseError {
61
+ constructor(message) {
62
+ super({
63
+ cause: null,
64
+ code: "invalid_psbt_error",
65
+ docsUrl: null,
66
+ name: "InvalidPsbtError",
67
+ shortMessage: message
68
+ });
69
+ }
70
+ };
71
+
72
+ //#endregion
73
+ //#region src/utils/getSigHashType/getSigHashType.ts
74
+ /**
75
+ * This method will return the signature hash type for the current input.
76
+ * If there is a sighashType, it will return that
77
+ * If there is a witnessUtxo AND it is a taproot address, then it will return SIGHASH_DEFAULT
78
+ * Otherwise, it will return SIGHASH_ALL
79
+ */
80
+ const getSigHashType = ({ input }) => {
81
+ if (input?.sighashType) return input.sighashType;
82
+ let isTaprootAddress = false;
83
+ if (input.witnessUtxo?.script) try {
84
+ bitcoinjs_lib.payments.p2tr({ output: input.witnessUtxo.script });
85
+ isTaprootAddress = true;
86
+ } catch {}
87
+ return isTaprootAddress ? bitcoinjs_lib.Transaction.SIGHASH_DEFAULT : bitcoinjs_lib.Transaction.SIGHASH_ALL;
88
+ };
89
+
90
+ //#endregion
91
+ //#region src/utils/validatePsbt/validateSigHash/validateSigHash.ts
92
+ const validateSigHash = ({ allowedSigHashTypes, input }) => {
93
+ const sigHashType = getSigHashType({ input });
94
+ if (allowedSigHashTypes?.length && !allowedSigHashTypes.includes(sigHashType)) throw new InvalidPsbtError(`sigHashType ${sigHashType} not in allowed list`);
95
+ };
96
+
97
+ //#endregion
98
+ //#region src/utils/validatePsbt/extractAddressFromInput/extractAddressFromInput.ts
99
+ /**
100
+ * This method extracts the address from the input data of the psbt.
101
+ * The address is stored as script (Buffer) in either the witnessUtxo or nonWitnessUtxo as an output
102
+ */
103
+ const extractAddressFromInput = ({ index, input, psbt }) => {
104
+ let extractedAddress;
105
+ try {
106
+ if (input.witnessUtxo?.script) extractedAddress = bitcoinjs_lib.address.fromOutputScript(input.witnessUtxo.script);
107
+ if (input.nonWitnessUtxo) {
108
+ const txOut = bitcoinjs_lib.Transaction.fromBuffer(input.nonWitnessUtxo).outs[psbt.txInputs[index].index];
109
+ extractedAddress = bitcoinjs_lib.address.fromOutputScript(txOut.script);
110
+ }
111
+ return extractedAddress;
112
+ } catch {
113
+ return extractedAddress;
114
+ }
115
+ };
116
+
117
+ //#endregion
118
+ //#region src/utils/validatePsbt/validateSigningAddress/validateSigningAddress.ts
119
+ const validateSigningAddress = ({ index, inputAtIndex, psbt, signingAddress }) => {
120
+ const extractedAddress = extractAddressFromInput({
121
+ index,
122
+ input: inputAtIndex,
123
+ psbt
124
+ });
125
+ if (!extractedAddress) throw new InvalidPsbtError(`Could not extract address from input at index ${index}`);
126
+ if (extractedAddress !== signingAddress) throw new InvalidPsbtError(`Signing address does not match with address extracted from input at index ${index}`);
127
+ };
128
+
129
+ //#endregion
130
+ //#region src/utils/validatePsbt/validatePsbt.ts
131
+ /**
132
+ * This method will validate the psbt against the signature data provided in the request
133
+ * It checks 3 things:
134
+ * - That the signing index exists in the input
135
+ * - That the address provided in the request matches the address in the input,
136
+ * unless the disableAddressValidation flag is set
137
+ * - That the sigHashType of the input is a member of the allowedSigHashTypes array
138
+ */
139
+ const validatePsbt = ({ allowedSigHashTypes, psbt, signatureData }) => {
140
+ if (!signatureData?.length) return;
141
+ for (const input of signatureData) {
142
+ const { address: signingAddress, signingIndexes, disableAddressValidation = true } = input;
143
+ if (!signingIndexes?.length) return;
144
+ if (!signingAddress) throw new InvalidPsbtError("Missing signing address");
145
+ for (const index of signingIndexes) {
146
+ const inputAtIndex = psbt.data.inputs[index];
147
+ if (!inputAtIndex) throw new InvalidPsbtError(`Missing input for index ${index}`);
148
+ if (!disableAddressValidation) validateSigningAddress({
149
+ index,
150
+ inputAtIndex,
151
+ psbt,
152
+ signingAddress
153
+ });
154
+ validateSigHash({
155
+ allowedSigHashTypes,
156
+ input: inputAtIndex
157
+ });
158
+ }
159
+ }
160
+ };
161
+
162
+ //#endregion
163
+ //#region src/utils/createPsbtOptions/createPsbtOptions.ts
164
+ /**
165
+ * This method will create the psbt sign options for the given request
166
+ * It will validate the psbt against the signature data provided in the request
167
+ * It will return the psbt sign options with the toSignInputs added if the signature data is provided
168
+ */
169
+ const createPsbtOptions = ({ psbt, request }) => {
170
+ const psbtSignOptions = { autoFinalized: false };
171
+ if (!request.signature) return psbtSignOptions;
172
+ validatePsbt({
173
+ allowedSigHashTypes: request.allowedSighash,
174
+ psbt,
175
+ signatureData: request.signature
176
+ });
177
+ const toSignInputs = [];
178
+ for (const signature of request.signature) if (signature.signingIndexes?.length) for (const index of signature.signingIndexes) toSignInputs.push({
179
+ address: signature.address,
180
+ disableAddressValidation: signature.disableAddressValidation,
181
+ index,
182
+ sighashTypes: request.allowedSighash
183
+ });
184
+ psbtSignOptions.toSignInputs = toSignInputs;
185
+ return psbtSignOptions;
186
+ };
187
+
188
+ //#endregion
189
+ //#region src/utils/getNetworkIdFromNetworkName/getNetworkIdFromNetworkName.ts
190
+ const getNetworkIdFromNetworkName = ({ networkName }, client) => {
191
+ return { networkId: (0, _dynamic_labs_sdk_client.getNetworksData)(client).filter((data) => data.chain === "BTC").find((data) => data.cluster === networkName)?.networkId ?? "1" };
192
+ };
193
+
194
+ //#endregion
195
+ //#region src/injected/utils/binance/createBinanceBitcoinWalletProvider/createBinanceBitcoinWalletProvider.ts
196
+ const BINANCE_METADATA = {
197
+ displayName: "Binance Wallet",
198
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#onekey`
199
+ };
200
+ const createBinanceBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
201
+ const chain = "BTC";
202
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
203
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
204
+ chain,
205
+ displayName: BINANCE_METADATA.displayName,
206
+ walletProviderType
207
+ });
208
+ const connect = async () => {
209
+ return { addresses: [{
210
+ address: (await injectedProvider.requestAccounts())[0],
211
+ publicKey: await injectedProvider.getPublicKey()
212
+ }] };
213
+ };
214
+ const getActiveNetworkId = async () => {
215
+ return getNetworkIdFromNetworkName({ networkName: await injectedProvider.getNetwork() }, dynamicClient);
216
+ };
217
+ const getConnectedAddresses = async () => {
218
+ return { addresses: await injectedProvider.getAccounts() };
219
+ };
220
+ const signMessage = async ({ message, walletAccount, protocol }) => {
221
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
222
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
223
+ return { signature: await injectedProvider.signMessage(message, protocol) };
224
+ };
225
+ const signPsbt = async ({ request, walletAccount }) => {
226
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
227
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
228
+ const psbtOptions = createPsbtOptions({
229
+ psbt: psbtFromBase64,
230
+ request
231
+ });
232
+ const signedPsbtHex = await injectedProvider.signPsbt(psbtFromBase64.toHex(), {
233
+ autoFinalized: false,
234
+ toSignInputs: psbtOptions.toSignInputs || []
235
+ });
236
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64() };
237
+ };
238
+ const signPsbts = async ({ requests, walletAccount }) => {
239
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
240
+ const signedPsbts = [];
241
+ for (const request of requests) {
242
+ const signedPsbtResponse = await signPsbt({
243
+ request,
244
+ walletAccount
245
+ });
246
+ if (signedPsbtResponse) signedPsbts.push(signedPsbtResponse.signedPsbt);
247
+ }
248
+ return { signedPsbts };
249
+ };
250
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
251
+ removeEventListeners: () => {
252
+ injectedProvider?.removeAllListeners();
253
+ },
254
+ setupEventListeners: ({ handleAccountsChanged, handleNetworkChanged }) => {
255
+ injectedProvider?.on("accountsChanged", (addresses) => {
256
+ handleAccountsChanged({ addresses });
257
+ });
258
+ injectedProvider?.on("networkChanged", (network) => {
259
+ handleNetworkChanged({ networkId: network });
260
+ });
261
+ },
262
+ supportedEvents: ["accountsChanged", "networkChanged"]
263
+ });
264
+ const terminate = async () => {
265
+ cleanupEventEmitter();
266
+ };
267
+ return {
268
+ chain,
269
+ connect,
270
+ get events() {
271
+ return getEventEmitter();
272
+ },
273
+ getActiveNetworkId,
274
+ getConnectedAddresses,
275
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(BINANCE_METADATA.displayName),
276
+ key,
277
+ metadata: BINANCE_METADATA,
278
+ signMessage,
279
+ signPsbt,
280
+ signPsbts,
281
+ terminate,
282
+ walletProviderType
283
+ };
284
+ };
285
+
286
+ //#endregion
287
+ //#region src/injected/utils/binance/getBinanceBitcoinInjectedProvider/getBinanceBitcoinInjectedProvider.ts
288
+ const BINANCE_BITCOIN_PROVIDER_LOCATOR = "binancew3w.bitcoin";
289
+ const getBinanceBitcoinInjectedProvider = () => {
290
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(BINANCE_BITCOIN_PROVIDER_LOCATOR);
291
+ };
292
+
293
+ //#endregion
294
+ //#region src/injected/utils/unisat/createUnisatWalletProvider/createUnisatWalletProvider.ts
295
+ const UNISAT_METADATA = {
296
+ displayName: "UniSat",
297
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#unisat`
298
+ };
299
+ const createUnisatWalletProvider = ({ dynamicClient, injectedProvider }) => {
300
+ const chain = "BTC";
301
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
302
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
303
+ chain,
304
+ displayName: UNISAT_METADATA.displayName,
305
+ walletProviderType
306
+ });
307
+ const connect = async () => {
308
+ return { addresses: (await injectedProvider.requestAccounts()).map((address$1) => ({ address: address$1 })) };
309
+ };
310
+ const disconnect = async () => {
311
+ return injectedProvider.disconnect();
312
+ };
313
+ const getActiveNetworkId = async () => {
314
+ const chain$1 = await injectedProvider.getChain();
315
+ let networkName = "mainnet";
316
+ if (chain$1.enum === "BITCOIN_TESTNET") networkName = "testnet";
317
+ else if (chain$1.enum === "BITCOIN_SIGNET") networkName = "signet";
318
+ return getNetworkIdFromNetworkName({ networkName }, dynamicClient);
319
+ };
320
+ const getConnectedAddresses = async () => {
321
+ return { addresses: await injectedProvider.getAccounts() };
322
+ };
323
+ const sendBitcoin = async ({ transaction, walletAccount }) => {
324
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
325
+ return { transactionId: await injectedProvider.sendBitcoin(transaction.recipientAddress, Number(transaction.amount)) };
326
+ };
327
+ const signMessage = async ({ message, walletAccount, protocol }) => {
328
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
329
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
330
+ return { signature: await injectedProvider.signMessage(message, protocol) };
331
+ };
332
+ const signPsbt = async ({ request, walletAccount }) => {
333
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
334
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
335
+ const signedPsbtHex = await injectedProvider.signPsbt(psbtFromBase64.toHex(), createPsbtOptions({
336
+ psbt: psbtFromBase64,
337
+ request
338
+ }));
339
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64() };
340
+ };
341
+ const signPsbts = async ({ requests, walletAccount }) => {
342
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
343
+ const psbtHexs = [];
344
+ const psbtOptions = [];
345
+ for (const request of requests) {
346
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
347
+ psbtHexs.push(psbtFromBase64.toHex());
348
+ psbtOptions.push(createPsbtOptions({
349
+ psbt: psbtFromBase64,
350
+ request
351
+ }));
352
+ }
353
+ return { signedPsbts: (await injectedProvider.signPsbts(psbtHexs, psbtOptions)).map((signedPsbtHex) => bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64()) };
354
+ };
355
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
356
+ removeEventListeners: () => {
357
+ injectedProvider?.removeAllListeners();
358
+ },
359
+ setupEventListeners: ({ handleAccountsChanged, handleNetworkChanged }) => {
360
+ injectedProvider?.on("accountsChanged", (addresses) => {
361
+ handleAccountsChanged({ addresses });
362
+ });
363
+ injectedProvider?.on("networkChanged", (network) => {
364
+ handleNetworkChanged({ networkId: network });
365
+ });
366
+ },
367
+ supportedEvents: ["accountsChanged", "networkChanged"]
368
+ });
369
+ const terminate = async () => {
370
+ cleanupEventEmitter();
371
+ };
372
+ return {
373
+ chain,
374
+ connect,
375
+ disconnect,
376
+ get events() {
377
+ return getEventEmitter();
378
+ },
379
+ getActiveNetworkId,
380
+ getConnectedAddresses,
381
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(UNISAT_METADATA.displayName),
382
+ key,
383
+ metadata: UNISAT_METADATA,
384
+ sendBitcoin,
385
+ signMessage,
386
+ signPsbt,
387
+ signPsbts,
388
+ terminate,
389
+ walletProviderType
390
+ };
391
+ };
392
+
393
+ //#endregion
394
+ //#region src/injected/utils/bitget/createBitgetBitcoinWalletProvider/createBitgetBitcoinWalletProvider.ts
395
+ const BITGET_METADATA = {
396
+ displayName: "Bitget Wallet",
397
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#bitgetwallet`
398
+ };
399
+ const createBitgetBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
400
+ const unisatWalletProvider = createUnisatWalletProvider({
401
+ dynamicClient,
402
+ injectedProvider
403
+ });
404
+ return {
405
+ ...unisatWalletProvider,
406
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(BITGET_METADATA.displayName),
407
+ key: (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
408
+ chain: unisatWalletProvider.chain,
409
+ displayName: BITGET_METADATA.displayName,
410
+ walletProviderType: unisatWalletProvider.walletProviderType
411
+ }),
412
+ metadata: BITGET_METADATA
413
+ };
414
+ };
415
+
416
+ //#endregion
417
+ //#region src/injected/utils/bitget/getBitgetBitcoinInjectedProvider/getBitgetBitcoinInjectedProvider.ts
418
+ const BITGET_BITCOIN_PROVIDER_LOCATOR = "bitkeep.unisat";
419
+ const getBitgetBitcoinInjectedProvider = () => {
420
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(BITGET_BITCOIN_PROVIDER_LOCATOR);
421
+ };
422
+
423
+ //#endregion
424
+ //#region src/utils/convertNetworkIdForPsbt/convertNetworkIdForPsbt.ts
425
+ const convertNetworkIdForPsbt = (networkId) => {
426
+ if (networkId === "1") return bitcoinjs_lib.networks.bitcoin;
427
+ if (networkId === "2" || networkId === "3") return bitcoinjs_lib.networks.testnet;
428
+ };
429
+
430
+ //#endregion
431
+ //#region src/injected/utils/leather/convertNetworkIdToLeatherNetworkName/convertNetworkIdToLeatherNetworkName.ts
432
+ const convertNetworkIdToLeatherNetworkName = (networkId) => {
433
+ if (networkId === "1") return "mainnet";
434
+ if (networkId === "2") return "testnet";
435
+ if (networkId === "3") return "signet";
436
+ };
437
+
438
+ //#endregion
439
+ //#region src/injected/utils/leather/createLeatherBitcoinWalletProvider/createLeatherBitcoinWalletProvider.ts
440
+ const LEATHER_METADATA = {
441
+ displayName: "Leather",
442
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#leather`
443
+ };
444
+ const createLeatherBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
445
+ const chain = "BTC";
446
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
447
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
448
+ chain,
449
+ displayName: LEATHER_METADATA.displayName,
450
+ walletProviderType
451
+ });
452
+ const getNetworkPayload = async () => {
453
+ const { networkId } = await getActiveNetworkId();
454
+ return {
455
+ networkId,
456
+ networkName: convertNetworkIdToLeatherNetworkName(networkId)
457
+ };
458
+ };
459
+ const connect = async () => {
460
+ const connectedAddresses = (await injectedProvider.request("getAddresses").catch(({ error }) => {
461
+ throw error;
462
+ })).result.addresses;
463
+ const addresses = [];
464
+ const ordinalsAddress = connectedAddresses?.find((address$1) => address$1.type === "p2tr");
465
+ if (ordinalsAddress) addresses.push({
466
+ address: ordinalsAddress.address,
467
+ publicKey: ordinalsAddress.publicKey,
468
+ type: "ordinals"
469
+ });
470
+ const paymentAddress = connectedAddresses?.find((address$1) => address$1.type === "p2wpkh");
471
+ if (paymentAddress) addresses.push({
472
+ address: paymentAddress.address,
473
+ publicKey: paymentAddress.publicKey,
474
+ type: "payment"
475
+ });
476
+ return { addresses };
477
+ };
478
+ const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
479
+ client: dynamicClient,
480
+ walletProviderKey: key
481
+ });
482
+ const getConnectedAddresses = async () => {
483
+ return { addresses: (await connect()).addresses.map((address$1) => address$1.address) };
484
+ };
485
+ const sendBitcoin = async ({ transaction }) => {
486
+ const { networkName } = await getNetworkPayload();
487
+ return { transactionId: (await injectedProvider.request("sendTransfer", {
488
+ account: 0,
489
+ address: transaction.recipientAddress,
490
+ amount: transaction.amount.toString(),
491
+ network: networkName ?? "mainnet"
492
+ }).catch(({ error }) => {
493
+ throw error;
494
+ })).result.txid };
495
+ };
496
+ const signMessage = async ({ message, walletAccount, addressType }) => {
497
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
498
+ let paymentType = "p2tr";
499
+ if (addressType === "payment") paymentType = "p2wpkh";
500
+ const { networkName } = await getNetworkPayload();
501
+ return { signature: (await injectedProvider.request("signMessage", {
502
+ message,
503
+ network: networkName,
504
+ paymentType
505
+ }).catch(({ error }) => {
506
+ throw error;
507
+ })).result.signature };
508
+ };
509
+ const signPsbt = async ({ request }) => {
510
+ const { networkId, networkName } = await getNetworkPayload();
511
+ const psbtNetwork = convertNetworkIdForPsbt(networkId);
512
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64, { network: psbtNetwork });
513
+ const signAtIndex = request.signature?.flatMap((sig) => sig.signingIndexes).filter(Number.isInteger);
514
+ const signedPsbtHex = (await injectedProvider.request("signPsbt", {
515
+ account: 0,
516
+ allowedSighash: request.allowedSighash,
517
+ broadcast: false,
518
+ hex: psbtFromBase64.toHex(),
519
+ network: networkName ?? "mainnet",
520
+ signAtIndex
521
+ }).catch(({ error }) => {
522
+ throw error;
523
+ })).result.hex;
524
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex, { network: psbtNetwork }).toBase64() };
525
+ };
526
+ const signPsbts = async ({ requests, walletAccount }) => {
527
+ const signedPsbts = [];
528
+ for (const request of requests) {
529
+ const signedPsbtResponse = await signPsbt({
530
+ request,
531
+ walletAccount
532
+ });
533
+ if (signedPsbtResponse) signedPsbts.push(signedPsbtResponse.signedPsbt);
534
+ }
535
+ return { signedPsbts };
536
+ };
537
+ return {
538
+ chain,
539
+ connect,
540
+ getActiveNetworkId,
541
+ getConnectedAddresses,
542
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(LEATHER_METADATA.displayName),
543
+ key,
544
+ metadata: LEATHER_METADATA,
545
+ sendBitcoin,
546
+ signMessage,
547
+ signPsbt,
548
+ signPsbts,
549
+ walletProviderType
550
+ };
551
+ };
552
+
553
+ //#endregion
554
+ //#region src/injected/utils/leather/getLeatherBitcoinInjectedProvider/getLeatherBitcoinInjectedProvider.ts
555
+ const LEATHER_BITCOIN_PROVIDER_LOCATOR = "LeatherProvider";
556
+ const getLeatherBitcoinInjectedProvider = () => {
557
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(LEATHER_BITCOIN_PROVIDER_LOCATOR);
558
+ };
559
+
560
+ //#endregion
561
+ //#region src/utils/convertNetworkIdToSatsConnectNetworkType/convertNetworkIdToSatsConnectNetworkType.ts
562
+ const convertNetworkIdToSatsConnectNetworkType = (networkId) => {
563
+ if (networkId === "2") return sats_connect.BitcoinNetworkType.Testnet;
564
+ if (networkId === "3") return sats_connect.BitcoinNetworkType.Signet;
565
+ return sats_connect.BitcoinNetworkType.Mainnet;
566
+ };
567
+
568
+ //#endregion
569
+ //#region src/utils/getPsbtInputsToSignForSatsConnect/getPsbtInputsToSignForSatsConnect.ts
570
+ /**
571
+ * This method will create the psbt sign options for SatsConnect for the given request
572
+ * It will validate the psbt against the signature data provided in the request
573
+ * It will return the inputs to sign if the signature data is provided
574
+ */
575
+ const getPsbtInputsToSignForSatsConnect = ({ psbt, request, isLegacySatsConnect }) => {
576
+ if (!request.signature) return [];
577
+ validatePsbt({
578
+ allowedSigHashTypes: request.allowedSighash,
579
+ psbt,
580
+ signatureData: request.signature
581
+ });
582
+ const inputsToSign = [];
583
+ for (const signature of request.signature) if (signature.signingIndexes?.length) for (const index of signature.signingIndexes) inputsToSign.push({
584
+ address: signature.address,
585
+ sigHash: isLegacySatsConnect ? getSigHashType({ input: psbt.data.inputs[index] }) : request.allowedSighash[0],
586
+ signingIndexes: [index]
587
+ });
588
+ return inputsToSign;
589
+ };
590
+
591
+ //#endregion
592
+ //#region src/utils/getSatsConnectSigningProtocol/getSatsConnectSigningProtocol.ts
593
+ const getSatsConnectSigningProtocol = (protocol) => {
594
+ if (!protocol) return;
595
+ return protocol === "ecdsa" ? sats_connect.MessageSigningProtocols.ECDSA : sats_connect.MessageSigningProtocols.BIP322;
596
+ };
597
+
598
+ //#endregion
599
+ //#region src/utils/parseBitcoinConnectionResult/parseBitcoinConnectionResult.ts
600
+ const parseBitcoinConnectionResult = ({ connectedAddresses }) => {
601
+ const addresses = connectedAddresses.filter((address$1) => address$1.purpose === "ordinals" || address$1.purpose === "payment").map((account) => ({
602
+ address: account.address,
603
+ publicKey: account.publicKey,
604
+ type: account.purpose === "payment" ? "payment" : "ordinals"
605
+ }));
606
+ addresses.sort((a) => a.type === "ordinals" ? -1 : 1);
607
+ return { addresses };
608
+ };
609
+
610
+ //#endregion
611
+ //#region src/injected/utils/magicEden/createMagicEdenBitcoinWalletProvider/createMagicEdenBitcoinWalletProvider.ts
612
+ const MAGIC_EDEN_METADATA = {
613
+ displayName: "Magic Eden",
614
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#magiceden`
615
+ };
616
+ const createMagicEdenBitcoinWalletProvider = ({ dynamicClient, satsConnectProvider }) => {
617
+ const chain = "BTC";
618
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
619
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
620
+ chain,
621
+ displayName: MAGIC_EDEN_METADATA.displayName,
622
+ walletProviderType
623
+ });
624
+ const getNetworkPayload = async () => {
625
+ return { network: { type: convertNetworkIdToSatsConnectNetworkType((await getActiveNetworkId()).networkId) } };
626
+ };
627
+ const connect = async () => {
628
+ const { network } = await getNetworkPayload();
629
+ return new Promise((resolve, reject) => {
630
+ (0, sats_connect.getAddress)({
631
+ getProvider: async () => satsConnectProvider,
632
+ onCancel: () => {
633
+ reject(new _dynamic_labs_sdk_client.UserRejectedError({ action: "connect" }));
634
+ },
635
+ onFinish: async (response) => {
636
+ const { addresses: connectedAddresses } = response;
637
+ const { addresses } = parseBitcoinConnectionResult({ connectedAddresses });
638
+ resolve({ addresses });
639
+ },
640
+ payload: {
641
+ message: "Address for receiving Ordinals and payments",
642
+ network,
643
+ purposes: [sats_connect.AddressPurpose.Ordinals, sats_connect.AddressPurpose.Payment]
644
+ }
645
+ });
646
+ });
647
+ };
648
+ const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
649
+ client: dynamicClient,
650
+ walletProviderKey: key
651
+ });
652
+ const getConnectedAddresses = async () => {
653
+ const { addresses } = await connect();
654
+ return { addresses: addresses.map((address$1) => address$1.address) };
655
+ };
656
+ const sendBitcoin = async ({ transaction, walletAccount }) => {
657
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
658
+ const senderAddress = (0, _dynamic_labs_sdk_client.getWalletAccountAddressByType)({
659
+ type: "payment",
660
+ walletAccount
661
+ }) ?? walletAccount.address;
662
+ const { network } = await getNetworkPayload();
663
+ return new Promise((resolve, reject) => {
664
+ (0, sats_connect.sendBtcTransaction)({
665
+ getProvider: async () => satsConnectProvider,
666
+ onCancel: () => {
667
+ reject(new _dynamic_labs_sdk_client.UserRejectedError({ action: "sendBitcoin" }));
668
+ },
669
+ onFinish: (response) => {
670
+ resolve({ transactionId: response });
671
+ },
672
+ payload: {
673
+ network,
674
+ recipients: [{
675
+ address: transaction.recipientAddress,
676
+ amountSats: BigInt(transaction.amount)
677
+ }],
678
+ senderAddress
679
+ }
680
+ });
681
+ });
682
+ };
683
+ const signMessage = async ({ message, walletAccount, protocol, addressType }) => {
684
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
685
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
686
+ const { network } = await getNetworkPayload();
687
+ let addressToSignWith = walletAccount.address;
688
+ if (addressType) addressToSignWith = (0, _dynamic_labs_sdk_client.getWalletAccountAddressByType)({
689
+ type: addressType,
690
+ walletAccount
691
+ }) ?? addressToSignWith;
692
+ return new Promise((resolve, reject) => {
693
+ (0, sats_connect.signMessage)({
694
+ getProvider: async () => satsConnectProvider,
695
+ onCancel: () => {
696
+ reject(new _dynamic_labs_sdk_client.UserRejectedError({ action: "signMessage" }));
697
+ },
698
+ onFinish: async (response) => {
699
+ resolve({ signature: response });
700
+ },
701
+ payload: {
702
+ address: addressToSignWith,
703
+ message,
704
+ network,
705
+ protocol: getSatsConnectSigningProtocol(protocol)
706
+ }
707
+ });
708
+ });
709
+ };
710
+ const signPsbt = async ({ request, walletAccount }) => {
711
+ if (!request.allowedSighash.length) throw new InvalidPsbtError("allowedSighash cannot be an empty array");
712
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
713
+ const network = convertNetworkIdForPsbt((await getActiveNetworkId()).networkId);
714
+ const { network: networkPayload } = await getNetworkPayload();
715
+ const inputsToSign = getPsbtInputsToSignForSatsConnect({
716
+ isLegacySatsConnect: true,
717
+ psbt: bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64, { network }),
718
+ request
719
+ });
720
+ return new Promise((resolve, reject) => {
721
+ (0, sats_connect.signTransaction)({
722
+ getProvider: async () => satsConnectProvider,
723
+ onCancel: () => {
724
+ reject(new _dynamic_labs_sdk_client.UserRejectedError({ action: "signPsbt" }));
725
+ },
726
+ onFinish: (response) => {
727
+ resolve({ signedPsbt: response.psbtBase64 });
728
+ },
729
+ payload: {
730
+ broadcast: false,
731
+ inputsToSign,
732
+ message: "Sign Pbst",
733
+ network: networkPayload,
734
+ psbtBase64: request.unsignedPsbtBase64
735
+ }
736
+ });
737
+ });
738
+ };
739
+ const signPsbts = async ({ requests, walletAccount }) => {
740
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
741
+ const network = convertNetworkIdForPsbt((await getActiveNetworkId()).networkId);
742
+ const { network: networkPayload } = await getNetworkPayload();
743
+ const psbtsToSign = [];
744
+ for (const request$1 of requests) {
745
+ const inputsToSign = getPsbtInputsToSignForSatsConnect({
746
+ isLegacySatsConnect: true,
747
+ psbt: bitcoinjs_lib.Psbt.fromBase64(request$1.unsignedPsbtBase64, { network }),
748
+ request: request$1
749
+ });
750
+ psbtsToSign.push({
751
+ inputsToSign,
752
+ psbtBase64: request$1.unsignedPsbtBase64
753
+ });
754
+ }
755
+ const request = (0, jsontokens.createUnsecuredToken)({
756
+ message: "Sign Pbsts",
757
+ network: networkPayload,
758
+ psbts: psbtsToSign
759
+ });
760
+ return { signedPsbts: (await satsConnectProvider.signMultipleTransactions(request)).map((response) => response.psbtBase64) };
761
+ };
762
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
763
+ removeEventListeners: ({ setupReturnValue }) => {
764
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(setupReturnValue, "Setup return value not defined");
765
+ setupReturnValue.removeAccountChangeListener();
766
+ },
767
+ setupEventListeners: ({ handleAccountsChanged }) => {
768
+ return { removeAccountChangeListener: (0, sats_connect.addListener)("accountsChanged", (accounts) => {
769
+ if (!accounts) return;
770
+ handleAccountsChanged({ addresses: accounts.map((account) => account.address) });
771
+ }) };
772
+ },
773
+ supportedEvents: ["accountsChanged"]
774
+ });
775
+ const terminate = async () => {
776
+ cleanupEventEmitter();
777
+ };
778
+ return {
779
+ chain,
780
+ connect,
781
+ get events() {
782
+ return getEventEmitter();
783
+ },
784
+ getActiveNetworkId,
785
+ getConnectedAddresses,
786
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(MAGIC_EDEN_METADATA.displayName),
787
+ key,
788
+ metadata: MAGIC_EDEN_METADATA,
789
+ sendBitcoin,
790
+ signMessage,
791
+ signPsbt,
792
+ signPsbts,
793
+ terminate,
794
+ walletProviderType
795
+ };
796
+ };
797
+
798
+ //#endregion
799
+ //#region src/injected/utils/magicEden/getMagicEdenInjectedProvider/getMagicEdenInjectedProvider.ts
800
+ const MAGIC_EDEN_BITCOIN_PROVIDER_LOCATOR = "magicEden.bitcoin";
801
+ const getMagicEdenInjectedProvider = () => {
802
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(MAGIC_EDEN_BITCOIN_PROVIDER_LOCATOR);
803
+ };
804
+
805
+ //#endregion
806
+ //#region src/injected/utils/okx/createOkxBitcoinWalletProvider/createOkxBitcoinWalletProvider.ts
807
+ const OKX_METADATA = {
808
+ displayName: "OKX Wallet",
809
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#okx`
810
+ };
811
+ const createOkxBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
812
+ const chain = "BTC";
813
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
814
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
815
+ chain,
816
+ displayName: OKX_METADATA.displayName,
817
+ walletProviderType
818
+ });
819
+ const connect = async () => {
820
+ const { address: address$1, publicKey } = await injectedProvider.connect();
821
+ return { addresses: [{
822
+ address: address$1,
823
+ publicKey
824
+ }] };
825
+ };
826
+ const getActiveNetworkId = async () => {
827
+ return getNetworkIdFromNetworkName({ networkName: await injectedProvider.getNetwork() }, dynamicClient);
828
+ };
829
+ const getConnectedAddresses = async () => {
830
+ return { addresses: await injectedProvider.getAccounts() };
831
+ };
832
+ const sendBitcoin = async ({ transaction, walletAccount }) => {
833
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
834
+ return { transactionId: await injectedProvider.sendBitcoin(transaction.recipientAddress, transaction.amount.toString()) };
835
+ };
836
+ const signMessage = async ({ message, walletAccount, protocol }) => {
837
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
838
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
839
+ return { signature: await injectedProvider.signMessage(message, protocol) };
840
+ };
841
+ const signPsbt = async ({ request, walletAccount }) => {
842
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
843
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
844
+ const signedPsbtHex = await injectedProvider.signPsbt(psbtFromBase64.toHex(), createPsbtOptions({
845
+ psbt: psbtFromBase64,
846
+ request
847
+ }));
848
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64() };
849
+ };
850
+ const signPsbts = async ({ requests, walletAccount }) => {
851
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
852
+ const psbtHexs = [];
853
+ const psbtOptions = [];
854
+ for (const request of requests) {
855
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
856
+ psbtHexs.push(psbtFromBase64.toHex());
857
+ psbtOptions.push(createPsbtOptions({
858
+ psbt: psbtFromBase64,
859
+ request
860
+ }));
861
+ }
862
+ return { signedPsbts: (await injectedProvider.signPsbts(psbtHexs, psbtOptions)).map((signedPsbtHex) => bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64()) };
863
+ };
864
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
865
+ removeEventListeners: () => {
866
+ injectedProvider?.removeAllListeners();
867
+ },
868
+ setupEventListeners: ({ handleAccountsChanged }) => {
869
+ injectedProvider?.on("accountsChanged", (addresses) => {
870
+ handleAccountsChanged({ addresses });
871
+ });
872
+ },
873
+ supportedEvents: ["accountsChanged"]
874
+ });
875
+ const terminate = async () => {
876
+ cleanupEventEmitter();
877
+ };
878
+ return {
879
+ chain,
880
+ connect,
881
+ get events() {
882
+ return getEventEmitter();
883
+ },
884
+ getActiveNetworkId,
885
+ getConnectedAddresses,
886
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(OKX_METADATA.displayName),
887
+ key,
888
+ metadata: OKX_METADATA,
889
+ sendBitcoin,
890
+ signMessage,
891
+ signPsbt,
892
+ signPsbts,
893
+ terminate,
894
+ walletProviderType
895
+ };
896
+ };
897
+
898
+ //#endregion
899
+ //#region src/injected/utils/okx/getOkxBitcoinInjectedProvider/getOkxBitcoinInjectedProvider.ts
900
+ const OKX_BITCOIN_PROVIDER_LOCATOR = "okxwallet.bitcoin";
901
+ const getOkxBitcoinInjectedProvider = () => {
902
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(OKX_BITCOIN_PROVIDER_LOCATOR);
903
+ };
904
+
905
+ //#endregion
906
+ //#region src/injected/utils/oneKey/createOneKeyBitcoinWalletProvider/createOneKeyBitcoinWalletProvider.ts
907
+ const ONEKEY_METADATA = {
908
+ displayName: "OneKey",
909
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#onekey`
910
+ };
911
+ const createOneKeyBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
912
+ const chain = "BTC";
913
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
914
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
915
+ chain,
916
+ displayName: ONEKEY_METADATA.displayName,
917
+ walletProviderType
918
+ });
919
+ const connect = async () => {
920
+ return { addresses: [{
921
+ address: (await injectedProvider.requestAccounts())[0],
922
+ publicKey: await injectedProvider.getPublicKey()
923
+ }] };
924
+ };
925
+ const getActiveNetworkId = async () => {
926
+ return getNetworkIdFromNetworkName({ networkName: await injectedProvider.getNetwork() }, dynamicClient);
927
+ };
928
+ const getConnectedAddresses = async () => {
929
+ return { addresses: await injectedProvider.getAccounts() };
930
+ };
931
+ const sendBitcoin = async ({ transaction, walletAccount }) => {
932
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
933
+ return { transactionId: await injectedProvider.sendBitcoin(transaction.recipientAddress, transaction.amount.toString()) };
934
+ };
935
+ const signMessage = async ({ message, walletAccount, protocol }) => {
936
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
937
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
938
+ return { signature: await injectedProvider.signMessage(message, protocol) };
939
+ };
940
+ const signPsbt = async ({ request, walletAccount }) => {
941
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
942
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
943
+ const signedPsbtHex = await injectedProvider.signPsbt(psbtFromBase64.toHex(), { autoFinalized: false });
944
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64() };
945
+ };
946
+ const signPsbts = async ({ requests, walletAccount }) => {
947
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
948
+ const psbtHexs = [];
949
+ for (const request of requests) {
950
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
951
+ psbtHexs.push(psbtFromBase64.toHex());
952
+ }
953
+ return { signedPsbts: (await injectedProvider.signPsbts(psbtHexs, { autoFinalized: false })).map((signedPsbtHex) => bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64()) };
954
+ };
955
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
956
+ removeEventListeners: () => {
957
+ injectedProvider?.removeAllListeners();
958
+ },
959
+ setupEventListeners: ({ handleAccountsChanged, handleNetworkChanged }) => {
960
+ injectedProvider?.on("accountsChanged", (addresses) => {
961
+ handleAccountsChanged({ addresses });
962
+ });
963
+ injectedProvider?.on("networkChanged", (network) => {
964
+ handleNetworkChanged({ networkId: network });
965
+ });
966
+ },
967
+ supportedEvents: ["accountsChanged", "networkChanged"]
968
+ });
969
+ const terminate = async () => {
970
+ cleanupEventEmitter();
971
+ };
972
+ return {
973
+ chain,
974
+ connect,
975
+ get events() {
976
+ return getEventEmitter();
977
+ },
978
+ getActiveNetworkId,
979
+ getConnectedAddresses,
980
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(ONEKEY_METADATA.displayName),
981
+ key,
982
+ metadata: ONEKEY_METADATA,
983
+ sendBitcoin,
984
+ signMessage,
985
+ signPsbt,
986
+ signPsbts,
987
+ terminate,
988
+ walletProviderType
989
+ };
990
+ };
991
+
992
+ //#endregion
993
+ //#region src/injected/utils/oneKey/getOneKeyBitcoinInjectedProvider/getOneKeyBitcoinInjectedProvider.ts
994
+ const ONEKEY_BITCOIN_PROVIDER_LOCATOR = "$onekey.btc";
995
+ const getOneKeyBitcoinInjectedProvider = () => {
996
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(ONEKEY_BITCOIN_PROVIDER_LOCATOR);
997
+ };
998
+
999
+ //#endregion
1000
+ //#region src/injected/utils/oyl/createOylBitcoinWalletProvider/createOylBitcoinWalletProvider.ts
1001
+ const OYL_METADATA = {
1002
+ displayName: "Oyl Wallet",
1003
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#oyl`
1004
+ };
1005
+ const createOylBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
1006
+ const chain = "BTC";
1007
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
1008
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
1009
+ chain,
1010
+ displayName: OYL_METADATA.displayName,
1011
+ walletProviderType
1012
+ });
1013
+ const connect = async () => {
1014
+ const connectedAddresses = await injectedProvider.getAddresses();
1015
+ const addresses = [];
1016
+ const ordinalsAddress = connectedAddresses.taproot;
1017
+ if (ordinalsAddress) addresses.push({
1018
+ address: ordinalsAddress.address,
1019
+ publicKey: ordinalsAddress.publicKey,
1020
+ type: "ordinals"
1021
+ });
1022
+ const paymentAddress = connectedAddresses.nativeSegwit;
1023
+ if (paymentAddress) addresses.push({
1024
+ address: paymentAddress.address,
1025
+ publicKey: paymentAddress.publicKey,
1026
+ type: "payment"
1027
+ });
1028
+ return { addresses };
1029
+ };
1030
+ const getActiveNetworkId = async () => {
1031
+ return getNetworkIdFromNetworkName({ networkName: await injectedProvider.getNetwork() }, dynamicClient);
1032
+ };
1033
+ const getConnectedAddresses = async () => {
1034
+ if (!await injectedProvider.isConnected()) return { addresses: [] };
1035
+ const { addresses } = await connect();
1036
+ return { addresses: addresses.map((address$1) => address$1.address) };
1037
+ };
1038
+ const signMessage = async ({ message, walletAccount, addressType, protocol }) => {
1039
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
1040
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1041
+ let addressToSignWith = walletAccount.address;
1042
+ if (addressType) addressToSignWith = (0, _dynamic_labs_sdk_client.getWalletAccountAddressByType)({
1043
+ type: addressType,
1044
+ walletAccount
1045
+ }) ?? addressToSignWith;
1046
+ return { signature: (await injectedProvider.signMessage({
1047
+ address: addressToSignWith,
1048
+ message,
1049
+ protocol: protocol === "bip322-simple" ? "bip322" : protocol
1050
+ })).signature };
1051
+ };
1052
+ const signPsbt = async ({ request, walletAccount }) => {
1053
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1054
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
1055
+ const { psbt: signedPsbtHex } = await injectedProvider.signPsbt({
1056
+ broadcast: false,
1057
+ finalize: false,
1058
+ psbt: psbtFromBase64.toHex()
1059
+ });
1060
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromHex(signedPsbtHex).toBase64() };
1061
+ };
1062
+ const signPsbts = async ({ requests, walletAccount }) => {
1063
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1064
+ const signedPsbts = [];
1065
+ for (const request of requests) {
1066
+ const signedPsbtResponse = await signPsbt({
1067
+ request,
1068
+ walletAccount
1069
+ });
1070
+ if (signedPsbtResponse) signedPsbts.push(signedPsbtResponse.signedPsbt);
1071
+ }
1072
+ return { signedPsbts };
1073
+ };
1074
+ return {
1075
+ chain,
1076
+ connect,
1077
+ getActiveNetworkId,
1078
+ getConnectedAddresses,
1079
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(OYL_METADATA.displayName),
1080
+ key,
1081
+ metadata: OYL_METADATA,
1082
+ signMessage,
1083
+ signPsbt,
1084
+ signPsbts,
1085
+ walletProviderType
1086
+ };
1087
+ };
1088
+
1089
+ //#endregion
1090
+ //#region src/injected/utils/oyl/getOylBitcoinInjectedProvider/getOylBitcoinInjectedProvider.ts
1091
+ const OYL_BITCOIN_PROVIDER_LOCATOR = "oyl";
1092
+ const getOylBitcoinInjectedProvider = () => {
1093
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(OYL_BITCOIN_PROVIDER_LOCATOR);
1094
+ };
1095
+
1096
+ //#endregion
1097
+ //#region src/injected/utils/phantom/createPhantomBitcoinWalletProvider/createPhantomBitcoinWalletProvider.ts
1098
+ const PHANTOM_METADATA = {
1099
+ displayName: "Phantom",
1100
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#phantom`
1101
+ };
1102
+ const createPhantomBitcoinWalletProvider = ({ dynamicClient, injectedProvider }) => {
1103
+ const chain = "BTC";
1104
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
1105
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
1106
+ chain,
1107
+ displayName: PHANTOM_METADATA.displayName,
1108
+ walletProviderType
1109
+ });
1110
+ const connect = async () => {
1111
+ const addresses = (await injectedProvider.requestAccounts()).map((account) => ({
1112
+ address: account.address,
1113
+ publicKey: account.publicKey,
1114
+ type: account.purpose === "payment" ? "payment" : "ordinals"
1115
+ }));
1116
+ addresses.sort((a) => a.type === "ordinals" ? -1 : 1);
1117
+ return { addresses };
1118
+ };
1119
+ const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
1120
+ client: dynamicClient,
1121
+ walletProviderKey: key
1122
+ });
1123
+ const getConnectedAddresses = async () => {
1124
+ const { addresses } = await connect();
1125
+ return { addresses: addresses.map((address$1) => address$1.address) };
1126
+ };
1127
+ const signMessage = async ({ message, walletAccount, addressType }) => {
1128
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
1129
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1130
+ let addressToSignWith = walletAccount.address;
1131
+ if (addressType) addressToSignWith = (0, _dynamic_labs_sdk_client.getWalletAccountAddressByType)({
1132
+ type: addressType,
1133
+ walletAccount
1134
+ }) ?? addressToSignWith;
1135
+ const result = await injectedProvider.signMessage(addressToSignWith, new TextEncoder().encode(message));
1136
+ return { signature: (0, _dynamic_labs_sdk_client_core.getBuffer)().from(result.signature).toString("base64") };
1137
+ };
1138
+ const signPsbt = async ({ request, walletAccount }) => {
1139
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1140
+ const psbtFromBase64 = bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64);
1141
+ const inputsToSign = request.signature?.map((sig) => ({
1142
+ address: sig.address,
1143
+ sigHash: request.allowedSighash[0],
1144
+ signingIndexes: sig.signingIndexes ?? []
1145
+ })) ?? [];
1146
+ const signedPsbt = await injectedProvider.signPSBT(psbtFromBase64.toBuffer(), { inputsToSign });
1147
+ return { signedPsbt: bitcoinjs_lib.Psbt.fromBuffer(signedPsbt).toBase64() };
1148
+ };
1149
+ const signPsbts = async ({ requests, walletAccount }) => {
1150
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1151
+ const signedPsbts = [];
1152
+ for (const request of requests) {
1153
+ const signedPsbtResponse = await signPsbt({
1154
+ request,
1155
+ walletAccount
1156
+ });
1157
+ if (signedPsbtResponse) signedPsbts.push(signedPsbtResponse.signedPsbt);
1158
+ }
1159
+ return { signedPsbts };
1160
+ };
1161
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
1162
+ removeEventListeners: () => {
1163
+ injectedProvider?.removeAllListeners();
1164
+ },
1165
+ setupEventListeners: ({ handleAccountsChanged }) => {
1166
+ injectedProvider?.on("accountsChanged", (accounts) => {
1167
+ handleAccountsChanged({ addresses: accounts.map((account) => account.address) });
1168
+ });
1169
+ },
1170
+ supportedEvents: ["accountsChanged"]
1171
+ });
1172
+ const terminate = async () => {
1173
+ cleanupEventEmitter();
1174
+ };
1175
+ return {
1176
+ chain,
1177
+ connect,
1178
+ get events() {
1179
+ return getEventEmitter();
1180
+ },
1181
+ getActiveNetworkId,
1182
+ getConnectedAddresses,
1183
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(PHANTOM_METADATA.displayName),
1184
+ key,
1185
+ metadata: PHANTOM_METADATA,
1186
+ signMessage,
1187
+ signPsbt,
1188
+ signPsbts,
1189
+ terminate,
1190
+ walletProviderType
1191
+ };
1192
+ };
1193
+
1194
+ //#endregion
1195
+ //#region src/injected/utils/phantom/getPhantomInjectedProvider/getPhantomInjectedProvider.ts
1196
+ const PHANTOM_BITCOIN_PROVIDER_LOCATOR = "phantom.bitcoin";
1197
+ const getPhantomInjectedProvider = () => {
1198
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(PHANTOM_BITCOIN_PROVIDER_LOCATOR);
1199
+ };
1200
+
1201
+ //#endregion
1202
+ //#region src/injected/utils/unisat/getUnisatInjectedProvider/getUnisatInjectedProvider.ts
1203
+ const UNISAT_PROVIDER_LOCATOR = "unisat_wallet";
1204
+ const getUnisatInjectedProvider = () => {
1205
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(UNISAT_PROVIDER_LOCATOR);
1206
+ };
1207
+
1208
+ //#endregion
1209
+ //#region src/utils/signMultipleTransactionsWithSatsConnect/signMultipleTransactionsWithSatsConnect.ts
1210
+ const signMultipleTransactionsWithSatsConnect = async ({ network, psbts, provider }) => {
1211
+ return { signedPsbts: (await new Promise((resolve, reject) => {
1212
+ (0, sats_connect.signMultipleTransactions)({
1213
+ getProvider: () => Promise.resolve(provider),
1214
+ onCancel: () => {
1215
+ reject(new _dynamic_labs_sdk_client.UserRejectedError({ action: "sign psbts" }));
1216
+ },
1217
+ onFinish: (response) => {
1218
+ resolve(response);
1219
+ },
1220
+ payload: {
1221
+ message: "Sign Psbts",
1222
+ network,
1223
+ psbts
1224
+ }
1225
+ });
1226
+ })).map((response) => response.psbtBase64) };
1227
+ };
1228
+
1229
+ //#endregion
1230
+ //#region src/injected/utils/xverse/createXverseBitcoinWalletProvider/createXverseBitcoinWalletProvider.ts
1231
+ const XVERSE_METADATA = {
1232
+ displayName: "Xverse",
1233
+ icon: `${_dynamic_labs_sdk_client_core.DYNAMIC_ICONIC_SPRITE_URL}#xverse`
1234
+ };
1235
+ const createXverseBitcoinWalletProvider = ({ dynamicClient, satsConnectProvider }) => {
1236
+ const chain = "BTC";
1237
+ const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
1238
+ const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
1239
+ chain,
1240
+ displayName: XVERSE_METADATA.displayName,
1241
+ walletProviderType
1242
+ });
1243
+ const requestPermissions = async () => {
1244
+ const response = await (0, sats_connect.request)("wallet_requestPermissions", void 0);
1245
+ if (response.status === "success") return;
1246
+ throw response.error;
1247
+ };
1248
+ const connect = async () => {
1249
+ await requestPermissions();
1250
+ const response = await (0, sats_connect.request)("wallet_connect", null);
1251
+ if (response.status !== "success") throw response.error;
1252
+ const { addresses: connectedAddresses } = response.result;
1253
+ const { addresses } = parseBitcoinConnectionResult({ connectedAddresses });
1254
+ return { addresses };
1255
+ };
1256
+ const disconnect = async () => {
1257
+ await (0, sats_connect.request)("wallet_renouncePermissions", null);
1258
+ };
1259
+ const getActiveNetworkId = async () => {
1260
+ const response = await (0, sats_connect.request)("wallet_getNetwork", null);
1261
+ let networkName = "mainnet";
1262
+ if (response.status === "success") networkName = response.result.bitcoin.name.toLowerCase();
1263
+ return getNetworkIdFromNetworkName({ networkName }, dynamicClient);
1264
+ };
1265
+ const getConnectedAddresses = async () => {
1266
+ const response = await (0, sats_connect.request)("wallet_getAccount", null);
1267
+ if (response.status === "success") return { addresses: response.result.addresses.map((address$1) => address$1.address) };
1268
+ if (response.error.code !== sats_connect.RpcErrorCode.ACCESS_DENIED) throw response.error;
1269
+ return { addresses: [] };
1270
+ };
1271
+ const sendBitcoin = async ({ transaction, walletAccount }) => {
1272
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1273
+ const response = await (0, sats_connect.request)("sendTransfer", { recipients: [{
1274
+ address: transaction.recipientAddress,
1275
+ amount: Number(transaction.amount)
1276
+ }] });
1277
+ if (response.status !== "success") throw response.error;
1278
+ return { transactionId: response.result.txid };
1279
+ };
1280
+ const signMessage = async ({ message, walletAccount, protocol, addressType }) => {
1281
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
1282
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1283
+ let addressToSignWith = walletAccount.address;
1284
+ if (addressType) addressToSignWith = (0, _dynamic_labs_sdk_client.getWalletAccountAddressByType)({
1285
+ type: addressType,
1286
+ walletAccount
1287
+ }) ?? addressToSignWith;
1288
+ const response = await (0, sats_connect.request)("signMessage", {
1289
+ address: addressToSignWith,
1290
+ message,
1291
+ protocol: getSatsConnectSigningProtocol(protocol)
1292
+ });
1293
+ if (response.status !== "success") throw response.error;
1294
+ return { signature: response.result.signature };
1295
+ };
1296
+ const signPsbt = async ({ request, walletAccount }) => {
1297
+ if (!request.allowedSighash.length) throw new InvalidPsbtError("allowedSighash cannot be an empty array");
1298
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1299
+ const network = convertNetworkIdForPsbt((await getActiveNetworkId()).networkId);
1300
+ const inputsToSign = getPsbtInputsToSignForSatsConnect({
1301
+ psbt: bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64, { network }),
1302
+ request
1303
+ });
1304
+ const response = await (0, sats_connect.request)("signPsbt", {
1305
+ broadcast: false,
1306
+ psbt: request.unsignedPsbtBase64,
1307
+ signInputs: inputsToSign.reduce((accum, curr) => {
1308
+ if (!accum[curr.address]) accum[curr.address] = [];
1309
+ accum[curr.address].push(...curr.signingIndexes);
1310
+ return accum;
1311
+ }, {})
1312
+ });
1313
+ if (response.status !== "success") throw response.error;
1314
+ return { signedPsbt: response.result.psbt };
1315
+ };
1316
+ const signPsbts = async ({ requests, walletAccount }) => {
1317
+ await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
1318
+ const activeNetworkId = await getActiveNetworkId();
1319
+ const network = convertNetworkIdForPsbt(activeNetworkId.networkId);
1320
+ const networkType = convertNetworkIdToSatsConnectNetworkType(activeNetworkId.networkId);
1321
+ const psbtsToSign = [];
1322
+ for (const request of requests) {
1323
+ const inputsToSign = getPsbtInputsToSignForSatsConnect({
1324
+ psbt: bitcoinjs_lib.Psbt.fromBase64(request.unsignedPsbtBase64, { network }),
1325
+ request
1326
+ });
1327
+ psbtsToSign.push({
1328
+ inputsToSign,
1329
+ psbtBase64: request.unsignedPsbtBase64
1330
+ });
1331
+ }
1332
+ return { signedPsbts: (await signMultipleTransactionsWithSatsConnect({
1333
+ network: { type: networkType },
1334
+ provider: satsConnectProvider,
1335
+ psbts: psbtsToSign
1336
+ })).signedPsbts };
1337
+ };
1338
+ const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
1339
+ removeEventListeners: ({ setupReturnValue }) => {
1340
+ (0, _dynamic_labs_sdk_client_core.assertDefined)(setupReturnValue, "Setup return value not defined");
1341
+ setupReturnValue.removeAccountChangeListener();
1342
+ setupReturnValue.accountDisconnectedListener();
1343
+ },
1344
+ setupEventListeners: ({ handleAccountsChanged, handleDisconnected }) => {
1345
+ const removeAccountChangeListener = (0, sats_connect.addListener)("accountChange", ({ addresses }) => {
1346
+ if (!addresses) return;
1347
+ handleAccountsChanged({ addresses: addresses.map((address$1) => address$1.address) });
1348
+ });
1349
+ return {
1350
+ accountDisconnectedListener: (0, sats_connect.addListener)("accountDisconnected", () => {
1351
+ handleDisconnected();
1352
+ }),
1353
+ removeAccountChangeListener
1354
+ };
1355
+ },
1356
+ supportedEvents: ["accountsChanged", "disconnected"]
1357
+ });
1358
+ const terminate = async () => {
1359
+ cleanupEventEmitter();
1360
+ };
1361
+ return {
1362
+ chain,
1363
+ connect,
1364
+ disconnect,
1365
+ get events() {
1366
+ return getEventEmitter();
1367
+ },
1368
+ getActiveNetworkId,
1369
+ getConnectedAddresses,
1370
+ groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(XVERSE_METADATA.displayName),
1371
+ key,
1372
+ metadata: XVERSE_METADATA,
1373
+ sendBitcoin,
1374
+ signMessage,
1375
+ signPsbt,
1376
+ signPsbts,
1377
+ terminate,
1378
+ walletProviderType
1379
+ };
1380
+ };
1381
+
1382
+ //#endregion
1383
+ //#region src/injected/utils/xverse/getXverseInjectedProvider/getXverseInjectedProvider.ts
1384
+ const XVERSE_BITCOIN_PROVIDER_LOCATOR = "XverseProviders.BitcoinProvider";
1385
+ const getXverseInjectedProvider = () => {
1386
+ return (0, _dynamic_labs_sdk_client_core.getInjectedProviderFromWindow)(XVERSE_BITCOIN_PROVIDER_LOCATOR);
1387
+ };
1388
+
1389
+ //#endregion
1390
+ //#region src/injected/addBitcoinInjectedWalletsExtension/addBitcoinInjectedWalletsExtension.ts
1391
+ const BITCOIN_INJECTED_WALLETS_EXTENSION_KEY = "bitcoinInjectedWallets";
1392
+ /**
1393
+ * Adds the Bitcoin Injected Wallets extension to the Dynamic client.
1394
+ *
1395
+ * This extension enables integration with many Bitcoin wallets, like MagicEden, Xverse, Unisat, Phantom, and more.
1396
+ *
1397
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1398
+ */
1399
+ const addBitcoinInjectedWalletsExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
1400
+ if ((0, _dynamic_labs_sdk_client_core.hasExtension)({ extensionKey: BITCOIN_INJECTED_WALLETS_EXTENSION_KEY }, client)) return;
1401
+ (0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: BITCOIN_INJECTED_WALLETS_EXTENSION_KEY }, client);
1402
+ registerBitcoinNetworkProviderBuilder(client);
1403
+ const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
1404
+ const injectedWalletProviders = [];
1405
+ const unisatInjectedProvider = getUnisatInjectedProvider();
1406
+ if (unisatInjectedProvider) {
1407
+ const unisatWalletProvider = createUnisatWalletProvider({
1408
+ dynamicClient: client,
1409
+ injectedProvider: unisatInjectedProvider
1410
+ });
1411
+ injectedWalletProviders.push(unisatWalletProvider);
1412
+ }
1413
+ const phantomInjectedProvider = getPhantomInjectedProvider();
1414
+ if (phantomInjectedProvider) {
1415
+ const phantomWalletProvider = createPhantomBitcoinWalletProvider({
1416
+ dynamicClient: client,
1417
+ injectedProvider: phantomInjectedProvider
1418
+ });
1419
+ injectedWalletProviders.push(phantomWalletProvider);
1420
+ }
1421
+ const xverseInjectedProvider = getXverseInjectedProvider();
1422
+ if (xverseInjectedProvider) {
1423
+ const xverseWalletProvider = createXverseBitcoinWalletProvider({
1424
+ dynamicClient: client,
1425
+ satsConnectProvider: xverseInjectedProvider
1426
+ });
1427
+ injectedWalletProviders.push(xverseWalletProvider);
1428
+ }
1429
+ const magicEdenInjectedProvider = getMagicEdenInjectedProvider();
1430
+ if (magicEdenInjectedProvider) {
1431
+ const magicEdenWalletProvider = createMagicEdenBitcoinWalletProvider({
1432
+ dynamicClient: client,
1433
+ satsConnectProvider: magicEdenInjectedProvider
1434
+ });
1435
+ injectedWalletProviders.push(magicEdenWalletProvider);
1436
+ }
1437
+ const okxInjectedProvider = getOkxBitcoinInjectedProvider();
1438
+ if (okxInjectedProvider) {
1439
+ const okxWalletProvider = createOkxBitcoinWalletProvider({
1440
+ dynamicClient: client,
1441
+ injectedProvider: okxInjectedProvider
1442
+ });
1443
+ injectedWalletProviders.push(okxWalletProvider);
1444
+ }
1445
+ const oneKeyInjectedProvider = getOneKeyBitcoinInjectedProvider();
1446
+ if (oneKeyInjectedProvider) {
1447
+ const oneKeyWalletProvider = createOneKeyBitcoinWalletProvider({
1448
+ dynamicClient: client,
1449
+ injectedProvider: oneKeyInjectedProvider
1450
+ });
1451
+ injectedWalletProviders.push(oneKeyWalletProvider);
1452
+ }
1453
+ const bitgetInjectedProvider = getBitgetBitcoinInjectedProvider();
1454
+ if (bitgetInjectedProvider) {
1455
+ const bitgetWalletProvider = createBitgetBitcoinWalletProvider({
1456
+ dynamicClient: client,
1457
+ injectedProvider: bitgetInjectedProvider
1458
+ });
1459
+ injectedWalletProviders.push(bitgetWalletProvider);
1460
+ }
1461
+ const binanceInjectedProvider = getBinanceBitcoinInjectedProvider();
1462
+ if (binanceInjectedProvider) {
1463
+ const binanceWalletProvider = createBinanceBitcoinWalletProvider({
1464
+ dynamicClient: client,
1465
+ injectedProvider: binanceInjectedProvider
1466
+ });
1467
+ injectedWalletProviders.push(binanceWalletProvider);
1468
+ }
1469
+ const oylInjectedProvider = getOylBitcoinInjectedProvider();
1470
+ if (oylInjectedProvider) {
1471
+ const oylWalletProvider = createOylBitcoinWalletProvider({
1472
+ dynamicClient: client,
1473
+ injectedProvider: oylInjectedProvider
1474
+ });
1475
+ injectedWalletProviders.push(oylWalletProvider);
1476
+ }
1477
+ const leatherInjectedProvider = getLeatherBitcoinInjectedProvider();
1478
+ if (leatherInjectedProvider) {
1479
+ const leatherWalletProvider = createLeatherBitcoinWalletProvider({
1480
+ dynamicClient: client,
1481
+ injectedProvider: leatherInjectedProvider
1482
+ });
1483
+ injectedWalletProviders.push(leatherWalletProvider);
1484
+ }
1485
+ injectedWalletProviders.forEach((walletProvider) => {
1486
+ walletProviderRegistry.register({
1487
+ priority: _dynamic_labs_sdk_client_core.WalletProviderPriority.WINDOW_INJECT,
1488
+ walletProvider
1489
+ });
1490
+ });
1491
+ };
1492
+
1493
+ //#endregion
1494
+ Object.defineProperty(exports, 'InvalidPsbtError', {
1495
+ enumerable: true,
1496
+ get: function () {
1497
+ return InvalidPsbtError;
1498
+ }
1499
+ });
1500
+ Object.defineProperty(exports, 'addBitcoinInjectedWalletsExtension', {
1501
+ enumerable: true,
1502
+ get: function () {
1503
+ return addBitcoinInjectedWalletsExtension;
1504
+ }
1505
+ });
1506
+ Object.defineProperty(exports, 'getMempoolApiUrl', {
1507
+ enumerable: true,
1508
+ get: function () {
1509
+ return getMempoolApiUrl;
1510
+ }
1511
+ });
1512
+ Object.defineProperty(exports, 'name', {
1513
+ enumerable: true,
1514
+ get: function () {
1515
+ return name;
1516
+ }
1517
+ });
1518
+ Object.defineProperty(exports, 'version', {
1519
+ enumerable: true,
1520
+ get: function () {
1521
+ return version;
1522
+ }
1523
+ });
1524
+ //# sourceMappingURL=addBitcoinInjectedWalletsExtension-CseEWCFz.cjs.js.map