@bitgo-beta/sdk-core 8.2.1-beta.202 → 8.2.1-beta.2021

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 (732) hide show
  1. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +0 -1
  2. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +3 -3
  4. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  5. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +4 -3
  6. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +1 -0
  7. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  8. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +41 -29
  9. package/dist/src/account-lib/baseCoin/enum.d.ts +58 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +109 -10
  12. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  13. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  14. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  15. package/dist/src/account-lib/baseCoin/iface.d.ts +19 -35
  16. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  17. package/dist/src/account-lib/baseCoin/iface.js +26 -18
  18. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  19. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  20. package/dist/src/account-lib/baseCoin/index.js +8 -5
  21. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +88 -0
  22. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  23. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +154 -0
  24. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +67 -0
  25. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  26. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +144 -0
  27. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  28. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +45 -0
  30. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +164 -0
  31. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  32. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  33. package/dist/src/account-lib/baseCoin/messages/index.d.ts +6 -0
  34. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  35. package/dist/src/account-lib/baseCoin/messages/index.js +22 -0
  36. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
  37. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
  38. package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
  39. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
  40. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
  41. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
  42. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
  43. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
  44. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
  45. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +1 -2
  46. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
  47. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +38 -26
  48. package/dist/src/account-lib/index.js +23 -9
  49. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  50. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  51. package/dist/src/account-lib/mpc/index.js +6 -2
  52. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
  53. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  54. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
  55. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  56. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  57. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  58. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  59. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
  60. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  61. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  62. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
  63. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  64. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  65. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  66. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  67. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  68. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  69. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  70. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  71. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  72. package/dist/src/account-lib/mpc/util.js +24 -1
  73. package/dist/src/account-lib/staking/index.js +6 -2
  74. package/dist/src/account-lib/staking/utils.js +3 -3
  75. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  76. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  77. package/dist/src/account-lib/util/crypto.js +69 -38
  78. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +2 -1
  79. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
  80. package/dist/src/account-lib/util/ed25519KeyDeriver.js +5 -3
  81. package/dist/src/api/bip32path.js +2 -3
  82. package/dist/src/api/index.js +6 -2
  83. package/dist/src/api/types.d.ts +31 -0
  84. package/dist/src/api/types.d.ts.map +1 -1
  85. package/dist/src/api/types.js +1 -1
  86. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -1
  87. package/dist/src/bitgo/address-book/address-book.js +20 -12
  88. package/dist/src/bitgo/address-book/index.js +6 -2
  89. package/dist/src/bitgo/address-book/types.d.ts +36 -36
  90. package/dist/src/bitgo/address-book/types.d.ts.map +1 -1
  91. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +123 -12
  92. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  93. package/dist/src/bitgo/baseCoin/baseCoin.js +203 -16
  94. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +290 -27
  95. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  96. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  97. package/dist/src/bitgo/baseCoin/index.js +6 -2
  98. package/dist/src/bitgo/bip32util.d.ts +3 -16
  99. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  100. package/dist/src/bitgo/bip32util.js +4 -56
  101. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  102. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  103. package/dist/src/bitgo/bitcoin.js +26 -13
  104. package/dist/src/bitgo/bitgoBase.d.ts +17 -4
  105. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  106. package/dist/src/bitgo/bitgoBase.js +1 -1
  107. package/dist/src/bitgo/coinFactory.d.ts +17 -3
  108. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  109. package/dist/src/bitgo/coinFactory.js +26 -3
  110. package/dist/src/bitgo/config.d.ts +3 -101
  111. package/dist/src/bitgo/config.d.ts.map +1 -1
  112. package/dist/src/bitgo/config.js +26 -15
  113. package/dist/src/bitgo/defi/defiVault.d.ts +137 -0
  114. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
  115. package/dist/src/bitgo/defi/defiVault.js +379 -0
  116. package/dist/src/bitgo/defi/iDefiVault.d.ts +81 -0
  117. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
  118. package/dist/src/bitgo/defi/iDefiVault.js +6 -0
  119. package/dist/src/bitgo/defi/index.d.ts +3 -0
  120. package/dist/src/bitgo/defi/index.d.ts.map +1 -0
  121. package/dist/src/bitgo/defi/index.js +22 -0
  122. package/dist/src/bitgo/ecdh.d.ts +0 -1
  123. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  124. package/dist/src/bitgo/ecdh.js +26 -13
  125. package/dist/src/bitgo/enterprise/enterprise.d.ts +9 -4
  126. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  127. package/dist/src/bitgo/enterprise/enterprise.js +47 -21
  128. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  129. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +5 -3
  130. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  131. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  132. package/dist/src/bitgo/enterprise/index.js +6 -2
  133. package/dist/src/bitgo/environments.d.ts +68 -3
  134. package/dist/src/bitgo/environments.d.ts.map +1 -1
  135. package/dist/src/bitgo/environments.js +414 -34
  136. package/dist/src/bitgo/errors.d.ts +182 -1
  137. package/dist/src/bitgo/errors.d.ts.map +1 -1
  138. package/dist/src/bitgo/errors.js +177 -3
  139. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  140. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  141. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  142. package/dist/src/bitgo/index.d.ts +5 -1
  143. package/dist/src/bitgo/index.d.ts.map +1 -1
  144. package/dist/src/bitgo/index.js +31 -11
  145. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  146. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  147. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  148. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  149. package/dist/src/bitgo/internal/index.js +6 -2
  150. package/dist/src/bitgo/internal/internal.js +5 -6
  151. package/dist/src/bitgo/internal/keycard.d.ts +12 -8
  152. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  153. package/dist/src/bitgo/internal/keycard.js +60 -48
  154. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +14 -0
  155. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  156. package/dist/src/bitgo/keychain/decryptKeychain.js +36 -0
  157. package/dist/src/bitgo/keychain/iKeychains.d.ts +128 -11
  158. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  159. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  160. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  161. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  162. package/dist/src/bitgo/keychain/index.js +7 -2
  163. package/dist/src/bitgo/keychain/keychains.d.ts +55 -7
  164. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  165. package/dist/src/bitgo/keychain/keychains.js +282 -52
  166. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  167. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  168. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  169. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  170. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  171. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  172. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  173. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  174. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  175. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  176. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  177. package/dist/src/bitgo/market/index.js +6 -2
  178. package/dist/src/bitgo/market/markets.js +23 -9
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +5 -1
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  181. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  182. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  183. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  184. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  185. package/dist/src/bitgo/pendingApproval/pendingApproval.js +246 -111
  186. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  187. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  188. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  189. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  190. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  191. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  192. package/dist/src/bitgo/proofs/index.js +6 -0
  193. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  194. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  195. package/dist/src/bitgo/proofs/types.js +80 -0
  196. package/dist/src/bitgo/recovery/index.js +6 -2
  197. package/dist/src/bitgo/recovery/initiate.d.ts +13 -3
  198. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  199. package/dist/src/bitgo/recovery/initiate.js +49 -41
  200. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +88 -0
  201. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  202. package/dist/src/bitgo/safe/derivableEd25519Pub.js +204 -0
  203. package/dist/src/bitgo/safe/iSafe.d.ts +87 -0
  204. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -0
  205. package/dist/src/bitgo/safe/iSafe.js +3 -0
  206. package/dist/src/bitgo/safe/iSafes.d.ts +94 -0
  207. package/dist/src/bitgo/safe/iSafes.d.ts.map +1 -0
  208. package/dist/src/bitgo/safe/iSafes.js +3 -0
  209. package/dist/src/bitgo/safe/index.d.ts +7 -0
  210. package/dist/src/bitgo/safe/index.d.ts.map +1 -0
  211. package/dist/src/bitgo/safe/index.js +23 -0
  212. package/dist/src/bitgo/safe/safe.d.ts +61 -0
  213. package/dist/src/bitgo/safe/safe.d.ts.map +1 -0
  214. package/dist/src/bitgo/safe/safe.js +230 -0
  215. package/dist/src/bitgo/safe/safeDerivation.d.ts +30 -0
  216. package/dist/src/bitgo/safe/safeDerivation.d.ts.map +1 -0
  217. package/dist/src/bitgo/safe/safeDerivation.js +122 -0
  218. package/dist/src/bitgo/safe/safes.d.ts +107 -0
  219. package/dist/src/bitgo/safe/safes.d.ts.map +1 -0
  220. package/dist/src/bitgo/safe/safes.js +315 -0
  221. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +136 -0
  222. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  223. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  224. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  225. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  226. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  227. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  228. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  229. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  230. package/dist/src/bitgo/staking/iStakingWallet.d.ts +157 -8
  231. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  232. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  233. package/dist/src/bitgo/staking/index.d.ts +3 -0
  234. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  235. package/dist/src/bitgo/staking/index.js +9 -2
  236. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  237. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  238. package/dist/src/bitgo/staking/stakingWallet.js +140 -7
  239. package/dist/src/bitgo/trading/iTradingAccount.d.ts +13 -1
  240. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  241. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  242. package/dist/src/bitgo/trading/index.d.ts +1 -0
  243. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  244. package/dist/src/bitgo/trading/index.js +7 -2
  245. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  246. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  247. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  248. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  249. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  250. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  251. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  252. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  253. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  254. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  255. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  256. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  257. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  258. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  259. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  260. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  261. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  262. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  263. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  264. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  265. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  266. package/dist/src/bitgo/trading/network/index.d.ts +2 -0
  267. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -1
  268. package/dist/src/bitgo/trading/network/index.js +8 -2
  269. package/dist/src/bitgo/trading/network/network.d.ts +4 -3
  270. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
  271. package/dist/src/bitgo/trading/network/network.js +24 -27
  272. package/dist/src/bitgo/trading/network/types.d.ts +79 -46
  273. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  274. package/dist/src/bitgo/trading/network/types.js +1 -1
  275. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  276. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  277. package/dist/src/bitgo/trading/network/utils.js +54 -0
  278. package/dist/src/bitgo/trading/tradingAccount.d.ts +15 -1
  279. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  280. package/dist/src/bitgo/trading/tradingAccount.js +55 -7
  281. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +49 -0
  282. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  283. package/dist/src/bitgo/tss/bitgoPubKeys.js +92 -0
  284. package/dist/src/bitgo/tss/common.d.ts +41 -6
  285. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  286. package/dist/src/bitgo/tss/common.js +124 -17
  287. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  288. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  289. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  290. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  291. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  292. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  293. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  294. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  295. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  296. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  297. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  298. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  299. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  300. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  301. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  302. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +42 -0
  303. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  304. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +104 -0
  305. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  306. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  307. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  308. package/dist/src/bitgo/tss/index.d.ts +3 -2
  309. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  310. package/dist/src/bitgo/tss/index.js +26 -10
  311. package/dist/src/bitgo/tss/types.d.ts +3 -3
  312. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  313. package/dist/src/bitgo/tss/types.js +2 -2
  314. package/dist/src/bitgo/types.d.ts +3 -3
  315. package/dist/src/bitgo/types.d.ts.map +1 -1
  316. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +10 -0
  317. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  318. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +76 -14
  319. package/dist/src/bitgo/utils/codecProps.js +24 -11
  320. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  321. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  322. package/dist/src/bitgo/utils/codecs.js +59 -0
  323. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  324. package/dist/src/bitgo/utils/decode.js +30 -16
  325. package/dist/src/bitgo/utils/index.d.ts +4 -2
  326. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  327. package/dist/src/bitgo/utils/index.js +27 -11
  328. package/dist/src/bitgo/utils/messageTypes.d.ts +40 -0
  329. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  330. package/dist/src/bitgo/utils/messageTypes.js +17 -0
  331. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  332. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  333. package/dist/src/bitgo/utils/mpcUtils.js +175 -14
  334. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  335. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  336. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  337. package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -7
  338. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  339. package/dist/src/bitgo/utils/opengpgUtils.js +79 -62
  340. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  341. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  342. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  343. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  344. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  345. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  346. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  347. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  348. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  349. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  350. package/dist/src/bitgo/utils/triple.js +2 -3
  351. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +62 -0
  352. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  353. package/dist/src/bitgo/utils/tss/addressVerification.js +93 -0
  354. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +94 -17
  355. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  356. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +305 -45
  357. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +432 -55
  358. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  359. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  360. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  361. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  362. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  363. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  364. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  365. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  366. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +25 -51
  367. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  368. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +173 -246
  369. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +216 -0
  370. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  371. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1053 -0
  372. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  373. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  374. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +16 -0
  375. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  376. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  377. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  378. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  379. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  380. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  381. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  382. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  383. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  384. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  385. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  386. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +118 -0
  387. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  388. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  389. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  390. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +38 -11
  391. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  392. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +254 -96
  393. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +204 -0
  394. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  395. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +862 -0
  396. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +6 -0
  397. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  398. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +16 -0
  399. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +4 -0
  400. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  401. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -8
  402. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +12 -7
  403. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  404. package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
  405. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -0
  406. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  407. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  408. package/dist/src/bitgo/utils/tss/index.d.ts +5 -0
  409. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  410. package/dist/src/bitgo/utils/tss/index.js +29 -10
  411. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
  412. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  413. package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
  414. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +41 -0
  415. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  416. package/dist/src/bitgo/utils/tss/recipientUtils.js +142 -0
  417. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts +29 -0
  418. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -0
  419. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +126 -0
  420. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts +4 -0
  421. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts.map +1 -0
  422. package/dist/src/bitgo/utils/tss/redpallas/index.js +20 -0
  423. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +27 -0
  424. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  425. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +43 -0
  426. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +45 -0
  427. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -0
  428. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.js +55 -0
  429. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
  430. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
  431. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
  432. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts +12 -0
  433. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts.map +1 -0
  434. package/dist/src/bitgo/utils/tss/signableConsistency.js +9 -0
  435. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  436. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  437. package/dist/src/bitgo/utils/txRequest.js +49 -0
  438. package/dist/src/bitgo/utils/util.js +24 -10
  439. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  440. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  441. package/dist/src/bitgo/utils/wallet.js +48 -0
  442. package/dist/src/bitgo/v1Wallets.d.ts +170 -0
  443. package/dist/src/bitgo/v1Wallets.d.ts.map +1 -0
  444. package/dist/src/bitgo/v1Wallets.js +3 -0
  445. package/dist/src/bitgo/wallet/BuildParams.d.ts +81 -1
  446. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  447. package/dist/src/bitgo/wallet/BuildParams.js +85 -11
  448. package/dist/src/bitgo/wallet/iWallet.d.ts +580 -31
  449. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  450. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  451. package/dist/src/bitgo/wallet/iWallets.d.ts +310 -16
  452. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  453. package/dist/src/bitgo/wallet/iWallets.js +84 -3
  454. package/dist/src/bitgo/wallet/index.d.ts +1 -0
  455. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  456. package/dist/src/bitgo/wallet/index.js +7 -2
  457. package/dist/src/bitgo/wallet/safeKeychain.d.ts +52 -0
  458. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -0
  459. package/dist/src/bitgo/wallet/safeKeychain.js +97 -0
  460. package/dist/src/bitgo/wallet/wallet.d.ts +365 -28
  461. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  462. package/dist/src/bitgo/wallet/wallet.js +2202 -381
  463. package/dist/src/bitgo/wallet/wallets.d.ts +93 -4
  464. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  465. package/dist/src/bitgo/wallet/wallets.js +1242 -155
  466. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  467. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  468. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  469. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  470. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  471. package/dist/src/bitgo/walletUtil/index.js +19 -0
  472. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  473. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  474. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  475. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  476. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  477. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  478. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  479. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  480. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  481. package/dist/src/bitgo/webhook/index.js +6 -2
  482. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  483. package/dist/src/coins/fiat.d.ts +45 -0
  484. package/dist/src/coins/fiat.d.ts.map +1 -0
  485. package/dist/src/coins/fiat.js +94 -0
  486. package/dist/src/coins/index.d.ts +1 -6
  487. package/dist/src/coins/index.d.ts.map +1 -1
  488. package/dist/src/coins/index.js +7 -8
  489. package/dist/src/coins/ofc.d.ts +21 -2
  490. package/dist/src/coins/ofc.d.ts.map +1 -1
  491. package/dist/src/coins/ofc.js +29 -3
  492. package/dist/src/coins/ofcToken.d.ts +15 -4
  493. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  494. package/dist/src/coins/ofcToken.js +43 -5
  495. package/dist/src/coins/susd.d.ts +3 -2
  496. package/dist/src/coins/susd.d.ts.map +1 -1
  497. package/dist/src/coins/susd.js +5 -1
  498. package/dist/src/common.js +27 -13
  499. package/dist/src/index.d.ts +9 -1
  500. package/dist/src/index.d.ts.map +1 -1
  501. package/dist/src/index.js +40 -11
  502. package/dist/src/lightning.d.ts +20 -0
  503. package/dist/src/lightning.d.ts.map +1 -0
  504. package/dist/src/lightning.js +13 -0
  505. package/dist/src/units.js +5 -6
  506. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  507. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  508. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  509. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  510. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  511. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  512. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  513. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  514. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  515. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  516. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  517. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  518. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  519. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  520. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  521. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  522. package/dist/test/unit/bitgo/address-book/address-book.d.ts +2 -0
  523. package/dist/test/unit/bitgo/address-book/address-book.d.ts.map +1 -0
  524. package/dist/test/unit/bitgo/address-book/address-book.js +159 -0
  525. package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
  526. package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
  527. package/dist/test/unit/bitgo/defi/defiVault.js +600 -0
  528. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  529. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  530. package/dist/test/unit/bitgo/environment.js +38 -0
  531. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  532. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  533. package/dist/test/unit/bitgo/errors.js +262 -0
  534. package/dist/test/unit/bitgo/keychain/keychains.d.ts +2 -0
  535. package/dist/test/unit/bitgo/keychain/keychains.d.ts.map +1 -0
  536. package/dist/test/unit/bitgo/keychain/keychains.js +138 -0
  537. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  538. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  539. package/dist/test/unit/bitgo/recovery/initiate.js +159 -0
  540. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts +2 -0
  541. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  542. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +137 -0
  543. package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +197 -0
  544. package/dist/test/unit/bitgo/safe/safe.d.ts +2 -0
  545. package/dist/test/unit/bitgo/safe/safe.d.ts.map +1 -0
  546. package/dist/test/unit/bitgo/safe/safe.js +277 -0
  547. package/dist/test/unit/bitgo/safe/safes.d.ts +2 -0
  548. package/dist/test/unit/bitgo/safe/safes.d.ts.map +1 -0
  549. package/dist/test/unit/bitgo/safe/safes.js +364 -0
  550. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  551. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  552. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  553. package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
  554. package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
  555. package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
  556. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  557. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  558. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  559. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts +2 -0
  560. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  561. package/dist/test/unit/bitgo/tss/bitgoPubKeys.js +66 -0
  562. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +45 -4
  563. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  564. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  565. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  566. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts +2 -0
  567. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts.map +1 -0
  568. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.js +106 -0
  569. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  570. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  571. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  572. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  573. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  574. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  575. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +251 -0
  576. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  577. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  578. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +348 -0
  579. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
  580. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
  581. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
  582. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  583. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  584. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +999 -0
  585. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  586. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  587. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  588. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts +2 -0
  589. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts.map +1 -0
  590. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.js +158 -0
  591. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  592. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  593. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1918 -0
  594. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  595. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  596. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +311 -0
  597. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
  598. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  599. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
  600. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts +2 -0
  601. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  602. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +374 -0
  603. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  604. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  605. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +80 -0
  606. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts +2 -0
  607. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts.map +1 -0
  608. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +279 -0
  609. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts +2 -0
  610. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts.map +1 -0
  611. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.js +111 -0
  612. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  613. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  614. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  615. package/dist/test/unit/bitgo/utils/wallet.d.ts +2 -0
  616. package/dist/test/unit/bitgo/utils/wallet.d.ts.map +1 -0
  617. package/dist/test/unit/bitgo/utils/wallet.js +55 -0
  618. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  619. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  620. package/dist/test/unit/bitgo/wallet/BuildParams.js +141 -0
  621. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +79 -9
  622. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  623. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  624. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  625. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts +2 -0
  626. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts.map +1 -0
  627. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.js +88 -0
  628. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  629. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  630. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  631. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
  632. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
  633. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
  634. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  635. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  636. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  637. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts +2 -0
  638. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts.map +1 -0
  639. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.js +20 -0
  640. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  641. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  642. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  643. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts +5 -0
  644. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts.map +1 -0
  645. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +671 -0
  646. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  647. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  648. package/dist/test/unit/bitgo/wallet/tokenApproval.js +201 -0
  649. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  650. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  651. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  652. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  653. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  654. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +69 -0
  655. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  656. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  657. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  658. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
  659. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
  660. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +293 -0
  661. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  662. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  663. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  664. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
  665. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
  666. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +675 -0
  667. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts +2 -0
  668. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts.map +1 -0
  669. package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +150 -0
  670. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  671. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  672. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +201 -0
  673. package/dist/test/unit/coins/ofc.d.ts +2 -0
  674. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  675. package/dist/test/unit/coins/ofc.js +124 -0
  676. package/dist/test/unit/lightning.d.ts +2 -0
  677. package/dist/test/unit/lightning.d.ts.map +1 -0
  678. package/dist/test/unit/lightning.js +23 -0
  679. package/dist/test/unit/units.d.ts.map +1 -1
  680. package/dist/test/unit/units.js +64 -64
  681. package/dist/tsconfig.tsbuildinfo +1 -1
  682. package/package.json +23 -21
  683. package/.eslintignore +0 -5
  684. package/CHANGELOG.md +0 -1712
  685. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  686. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  687. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  688. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  689. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  690. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  691. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  692. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  693. package/dist/src/bitgo/lightning/index.js +0 -17
  694. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  695. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  696. package/dist/src/bitgo/lightning/lightning.js +0 -111
  697. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  698. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  699. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  700. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  701. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  702. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  703. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  704. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  705. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  706. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  707. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  708. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  709. package/dist/src/coins/fiateur.d.ts +0 -31
  710. package/dist/src/coins/fiateur.d.ts.map +0 -1
  711. package/dist/src/coins/fiateur.js +0 -57
  712. package/dist/src/coins/fiatgbp.d.ts +0 -31
  713. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  714. package/dist/src/coins/fiatgbp.js +0 -57
  715. package/dist/src/coins/fiatusd.d.ts +0 -31
  716. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  717. package/dist/src/coins/fiatusd.js +0 -57
  718. package/dist/src/coins/tfiateur.d.ts +0 -11
  719. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  720. package/dist/src/coins/tfiateur.js +0 -17
  721. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  722. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  723. package/dist/src/coins/tfiatgbp.js +0 -17
  724. package/dist/src/coins/tfiatusd.d.ts +0 -11
  725. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  726. package/dist/src/coins/tfiatusd.js +0 -17
  727. package/dist/src/openssl/index.d.ts +0 -5
  728. package/dist/src/openssl/index.d.ts.map +0 -1
  729. package/dist/src/openssl/index.js +0 -9
  730. package/dist/test/unit/openssl.d.ts +0 -2
  731. package/dist/test/unit/openssl.d.ts.map +0 -1
  732. package/dist/test/unit/openssl.js +0 -39
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @prettier
3
+ *
4
+ * @experimental Encode/decode helpers for the *derivable* form of a safe slot-④
5
+ * (`ed25519Multisig`) root public key.
6
+ *
7
+ * Wallet Safes v1 soft-derives the backup and BitGo co-signer keys of every minted wallet from the
8
+ * safe's root public keys, and soft derivation needs a chain code. The secp256k1 slot gets one for
9
+ * free (a BIP32 xpub is `point || chaincode`); a bare Stellar StrKey `G…` has nowhere to put one.
10
+ * Per TDD Part II-3 §1.3 we therefore concatenate the chain code onto `pub` rather than introduce a
11
+ * new field — the same shape BitGo already uses for the MPC slots, whose `commonKeychain` is
12
+ * `pub || chaincode`.
13
+ *
14
+ * pub = <StrKey ed25519 public key> || <chainCode, 52 base32 chars>
15
+ * exactly 56 chars, 'G…' exactly 52 chars
16
+ * total length exactly 108
17
+ *
18
+ * Both halves use the SAME encoding — RFC 4648 base32 over the alphabet StrKey itself uses — so the
19
+ * composite is one uniform string rather than a base32 pub with a hex tail bolted on.
20
+ *
21
+ * StrKey ed25519 public keys are always exactly 56 characters, so the split is a fixed offset. That
22
+ * offset is a CROSS-REPO contract shared with wallet-platform, `modules/key-card` and WRW; four
23
+ * independent implementations drifting produces unrecoverable wallets. Every call site — here and in
24
+ * the other repos — MUST go through these helpers rather than slicing inline.
25
+ */
26
+ /**
27
+ * The fixed character offset at which a composite slot-④ pub splits into (StrKey pub, chain code).
28
+ * Stellar StrKey ed25519 public keys are a fixed 56 characters, so no length prefix or separator is
29
+ * needed.
30
+ *
31
+ * MUST stay identical to the corresponding constant in wallet-platform, `modules/key-card` and WRW:
32
+ * a divergent offset splits the pub in the wrong place and derives co-signer keys nobody else can
33
+ * reproduce, permanently bricking the wallets minted with it.
34
+ */
35
+ export declare const DERIVABLE_ED25519_PUB_SPLIT_OFFSET = 56;
36
+ /** Raw length of a chain code before encoding. */
37
+ export declare const DERIVABLE_ED25519_CHAIN_CODE_BYTES = 32;
38
+ /** Length of the base32-encoded chain code half: ceil(32 bytes * 8 / 5) = 52 characters. */
39
+ export declare const DERIVABLE_ED25519_CHAIN_CODE_LENGTH = 52;
40
+ /** Total length of a well-formed composite pub. */
41
+ export declare const DERIVABLE_ED25519_PUB_LENGTH: number;
42
+ /**
43
+ * Returns true iff `pub` is a valid Stellar StrKey ed25519 public key.
44
+ *
45
+ * Implemented here rather than pulled from `stellar-sdk` because `sdk-core` must not depend on a
46
+ * coin module. The pub half is validated by CHECKSUM, not merely by length and alphabet — a
47
+ * 56-character `G…` string with a corrupted body is rejected.
48
+ */
49
+ export declare function isValidEd25519StrKeyPublicKey(pub: string): boolean;
50
+ /**
51
+ * Returns true iff `chainCode` is the canonical base32 encoding of exactly 32 bytes.
52
+ *
53
+ * The length check alone is not sufficient. 52 base32 characters carry 260 bits but a chain code is
54
+ * only 256, so the final character has 4 unused low bits — 16 distinct strings decode to the same 32
55
+ * bytes. Only the one whose trailing bits are zero is accepted, which the re-encode enforces. Were
56
+ * non-canonical spellings allowed, one key could be persisted under several different composite pubs
57
+ * and equality against a stored pub would spuriously fail.
58
+ */
59
+ export declare function isValidEd25519ChainCode(chainCode: string): boolean;
60
+ /**
61
+ * Mint a fresh chain code for a derivable slot-④ root, base32-encoded.
62
+ *
63
+ * The chain code is independent randomness (TDD Part II-3 D1) — it is NOT derived from the seed, so
64
+ * it can be generated wherever the composite pub is assembled. Encoding 32 bytes always yields the
65
+ * canonical form, so the result satisfies {@link isValidEd25519ChainCode} by construction.
66
+ */
67
+ export declare function generateEd25519ChainCodeBase32(): string;
68
+ /**
69
+ * Compose a derivable slot-④ root pub from its two halves.
70
+ *
71
+ * Throws when either half is malformed: silently emitting a composite whose halves do not round-trip
72
+ * would persist a root pub from which no correct co-signer key can ever be derived.
73
+ */
74
+ export declare function encodeDerivableEd25519Pub(pub: string, chainCode: string): string;
75
+ /**
76
+ * Split a composite slot-④ root pub back into its two halves.
77
+ *
78
+ * Throws unless the input is EXACTLY the composite form. A lenient decode that accepted a bare
79
+ * 56-character pub would hand callers an empty chain code and derive every co-signer from the same
80
+ * (zero-length) entropy.
81
+ */
82
+ export declare function decodeDerivableEd25519Pub(composite: string): {
83
+ pub: string;
84
+ chainCode: string;
85
+ };
86
+ /** Returns true iff `composite` is a well-formed derivable slot-④ root pub. */
87
+ export declare function isDerivableEd25519Pub(composite: string): boolean;
88
+ //# sourceMappingURL=derivableEd25519Pub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivableEd25519Pub.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/derivableEd25519Pub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,kDAAkD;AAClD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,4FAA4F;AAC5F,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAEtD,mDAAmD;AACnD,eAAO,MAAM,4BAA4B,QAA2E,CAAC;AAyErH;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAe/F;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOhE"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ /**
3
+ * @prettier
4
+ *
5
+ * @experimental Encode/decode helpers for the *derivable* form of a safe slot-④
6
+ * (`ed25519Multisig`) root public key.
7
+ *
8
+ * Wallet Safes v1 soft-derives the backup and BitGo co-signer keys of every minted wallet from the
9
+ * safe's root public keys, and soft derivation needs a chain code. The secp256k1 slot gets one for
10
+ * free (a BIP32 xpub is `point || chaincode`); a bare Stellar StrKey `G…` has nowhere to put one.
11
+ * Per TDD Part II-3 §1.3 we therefore concatenate the chain code onto `pub` rather than introduce a
12
+ * new field — the same shape BitGo already uses for the MPC slots, whose `commonKeychain` is
13
+ * `pub || chaincode`.
14
+ *
15
+ * pub = <StrKey ed25519 public key> || <chainCode, 52 base32 chars>
16
+ * exactly 56 chars, 'G…' exactly 52 chars
17
+ * total length exactly 108
18
+ *
19
+ * Both halves use the SAME encoding — RFC 4648 base32 over the alphabet StrKey itself uses — so the
20
+ * composite is one uniform string rather than a base32 pub with a hex tail bolted on.
21
+ *
22
+ * StrKey ed25519 public keys are always exactly 56 characters, so the split is a fixed offset. That
23
+ * offset is a CROSS-REPO contract shared with wallet-platform, `modules/key-card` and WRW; four
24
+ * independent implementations drifting produces unrecoverable wallets. Every call site — here and in
25
+ * the other repos — MUST go through these helpers rather than slicing inline.
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.DERIVABLE_ED25519_PUB_LENGTH = exports.DERIVABLE_ED25519_CHAIN_CODE_LENGTH = exports.DERIVABLE_ED25519_CHAIN_CODE_BYTES = exports.DERIVABLE_ED25519_PUB_SPLIT_OFFSET = void 0;
29
+ exports.isValidEd25519StrKeyPublicKey = isValidEd25519StrKeyPublicKey;
30
+ exports.isValidEd25519ChainCode = isValidEd25519ChainCode;
31
+ exports.generateEd25519ChainCodeBase32 = generateEd25519ChainCodeBase32;
32
+ exports.encodeDerivableEd25519Pub = encodeDerivableEd25519Pub;
33
+ exports.decodeDerivableEd25519Pub = decodeDerivableEd25519Pub;
34
+ exports.isDerivableEd25519Pub = isDerivableEd25519Pub;
35
+ const crypto_1 = require("crypto");
36
+ /**
37
+ * The fixed character offset at which a composite slot-④ pub splits into (StrKey pub, chain code).
38
+ * Stellar StrKey ed25519 public keys are a fixed 56 characters, so no length prefix or separator is
39
+ * needed.
40
+ *
41
+ * MUST stay identical to the corresponding constant in wallet-platform, `modules/key-card` and WRW:
42
+ * a divergent offset splits the pub in the wrong place and derives co-signer keys nobody else can
43
+ * reproduce, permanently bricking the wallets minted with it.
44
+ */
45
+ exports.DERIVABLE_ED25519_PUB_SPLIT_OFFSET = 56;
46
+ /** Raw length of a chain code before encoding. */
47
+ exports.DERIVABLE_ED25519_CHAIN_CODE_BYTES = 32;
48
+ /** Length of the base32-encoded chain code half: ceil(32 bytes * 8 / 5) = 52 characters. */
49
+ exports.DERIVABLE_ED25519_CHAIN_CODE_LENGTH = 52;
50
+ /** Total length of a well-formed composite pub. */
51
+ exports.DERIVABLE_ED25519_PUB_LENGTH = exports.DERIVABLE_ED25519_PUB_SPLIT_OFFSET + exports.DERIVABLE_ED25519_CHAIN_CODE_LENGTH;
52
+ /**
53
+ * Chain codes are serialized as unpadded RFC 4648 base32, the same encoding and alphabet StrKey
54
+ * uses, so the composite pub is base32 end to end.
55
+ *
56
+ * The alphabet is uppercase-only and lowercase is rejected rather than normalized: accepting both
57
+ * casings would make the composite non-canonical, so the same key could be stored under two
58
+ * distinct strings and equality against a previously-persisted pub would spuriously fail.
59
+ */
60
+ const CHAIN_CODE_REGEX = /^[A-Z2-7]{52}$/;
61
+ /** StrKey version byte for an ed25519 public key (`G…`). */
62
+ const STRKEY_VERSION_BYTE_ED25519_PUBLIC_KEY = 6 << 3;
63
+ /** Decoded StrKey payload: 1 version byte + 32-byte key + 2-byte checksum. */
64
+ const STRKEY_DECODED_LENGTH = 35;
65
+ const BASE32_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
66
+ const STRKEY_ED25519_PUBLIC_KEY_REGEX = /^G[A-Z2-7]{55}$/;
67
+ /**
68
+ * Decode an unpadded RFC 4648 base32 string. Callers guarantee the input already matched one of the
69
+ * alphabet regexes below. Any bits left over past the last whole byte are dropped, so a decode alone
70
+ * does NOT prove the input was canonical — see {@link isValidEd25519ChainCode}, which re-encodes.
71
+ */
72
+ function base32Decode(input) {
73
+ const out = Buffer.alloc(Math.floor((input.length * 5) / 8));
74
+ let bits = 0;
75
+ let value = 0;
76
+ let index = 0;
77
+ for (const char of input) {
78
+ value = (value << 5) | BASE32_ALPHABET.indexOf(char);
79
+ bits += 5;
80
+ if (bits >= 8) {
81
+ bits -= 8;
82
+ out[index++] = (value >>> bits) & 0xff;
83
+ }
84
+ }
85
+ return out;
86
+ }
87
+ /** Encode to unpadded RFC 4648 base32. Trailing bits of the final character are zero-filled. */
88
+ function base32Encode(data) {
89
+ let bits = 0;
90
+ let value = 0;
91
+ let out = '';
92
+ for (const byte of data) {
93
+ value = (value << 8) | byte;
94
+ bits += 8;
95
+ while (bits >= 5) {
96
+ bits -= 5;
97
+ out += BASE32_ALPHABET[(value >>> bits) & 0x1f];
98
+ }
99
+ }
100
+ if (bits > 0) {
101
+ out += BASE32_ALPHABET[(value << (5 - bits)) & 0x1f];
102
+ }
103
+ return out;
104
+ }
105
+ /** CRC16-XModem, the checksum Stellar StrKey appends (little-endian) to the versioned payload. */
106
+ function crc16Xmodem(data) {
107
+ let crc = 0x0000;
108
+ for (const byte of data) {
109
+ let code = (crc >>> 8) & 0xff;
110
+ code ^= byte;
111
+ code ^= code >>> 4;
112
+ crc = ((crc << 8) & 0xffff) ^ ((code << 12) & 0xffff) ^ ((code << 5) & 0xffff) ^ code;
113
+ }
114
+ return crc & 0xffff;
115
+ }
116
+ /**
117
+ * Returns true iff `pub` is a valid Stellar StrKey ed25519 public key.
118
+ *
119
+ * Implemented here rather than pulled from `stellar-sdk` because `sdk-core` must not depend on a
120
+ * coin module. The pub half is validated by CHECKSUM, not merely by length and alphabet — a
121
+ * 56-character `G…` string with a corrupted body is rejected.
122
+ */
123
+ function isValidEd25519StrKeyPublicKey(pub) {
124
+ if (!STRKEY_ED25519_PUBLIC_KEY_REGEX.test(pub)) {
125
+ return false;
126
+ }
127
+ const decoded = base32Decode(pub);
128
+ if (decoded.length !== STRKEY_DECODED_LENGTH || decoded[0] !== STRKEY_VERSION_BYTE_ED25519_PUBLIC_KEY) {
129
+ return false;
130
+ }
131
+ return (crc16Xmodem(decoded.subarray(0, STRKEY_DECODED_LENGTH - 2)) === decoded.readUInt16LE(STRKEY_DECODED_LENGTH - 2));
132
+ }
133
+ /**
134
+ * Returns true iff `chainCode` is the canonical base32 encoding of exactly 32 bytes.
135
+ *
136
+ * The length check alone is not sufficient. 52 base32 characters carry 260 bits but a chain code is
137
+ * only 256, so the final character has 4 unused low bits — 16 distinct strings decode to the same 32
138
+ * bytes. Only the one whose trailing bits are zero is accepted, which the re-encode enforces. Were
139
+ * non-canonical spellings allowed, one key could be persisted under several different composite pubs
140
+ * and equality against a stored pub would spuriously fail.
141
+ */
142
+ function isValidEd25519ChainCode(chainCode) {
143
+ if (!CHAIN_CODE_REGEX.test(chainCode)) {
144
+ return false;
145
+ }
146
+ return base32Encode(base32Decode(chainCode)) === chainCode;
147
+ }
148
+ /**
149
+ * Mint a fresh chain code for a derivable slot-④ root, base32-encoded.
150
+ *
151
+ * The chain code is independent randomness (TDD Part II-3 D1) — it is NOT derived from the seed, so
152
+ * it can be generated wherever the composite pub is assembled. Encoding 32 bytes always yields the
153
+ * canonical form, so the result satisfies {@link isValidEd25519ChainCode} by construction.
154
+ */
155
+ function generateEd25519ChainCodeBase32() {
156
+ return base32Encode((0, crypto_1.randomBytes)(exports.DERIVABLE_ED25519_CHAIN_CODE_BYTES));
157
+ }
158
+ /**
159
+ * Compose a derivable slot-④ root pub from its two halves.
160
+ *
161
+ * Throws when either half is malformed: silently emitting a composite whose halves do not round-trip
162
+ * would persist a root pub from which no correct co-signer key can ever be derived.
163
+ */
164
+ function encodeDerivableEd25519Pub(pub, chainCode) {
165
+ if (!isValidEd25519StrKeyPublicKey(pub)) {
166
+ throw new Error('Invalid derivable ed25519 pub: pub half is not a valid ed25519 public key');
167
+ }
168
+ if (!isValidEd25519ChainCode(chainCode)) {
169
+ throw new Error('Invalid derivable ed25519 pub: chainCode must be 52 canonical base32 characters');
170
+ }
171
+ return `${pub}${chainCode}`;
172
+ }
173
+ /**
174
+ * Split a composite slot-④ root pub back into its two halves.
175
+ *
176
+ * Throws unless the input is EXACTLY the composite form. A lenient decode that accepted a bare
177
+ * 56-character pub would hand callers an empty chain code and derive every co-signer from the same
178
+ * (zero-length) entropy.
179
+ */
180
+ function decodeDerivableEd25519Pub(composite) {
181
+ if (composite.length !== exports.DERIVABLE_ED25519_PUB_LENGTH) {
182
+ throw new Error(`Invalid derivable ed25519 pub: expected ${exports.DERIVABLE_ED25519_PUB_LENGTH} characters, got ${composite.length}`);
183
+ }
184
+ const pub = composite.slice(0, exports.DERIVABLE_ED25519_PUB_SPLIT_OFFSET);
185
+ const chainCode = composite.slice(exports.DERIVABLE_ED25519_PUB_SPLIT_OFFSET);
186
+ if (!isValidEd25519StrKeyPublicKey(pub)) {
187
+ throw new Error('Invalid derivable ed25519 pub: pub half is not a valid ed25519 public key');
188
+ }
189
+ if (!isValidEd25519ChainCode(chainCode)) {
190
+ throw new Error('Invalid derivable ed25519 pub: chainCode must be 52 canonical base32 characters');
191
+ }
192
+ return { pub, chainCode };
193
+ }
194
+ /** Returns true iff `composite` is a well-formed derivable slot-④ root pub. */
195
+ function isDerivableEd25519Pub(composite) {
196
+ try {
197
+ decodeDerivableEd25519Pub(composite);
198
+ return true;
199
+ }
200
+ catch {
201
+ return false;
202
+ }
203
+ }
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhYmxlRWQyNTUxOVB1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zYWZlL2Rlcml2YWJsZUVkMjU1MTlQdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7OztBQXNHSCxzRUFXQztBQVdELDBEQUtDO0FBU0Qsd0VBRUM7QUFRRCw4REFRQztBQVNELDhEQWVDO0FBR0Qsc0RBT0M7QUE1TEQsbUNBQXFDO0FBRXJDOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSxrQ0FBa0MsR0FBRyxFQUFFLENBQUM7QUFFckQsa0RBQWtEO0FBQ3JDLFFBQUEsa0NBQWtDLEdBQUcsRUFBRSxDQUFDO0FBRXJELDRGQUE0RjtBQUMvRSxRQUFBLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQztBQUV0RCxtREFBbUQ7QUFDdEMsUUFBQSw0QkFBNEIsR0FBRywwQ0FBa0MsR0FBRywyQ0FBbUMsQ0FBQztBQUVySDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUUxQyw0REFBNEQ7QUFDNUQsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXRELDhFQUE4RTtBQUM5RSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxrQ0FBa0MsQ0FBQztBQUMzRCxNQUFNLCtCQUErQixHQUFHLGlCQUFpQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLEtBQUssR0FBRyxD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QyxDQUFDO0lBQ25FLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsMENBQWtDLENBQUMsQ0FBQztJQUN0RSxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsK0VBQStFO0FBQy9FLFNBQWdCLHFCQUFxQixDQUFDLFNBQWlCO0lBQ3JELElBQUksQ0FBQztRQUNILHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIEBleHBlcmltZW50YWwgRW5jb2RlL2RlY29kZSBoZWxwZXJzIGZvciB0aGUgKmRlcml2YWJsZSogZm9ybSBvZiBhIHNhZmUgc2xvdC3ikaNcbiAqIChgZWQyNTUxOU11bHRpc2lnYCkgcm9vdCBwdWJsaWMga2V5LlxuICpcbiAqIFdhbGxldCBTYWZlcyB2MSBzb2Z0LWRlcml2ZXMgdGhlIGJhY2t1cCBhbmQgQml0R28gY28tc2lnbmVyIGtleXMgb2YgZXZlcnkgbWludGVkIHdhbGxldCBmcm9tIHRoZVxuICogc2FmZSdzIHJvb3QgcHVibGljIGtleXMsIGFuZCBzb2Z0IGRlcml2YXRpb24gbmVlZHMgYSBjaGFpbiBjb2RlLiBUaGUgc2VjcDI1NmsxIHNsb3QgZ2V0cyBvbmUgZm9yXG4gKiBmcmVlIChhIEJJUDMyIHhwdWIgaXMgYHBvaW50IHx8IGNoYWluY29kZWApOyBhIGJhcmUgU3RlbGxhciBTdHJLZXkgYEfigKZgIGhhcyBub3doZXJlIHRvIHB1dCBvbmUuXG4gKiBQZXIgVEREIFBhcnQgSUktMyDCpzEuMyB3ZSB0aGVyZWZvcmUgY29uY2F0ZW5hdGUgdGhlIGNoYWluIGNvZGUgb250byBgcHViYCByYXRoZXIgdGhhbiBpbnRyb2R1Y2UgYVxuICogbmV3IGZpZWxkIOKAlCB0aGUgc2FtZSBzaGFwZSBCaXRHbyBhbHJlYWR5IHVzZXMgZm9yIHRoZSBNUEMgc2xvdHMsIHdob3NlIGBjb21tb25LZXljaGFpbmAgaXNcbiAqIGBwdWIgfHwgY2hhaW5jb2RlYC5cbiAqXG4gKiAgIHB1YiA9IDxTdHJLZXkgZWQyNTUxOSBwdWJsaWMga2V5PiB8fCA8Y2hhaW5Db2RlLCA1MiBiYXNlMzIgY2hhcnM+XG4gKiAgICAgICAgICBleGFjdGx5IDU2IGNoYXJzLCAnR+KApicgICAgICAgICBleGFjdGx5IDUyIGNoYXJzXG4gKiAgIHRvdGFsIGxlbmd0aCBleGFjdGx5IDEwOFxuICpcbiAqIEJvdGggaGFsdmVzIHVzZSB0aGUgU0FNRSBlbmNvZGluZyDigJQgUkZDIDQ2NDggYmFzZTMyIG92ZXIgdGhlIGFscGhhYmV0IFN0cktleSBpdHNlbGYgdXNlcyDigJQgc28gdGhlXG4gKiBjb21wb3NpdGUgaXMgb25lIHVuaWZvcm0gc3RyaW5nIHJhdGhlciB0aGFuIGEgYmFzZTMyIHB1YiB3aXRoIGEgaGV4IHRhaWwgYm9sdGVkIG9uLlxuICpcbiAqIFN0cktleSBlZDI1NTE5IHB1YmxpYyBrZXlzIGFyZSBhbHdheXMgZXhhY3RseSA1NiBjaGFyYWN0ZXJzLCBzbyB0aGUgc3BsaXQgaXMgYSBmaXhlZCBvZmZzZXQuIFRoYXRcbiAqIG9mZnNldCBpcyBhIENST1NTLVJFUE8gY29udHJhY3Qgc2hhcmVkIHdpdGggd2FsbGV0LXBsYXRmb3JtLCBgbW9kdWxlcy9rZXktY2FyZGAgYW5kIFdSVzsgZm91clxuICogaW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIGRyaWZ0aW5nIHByb2R1Y2VzIHVucmVjb3ZlcmFibGUgd2FsbGV0cy4gRXZlcnkgY2FsbCBzaXRlIOKAlCBoZXJlIGFuZCBpblxuICogdGhlIG90aGVyIHJlcG9zIOKAlCBNVVNUIGdvIHRocm91Z2ggdGhlc2UgaGVscGVycyByYXRoZXIgdGhhbiBzbGljaW5nIGlubGluZS5cbiAqL1xuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5cbi8qKlxuICogVGhlIGZpeGVkIGNoYXJhY3RlciBvZmZzZXQgYXQgd2hpY2ggYSBjb21wb3NpdGUgc2xvdC3ikaMgcHViIHNwbGl0cyBpbnRvIChTdHJLZXkgcHViLCBjaGFpbiBjb2RlKS5cbiAqIFN0ZWxsYXIgU3RyS2V5IGVkMjU1MTkgcHVibGljIGtleXMgYXJlIGEgZml4ZWQgNTYgY2hhcmFjdGVycywgc28gbm8gbGVuZ3RoIHByZWZpeCBvciBzZXBhcmF0b3IgaXNcbiAqIG5lZWRlZC5cbiAqXG4gKiBNVVNUIHN0YXkgaWRlbnRpY2FsIHRvIHRoZSBjb3JyZXNwb25kaW5nIGNvbnN0YW50IGluIHdhbGxldC1wbGF0Zm9ybSwgYG1vZHVsZXMva2V5LWNhcmRgIGFuZCBXUlc6XG4gKiBhIGRpdmVyZ2VudCBvZmZzZXQgc3BsaXRzIHRoZSBwdWIgaW4gdGhlIHdyb25nIHBsYWNlIGFuZCBkZXJpdmVzIGNvLXNpZ25lciBrZXlzIG5vYm9keSBlbHNlIGNhblxuICogcmVwcm9kdWNlLCBwZXJtYW5lbnRseSBicmlja2luZyB0aGUgd2FsbGV0cyBtaW50ZWQgd2l0aCBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFUklWQUJMRV9FRDI1NTE5X1BVQl9TUExJVF9PRkZTRVQgPSA1NjtcblxuLyoqIFJhdyBsZW5ndGggb2YgYSBjaGFpbiBjb2RlIGJlZm9yZSBlbmNvZGluZy4gKi9cbmV4cG9ydCBjb25zdCBERVJJVkFCTEVfRUQyNTUxOV9DSEFJTl9DT0RFX0JZVEVTID0gMzI7XG5cbi8qKiBMZW5ndGggb2YgdGhlIGJhc2UzMi1lbmNvZGVkIGNoYWluIGNvZGUgaGFsZjogY2VpbCgzMiBieXRlcyAqIDggLyA1KSA9IDUyIGNoYXJhY3RlcnMuICovXG5leHBvcnQgY29uc3QgREVSSVZBQkxFX0VEMjU1MTlfQ0hBSU5fQ09ERV9MRU5HVEggPSA1MjtcblxuLyoqIFRvdGFsIGxlbmd0aCBvZiBhIHdlbGwtZm9ybWVkIGNvbXBvc2l0ZSBwdWIuICovXG5leHBvcnQgY29uc3QgREVSSVZBQkxFX0VEMjU1MTlfUFVCX0xFTkdUSCA9IERFUklWQUJMRV9FRDI1NTE5X1BVQl9TUExJVF9PRkZTRVQgKyBERVJJVkFCTEVfRUQyNTUxOV9DSEFJTl9DT0RFX0xFTkdUSDtcblxuLyoqXG4gKiBDaGFpbiBjb2RlcyBhcmUgc2VyaWFsaXplZCBhcyB1bnBhZGRlZCBSRkMgNDY0OCBiYXNlMzIsIHRoZSBzYW1lIGVuY29kaW5nIGFuZCBhbHBoYWJldCBTdHJLZXlcbiAqIHVzZXMsIHNvIHRoZSBjb21wb3NpdGUgcHViIGlzIGJhc2UzMiBlbmQgdG8gZW5kLlxuICpcbiAqIFRoZSBhbHBoYWJldCBpcyB1cHBlcmNhc2Utb25seSBhbmQgbG93ZXJjYXNlIGlzIHJlamVjdGVkIHJhdGhlciB0aGFuIG5vcm1hbGl6ZWQ6IGFjY2VwdGluZyBib3RoXG4gKiBjYXNpbmdzIHdvdWxkIG1ha2UgdGhlIGNvbXBvc2l0ZSBub24tY2Fub25pY2FsLCBzbyB0aGUgc2FtZSBrZXkgY291bGQgYmUgc3RvcmVkIHVuZGVyIHR3b1xuICogZGlzdGluY3Qgc3RyaW5ncyBhbmQgZXF1YWxpdHkgYWdhaW5zdCBhIHByZXZpb3VzbHktcGVyc2lzdGVkIHB1YiB3b3VsZCBzcHVyaW91c2x5IGZhaWwuXG4gKi9cbmNvbnN0IENIQUlOX0NPREVfUkVHRVggPSAvXltBLVoyLTddezUyfSQvO1xuXG4vKiogU3RyS2V5IHZlcnNpb24gYnl0ZSBmb3IgYW4gZWQyNTUxOSBwdWJsaWMga2V5IChgR+KApmApLiAqL1xuY29uc3QgU1RSS0VZX1ZFUlNJT05fQllURV9FRDI1NTE5X1BVQkxJQ19LRVkgPSA2IDw8IDM7XG5cbi8qKiBEZWNvZGVkIFN0cktleSBwYXlsb2FkOiAxIHZlcnNpb24gYnl0ZSArIDMyLWJ5dGUga2V5ICsgMi1ieXRlIGNoZWNrc3VtLiAqL1xuY29uc3QgU1RSS0VZX0RFQ09ERURfTEVOR1RIID0gMzU7XG5cbmNvbnN0IEJBU0UzMl9BTFBIQUJFVCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2Nyc7XG5jb25zdCBTVFJLRVlfRUQyNTUxOV9QVUJMSUNfS0VZX1JFR0VYID0gL15HW0EtWjItN117NTV9JC87XG5cbi8qKlxuICogRGVjb2RlIGFuIHVucGFkZGVkIFJGQyA0NjQ4IGJhc2UzMiBzdHJpbmcuIENhbGxlcnMgZ3VhcmFudGVlIHRoZSBpbnB1dCBhbHJlYWR5IG1hdGNoZWQgb25lIG9mIHRoZVxuICogYWxwaGFiZXQgcmVnZXhlcyBiZWxvdy4gQW55IGJpdHMgbGVmdCBvdmVyIHBhc3QgdGhlIGxhc3Qgd2hvbGUgYnl0ZSBhcmUgZHJvcHBlZCwgc28gYSBkZWNvZGUgYWxvbmVcbiAqIGRvZXMgTk9UIHByb3ZlIHRoZSBpbnB1dCB3YXMgY2Fub25pY2FsIOKAlCBzZWUge0BsaW5rIGlzVmFsaWRFZDI1NTE5Q2hhaW5Db2RlfSwgd2hpY2ggcmUtZW5jb2Rlcy5cbiAqL1xuZnVuY3Rpb24gYmFzZTMyRGVjb2RlKGlucHV0OiBzdHJpbmcpOiBCdWZmZXIge1xuICBjb25zdCBvdXQgPSBCdWZmZXIuYWxsb2MoTWF0aC5mbG9vcigoaW5wdXQubGVuZ3RoICogNSkgLyA4KSk7XG4gIGxldCBiaXRzID0gMDtcbiAgbGV0IHZhbHVlID0gMDtcbiAgbGV0IGluZGV4ID0gMDtcbiAgZm9yIChjb25zdCBjaGFyIG9mIGlucHV0KSB7XG4gICAgdmFsdWUgPSAodmFsdWUgPDwgNSkgfCBCQVNFMzJfQUxQSEFCRVQuaW5kZXhPZihjaGFyKTtcbiAgICBiaXRzICs9IDU7XG4gICAgaWYgKGJpdHMgPj0gOCkge1xuICAgICAgYml0cyAtPSA4O1xuICAgICAgb3V0W2luZGV4KytdID0gKHZhbHVlID4+PiBiaXRzKSAmIDB4ZmY7XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKiBFbmNvZGUgdG8gdW5wYWRkZWQgUkZDIDQ2NDggYmFzZTMyLiBUcmFpbGluZyBiaXRzIG9mIHRoZSBmaW5hbCBjaGFyYWN0ZXIgYXJlIHplcm8tZmlsbGVkLiAqL1xuZnVuY3Rpb24gYmFzZTMyRW5jb2RlKGRhdGE6IEJ1ZmZlcik6IHN0cmluZyB7XG4gIGxldCBiaXRzID0gMDtcbiAgbGV0IHZhbHVlID0gMDtcbiAgbGV0IG91dCA9ICcnO1xuICBmb3IgKGNvbnN0IGJ5dGUgb2YgZGF0YSkge1xuICAgIHZhbHVlID0gKHZhbHVlIDw8IDgpIHwgYnl0ZTtcbiAgICBiaXRzICs9IDg7XG4gICAgd2hpbGUgKGJpdHMgPj0gNSkge1xuICAgICAgYml0cyAtPSA1O1xuICAgICAgb3V0ICs9IEJBU0UzMl9BTFBIQUJFVFsodmFsdWUgPj4+IGJpdHMpICYgMHgxZl07XG4gICAgfVxuICB9XG4gIGlmIChiaXRzID4gMCkge1xuICAgIG91dCArPSBCQVNFMzJfQUxQSEFCRVRbKHZhbHVlIDw8ICg1IC0gYml0cykpICYgMHgxZl07XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuLyoqIENSQzE2LVhNb2RlbSwgdGhlIGNoZWNrc3VtIFN0ZWxsYXIgU3RyS2V5IGFwcGVuZHMgKGxpdHRsZS1lbmRpYW4pIHRvIHRoZSB2ZXJzaW9uZWQgcGF5bG9hZC4gKi9cbmZ1bmN0aW9uIGNyYzE2WG1vZGVtKGRhdGE6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGxldCBjcmMgPSAweDAwMDA7XG4gIGZvciAoY29uc3QgYnl0ZSBvZiBkYXRhKSB7XG4gICAgbGV0IGNvZGUgPSAoY3JjID4+PiA4KSAmIDB4ZmY7XG4gICAgY29kZSBePSBieXRlO1xuICAgIGNvZGUgXj0gY29kZSA+Pj4gNDtcbiAgICBjcmMgPSAoKGNyYyA8PCA4KSAmIDB4ZmZmZikgXiAoKGNvZGUgPDwgMTIpICYgMHhmZmZmKSBeICgoY29kZSA8PCA1KSAmIDB4ZmZmZikgXiBjb2RlO1xuICB9XG4gIHJldHVybiBjcmMgJiAweGZmZmY7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmZiBgcHViYCBpcyBhIHZhbGlkIFN0ZWxsYXIgU3RyS2V5IGVkMjU1MTkgcHVibGljIGtleS5cbiAqXG4gKiBJbXBsZW1lbnRlZCBoZXJlIHJhdGhlciB0aGFuIHB1bGxlZCBmcm9tIGBzdGVsbGFyLXNka2AgYmVjYXVzZSBgc2RrLWNvcmVgIG11c3Qgbm90IGRlcGVuZCBvbiBhXG4gKiBjb2luIG1vZHVsZS4gVGhlIHB1YiBoYWxmIGlzIHZhbGlkYXRlZCBieSBDSEVDS1NVTSwgbm90IG1lcmVseSBieSBsZW5ndGggYW5kIGFscGhhYmV0IOKAlCBhXG4gKiA1Ni1jaGFyYWN0ZXIgYEfigKZgIHN0cmluZyB3aXRoIGEgY29ycnVwdGVkIGJvZHkgaXMgcmVqZWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWQyNTUxOVN0cktleVB1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIVNUUktFWV9FRDI1NTE5X1BVQkxJQ19LRVlfUkVHRVgudGVzdChwdWIpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGRlY29kZWQgPSBiYXNlMzJEZWNvZGUocHViKTtcbiAgaWYgKGRlY29kZWQubGVuZ3RoICE9PSBTVFJLRVlfREVDT0RFRF9MRU5HVEggfHwgZGVjb2RlZFswXSAhPT0gU1RSS0VZX1ZFUlNJT05fQllURV9FRDI1NTE5X1BVQkxJQ19LRVkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIChcbiAgICBjcmMxNlhtb2RlbShkZWNvZGVkLnN1YmFycmF5KDAsIFNUUktFWV9ERUNPREVEX0xFTkdUSCAtIDIpKSA9PT0gZGVjb2RlZC5yZWFkVUludDE2TEUoU1RSS0VZX0RFQ09ERURfTEVOR1RIIC0gMilcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWZmIGBjaGFpbkNvZGVgIGlzIHRoZSBjYW5vbmljYWwgYmFzZTMyIGVuY29kaW5nIG9mIGV4YWN0bHkgMzIgYnl0ZXMuXG4gKlxuICogVGhlIGxlbmd0aCBjaGVjayBhbG9uZSBpcyBub3Qgc3VmZmljaWVudC4gNTIgYmFzZTMyIGNoYXJhY3RlcnMgY2FycnkgMjYwIGJpdHMgYnV0IGEgY2hhaW4gY29kZSBpc1xuICogb25seSAyNTYsIHNvIHRoZSBmaW5hbCBjaGFyYWN0ZXIgaGFzIDQgdW51c2VkIGxvdyBiaXRzIOKAlCAxNiBkaXN0aW5jdCBzdHJpbmdzIGRlY29kZSB0byB0aGUgc2FtZSAzMlxuICogYnl0ZXMuIE9ubHkgdGhlIG9uZSB3aG9zZSB0cmFpbGluZyBiaXRzIGFyZSB6ZXJvIGlzIGFjY2VwdGVkLCB3aGljaCB0aGUgcmUtZW5jb2RlIGVuZm9yY2VzLiBXZXJlXG4gKiBub24tY2Fub25pY2FsIHNwZWxsaW5ncyBhbGxvd2VkLCBvbmUga2V5IGNvdWxkIGJlIHBlcnNpc3RlZCB1bmRlciBzZXZlcmFsIGRpZmZlcmVudCBjb21wb3NpdGUgcHVic1xuICogYW5kIGVxdWFsaXR5IGFnYWluc3QgYSBzdG9yZWQgcHViIHdvdWxkIHNwdXJpb3VzbHkgZmFpbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFZDI1NTE5Q2hhaW5Db2RlKGNoYWluQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghQ0hBSU5fQ09ERV9SRUdFWC50ZXN0KGNoYWluQ29kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGJhc2UzMkVuY29kZShiYXNlMzJEZWNvZGUoY2hhaW5Db2RlKSkgPT09IGNoYWluQ29kZTtcbn1cblxuLyoqXG4gKiBNaW50IGEgZnJlc2ggY2hhaW4gY29kZSBmb3IgYSBkZXJpdmFibGUgc2xvdC3ikaMgcm9vdCwgYmFzZTMyLWVuY29kZWQuXG4gKlxuICogVGhlIGNoYWluIGNvZGUgaXMgaW5kZXBlbmRlbnQgcmFuZG9tbmVzcyAoVEREIFBhcnQgSUktMyBEMSkg4oCUIGl0IGlzIE5PVCBkZXJpdmVkIGZyb20gdGhlIHNlZWQsIHNvXG4gKiBpdCBjYW4gYmUgZ2VuZXJhdGVkIHdoZXJldmVyIHRoZSBjb21wb3NpdGUgcHViIGlzIGFzc2VtYmxlZC4gRW5jb2RpbmcgMzIgYnl0ZXMgYWx3YXlzIHlpZWxkcyB0aGVcbiAqIGNhbm9uaWNhbCBmb3JtLCBzbyB0aGUgcmVzdWx0IHNhdGlzZmllcyB7QGxpbmsgaXNWYWxpZEVkMjU1MTlDaGFpbkNvZGV9IGJ5IGNvbnN0cnVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRWQyNTUxOUNoYWluQ29kZUJhc2UzMigpOiBzdHJpbmcge1xuICByZXR1cm4gYmFzZTMyRW5jb2RlKHJhbmRvbUJ5dGVzKERFUklWQUJMRV9FRDI1NTE5X0NIQUlOX0NPREVfQllURVMpKTtcbn1cblxuLyoqXG4gKiBDb21wb3NlIGEgZGVyaXZhYmxlIHNsb3Qt4pGjIHJvb3QgcHViIGZyb20gaXRzIHR3byBoYWx2ZXMuXG4gKlxuICogVGhyb3dzIHdoZW4gZWl0aGVyIGhhbGYgaXMgbWFsZm9ybWVkOiBzaWxlbnRseSBlbWl0dGluZyBhIGNvbXBvc2l0ZSB3aG9zZSBoYWx2ZXMgZG8gbm90IHJvdW5kLXRyaXBcbiAqIHdvdWxkIHBlcnNpc3QgYSByb290IHB1YiBmcm9tIHdoaWNoIG5vIGNvcnJlY3QgY28tc2lnbmVyIGtleSBjYW4gZXZlciBiZSBkZXJpdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlRGVyaXZhYmxlRWQyNTUxOVB1YihwdWI6IHN0cmluZywgY2hhaW5Db2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlzVmFsaWRFZDI1NTE5U3RyS2V5UHVibGljS2V5KHB1YikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGVyaXZhYmxlIGVkMjU1MTkgcHViOiBwdWIgaGFsZiBpcyBub3QgYSB2YWxpZCBlZDI1NTE5IHB1YmxpYyBrZXknKTtcbiAgfVxuICBpZiAoIWlzVmFsaWRFZDI1NTE5Q2hhaW5Db2RlKGNoYWluQ29kZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGVyaXZhYmxlIGVkMjU1MTkgcHViOiBjaGFpbkNvZGUgbXVzdCBiZSA1MiBjYW5vbmljYWwgYmFzZTMyIGNoYXJhY3RlcnMnKTtcbiAgfVxuICByZXR1cm4gYCR7cHVifSR7Y2hhaW5Db2RlfWA7XG59XG5cbi8qKlxuICogU3BsaXQgYSBjb21wb3NpdGUgc2xvdC3ikaMgcm9vdCBwdWIgYmFjayBpbnRvIGl0cyB0d28gaGFsdmVzLlxuICpcbiAqIFRocm93cyB1bmxlc3MgdGhlIGlucHV0IGlzIEVYQUNUTFkgdGhlIGNvbXBvc2l0ZSBmb3JtLiBBIGxlbmllbnQgZGVjb2RlIHRoYXQgYWNjZXB0ZWQgYSBiYXJlXG4gKiA1Ni1jaGFyYWN0ZXIgcHViIHdvdWxkIGhhbmQgY2FsbGVycyBhbiBlbXB0eSBjaGFpbiBjb2RlIGFuZCBkZXJpdmUgZXZlcnkgY28tc2lnbmVyIGZyb20gdGhlIHNhbWVcbiAqICh6ZXJvLWxlbmd0aCkgZW50cm9weS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZURlcml2YWJsZUVkMjU1MTlQdWIoY29tcG9zaXRlOiBzdHJpbmcpOiB7IHB1Yjogc3RyaW5nOyBjaGFpbkNvZGU6IHN0cmluZyB9IHtcbiAgaWYgKGNvbXBvc2l0ZS5sZW5ndGggIT09IERFUklWQUJMRV9FRDI1NTE5X1BVQl9MRU5HVEgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBkZXJpdmFibGUgZWQyNTUxOSBwdWI6IGV4cGVjdGVkICR7REVSSVZBQkxFX0VEMjU1MTlfUFVCX0xFTkdUSH0gY2hhcmFjdGVycywgZ290ICR7Y29tcG9zaXRlLmxlbmd0aH1gXG4gICAgKTtcbiAgfVxuICBjb25zdCBwdWIgPSBjb21wb3NpdGUuc2xpY2UoMCwgREVSSVZBQkxFX0VEMjU1MTlfUFVCX1NQTElUX09GRlNFVCk7XG4gIGNvbnN0IGNoYWluQ29kZSA9IGNvbXBvc2l0ZS5zbGljZShERVJJVkFCTEVfRUQyNTUxOV9QVUJfU1BMSVRfT0ZGU0VUKTtcbiAgaWYgKCFpc1ZhbGlkRWQyNTUxOVN0cktleVB1YmxpY0tleShwdWIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRlcml2YWJsZSBlZDI1NTE5IHB1YjogcHViIGhhbGYgaXMgbm90IGEgdmFsaWQgZWQyNTUxOSBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgaWYgKCFpc1ZhbGlkRWQyNTUxOUNoYWluQ29kZShjaGFpbkNvZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRlcml2YWJsZSBlZDI1NTE5IHB1YjogY2hhaW5Db2RlIG11c3QgYmUgNTIgY2Fub25pY2FsIGJhc2UzMiBjaGFyYWN0ZXJzJyk7XG4gIH1cbiAgcmV0dXJuIHsgcHViLCBjaGFpbkNvZGUgfTtcbn1cblxuLyoqIFJldHVybnMgdHJ1ZSBpZmYgYGNvbXBvc2l0ZWAgaXMgYSB3ZWxsLWZvcm1lZCBkZXJpdmFibGUgc2xvdC3ikaMgcm9vdCBwdWIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEZXJpdmFibGVFZDI1NTE5UHViKGNvbXBvc2l0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgZGVjb2RlRGVyaXZhYmxlRWQyNTUxOVB1Yihjb21wb3NpdGUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @prettier
3
+ *
4
+ * @experimental The safe client surface is experimental and may change (including breaking
5
+ * changes) before the public release.
6
+ */
7
+ import type { FreezeSafeBody, SafeData, SafePermission, SafeRootKeys, SafeShareData, SafeShareKeychain, SafeShareState } from '@bitgo/public-types';
8
+ import type { Wallet, WalletShare } from '../wallet';
9
+ /** @experimental */
10
+ export interface InitializeSafeOptions {
11
+ label: string;
12
+ }
13
+ /**
14
+ * Phase 3 — the client hands back the 12 key ids it created in Phase 2.
15
+ * @experimental
16
+ */
17
+ export interface FinalizeSafeOptions {
18
+ rootKeys: SafeRootKeys;
19
+ }
20
+ /**
21
+ * Sharing ONE safe wallet with a non-member rides the existing wallet-share handshake (FR-13),
22
+ * so the result is the existing WalletShare shape.
23
+ */
24
+ export type WalletShareData = WalletShare;
25
+ export interface CreateSafeWalletOptions {
26
+ coin: string;
27
+ label: string;
28
+ passphrase: string;
29
+ type?: 'hot';
30
+ /** `tss` throws until MPC mint lands. Defaults to `onchain`. */
31
+ multisigType?: 'onchain' | 'tss';
32
+ }
33
+ interface AddSafeMemberBase {
34
+ permissions: SafePermission[];
35
+ /** required when 'spend' is included — the 4 root user keys ECDH-re-encrypted to the invitee */
36
+ keychains?: SafeShareKeychain[];
37
+ message?: string;
38
+ /** when true, suppress the invitation email that would otherwise be sent to `email` */
39
+ disableEmail?: boolean;
40
+ }
41
+ /** Add a member by either `userId` or `email` — exactly one is required. */
42
+ export type AddSafeMemberOptions = (AddSafeMemberBase & {
43
+ userId: string;
44
+ email?: never;
45
+ }) | (AddSafeMemberBase & {
46
+ email: string;
47
+ userId?: never;
48
+ });
49
+ export interface AddSafeWalletMemberOptions {
50
+ walletId: string;
51
+ /** required — sharing re-encrypts the user key, which needs hardened derivation from the passphrase */
52
+ walletPassphrase: string;
53
+ email?: string;
54
+ permissions?: string[];
55
+ message?: string;
56
+ }
57
+ export type AcceptSafeShareAsSpenderOptions = {
58
+ safeShareId: string;
59
+ userPassword: string;
60
+ newWalletPassphrase?: string;
61
+ };
62
+ export type AcceptSafeShareAsNonSpenderOptions = {
63
+ safeShareId: string;
64
+ };
65
+ export type AcceptSafeShareOptions = AcceptSafeShareAsSpenderOptions | AcceptSafeShareAsNonSpenderOptions;
66
+ /**
67
+ * @experimental
68
+ */
69
+ export interface ISafe {
70
+ id(): string;
71
+ enterpriseId(): string;
72
+ label(): string;
73
+ status(): SafeData['status'];
74
+ url(extra?: string): string;
75
+ createWallet(params: CreateSafeWalletOptions): Promise<Wallet>;
76
+ addMember(params: AddSafeMemberOptions): Promise<SafeData>;
77
+ addMemberToWallet(params: AddSafeWalletMemberOptions): Promise<WalletShareData>;
78
+ listShares(params?: {
79
+ state?: SafeShareState;
80
+ }): Promise<SafeShareData[]>;
81
+ acceptShare(params: AcceptSafeShareOptions): Promise<SafeShareData>;
82
+ freeze(params?: FreezeSafeBody): Promise<SafeData>;
83
+ archive(): Promise<SafeData>;
84
+ toJSON(): SafeData;
85
+ }
86
+ export {};
87
+ //# sourceMappingURL=iSafe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iSafe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/iSafe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVNhZmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9pU2FmZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFRoZSBzYWZlIGNsaWVudCBzdXJmYWNlIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGNoYW5nZSAoaW5jbHVkaW5nIGJyZWFraW5nXG4gKiBjaGFuZ2VzKSBiZWZvcmUgdGhlIHB1YmxpYyByZWxlYXNlLlxuICovXG4vLyBXaXJlL2RhdGEgc2hhcGVzIGFyZSBvd25lZCBieSBAYml0Z28vcHVibGljLXR5cGVzIOKAlCBpbXBvcnQgdGhlbSB3aGVyZSBuZWVkZWQgcmF0aGVyIHRoYW5cbi8vIHJlLWV4cG9ydGluZyBmcm9tIHNkay1jb3JlLlxuaW1wb3J0IHR5cGUge1xuICBGcmVlemVTYWZlQm9keSxcbiAgU2FmZURhdGEsXG4gIFNhZmVQZXJtaXNzaW9uLFxuICBTYWZlUm9vdEtleXMsXG4gIFNhZmVTaGFyZURhdGEsXG4gIFNhZmVTaGFyZUtleWNoYWluLFxuICBTYWZlU2hhcmVTdGF0ZSxcbn0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFdhbGxldCwgV2FsbGV0U2hhcmUgfSBmcm9tICcuLi93YWxsZXQnO1xuXG4vKiogQGV4cGVyaW1lbnRhbCAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplU2FmZU9wdGlvbnMge1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBoYXNlIDMg4oCUIHRoZSBjbGllbnQgaGFuZHMgYmFjayB0aGUgMTIga2V5IGlkcyBpdCBjcmVhdGVkIGluIFBoYXNlIDIuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmluYWxpemVTYWZlT3B0aW9ucyB7XG4gIHJvb3RLZXlzOiBTYWZlUm9vdEtleXM7XG59XG5cbi8qKlxuICogU2hhcmluZyBPTkUgc2FmZSB3YWxsZXQgd2l0aCBhIG5vbi1tZW1iZXIgcmlkZXMgdGhlIGV4aXN0aW5nIHdhbGxldC1zaGFyZSBoYW5kc2hha2UgKEZSLTEzKSxcbiAqIHNvIHRoZSByZXN1bHQgaXMgdGhlIGV4aXN0aW5nIFdhbGxldFNoYXJlIHNoYXBlLlxuICovXG5leHBvcnQgdHlwZSBXYWxsZXRTaGFyZURhdGEgPSBXYWxsZXRTaGFyZTtcblxuLy8gLS0tLSBwZXItc2FmZSBvcGVyYXRpb24gb3B0aW9ucyAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2FmZVdhbGxldE9wdGlvbnMge1xuICBjb2luOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgdHlwZT86ICdob3QnO1xuICAvKiogYHRzc2AgdGhyb3dzIHVudGlsIE1QQyBtaW50IGxhbmRzLiBEZWZhdWx0cyB0byBgb25jaGFpbmAuICovXG4gIG11bHRpc2lnVHlwZT86ICdvbmNoYWluJyB8ICd0c3MnO1xufVxuXG5pbnRlcmZhY2UgQWRkU2FmZU1lbWJlckJhc2Uge1xuICBwZXJtaXNzaW9uczogU2FmZVBlcm1pc3Npb25bXTtcbiAgLyoqIHJlcXVpcmVkIHdoZW4gJ3NwZW5kJyBpcyBpbmNsdWRlZCDigJQgdGhlIDQgcm9vdCB1c2VyIGtleXMgRUNESC1yZS1lbmNyeXB0ZWQgdG8gdGhlIGludml0ZWUgKi9cbiAga2V5Y2hhaW5zPzogU2FmZVNoYXJlS2V5Y2hhaW5bXTtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgLyoqIHdoZW4gdHJ1ZSwgc3VwcHJlc3MgdGhlIGludml0YXRpb24gZW1haWwgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUgc2VudCB0byBgZW1haWxgICovXG4gIGRpc2FibGVFbWFpbD86IGJvb2xlYW47XG59XG5cbi8qKiBBZGQgYSBtZW1iZXIgYnkgZWl0aGVyIGB1c2VySWRgIG9yIGBlbWFpbGAg4oCUIGV4YWN0bHkgb25lIGlzIHJlcXVpcmVkLiAqL1xuZXhwb3J0IHR5cGUgQWRkU2FmZU1lbWJlck9wdGlvbnMgPVxuICB8IChBZGRTYWZlTWVtYmVyQmFzZSAmIHsgdXNlcklkOiBzdHJpbmc7IGVtYWlsPzogbmV2ZXIgfSlcbiAgfCAoQWRkU2FmZU1lbWJlckJhc2UgJiB7IGVtYWlsOiBzdHJpbmc7IHVzZXJJZD86IG5ldmVyIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFNhZmVXYWxsZXRNZW1iZXJPcHRpb25zIHtcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgLyoqIHJlcXVpcmVkIOKAlCBzaGFyaW5nIHJlLWVuY3J5cHRzIHRoZSB1c2VyIGtleSwgd2hpY2ggbmVlZHMgaGFyZGVuZWQgZGVyaXZhdGlvbiBmcm9tIHRoZSBwYXNzcGhyYXNlICovXG4gIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFjY2VwdFNhZmVTaGFyZUFzU3BlbmRlck9wdGlvbnMgPSB7XG4gIHNhZmVTaGFyZUlkOiBzdHJpbmc7XG4gIHVzZXJQYXNzd29yZDogc3RyaW5nO1xuICBuZXdXYWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFjY2VwdFNhZmVTaGFyZUFzTm9uU3BlbmRlck9wdGlvbnMgPSB7XG4gIHNhZmVTaGFyZUlkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQWNjZXB0U2FmZVNoYXJlT3B0aW9ucyA9IEFjY2VwdFNhZmVTaGFyZUFzU3BlbmRlck9wdGlvbnMgfCBBY2NlcHRTYWZlU2hhcmVBc05vblNwZW5kZXJPcHRpb25zO1xuXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2FmZSB7XG4gIGlkKCk6IHN0cmluZztcbiAgZW50ZXJwcmlzZUlkKCk6IHN0cmluZztcbiAgbGFiZWwoKTogc3RyaW5nO1xuICBzdGF0dXMoKTogU2FmZURhdGFbJ3N0YXR1cyddO1xuICB1cmwoZXh0cmE/OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGNyZWF0ZVdhbGxldChwYXJhbXM6IENyZWF0ZVNhZmVXYWxsZXRPcHRpb25zKTogUHJvbWlzZTxXYWxsZXQ+O1xuICAvLyB3aG9sZS1zYWZlOiB2aWV3L2FkbWluL3NwZW5kL2RhcHA7IHNwZW5kIG9wZW5zIGEga2V5IHNoYXJlIChhbHNvIGhvdyBhIHNwZW5kZXIgc2VydmljZXMgYVxuICAvLyBzYWZlU2hhcmVSZXF1ZXN0cyBlbnRyeSBpbiBVTVMgb3JncylcbiAgYWRkTWVtYmVyKHBhcmFtczogQWRkU2FmZU1lbWJlck9wdGlvbnMpOiBQcm9taXNlPFNhZmVEYXRhPjtcbiAgLy8gc2hhcmUgT05FIHNhZmUgd2FsbGV0LCBub3QgdGhlIHdob2xlIHNhZmVcbiAgYWRkTWVtYmVyVG9XYWxsZXQocGFyYW1zOiBBZGRTYWZlV2FsbGV0TWVtYmVyT3B0aW9ucyk6IFByb21pc2U8V2FsbGV0U2hhcmVEYXRhPjtcbiAgbGlzdFNoYXJlcyhwYXJhbXM/OiB7IHN0YXRlPzogU2FmZVNoYXJlU3RhdGUgfSk6IFByb21pc2U8U2FmZVNoYXJlRGF0YVtdPjtcbiAgYWNjZXB0U2hhcmUocGFyYW1zOiBBY2NlcHRTYWZlU2hhcmVPcHRpb25zKTogUHJvbWlzZTxTYWZlU2hhcmVEYXRhPjtcbiAgZnJlZXplKHBhcmFtcz86IEZyZWV6ZVNhZmVCb2R5KTogUHJvbWlzZTxTYWZlRGF0YT47XG4gIGFyY2hpdmUoKTogUHJvbWlzZTxTYWZlRGF0YT47XG4gIHRvSlNPTigpOiBTYWZlRGF0YTtcbn1cbiJdfQ==
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @prettier
3
+ *
4
+ * @experimental The safe client surface is experimental and may change (including breaking
5
+ * changes) before the public release.
6
+ */
7
+ import type { InitializeSafeResponse } from '@bitgo/public-types';
8
+ import { FinalizeSafeOptions, InitializeSafeOptions } from './iSafe';
9
+ import { Safe } from './safe';
10
+ /**
11
+ * Options for safe creation.
12
+ *
13
+ * v1 targets the HOT custody model only: the multisig root user/backup keys are generated locally
14
+ * by the SDK, encrypted with `passphrase`, and registered on BitGo; the MPC roots run the standard
15
+ * hot ceremonies with the same passphrase. Self-managed cold keys and custodial safes are out of
16
+ * scope for v1.
17
+ * @experimental
18
+ */
19
+ export interface CreateSafeOptions {
20
+ label: string;
21
+ passphrase: string;
22
+ }
23
+ /**
24
+ * Handle returned by `initializeSafe`, threaded into the key ceremonies and finalize.
25
+ *
26
+ * `enabledRootSlots` is the server-decided (Flipt, evaluated once at initialize) set of root-key
27
+ * slots to generate; absent (older WP) falls back to all 4 slots.
28
+ * @experimental
29
+ */
30
+ export interface SafeCreationHandle {
31
+ safeId: string;
32
+ enabledRootSlots?: InitializeSafeResponse['enabledRootSlots'];
33
+ }
34
+ /**
35
+ * The minted root key ids produced by `createSafeKeys`, as ordered [user, backup, bitgo]
36
+ * triplets for the enabled slots — exactly the payload `finalizeSafe` consumes.
37
+ * @experimental
38
+ */
39
+ export type SafeKeys = FinalizeSafeOptions;
40
+ /**
41
+ * @experimental
42
+ */
43
+ export interface ListSafesOptions {
44
+ cursor?: string;
45
+ limit?: number;
46
+ }
47
+ /**
48
+ * @experimental
49
+ */
50
+ export interface GetSafeOptions {
51
+ id: string;
52
+ }
53
+ /**
54
+ * @experimental
55
+ */
56
+ export interface ISafes {
57
+ /**
58
+ * One-call convenience wrapper chaining the three creation phases:
59
+ * initialize → createSafeKeys (safeId-tagged ceremonies for the enabled root slots) → finalize.
60
+ * HOT custody only in v1.
61
+ * @experimental
62
+ */
63
+ generateSafe(params: CreateSafeOptions): Promise<Safe>;
64
+ /**
65
+ * Phase 1 — initialize a safe (metadata only, no key material). The server response is
66
+ * `{ id, status }` plus optional `enabledRootSlots` (no `label`/`enterpriseId`/`creator`/`users`/
67
+ * `createdAt` yet), so this returns that raw shape rather than a full `Safe`.
68
+ * @experimental
69
+ */
70
+ initializeSafe(params: InitializeSafeOptions): Promise<InitializeSafeResponse>;
71
+ /**
72
+ * Phase 2 — run the enabled root key ceremonies tagged with `safeId`; returns the minted key ids.
73
+ * @experimental
74
+ */
75
+ createSafeKeys(params: CreateSafeOptions & SafeCreationHandle): Promise<SafeKeys>;
76
+ /**
77
+ * Phase 3 — finalize a safe with the minted root key ids. Idempotent.
78
+ * @experimental
79
+ */
80
+ finalizeSafe(safeId: string, params: FinalizeSafeOptions): Promise<Safe>;
81
+ /**
82
+ * Archive a safe. Also the abandonment path for a stuck `initializing` safe.
83
+ * @experimental
84
+ */
85
+ archiveSafe(safeId: string): Promise<Safe>;
86
+ /** @experimental */
87
+ list(params?: ListSafesOptions): Promise<{
88
+ safes: Safe[];
89
+ nextCursor?: string;
90
+ }>;
91
+ /** @experimental */
92
+ get(params: GetSafeOptions): Promise<Safe>;
93
+ }
94
+ //# sourceMappingURL=iSafes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iSafes.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/iSafes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;CAC/D;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/E;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,oBAAoB;IACpB,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,oBAAoB;IACpB,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVNhZmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3NhZmUvaVNhZmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIEBleHBlcmltZW50YWwgVGhlIHNhZmUgY2xpZW50IHN1cmZhY2UgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgY2hhbmdlIChpbmNsdWRpbmcgYnJlYWtpbmdcbiAqIGNoYW5nZXMpIGJlZm9yZSB0aGUgcHVibGljIHJlbGVhc2UuXG4gKi9cbmltcG9ydCB0eXBlIHsgSW5pdGlhbGl6ZVNhZmVSZXNwb25zZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgRmluYWxpemVTYWZlT3B0aW9ucywgSW5pdGlhbGl6ZVNhZmVPcHRpb25zIH0gZnJvbSAnLi9pU2FmZSc7XG5pbXBvcnQgeyBTYWZlIH0gZnJvbSAnLi9zYWZlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBzYWZlIGNyZWF0aW9uLlxuICpcbiAqIHYxIHRhcmdldHMgdGhlIEhPVCBjdXN0b2R5IG1vZGVsIG9ubHk6IHRoZSBtdWx0aXNpZyByb290IHVzZXIvYmFja3VwIGtleXMgYXJlIGdlbmVyYXRlZCBsb2NhbGx5XG4gKiBieSB0aGUgU0RLLCBlbmNyeXB0ZWQgd2l0aCBgcGFzc3BocmFzZWAsIGFuZCByZWdpc3RlcmVkIG9uIEJpdEdvOyB0aGUgTVBDIHJvb3RzIHJ1biB0aGUgc3RhbmRhcmRcbiAqIGhvdCBjZXJlbW9uaWVzIHdpdGggdGhlIHNhbWUgcGFzc3BocmFzZS4gU2VsZi1tYW5hZ2VkIGNvbGQga2V5cyBhbmQgY3VzdG9kaWFsIHNhZmVzIGFyZSBvdXQgb2ZcbiAqIHNjb3BlIGZvciB2MS5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTYWZlT3B0aW9ucyB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZzsgLy8gZW5jcnlwdHMgdGhlIGxvY2FsbHktZ2VuZXJhdGVkIG11bHRpc2lnIHVzZXIvYmFja3VwIHBydnM7IHNoYXJlZCB3aXRoIHRoZSBNUEMgY2VyZW1vbmllc1xufVxuXG4vKipcbiAqIEhhbmRsZSByZXR1cm5lZCBieSBgaW5pdGlhbGl6ZVNhZmVgLCB0aHJlYWRlZCBpbnRvIHRoZSBrZXkgY2VyZW1vbmllcyBhbmQgZmluYWxpemUuXG4gKlxuICogYGVuYWJsZWRSb290U2xvdHNgIGlzIHRoZSBzZXJ2ZXItZGVjaWRlZCAoRmxpcHQsIGV2YWx1YXRlZCBvbmNlIGF0IGluaXRpYWxpemUpIHNldCBvZiByb290LWtleVxuICogc2xvdHMgdG8gZ2VuZXJhdGU7IGFic2VudCAob2xkZXIgV1ApIGZhbGxzIGJhY2sgdG8gYWxsIDQgc2xvdHMuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZUNyZWF0aW9uSGFuZGxlIHtcbiAgc2FmZUlkOiBzdHJpbmc7XG4gIGVuYWJsZWRSb290U2xvdHM/OiBJbml0aWFsaXplU2FmZVJlc3BvbnNlWydlbmFibGVkUm9vdFNsb3RzJ107XG59XG5cbi8qKlxuICogVGhlIG1pbnRlZCByb290IGtleSBpZHMgcHJvZHVjZWQgYnkgYGNyZWF0ZVNhZmVLZXlzYCwgYXMgb3JkZXJlZCBbdXNlciwgYmFja3VwLCBiaXRnb11cbiAqIHRyaXBsZXRzIGZvciB0aGUgZW5hYmxlZCBzbG90cyDigJQgZXhhY3RseSB0aGUgcGF5bG9hZCBgZmluYWxpemVTYWZlYCBjb25zdW1lcy5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IHR5cGUgU2FmZUtleXMgPSBGaW5hbGl6ZVNhZmVPcHRpb25zO1xuXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2FmZXNPcHRpb25zIHtcbiAgY3Vyc29yPzogc3RyaW5nOyAvLyBvcGFxdWUgY3Vyc29yIGZyb20gYSBwcmV2aW91cyByZXNwb25zZSdzIG5leHRDdXJzb3JcbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFNhZmVPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNhZmVzIHtcbiAgLyoqXG4gICAqIE9uZS1jYWxsIGNvbnZlbmllbmNlIHdyYXBwZXIgY2hhaW5pbmcgdGhlIHRocmVlIGNyZWF0aW9uIHBoYXNlczpcbiAgICogaW5pdGlhbGl6ZSDihpIgY3JlYXRlU2FmZUtleXMgKHNhZmVJZC10YWdnZWQgY2VyZW1vbmllcyBmb3IgdGhlIGVuYWJsZWQgcm9vdCBzbG90cykg4oaSIGZpbmFsaXplLlxuICAgKiBIT1QgY3VzdG9keSBvbmx5IGluIHYxLlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICBnZW5lcmF0ZVNhZmUocGFyYW1zOiBDcmVhdGVTYWZlT3B0aW9ucyk6IFByb21pc2U8U2FmZT47XG4gIC8qKlxuICAgKiBQaGFzZSAxIOKAlCBpbml0aWFsaXplIGEgc2FmZSAobWV0YWRhdGEgb25seSwgbm8ga2V5IG1hdGVyaWFsKS4gVGhlIHNlcnZlciByZXNwb25zZSBpc1xuICAgKiBgeyBpZCwgc3RhdHVzIH1gIHBsdXMgb3B0aW9uYWwgYGVuYWJsZWRSb290U2xvdHNgIChubyBgbGFiZWxgL2BlbnRlcnByaXNlSWRgL2BjcmVhdG9yYC9gdXNlcnNgL1xuICAgKiBgY3JlYXRlZEF0YCB5ZXQpLCBzbyB0aGlzIHJldHVybnMgdGhhdCByYXcgc2hhcGUgcmF0aGVyIHRoYW4gYSBmdWxsIGBTYWZlYC5cbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgaW5pdGlhbGl6ZVNhZmUocGFyYW1zOiBJbml0aWFsaXplU2FmZU9wdGlvbnMpOiBQcm9taXNlPEluaXRpYWxpemVTYWZlUmVzcG9uc2U+O1xuICAvKipcbiAgICogUGhhc2UgMiDigJQgcnVuIHRoZSBlbmFibGVkIHJvb3Qga2V5IGNlcmVtb25pZXMgdGFnZ2VkIHdpdGggYHNhZmVJZGA7IHJldHVybnMgdGhlIG1pbnRlZCBrZXkgaWRzLlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICBjcmVhdGVTYWZlS2V5cyhwYXJhbXM6IENyZWF0ZVNhZmVPcHRpb25zICYgU2FmZUNyZWF0aW9uSGFuZGxlKTogUHJvbWlzZTxTYWZlS2V5cz47XG4gIC8qKlxuICAgKiBQaGFzZSAzIOKAlCBmaW5hbGl6ZSBhIHNhZmUgd2l0aCB0aGUgbWludGVkIHJvb3Qga2V5IGlkcy4gSWRlbXBvdGVudC5cbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgZmluYWxpemVTYWZlKHNhZmVJZDogc3RyaW5nLCBwYXJhbXM6IEZpbmFsaXplU2FmZU9wdGlvbnMpOiBQcm9taXNlPFNhZmU+O1xuICAvKipcbiAgICogQXJjaGl2ZSBhIHNhZmUuIEFsc28gdGhlIGFiYW5kb25tZW50IHBhdGggZm9yIGEgc3R1Y2sgYGluaXRpYWxpemluZ2Agc2FmZS5cbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgYXJjaGl2ZVNhZmUoc2FmZUlkOiBzdHJpbmcpOiBQcm9taXNlPFNhZmU+O1xuICAvKiogQGV4cGVyaW1lbnRhbCAqL1xuICBsaXN0KHBhcmFtcz86IExpc3RTYWZlc09wdGlvbnMpOiBQcm9taXNlPHsgc2FmZXM6IFNhZmVbXTsgbmV4dEN1cnNvcj86IHN0cmluZyB9PjtcbiAgLyoqIEBleHBlcmltZW50YWwgKi9cbiAgZ2V0KHBhcmFtczogR2V0U2FmZU9wdGlvbnMpOiBQcm9taXNlPFNhZmU+O1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './derivableEd25519Pub';
2
+ export * from './iSafe';
3
+ export * from './iSafes';
4
+ export * from './safe';
5
+ export * from './safeDerivation';
6
+ export * from './safes';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./derivableEd25519Pub"), exports);
18
+ __exportStar(require("./iSafe"), exports);
19
+ __exportStar(require("./iSafes"), exports);
20
+ __exportStar(require("./safe"), exports);
21
+ __exportStar(require("./safeDerivation"), exports);
22
+ __exportStar(require("./safes"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXNDO0FBQ3RDLDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIseUNBQXVCO0FBQ3ZCLG1EQUFpQztBQUNqQywwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rlcml2YWJsZUVkMjU1MTlQdWInO1xuZXhwb3J0ICogZnJvbSAnLi9pU2FmZSc7XG5leHBvcnQgKiBmcm9tICcuL2lTYWZlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NhZmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zYWZlRGVyaXZhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NhZmVzJztcbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { FreezeSafeBody, SafeData, SafeShareData, SafeShareState } from '@bitgo/public-types';
2
+ import { BitGoBase } from '../bitgoBase';
3
+ import { Wallet } from '../wallet';
4
+ import { AcceptSafeShareOptions, AddSafeMemberOptions, AddSafeWalletMemberOptions, CreateSafeWalletOptions, ISafe, WalletShareData } from './iSafe';
5
+ /**
6
+ * @experimental
7
+ */
8
+ export declare class Safe implements ISafe {
9
+ private readonly bitgo;
10
+ readonly _safe: SafeData;
11
+ constructor(bitgo: BitGoBase, safeData: SafeData);
12
+ id(): string;
13
+ enterpriseId(): string;
14
+ label(): string;
15
+ status(): SafeData['status'];
16
+ /**
17
+ * Enterprise-scoped v2 URL for this safe, e.g. /api/v2/enterprise/:eId/safes/:safeId
18
+ * @param extra
19
+ */
20
+ url(extra?: string): string;
21
+ /**
22
+ * Mint a child wallet: peek the sequential index, hardened-derive the user child,
23
+ * register it public-only, then mint. Backup and BitGo children are soft-derived on the server.
24
+ */
25
+ createWallet(params: CreateSafeWalletOptions): Promise<Wallet>;
26
+ private fetchSafeData;
27
+ /**
28
+ * Add a member to the whole safe (view/admin/spend). Spend opens a key share.
29
+ * Body lands in WCN-1204.
30
+ */
31
+ addMember(params: AddSafeMemberOptions): Promise<SafeData>;
32
+ /**
33
+ * Share ONE safe wallet with a non-member via the existing wallet-share handshake (FR-13).
34
+ * Body lands in WCN-1204.
35
+ */
36
+ addMemberToWallet(params: AddSafeWalletMemberOptions): Promise<WalletShareData>;
37
+ /**
38
+ * List the safe key shares visible to the caller.
39
+ * Body lands in WCN-1204.
40
+ */
41
+ listShares(params?: {
42
+ state?: SafeShareState;
43
+ }): Promise<SafeShareData[]>;
44
+ /**
45
+ * Accept a safe key share addressed to the caller.
46
+ * Body lands in WCN-1204.
47
+ */
48
+ acceptShare(params: AcceptSafeShareOptions): Promise<SafeShareData>;
49
+ /**
50
+ * Freeze the safe — blocks withdrawals on all safe wallets. Safe stays 'active'.
51
+ * @param params
52
+ */
53
+ freeze(params?: FreezeSafeBody): Promise<SafeData>;
54
+ /**
55
+ * Archive the safe. Requires every safe wallet to already be archived; also the abandonment
56
+ * path for a stuck 'initializing' safe.
57
+ */
58
+ archive(): Promise<SafeData>;
59
+ toJSON(): SafeData;
60
+ }
61
+ //# sourceMappingURL=safe.d.ts.map