@bitgo-beta/sdk-core 8.2.1-beta.183 → 8.2.1-beta.1831

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 (631) 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 +50 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +90 -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 +61 -0
  87. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -0
  88. package/dist/src/bitgo/address-book/address-book.js +139 -0
  89. package/dist/src/bitgo/address-book/index.d.ts +3 -0
  90. package/dist/src/bitgo/address-book/index.d.ts.map +1 -0
  91. package/dist/src/bitgo/address-book/index.js +19 -0
  92. package/dist/src/bitgo/address-book/types.d.ts +170 -0
  93. package/dist/src/bitgo/address-book/types.d.ts.map +1 -0
  94. package/dist/src/bitgo/address-book/types.js +3 -0
  95. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +112 -11
  96. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  97. package/dist/src/bitgo/baseCoin/baseCoin.js +183 -16
  98. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +248 -27
  99. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  100. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  101. package/dist/src/bitgo/baseCoin/index.js +6 -2
  102. package/dist/src/bitgo/bip32util.d.ts +3 -16
  103. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  104. package/dist/src/bitgo/bip32util.js +4 -56
  105. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  106. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  107. package/dist/src/bitgo/bitcoin.js +26 -13
  108. package/dist/src/bitgo/bitgoBase.d.ts +8 -1
  109. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  110. package/dist/src/bitgo/bitgoBase.js +1 -1
  111. package/dist/src/bitgo/coinFactory.d.ts +17 -3
  112. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  113. package/dist/src/bitgo/coinFactory.js +26 -3
  114. package/dist/src/bitgo/config.d.ts +3 -95
  115. package/dist/src/bitgo/config.d.ts.map +1 -1
  116. package/dist/src/bitgo/config.js +26 -15
  117. package/dist/src/bitgo/defi/defiVault.d.ts +80 -0
  118. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
  119. package/dist/src/bitgo/defi/defiVault.js +201 -0
  120. package/dist/src/bitgo/defi/iDefiVault.d.ts +59 -0
  121. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
  122. package/dist/src/bitgo/defi/iDefiVault.js +6 -0
  123. package/dist/src/bitgo/defi/index.d.ts +3 -0
  124. package/dist/src/bitgo/defi/index.d.ts.map +1 -0
  125. package/dist/src/bitgo/defi/index.js +22 -0
  126. package/dist/src/bitgo/ecdh.d.ts +0 -1
  127. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  128. package/dist/src/bitgo/ecdh.js +26 -13
  129. package/dist/src/bitgo/enterprise/enterprise.d.ts +3 -4
  130. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  131. package/dist/src/bitgo/enterprise/enterprise.js +39 -21
  132. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  133. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +2 -3
  134. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  135. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  136. package/dist/src/bitgo/enterprise/index.js +6 -2
  137. package/dist/src/bitgo/environments.d.ts +69 -5
  138. package/dist/src/bitgo/environments.d.ts.map +1 -1
  139. package/dist/src/bitgo/environments.js +409 -40
  140. package/dist/src/bitgo/errors.d.ts +175 -0
  141. package/dist/src/bitgo/errors.d.ts.map +1 -1
  142. package/dist/src/bitgo/errors.js +166 -2
  143. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  144. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  145. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  146. package/dist/src/bitgo/index.d.ts +4 -1
  147. package/dist/src/bitgo/index.d.ts.map +1 -1
  148. package/dist/src/bitgo/index.js +30 -11
  149. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  150. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  151. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  152. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  153. package/dist/src/bitgo/internal/index.js +6 -2
  154. package/dist/src/bitgo/internal/internal.js +5 -6
  155. package/dist/src/bitgo/internal/keycard.d.ts +19 -6
  156. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  157. package/dist/src/bitgo/internal/keycard.js +105 -44
  158. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +24 -0
  159. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  160. package/dist/src/bitgo/keychain/decryptKeychain.js +67 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts +95 -9
  162. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  163. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  164. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  165. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  166. package/dist/src/bitgo/keychain/index.js +7 -2
  167. package/dist/src/bitgo/keychain/keychains.d.ts +49 -6
  168. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  169. package/dist/src/bitgo/keychain/keychains.js +249 -46
  170. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  171. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  172. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  173. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  174. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  175. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  176. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  177. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  178. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  179. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  180. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  181. package/dist/src/bitgo/market/index.js +6 -2
  182. package/dist/src/bitgo/market/markets.js +23 -9
  183. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
  184. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  185. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  186. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  187. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  188. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  189. package/dist/src/bitgo/pendingApproval/pendingApproval.js +228 -110
  190. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  191. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  192. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  193. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  194. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  195. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  196. package/dist/src/bitgo/proofs/index.js +6 -0
  197. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  198. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  199. package/dist/src/bitgo/proofs/types.js +80 -0
  200. package/dist/src/bitgo/recovery/index.js +6 -2
  201. package/dist/src/bitgo/recovery/initiate.d.ts +24 -1
  202. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  203. package/dist/src/bitgo/recovery/initiate.js +88 -40
  204. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +132 -0
  205. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  206. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  207. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  208. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  209. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  210. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  211. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  212. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  213. package/dist/src/bitgo/staking/iStakingWallet.d.ts +173 -7
  214. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  215. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  216. package/dist/src/bitgo/staking/index.d.ts +3 -0
  217. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  218. package/dist/src/bitgo/staking/index.js +9 -2
  219. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  220. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  221. package/dist/src/bitgo/staking/stakingWallet.js +140 -7
  222. package/dist/src/bitgo/trading/iTradingAccount.d.ts +15 -1
  223. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  224. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  225. package/dist/src/bitgo/trading/index.d.ts +1 -0
  226. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  227. package/dist/src/bitgo/trading/index.js +7 -2
  228. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  229. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  230. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  231. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  232. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  233. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  234. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  235. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  236. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  237. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  238. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  239. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  240. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  241. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  242. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  243. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  244. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  245. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  246. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  247. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  248. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  249. package/dist/src/bitgo/trading/network/index.d.ts +5 -0
  250. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -0
  251. package/dist/src/bitgo/trading/network/index.js +21 -0
  252. package/dist/src/bitgo/trading/network/network.d.ts +36 -0
  253. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -0
  254. package/dist/src/bitgo/trading/network/network.js +99 -0
  255. package/dist/src/bitgo/trading/network/types.d.ts +277 -0
  256. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -0
  257. package/dist/src/bitgo/trading/network/types.js +3 -0
  258. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  259. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  260. package/dist/src/bitgo/trading/network/utils.js +54 -0
  261. package/dist/src/bitgo/trading/tradingAccount.d.ts +22 -1
  262. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  263. package/dist/src/bitgo/trading/tradingAccount.js +64 -7
  264. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +38 -0
  265. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  266. package/dist/src/bitgo/tss/bitgoPubKeys.js +72 -0
  267. package/dist/src/bitgo/tss/common.d.ts +40 -6
  268. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  269. package/dist/src/bitgo/tss/common.js +122 -17
  270. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  271. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  272. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  273. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  274. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  275. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  276. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  277. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  278. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  279. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  280. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  281. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  282. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  283. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  284. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  285. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +37 -0
  286. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  287. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +95 -0
  288. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  289. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  290. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  291. package/dist/src/bitgo/tss/index.d.ts +3 -2
  292. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  293. package/dist/src/bitgo/tss/index.js +26 -10
  294. package/dist/src/bitgo/tss/types.d.ts +3 -3
  295. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  296. package/dist/src/bitgo/tss/types.js +2 -2
  297. package/dist/src/bitgo/types.d.ts +3 -3
  298. package/dist/src/bitgo/types.d.ts.map +1 -1
  299. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +8 -0
  300. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  301. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +55 -13
  302. package/dist/src/bitgo/utils/codecProps.js +24 -11
  303. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  304. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  305. package/dist/src/bitgo/utils/codecs.js +59 -0
  306. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  307. package/dist/src/bitgo/utils/decode.js +30 -16
  308. package/dist/src/bitgo/utils/index.d.ts +4 -2
  309. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  310. package/dist/src/bitgo/utils/index.js +27 -11
  311. package/dist/src/bitgo/utils/messageTypes.d.ts +40 -0
  312. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  313. package/dist/src/bitgo/utils/messageTypes.js +17 -0
  314. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  315. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  316. package/dist/src/bitgo/utils/mpcUtils.js +129 -14
  317. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  318. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  319. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  320. package/dist/src/bitgo/utils/opengpgUtils.d.ts +12 -9
  321. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  322. package/dist/src/bitgo/utils/opengpgUtils.js +77 -64
  323. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  324. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  325. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  326. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  327. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  328. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  329. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  330. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  331. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  332. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  333. package/dist/src/bitgo/utils/triple.js +2 -3
  334. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +62 -0
  335. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  336. package/dist/src/bitgo/utils/tss/addressVerification.js +100 -0
  337. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +90 -17
  338. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  339. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +278 -45
  340. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +380 -45
  341. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  342. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  343. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  344. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  345. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  346. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  347. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  348. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  349. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +24 -51
  350. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  351. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +171 -246
  352. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +210 -0
  353. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  354. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1073 -0
  355. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  356. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  357. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
  358. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  359. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  360. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  361. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  362. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  363. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  364. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  365. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  366. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  367. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  368. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  369. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +118 -0
  370. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  371. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  372. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  373. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +28 -11
  374. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  375. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +218 -103
  376. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +119 -0
  377. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  378. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +637 -0
  379. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +6 -0
  380. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  381. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +13 -0
  382. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +4 -0
  383. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  384. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -8
  385. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +12 -7
  386. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  387. package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
  388. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -0
  389. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  390. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  391. package/dist/src/bitgo/utils/tss/index.d.ts +2 -0
  392. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  393. package/dist/src/bitgo/utils/tss/index.js +25 -9
  394. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
  395. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  396. package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
  397. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  398. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  399. package/dist/src/bitgo/utils/txRequest.js +49 -0
  400. package/dist/src/bitgo/utils/util.js +24 -10
  401. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  402. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  403. package/dist/src/bitgo/utils/wallet.js +48 -0
  404. package/dist/src/bitgo/wallet/BuildParams.d.ts +50 -1
  405. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  406. package/dist/src/bitgo/wallet/BuildParams.js +58 -11
  407. package/dist/src/bitgo/wallet/iWallet.d.ts +480 -22
  408. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  409. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  410. package/dist/src/bitgo/wallet/iWallets.d.ts +157 -16
  411. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  412. package/dist/src/bitgo/wallet/iWallets.js +63 -3
  413. package/dist/src/bitgo/wallet/index.js +6 -2
  414. package/dist/src/bitgo/wallet/wallet.d.ts +369 -24
  415. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  416. package/dist/src/bitgo/wallet/wallet.js +2022 -410
  417. package/dist/src/bitgo/wallet/wallets.d.ts +88 -4
  418. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  419. package/dist/src/bitgo/wallet/wallets.js +1048 -155
  420. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  421. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  422. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  423. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  424. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  425. package/dist/src/bitgo/walletUtil/index.js +19 -0
  426. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  427. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  428. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  429. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  430. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  431. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  432. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  433. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  434. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  435. package/dist/src/bitgo/webhook/index.js +6 -2
  436. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  437. package/dist/src/coins/fiat.d.ts +45 -0
  438. package/dist/src/coins/fiat.d.ts.map +1 -0
  439. package/dist/src/coins/fiat.js +94 -0
  440. package/dist/src/coins/index.d.ts +1 -6
  441. package/dist/src/coins/index.d.ts.map +1 -1
  442. package/dist/src/coins/index.js +7 -8
  443. package/dist/src/coins/ofc.d.ts +21 -2
  444. package/dist/src/coins/ofc.d.ts.map +1 -1
  445. package/dist/src/coins/ofc.js +29 -3
  446. package/dist/src/coins/ofcToken.d.ts +15 -4
  447. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  448. package/dist/src/coins/ofcToken.js +43 -5
  449. package/dist/src/coins/susd.d.ts +3 -2
  450. package/dist/src/coins/susd.d.ts.map +1 -1
  451. package/dist/src/coins/susd.js +5 -1
  452. package/dist/src/common.js +27 -13
  453. package/dist/src/index.d.ts +6 -1
  454. package/dist/src/index.d.ts.map +1 -1
  455. package/dist/src/index.js +32 -11
  456. package/dist/src/lightning.d.ts +20 -0
  457. package/dist/src/lightning.d.ts.map +1 -0
  458. package/dist/src/lightning.js +13 -0
  459. package/dist/src/units.js +5 -6
  460. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  461. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  462. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  463. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  464. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  465. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  466. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  467. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  468. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  469. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  470. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  471. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  472. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  473. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  474. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  475. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  476. package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
  477. package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
  478. package/dist/test/unit/bitgo/defi/defiVault.js +283 -0
  479. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  480. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  481. package/dist/test/unit/bitgo/environment.js +38 -0
  482. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  483. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  484. package/dist/test/unit/bitgo/errors.js +262 -0
  485. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  486. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  487. package/dist/test/unit/bitgo/recovery/initiate.js +230 -0
  488. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  489. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  490. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  491. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  492. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  493. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  494. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +24 -4
  495. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  496. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  497. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  498. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  499. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  500. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  501. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  502. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  503. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  504. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +247 -0
  505. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  506. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  507. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +316 -0
  508. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
  509. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
  510. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
  511. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  512. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  513. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +878 -0
  514. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  515. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  516. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  517. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  518. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  519. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1303 -0
  520. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  521. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  522. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +311 -0
  523. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
  524. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  525. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
  526. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  527. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  528. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  529. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  530. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  531. package/dist/test/unit/bitgo/wallet/BuildParams.js +97 -0
  532. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +23 -9
  533. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  534. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  535. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  536. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  537. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  538. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  539. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
  540. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
  541. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
  542. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  543. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  544. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  545. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  546. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  547. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  548. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  549. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  550. package/dist/test/unit/bitgo/wallet/tokenApproval.js +135 -0
  551. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  552. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  553. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  554. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  555. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  556. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +43 -0
  557. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  558. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  559. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  560. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
  561. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
  562. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +228 -0
  563. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  564. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  565. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  566. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
  567. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
  568. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +320 -0
  569. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  570. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  571. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +204 -0
  572. package/dist/test/unit/coins/ofc.d.ts +2 -0
  573. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  574. package/dist/test/unit/coins/ofc.js +124 -0
  575. package/dist/test/unit/lightning.d.ts +2 -0
  576. package/dist/test/unit/lightning.d.ts.map +1 -0
  577. package/dist/test/unit/lightning.js +23 -0
  578. package/dist/test/unit/units.d.ts.map +1 -1
  579. package/dist/test/unit/units.js +64 -64
  580. package/dist/tsconfig.tsbuildinfo +1 -1
  581. package/package.json +24 -21
  582. package/.eslintignore +0 -5
  583. package/CHANGELOG.md +0 -1499
  584. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  585. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  586. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  587. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  588. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  589. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  590. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  591. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  592. package/dist/src/bitgo/lightning/index.js +0 -17
  593. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  594. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  595. package/dist/src/bitgo/lightning/lightning.js +0 -111
  596. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  597. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  598. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  599. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  600. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  601. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  602. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  603. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  604. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  605. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  606. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  607. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  608. package/dist/src/coins/fiateur.d.ts +0 -31
  609. package/dist/src/coins/fiateur.d.ts.map +0 -1
  610. package/dist/src/coins/fiateur.js +0 -57
  611. package/dist/src/coins/fiatgbp.d.ts +0 -31
  612. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  613. package/dist/src/coins/fiatgbp.js +0 -57
  614. package/dist/src/coins/fiatusd.d.ts +0 -31
  615. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  616. package/dist/src/coins/fiatusd.js +0 -57
  617. package/dist/src/coins/tfiateur.d.ts +0 -11
  618. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  619. package/dist/src/coins/tfiateur.js +0 -17
  620. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  621. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  622. package/dist/src/coins/tfiatgbp.js +0 -17
  623. package/dist/src/coins/tfiatusd.d.ts +0 -11
  624. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  625. package/dist/src/coins/tfiatusd.js +0 -17
  626. package/dist/src/openssl/index.d.ts +0 -5
  627. package/dist/src/openssl/index.d.ts.map +0 -1
  628. package/dist/src/openssl/index.js +0 -9
  629. package/dist/test/unit/openssl.d.ts +0 -2
  630. package/dist/test/unit/openssl.d.ts.map +0 -1
  631. package/dist/test/unit/openssl.js +0 -39
@@ -0,0 +1,118 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const sinon = __importStar(require("sinon"));
37
+ require("should");
38
+ const src_1 = require("../../../../src");
39
+ describe('Wallet - getResourceDelegations', function () {
40
+ let wallet;
41
+ let mockBitGo;
42
+ let mockBaseCoin;
43
+ let mockWalletData;
44
+ beforeEach(function () {
45
+ mockBitGo = {
46
+ get: sinon.stub(),
47
+ };
48
+ mockBaseCoin = {
49
+ url: sinon.stub().returns('/test/coin'),
50
+ supportsTss: sinon.stub().returns(false),
51
+ };
52
+ mockWalletData = {
53
+ id: 'test-wallet-id',
54
+ keys: ['user-key', 'backup-key', 'bitgo-key'],
55
+ };
56
+ wallet = new src_1.Wallet(mockBitGo, mockBaseCoin, mockWalletData);
57
+ });
58
+ afterEach(function () {
59
+ sinon.restore();
60
+ });
61
+ const mockResponse = {
62
+ address: 'TAddr123',
63
+ coin: 'ttrx',
64
+ delegations: {
65
+ outgoing: [],
66
+ incoming: [],
67
+ },
68
+ };
69
+ function stubGet() {
70
+ const resultStub = sinon.stub().resolves(mockResponse);
71
+ const queryStub = sinon.stub().returns({ result: resultStub });
72
+ mockBitGo.get.returns({ query: queryStub });
73
+ return { queryStub, resultStub };
74
+ }
75
+ it('should call WP API with no query params when called with no options', async function () {
76
+ const { queryStub } = stubGet();
77
+ const result = await wallet.getResourceDelegations();
78
+ result.should.deepEqual(mockResponse);
79
+ sinon.assert.calledOnce(mockBitGo.get);
80
+ sinon.assert.calledWith(queryStub, {});
81
+ });
82
+ it('should include type in query params when provided', async function () {
83
+ const { queryStub } = stubGet();
84
+ await wallet.getResourceDelegations({ type: 'outgoing' });
85
+ sinon.assert.calledWith(queryStub, { type: 'outgoing' });
86
+ });
87
+ it('should include resource in query params when provided', async function () {
88
+ const { queryStub } = stubGet();
89
+ await wallet.getResourceDelegations({ resource: 'ENERGY' });
90
+ sinon.assert.calledWith(queryStub, { resource: 'ENERGY' });
91
+ });
92
+ it('should include limit in query params when provided', async function () {
93
+ const { queryStub } = stubGet();
94
+ await wallet.getResourceDelegations({ limit: 10 });
95
+ sinon.assert.calledWith(queryStub, { limit: 10 });
96
+ });
97
+ it('should include nextBatchPrevId in query params when provided', async function () {
98
+ const { queryStub } = stubGet();
99
+ await wallet.getResourceDelegations({ nextBatchPrevId: 'cursor-abc123' });
100
+ sinon.assert.calledWith(queryStub, { nextBatchPrevId: 'cursor-abc123' });
101
+ });
102
+ it('should include all provided params in query', async function () {
103
+ const { queryStub } = stubGet();
104
+ await wallet.getResourceDelegations({
105
+ type: 'incoming',
106
+ resource: 'BANDWIDTH',
107
+ limit: 5,
108
+ nextBatchPrevId: 'cursor-xyz',
109
+ });
110
+ sinon.assert.calledWith(queryStub, {
111
+ type: 'incoming',
112
+ resource: 'BANDWIDTH',
113
+ limit: 5,
114
+ nextBatchPrevId: 'cursor-xyz',
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmVzb3VyY2VEZWxlZ2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby93YWxsZXQvZ2V0UmVzb3VyY2VEZWxlZ2F0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUErQjtBQUMvQixrQkFBZ0I7QUFDaEIseUNBQXlDO0FBRXpDLFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRTtJQUMxQyxJQUFJLE1BQWMsQ0FBQztJQUNuQixJQUFJLFNBQWMsQ0FBQztJQUNuQixJQUFJLFlBQWlCLENBQUM7SUFDdEIsSUFBSSxjQUFtQixDQUFDO0lBRXhCLFVBQVUsQ0FBQztRQUNULFNBQVMsR0FBRztZQUNWLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO1NBQ2xCLENBQUM7UUFFRixZQUFZLEdBQUc7WUFDYixHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ3pDLENBQUM7UUFFRixjQUFjLEdBQUc7WUFDZixFQUFFLEVBQUUsZ0JBQWdCO1lBQ3BCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO1NBQzlDLENBQUM7UUFFRixNQUFNLEdBQUcsSUFBSSxZQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQztRQUNSLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHO1FBQ25CLE9BQU8sRUFBRSxVQUFVO1FBQ25CLElBQUksRUFBRSxNQUFNO1FBQ1osV0FBVyxF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RSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEtBQUssRUFBRSxDQUFDO1lBQ1IsZUFBZSxFQUFFLFlBQVk7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO1lBQ2pDLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEtBQUssRUFBRSxDQUFDO1lBQ1IsZUFBZSxFQUFFLFlBQVk7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5cbmRlc2NyaWJlKCdXYWxsZXQgLSBnZXRSZXNvdXJjZURlbGVnYXRpb25zJywgZnVuY3Rpb24gKCkge1xuICBsZXQgd2FsbGV0OiBXYWxsZXQ7XG4gIGxldCBtb2NrQml0R286IGFueTtcbiAgbGV0IG1vY2tCYXNlQ29pbjogYW55O1xuICBsZXQgbW9ja1dhbGxldERhdGE6IGFueTtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBtb2NrQml0R28gPSB7XG4gICAgICBnZXQ6IHNpbm9uLnN0dWIoKSxcbiAgICB9O1xuXG4gICAgbW9ja0Jhc2VDb2luID0ge1xuICAgICAgdXJsOiBzaW5vbi5zdHViKCkucmV0dXJucygnL3Rlc3QvY29pbicpLFxuICAgICAgc3VwcG9ydHNUc3M6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKGZhbHNlKSxcbiAgICB9O1xuXG4gICAgbW9ja1dhbGxldERhdGEgPSB7XG4gICAgICBpZDogJ3Rlc3Qtd2FsbGV0LWlkJyxcbiAgICAgIGtleXM6IFsndXNlci1rZXknLCAnYmFja3VwLWtleScsICdiaXRnby1rZXknXSxcbiAgICB9O1xuXG4gICAgd2FsbGV0ID0gbmV3IFdhbGxldChtb2NrQml0R28sIG1vY2tCYXNlQ29pbiwgbW9ja1dhbGxldERhdGEpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgY29uc3QgbW9ja1Jlc3BvbnNlID0ge1xuICAgIGFkZHJlc3M6ICdUQWRkcjEyMycsXG4gICAgY29pbjogJ3R0cngnLFxuICAgIGRlbGVnYXRpb25zOiB7XG4gICAgICBvdXRnb2luZzogW10sXG4gICAgICBpbmNvbWluZzogW10sXG4gICAgfSxcbiAgfTtcblxuICBmdW5jdGlvbiBzdHViR2V0KCkge1xuICAgIGNvbnN0IHJlc3VsdFN0dWIgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMobW9ja1Jlc3BvbnNlKTtcbiAgICBjb25zdCBxdWVyeVN0dWIgPSBzaW5vbi5zdHViKCkucmV0dXJucyh7IHJlc3VsdDogcmVzdWx0U3R1YiB9KTtcbiAgICBtb2NrQml0R28uZ2V0LnJldHVybnMoeyBxdWVyeTogcXVlcnlTdHViIH0pO1xuICAgIHJldHVybiB7IHF1ZXJ5U3R1YiwgcmVzdWx0U3R1YiB9O1xuICB9XG5cbiAgaXQoJ3Nob3VsZCBjYWxsIFdQIEFQSSB3aXRoIG5vIHF1ZXJ5IHBhcmFtcyB3aGVuIGNhbGxlZCB3aXRoIG5vIG9wdGlvbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgeyBxdWVyeVN0dWIgfSA9IHN0dWJHZXQoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdhbGxldC5nZXRSZXNvdXJjZURlbGVnYXRpb25zKCk7XG5cbiAgICByZXN1bHQuc2hvdWxkLmRlZXBFcXVhbChtb2NrUmVzcG9uc2UpO1xuICAgIHNpbm9uLmFzc2VydC5jYWxsZWRPbmNlKG1vY2tCaXRHby5nZXQpO1xuICAgIHNpbm9uLmFzc2VydC5jYWxsZWRXaXRoKHF1ZXJ5U3R1Yiwge30pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluY2x1ZGUgdHlwZSBpbiBxdWVyeSBwYXJhbXMgd2hlbiBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB7IHF1ZXJ5U3R1YiB9ID0gc3R1YkdldCgpO1xuXG4gICAgYXdhaXQgd2FsbGV0LmdldFJlc291cmNlRGVsZWdhdGlvbnMoeyB0eXBlOiAnb3V0Z29pbmcnIH0pO1xuXG4gICAgc2lub24uYXNzZXJ0LmNhbGxlZFdpdGgocXVlcnlTdHViLCB7IHR5cGU6ICdvdXRnb2luZycgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5jbHVkZSByZXNvdXJjZSBpbiBxdWVyeSBwYXJhbXMgd2hlbiBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB7IHF1ZXJ5U3R1YiB9ID0gc3R1YkdldCgpO1xuXG4gICAgYXdhaXQgd2FsbGV0LmdldFJlc291cmNlRGVsZWdhdGlvbnMoeyByZXNvdXJjZTogJ0VORVJHWScgfSk7XG5cbiAgICBzaW5vbi5hc3NlcnQuY2FsbGVkV2l0aChxdWVyeVN0dWIsIHsgcmVzb3VyY2U6ICdFTkVSR1knIH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluY2x1ZGUgbGltaXQgaW4gcXVlcnkgcGFyYW1zIHdoZW4gcHJvdmlkZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgeyBxdWVyeVN0dWIgfSA9IHN0dWJHZXQoKTtcblxuICAgIGF3YWl0IHdhbGxldC5nZXRSZXNvdXJjZURlbGVnYXRpb25zKHsgbGltaXQ6IDEwIH0pO1xuXG4gICAgc2lub24uYXNzZXJ0LmNhbGxlZFdpdGgocXVlcnlTdHViLCB7IGxpbWl0OiAxMCB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbmNsdWRlIG5leHRCYXRjaFByZXZJZCBpbiBxdWVyeSBwYXJhbXMgd2hlbiBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB7IHF1ZXJ5U3R1YiB9ID0gc3R1YkdldCgpO1xuXG4gICAgYXdhaXQgd2FsbGV0LmdldFJlc291cmNlRGVsZWdhdGlvbnMoeyBuZXh0QmF0Y2hQcmV2SWQ6ICdjdXJzb3ItYWJjMTIzJyB9KTtcblxuICAgIHNpbm9uLmFzc2VydC5jYWxsZWRXaXRoKHF1ZXJ5U3R1YiwgeyBuZXh0QmF0Y2hQcmV2SWQ6ICdjdXJzb3ItYWJjMTIzJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbmNsdWRlIGFsbCBwcm92aWRlZCBwYXJhbXMgaW4gcXVlcnknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgeyBxdWVyeVN0dWIgfSA9IHN0dWJHZXQoKTtcblxuICAgIGF3YWl0IHdhbGxldC5nZXRSZXNvdXJjZURlbGVnYXRpb25zKHtcbiAgICAgIHR5cGU6ICdpbmNvbWluZycsXG4gICAgICByZXNvdXJjZTogJ0JBTkRXSURUSCcsXG4gICAgICBsaW1pdDogNSxcbiAgICAgIG5leHRCYXRjaFByZXZJZDogJ2N1cnNvci14eXonLFxuICAgIH0pO1xuXG4gICAgc2lub24uYXNzZXJ0LmNhbGxlZFdpdGgocXVlcnlTdHViLCB7XG4gICAgICB0eXBlOiAnaW5jb21pbmcnLFxuICAgICAgcmVzb3VyY2U6ICdCQU5EV0lEVEgnLFxuICAgICAgbGltaXQ6IDUsXG4gICAgICBuZXh0QmF0Y2hQcmV2SWQ6ICdjdXJzb3IteHl6JyxcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=ofcWalletAddressCreation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ofcWalletAddressCreation.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/wallet/ofcWalletAddressCreation.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /**
7
+ * @prettier
8
+ */
9
+ const sinon_1 = __importDefault(require("sinon"));
10
+ require("should");
11
+ const wallet_1 = require("../../../../src/bitgo/wallet/wallet");
12
+ const coins_1 = require("../../../../src/coins");
13
+ const OFC_ZEC_CONFIG = {
14
+ coin: 'ofczec',
15
+ decimalPlaces: 8,
16
+ name: 'OFCZEC',
17
+ type: 'ofczec',
18
+ backingCoin: 'zec',
19
+ isFiat: false,
20
+ };
21
+ describe('Wallet - OFC createAddress', function () {
22
+ let mockBitGo;
23
+ let ofcToken;
24
+ let keychainsGetStub;
25
+ function makePostChain(resolved) {
26
+ const chain = {};
27
+ chain.send = sinon_1.default.stub().returns(chain);
28
+ chain.result = sinon_1.default.stub().resolves(resolved);
29
+ return chain;
30
+ }
31
+ beforeEach(function () {
32
+ keychainsGetStub = sinon_1.default.stub().resolves({ id: 'user-key-id', pub: 'xpub-value' });
33
+ mockBitGo = {
34
+ url: sinon_1.default.stub().returns('https://test.bitgo.com/'),
35
+ post: sinon_1.default.stub(),
36
+ setRequestTracer: sinon_1.default.stub(),
37
+ };
38
+ ofcToken = new coins_1.OfcToken(mockBitGo, OFC_ZEC_CONFIG);
39
+ mockBitGo.coin = sinon_1.default.stub().returns(ofcToken);
40
+ sinon_1.default.stub(coins_1.OfcToken.prototype, 'keychains').returns({ get: keychainsGetStub });
41
+ });
42
+ afterEach(function () {
43
+ sinon_1.default.restore();
44
+ });
45
+ const mockAddressResponse = {
46
+ id: 'new-address-id',
47
+ address: 'bg-aabbccddeeff00112233445566778899',
48
+ chain: 0,
49
+ index: 1,
50
+ };
51
+ describe('single-key OFC wallet (userKeySigningRequired: true)', function () {
52
+ it('should create a receive address without fetching any keychains', async function () {
53
+ const walletData = {
54
+ id: 'wallet-id',
55
+ coin: 'ofc',
56
+ keys: ['user-key-id'],
57
+ type: 'trading',
58
+ multisigType: 'onchain',
59
+ enterprise: 'ent-id',
60
+ userKeySigningRequired: true,
61
+ };
62
+ const wallet = new wallet_1.Wallet(mockBitGo, ofcToken, walletData);
63
+ mockBitGo.post.returns(makePostChain(mockAddressResponse));
64
+ const result = await wallet.createAddress({ onToken: 'ofczec' });
65
+ result.should.have.property('id', 'new-address-id');
66
+ result.should.have.property('address', 'bg-aabbccddeeff00112233445566778899');
67
+ keychainsGetStub.called.should.be.false();
68
+ });
69
+ });
70
+ describe('two-key OFC wallet (userKeySigningRequired: false)', function () {
71
+ it('should create a receive address without fetching keychains', async function () {
72
+ const walletData = {
73
+ id: 'wallet-id',
74
+ coin: 'ofc',
75
+ keys: ['user-key-id', 'bitgo-key-id'],
76
+ type: 'trading',
77
+ multisigType: 'onchain',
78
+ enterprise: 'ent-id',
79
+ userKeySigningRequired: false,
80
+ };
81
+ const wallet = new wallet_1.Wallet(mockBitGo, ofcToken, walletData);
82
+ mockBitGo.post.returns(makePostChain(mockAddressResponse));
83
+ const result = await wallet.createAddress({ onToken: 'ofczec' });
84
+ result.should.have.property('id', 'new-address-id');
85
+ keychainsGetStub.called.should.be.false();
86
+ });
87
+ it('should succeed even if keychains().get() would fail for a server-managed key', async function () {
88
+ keychainsGetStub.rejects(new Error('key not found'));
89
+ const walletData = {
90
+ id: 'wallet-id',
91
+ coin: 'ofc',
92
+ keys: ['user-key-id', 'bitgo-key-id'],
93
+ type: 'trading',
94
+ multisigType: 'onchain',
95
+ enterprise: 'ent-id',
96
+ userKeySigningRequired: false,
97
+ };
98
+ const wallet = new wallet_1.Wallet(mockBitGo, ofcToken, walletData);
99
+ mockBitGo.post.returns(makePostChain(mockAddressResponse));
100
+ const result = await wallet.createAddress({ onToken: 'ofczec' });
101
+ result.should.have.property('id', 'new-address-id');
102
+ });
103
+ });
104
+ describe('non-OFC wallet (eth)', function () {
105
+ it('should still fetch keychains for address verification', async function () {
106
+ const mockEthCoin = {
107
+ getFamily: sinon_1.default.stub().returns('eth'),
108
+ isEVM: sinon_1.default.stub().returns(true),
109
+ supportsTss: sinon_1.default.stub().returns(false),
110
+ url: sinon_1.default.stub().returns('/api/v2/eth/wallet/wallet-id/address'),
111
+ isWalletAddress: sinon_1.default.stub().resolves(true),
112
+ keychains: sinon_1.default.stub().returns({ get: keychainsGetStub }),
113
+ };
114
+ const walletData = {
115
+ id: 'wallet-id',
116
+ coin: 'eth',
117
+ keys: ['user-key-id', 'backup-key-id', 'bitgo-key-id'],
118
+ coinSpecific: { pendingChainInitialization: false },
119
+ };
120
+ const wallet = new wallet_1.Wallet(mockBitGo, mockEthCoin, walletData);
121
+ mockBitGo.post.returns(makePostChain({ id: 'eth-addr-id', address: '0xabc', coinSpecific: {} }));
122
+ await wallet.createAddress({});
123
+ keychainsGetStub.callCount.should.equal(3);
124
+ });
125
+ });
126
+ describe('missing onToken parameter', function () {
127
+ it('should throw for OFC wallets when onToken is omitted', async function () {
128
+ const walletData = {
129
+ id: 'wallet-id',
130
+ coin: 'ofc',
131
+ keys: ['user-key-id'],
132
+ type: 'trading',
133
+ multisigType: 'onchain',
134
+ enterprise: 'ent-id',
135
+ };
136
+ const wallet = new wallet_1.Wallet(mockBitGo, ofcToken, walletData);
137
+ await wallet.createAddress({}).should.be.rejectedWith('onToken is a mandatory parameter for OFC wallets');
138
+ });
139
+ });
140
+ });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjV2FsbGV0QWRkcmVzc0NyZWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL3dhbGxldC9vZmNXYWxsZXRBZGRyZXNzQ3JlYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILGtEQUEwQjtBQUMxQixrQkFBZ0I7QUFDaEIsZ0VBQTZEO0FBQzdELGlEQUFpRDtBQUVqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixJQUFJLEVBQUUsUUFBUTtJQUNkLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsS0FBSztJQUNsQixNQUFNLEVBQUUsS0FBSztDQUNkLENBQUM7QUFFRixRQUFRLENBQUMsNEJBQTRCLEVBQUU7SUFDckMsSUFBSSxTQUFjLENBQUM7SUFDbkIsSUFBSSxRQUFrQixDQUFDO0lBQ3ZCLElBQUksZ0JBQWlDLENBQUM7SUFFdEMsU0FBUyxhQUFhLENBQUMsUUFBaUI7UUFDdEMsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxJQUFJLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVSxDQUFDO1FBQ1QsZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDbkYsU0FBUyxHQUFHO1lBQ1YsR0FBRyxFQUFFLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FB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c0RBQXNELEVBQUUsS0FBSztZQUM5RCxNQUFNLFVBQVUsR0FBRztnQkFDakIsRUFBRSxFQUFFLFdBQVc7Z0JBQ2YsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNyQixJQUFJLEVBQUUsU0FBUztnQkFDZixZQUFZLEVBQUUsU0FBUztnQkFDdkIsVUFBVSxFQUFFLFFBQVE7YUFDckIsQ0FBQztZQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFM0QsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvd2FsbGV0JztcbmltcG9ydCB7IE9mY1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2NvaW5zJztcblxuY29uc3QgT0ZDX1pFQ19DT05GSUcgPSB7XG4gIGNvaW46ICdvZmN6ZWMnLFxuICBkZWNpbWFsUGxhY2VzOiA4LFxuICBuYW1lOiAnT0ZDWkVDJyxcbiAgdHlwZTogJ29mY3plYycsXG4gIGJhY2tpbmdDb2luOiAnemVjJyxcbiAgaXNGaWF0OiBmYWxzZSxcbn07XG5cbmRlc2NyaWJlKCdXYWxsZXQgLSBPRkMgY3JlYXRlQWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IG1vY2tCaXRHbzogYW55O1xuICBsZXQgb2ZjVG9rZW46IE9mY1Rva2VuO1xuICBsZXQga2V5Y2hhaW5zR2V0U3R1Yjogc2lub24uU2lub25TdHViO1xuXG4gIGZ1bmN0aW9uIG1ha2VQb3N0Q2hhaW4ocmVzb2x2ZWQ6IHVua25vd24pOiBhbnkge1xuICAgIGNvbnN0IGNoYWluOiBhbnkgPSB7fTtcbiAgICBjaGFpbi5zZW5kID0gc2lub24uc3R1YigpLnJldHVybnMoY2hhaW4pO1xuICAgIGNoYWluLnJlc3VsdCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyhyZXNvbHZlZCk7XG4gICAgcmV0dXJuIGNoYWluO1xuICB9XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAga2V5Y2hhaW5zR2V0U3R1YiA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyh7IGlkOiAndXNlci1rZXktaWQnLCBwdWI6ICd4cHViLXZhbHVlJyB9KTtcbiAgICBtb2NrQml0R28gPSB7XG4gICAgICB1cmw6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKCdodHRwczovL3Rlc3QuYml0Z28uY29tLycpLFxuICAgICAgcG9zdDogc2lub24uc3R1YigpLFxuICAgICAgc2V0UmVxdWVzdFRyYWNlcjogc2lub24uc3R1YigpLFxuICAgIH07XG4gICAgb2ZjVG9rZW4gPSBuZXcgT2ZjVG9rZW4obW9ja0JpdEdvLCBPRkNfWkVDX0NPTkZJRyk7XG4gICAgbW9ja0JpdEdvLmNvaW4gPSBzaW5vbi5zdHViKCkucmV0dXJucyhvZmNUb2tlbik7XG4gICAgc2lub24uc3R1YihPZmNUb2tlbi5wcm90b3R5cGUsICdrZXljaGFpbnMnKS5yZXR1cm5zKHsgZ2V0OiBrZXljaGFpbnNHZXRTdHViIH0gYXMgYW55KTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGNvbnN0IG1vY2tBZGRyZXNzUmVzcG9uc2UgPSB7XG4gICAgaWQ6ICduZXctYWRkcmVzcy1pZCcsXG4gICAgYWRkcmVzczogJ2JnLWFhYmJjY2RkZWVmZjAwMTEyMjMzNDQ1NTY2Nzc4ODk5JyxcbiAgICBjaGFpbjogMCxcbiAgICBpbmRleDogMSxcbiAgfTtcblxuICBkZXNjcmliZSgnc2luZ2xlLWtleSBPRkMgd2FsbGV0ICh1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiB0cnVlKScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIHJlY2VpdmUgYWRkcmVzcyB3aXRob3V0IGZldGNoaW5nIGFueSBrZXljaGFpbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB3YWxsZXREYXRhID0ge1xuICAgICAgICBpZDogJ3dhbGxldC1pZCcsXG4gICAgICAgIGNvaW46ICdvZmMnLFxuICAgICAgICBrZXlzOiBbJ3VzZXIta2V5LWlkJ10sXG4gICAgICAgIHR5cGU6ICd0cmFkaW5nJyxcbiAgICAgICAgbXVsdGlzaWdUeXBlOiAnb25jaGFpbicsXG4gICAgICAgIGVudGVycHJpc2U6ICdlbnQtaWQnLFxuICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiB0cnVlLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQobW9ja0JpdEdvLCBvZmNUb2tlbiwgd2FsbGV0RGF0YSk7XG4gICAgICBtb2NrQml0R28ucG9zdC5yZXR1cm5zKG1ha2VQb3N0Q2hhaW4obW9ja0FkZHJlc3NSZXNwb25zZSkpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXQuY3JlYXRlQWRkcmVzcyh7IG9uVG9rZW46ICdvZmN6ZWMnIH0pO1xuXG4gICAgICByZXN1bHQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2lkJywgJ25ldy1hZGRyZXNzLWlkJyk7XG4gICAgICByZXN1bHQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2FkZHJlc3MnLCAnYmctYWFiYmNjZGRlZWZmMDAxMTIyMzM0NDU1NjY3Nzg4OTknKTtcbiAgICAgIGtleWNoYWluc0dldFN0dWIuY2FsbGVkLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndHdvLWtleSBPRkMgd2FsbGV0ICh1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSknLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSByZWNlaXZlIGFkZHJlc3Mgd2l0aG91dCBmZXRjaGluZyBrZXljaGFpbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB3YWxsZXREYXRhID0ge1xuICAgICAgICBpZDogJ3dhbGxldC1pZCcsXG4gICAgICAgIGNvaW46ICdvZmMnLFxuICAgICAgICBrZXlzOiBbJ3VzZXIta2V5LWlkJywgJ2JpdGdvLWtleS1pZCddLFxuICAgICAgICB0eXBlOiAndHJhZGluZycsXG4gICAgICAgIG11bHRpc2lnVHlwZTogJ29uY2hhaW4nLFxuICAgICAgICBlbnRlcnByaXNlOiAnZW50LWlkJyxcbiAgICAgICAgdXNlcktleVNpZ25pbmdSZXF1aXJlZDogZmFsc2UsXG4gICAgICB9O1xuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChtb2NrQml0R28sIG9mY1Rva2VuLCB3YWxsZXREYXRhKTtcbiAgICAgIG1vY2tCaXRHby5wb3N0LnJldHVybnMobWFrZVBvc3RDaGFpbihtb2NrQWRkcmVzc1Jlc3BvbnNlKSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdhbGxldC5jcmVhdGVBZGRyZXNzKHsgb25Ub2tlbjogJ29mY3plYycgfSk7XG5cbiAgICAgIHJlc3VsdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnaWQnLCAnbmV3LWFkZHJlc3MtaWQnKTtcbiAgICAgIGtleWNoYWluc0dldFN0dWIuY2FsbGVkLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIGV2ZW4gaWYga2V5Y2hhaW5zKCkuZ2V0KCkgd291bGQgZmFpbCBmb3IgYSBzZXJ2ZXItbWFuYWdlZCBrZXknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBrZXljaGFpbnNHZXRTdHViLnJlamVjdHMobmV3IEVycm9yKCdrZXkgbm90IGZvdW5kJykpO1xuICAgICAgY29uc3Qgd2FsbGV0RGF0YSA9IHtcbiAgICAgICAgaWQ6ICd3YWxsZXQtaWQnLFxuICAgICAgICBjb2luOiAnb2ZjJyxcbiAgICAgICAga2V5czogWyd1c2VyLWtleS1pZCcsICdiaXRnby1rZXktaWQnXSxcbiAgICAgICAgdHlwZTogJ3RyYWRpbmcnLFxuICAgICAgICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyxcbiAgICAgICAgZW50ZXJwcmlzZTogJ2VudC1pZCcsXG4gICAgICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQobW9ja0JpdEdvLCBvZmNUb2tlbiwgd2FsbGV0RGF0YSk7XG4gICAgICBtb2NrQml0R28ucG9zdC5yZXR1cm5zKG1ha2VQb3N0Q2hhaW4obW9ja0FkZHJlc3NSZXNwb25zZSkpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXQuY3JlYXRlQWRkcmVzcyh7IG9uVG9rZW46ICdvZmN6ZWMnIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5oYXZlLnByb3BlcnR5KCdpZCcsICduZXctYWRkcmVzcy1pZCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbm9uLU9GQyB3YWxsZXQgKGV0aCknLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzdGlsbCBmZXRjaCBrZXljaGFpbnMgZm9yIGFkZHJlc3MgdmVyaWZpY2F0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbW9ja0V0aENvaW46IGFueSA9IHtcbiAgICAgICAgZ2V0RmFtaWx5OiBzaW5vbi5zdHViKCkucmV0dXJucygnZXRoJyksXG4gICAgICAgIGlzRVZNOiBzaW5vbi5zdHViKCkucmV0dXJucyh0cnVlKSxcbiAgICAgICAgc3VwcG9ydHNUc3M6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKGZhbHNlKSxcbiAgICAgICAgdXJsOiBzaW5vbi5zdHViKCkucmV0dXJucygnL2FwaS92Mi9ldGgvd2FsbGV0L3dhbGxldC1pZC9hZGRyZXNzJyksXG4gICAgICAgIGlzV2FsbGV0QWRkcmVzczogc2lub24uc3R1YigpLnJlc29sdmVzKHRydWUpLFxuICAgICAgICBrZXljaGFpbnM6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKHsgZ2V0OiBrZXljaGFpbnNHZXRTdHViIH0pLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgICAgIGlkOiAnd2FsbGV0LWlkJyxcbiAgICAgICAgY29pbjogJ2V0aCcsXG4gICAgICAgIGtleXM6IFsndXNlci1rZXktaWQnLCAnYmFja3VwLWtleS1pZCcsICdiaXRnby1rZXktaWQnXSxcbiAgICAgICAgY29pblNwZWNpZmljOiB7IHBlbmRpbmdDaGFpbkluaXRpYWxpemF0aW9uOiBmYWxzZSB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQobW9ja0JpdEdvLCBtb2NrRXRoQ29pbiwgd2FsbGV0RGF0YSk7XG4gICAgICBtb2NrQml0R28ucG9zdC5yZXR1cm5zKG1ha2VQb3N0Q2hhaW4oeyBpZDogJ2V0aC1hZGRyLWlkJywgYWRkcmVzczogJzB4YWJjJywgY29pblNwZWNpZmljOiB7fSB9KSk7XG5cbiAgICAgIGF3YWl0IHdhbGxldC5jcmVhdGVBZGRyZXNzKHt9KTtcblxuICAgICAga2V5Y2hhaW5zR2V0U3R1Yi5jYWxsQ291bnQuc2hvdWxkLmVxdWFsKDMpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbWlzc2luZyBvblRva2VuIHBhcmFtZXRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGZvciBPRkMgd2FsbGV0cyB3aGVuIG9uVG9rZW4gaXMgb21pdHRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgICAgIGlkOiAnd2FsbGV0LWlkJyxcbiAgICAgICAgY29pbjogJ29mYycsXG4gICAgICAgIGtleXM6IFsndXNlci1rZXktaWQnXSxcbiAgICAgICAgdHlwZTogJ3RyYWRpbmcnLFxuICAgICAgICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyxcbiAgICAgICAgZW50ZXJwcmlzZTogJ2VudC1pZCcsXG4gICAgICB9O1xuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChtb2NrQml0R28sIG9mY1Rva2VuLCB3YWxsZXREYXRhKTtcblxuICAgICAgYXdhaXQgd2FsbGV0LmNyZWF0ZUFkZHJlc3Moe30pLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ29uVG9rZW4gaXMgYSBtYW5kYXRvcnkgcGFyYW1ldGVyIGZvciBPRkMgd2FsbGV0cycpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=ofcWalletSignTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ofcWalletSignTransaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/wallet/ofcWalletSignTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /**
7
+ * @prettier
8
+ */
9
+ const sinon_1 = __importDefault(require("sinon"));
10
+ require("should");
11
+ const src_1 = require("../../../../src");
12
+ const coins_1 = require("../../../../src/coins");
13
+ const TEST_TOKEN_CONFIG = {
14
+ coin: 'ofcusdt',
15
+ decimalPlaces: 6,
16
+ name: 'OFCUSDT',
17
+ type: 'ofcusdt',
18
+ backingCoin: 'usdt',
19
+ isFiat: false,
20
+ };
21
+ describe('Wallet - OFC', function () {
22
+ let wallet;
23
+ let mockBitGo;
24
+ let ofcToken;
25
+ let signMessageStub;
26
+ const signatureBytes = Buffer.from('aabbccdd', 'hex');
27
+ const payload = '{"amount":"100","from":"alice","to":"bob"}';
28
+ const prv = 'test-prv';
29
+ // bg-<32 hex chars> is valid for OfcToken without needing to resolve the backing coin
30
+ const recipients = [{ address: 'bg-aabbccddeeff00112233445566778899', amount: '100' }];
31
+ const userPub = 'xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC51xERxh8vDMjc3PiGpQ3VeQcHBiGxbsrRXbCKQZZxBtDMrmBRzxRMkBJGsC9bsYb5tggVF3jGfEE';
32
+ const walletData = {
33
+ id: 'test-wallet-id',
34
+ coin: 'ofcusdt',
35
+ keys: ['user-key', 'backup-key', 'bitgo-key'],
36
+ type: 'trading',
37
+ multisigType: 'onchain',
38
+ enterprise: 'ent-id',
39
+ };
40
+ /**
41
+ * Creates a fluent request mock that handles .query().send().result() and .send().result()
42
+ * chains, resolving with the provided value.
43
+ */
44
+ function makeRequestChain(resolved) {
45
+ const chain = {};
46
+ chain.query = sinon_1.default.stub().returns(chain);
47
+ chain.send = sinon_1.default.stub().returns(chain);
48
+ chain.result = sinon_1.default.stub().resolves(resolved);
49
+ return chain;
50
+ }
51
+ beforeEach(function () {
52
+ signMessageStub = sinon_1.default.stub(src_1.BaseCoin.prototype, 'signMessage');
53
+ signMessageStub.withArgs({ prv }, payload).resolves(signatureBytes);
54
+ sinon_1.default.stub(src_1.BaseCoin.prototype, 'keychains').returns({
55
+ getKeysForSigning: sinon_1.default.stub().resolves([{ id: walletData.keys[0], pub: userPub }]),
56
+ });
57
+ mockBitGo = {
58
+ url: sinon_1.default.stub().returns('https://test.bitgo.com/'),
59
+ post: sinon_1.default.stub(),
60
+ setRequestTracer: sinon_1.default.stub(),
61
+ };
62
+ ofcToken = new coins_1.OfcToken(mockBitGo, TEST_TOKEN_CONFIG);
63
+ mockBitGo.coin = sinon_1.default.stub().returns(ofcToken);
64
+ wallet = new src_1.Wallet(mockBitGo, ofcToken, walletData);
65
+ });
66
+ afterEach(function () {
67
+ sinon_1.default.restore();
68
+ });
69
+ describe('with userKeySigningRequired: true (local signing via user key)', function () {
70
+ const buildUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/build');
71
+ const signUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/sign');
72
+ const sendUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/send');
73
+ describe('signTransaction', function () {
74
+ it('should call baseCoin.signMessage with the prv and payload', async function () {
75
+ const result = await wallet.signTransaction({ txPrebuild: { payload }, prv });
76
+ signMessageStub.calledOnceWith({ prv }, payload).should.be.true();
77
+ mockBitGo.post.called.should.be.false();
78
+ result.should.deepEqual({ halfSigned: { payload, signature: signatureBytes.toString('hex') } });
79
+ });
80
+ describe('with walletPassphrase and keychain', function () {
81
+ const walletPassphrase = 'test-passphrase';
82
+ const encryptedPrv = 'encrypted-prv-blob';
83
+ beforeEach(function () {
84
+ // compiled wallet.js: getUserPrv (sync) → decryptKeychainPrivateKey → bitgo.decrypt
85
+ // TypeScript source: getUserPrvAsync → decryptKeychainPrivateKeyAsync → bitgo.decryptAsync
86
+ mockBitGo.decrypt = sinon_1.default.stub().returns(prv);
87
+ mockBitGo.decryptAsync = sinon_1.default.stub().resolves(prv);
88
+ });
89
+ it('should decrypt the keychain with the passphrase and sign via baseCoin.signMessage', async function () {
90
+ const result = await wallet.signTransaction({
91
+ txPrebuild: { payload },
92
+ walletPassphrase,
93
+ keychain: { pub: userPub, encryptedPrv },
94
+ });
95
+ const decryptCalled = mockBitGo.decrypt.calledWith({ input: encryptedPrv, password: walletPassphrase }) ||
96
+ mockBitGo.decryptAsync.calledWith({ input: encryptedPrv, password: walletPassphrase });
97
+ decryptCalled.should.be.true();
98
+ signMessageStub.calledOnceWith({ prv }, payload).should.be.true();
99
+ mockBitGo.post.called.should.be.false();
100
+ result.should.deepEqual({ halfSigned: { payload, signature: signatureBytes.toString('hex') } });
101
+ });
102
+ });
103
+ });
104
+ describe('prebuildAndSignTransaction', function () {
105
+ beforeEach(function () {
106
+ mockBitGo.post.withArgs(buildUrl()).returns(makeRequestChain({ payload }));
107
+ });
108
+ it('should call the prebuild API then sign locally with the prv', async function () {
109
+ const result = await wallet.prebuildAndSignTransaction({ prv });
110
+ mockBitGo.post.calledWith(buildUrl()).should.be.true();
111
+ mockBitGo.post.calledWith(signUrl()).should.be.false();
112
+ signMessageStub.calledOnceWith({ prv }, payload).should.be.true();
113
+ result.should.deepEqual({ halfSigned: { payload, signature: signatureBytes.toString('hex') } });
114
+ });
115
+ });
116
+ describe('sendMany', function () {
117
+ beforeEach(function () {
118
+ mockBitGo.post.withArgs(buildUrl()).returns(makeRequestChain({ payload }));
119
+ mockBitGo.post.withArgs(sendUrl()).returns(makeRequestChain({ txid: 'test-txid', status: 'signed' }));
120
+ });
121
+ it('should prebuild, sign locally, and submit to the send endpoint', async function () {
122
+ const result = await wallet.sendMany({ recipients, prv });
123
+ mockBitGo.post.calledWith(buildUrl()).should.be.true();
124
+ signMessageStub.calledOnceWith({ prv }, payload).should.be.true();
125
+ mockBitGo.post.calledWith(sendUrl()).should.be.true();
126
+ result.should.deepEqual({ txid: 'test-txid', status: 'signed' });
127
+ });
128
+ });
129
+ });
130
+ describe('with userKeySigningRequired: false (remote signing via BitGo key)', function () {
131
+ const signUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/sign');
132
+ const buildUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/build');
133
+ const sendUrl = () => ofcToken.url('/wallet/' + walletData.id + '/tx/send');
134
+ const hexSignature = 'deadbeef';
135
+ let remoteWallet;
136
+ beforeEach(function () {
137
+ remoteWallet = new src_1.Wallet(mockBitGo, ofcToken, { ...walletData, userKeySigningRequired: false });
138
+ // compiled wallet.js calls getUserPrv (sync) for all coins; stub to return undefined
139
+ // so the remote signing path reaches baseCoin.signTransaction with prv: undefined
140
+ remoteWallet.getUserPrv = sinon_1.default.stub().returns(undefined);
141
+ mockBitGo.post.withArgs(signUrl()).returns(makeRequestChain({ signature: hexSignature }));
142
+ });
143
+ it('should sign locally when userKeySigningRequired is true and prv is provided', async function () {
144
+ const strictWallet = new src_1.Wallet(mockBitGo, ofcToken, { ...walletData, userKeySigningRequired: true });
145
+ const result = await strictWallet.signTransaction({ txPrebuild: { payload }, prv });
146
+ signMessageStub.calledOnceWith({ prv }, payload).should.be.true();
147
+ mockBitGo.post.calledWith(signUrl()).should.be.false();
148
+ result.should.deepEqual({ halfSigned: { payload, signature: signatureBytes.toString('hex') } });
149
+ });
150
+ describe('signTransaction', function () {
151
+ it('should POST to the sign endpoint and return the halfSigned result', async function () {
152
+ const result = await remoteWallet.signTransaction({ txPrebuild: { payload } });
153
+ mockBitGo.post.calledWith(signUrl()).should.be.true();
154
+ signMessageStub.called.should.be.false();
155
+ result.should.deepEqual({ halfSigned: { payload, signature: hexSignature } });
156
+ });
157
+ });
158
+ describe('prebuildAndSignTransaction', function () {
159
+ beforeEach(function () {
160
+ mockBitGo.post.withArgs(buildUrl()).returns(makeRequestChain({ payload }));
161
+ });
162
+ it('should prebuild and remotely sign the transaction', async function () {
163
+ const result = await remoteWallet.prebuildAndSignTransaction({});
164
+ mockBitGo.post.calledWith(buildUrl()).should.be.true();
165
+ mockBitGo.post.calledWith(signUrl()).should.be.true();
166
+ signMessageStub.called.should.be.false();
167
+ result.should.deepEqual({ halfSigned: { payload, signature: hexSignature } });
168
+ });
169
+ });
170
+ describe('sendMany', function () {
171
+ beforeEach(function () {
172
+ mockBitGo.post.withArgs(buildUrl()).returns(makeRequestChain({ payload }));
173
+ mockBitGo.post.withArgs(sendUrl()).returns(makeRequestChain({ txid: 'test-txid', status: 'signed' }));
174
+ });
175
+ it('should prebuild, remotely sign, and send the transaction', async function () {
176
+ const result = await remoteWallet.sendMany({ recipients });
177
+ mockBitGo.post.calledWith(buildUrl()).should.be.true();
178
+ mockBitGo.post.calledWith(signUrl()).should.be.true();
179
+ signMessageStub.called.should.be.false();
180
+ result.should.deepEqual({ txid: 'test-txid', status: 'signed' });
181
+ });
182
+ });
183
+ });
184
+ });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjV2FsbGV0U2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL3dhbGxldC9vZmNXYWxsZXRTaWduVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILGtEQUEwQjtBQUMxQixrQkFBZ0I7QUFDaEIseUNBQW1EO0FBQ25ELGlEQUFpRDtBQUVqRCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLElBQUksRUFBRSxTQUFTO0lBQ2YsYUFBYSxFQUFFLENBQUM7SUFDaEIsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsU0FBUztJQUNmLFdBQVcsRUFBRSxNQUFNO0lBQ25CLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFFBQVEsQ0FBQyxjQUFjLEVBQUU7SUFDdkIsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxTQUFjLENBQUM7SUFDbkIsSUFBSSxRQUFrQixDQUFDO0lBQ3ZCLElBQUksZUFBZ0MsQ0FBQztJQUNyQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLE9BQU8sR0FBRyw0Q0FBNEMsQ0FBQztJQUM3RCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUM7SUFDdkIsc0ZBQXNGO0lBQ3RGLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxPQUFPLEdBQ1gsaUhBQWlILENBQUM7SUFFcEgsTUFBTSxVQUFVLEdBQUc7UUFDakIsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO1FBQzdDLElBQUksRUFBRSxTQUFTO1FB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QUFDO2dCQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRSxLQUFLO2dCQUNsRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUUzRCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgV2FsbGV0LCBCYXNlQ29pbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBPZmNUb2tlbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb2lucyc7XG5cbmNvbnN0IFRFU1RfVE9LRU5fQ09ORklHID0ge1xuICBjb2luOiAnb2ZjdXNkdCcsXG4gIGRlY2ltYWxQbGFjZXM6IDYsXG4gIG5hbWU6ICdPRkNVU0RUJyxcbiAgdHlwZTogJ29mY3VzZHQnLFxuICBiYWNraW5nQ29pbjogJ3VzZHQnLFxuICBpc0ZpYXQ6IGZhbHNlLFxufTtcblxuZGVzY3JpYmUoJ1dhbGxldCAtIE9GQycsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHdhbGxldDogV2FsbGV0O1xuICBsZXQgbW9ja0JpdEdvOiBhbnk7XG4gIGxldCBvZmNUb2tlbjogT2ZjVG9rZW47XG4gIGxldCBzaWduTWVzc2FnZVN0dWI6IHNpbm9uLlNpbm9uU3R1YjtcbiAgY29uc3Qgc2lnbmF0dXJlQnl0ZXMgPSBCdWZmZXIuZnJvbSgnYWFiYmNjZGQnLCAnaGV4Jyk7XG4gIGNvbnN0IHBheWxvYWQgPSAne1wiYW1vdW50XCI6XCIxMDBcIixcImZyb21cIjpcImFsaWNlXCIsXCJ0b1wiOlwiYm9iXCJ9JztcbiAgY29uc3QgcHJ2ID0gJ3Rlc3QtcHJ2JztcbiAgLy8gYmctPDMyIGhleCBjaGFycz4gaXMgdmFsaWQgZm9yIE9mY1Rva2VuIHdpdGhvdXQgbmVlZGluZyB0byByZXNvbHZlIHRoZSBiYWNraW5nIGNvaW5cbiAgY29uc3QgcmVjaXBpZW50cyA9IFt7IGFkZHJlc3M6ICdiZy1hYWJiY2NkZGVlZmYwMDExMjIzMzQ0NTU2Njc3ODg5OScsIGFtb3VudDogJzEwMCcgfV07XG4gIGNvbnN0IHVzZXJQdWIgPVxuICAgICd4cHViNjYxTXlNd0FxUmJjRnRYZ1M1c1lKQUJxcUc5WUxtQzUxeEVSeGg4dkRNamMzUGlHcFEzVmVRY0hCaUd4YnNyUlhiQ0tRWlp4QnRETXJtQlJ6eFJNa0JKR3NDOWJzWWI1dGdnVkYzakdmRUUnO1xuXG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICd0ZXN0LXdhbGxldC1pZCcsXG4gICAgY29pbjogJ29mY3VzZHQnLFxuICAgIGtleXM6IFsndXNlci1rZXknLCAnYmFja3VwLWtleScsICdiaXRnby1rZXknXSxcbiAgICB0eXBlOiAndHJhZGluZycsXG4gICAgbXVsdGlzaWdUeXBlOiAnb25jaGFpbicsXG4gICAgZW50ZXJwcmlzZTogJ2VudC1pZCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmbHVlbnQgcmVxdWVzdCBtb2NrIHRoYXQgaGFuZGxlcyAucXVlcnkoKS5zZW5kKCkucmVzdWx0KCkgYW5kIC5zZW5kKCkucmVzdWx0KClcbiAgICogY2hhaW5zLCByZXNvbHZpbmcgd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWUuXG4gICAqL1xuICBmdW5jdGlvbiBtYWtlUmVxdWVzdENoYWluKHJlc29sdmVkOiB1bmtub3duKTogYW55IHtcbiAgICBjb25zdCBjaGFpbjogYW55ID0ge307XG4gICAgY2hhaW4ucXVlcnkgPSBzaW5vbi5zdHViKCkucmV0dXJucyhjaGFpbik7XG4gICAgY2hhaW4uc2VuZCA9IHNpbm9uLnN0dWIoKS5yZXR1cm5zKGNoYWluKTtcbiAgICBjaGFpbi5yZXN1bHQgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMocmVzb2x2ZWQpO1xuICAgIHJldHVybiBjaGFpbjtcbiAgfVxuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpZ25NZXNzYWdlU3R1YiA9IHNpbm9uLnN0dWIoQmFzZUNvaW4ucHJvdG90eXBlLCAnc2lnbk1lc3NhZ2UnKTtcbiAgICBzaWduTWVzc2FnZVN0dWIud2l0aEFyZ3MoeyBwcnYgfSwgcGF5bG9hZCkucmVzb2x2ZXMoc2lnbmF0dXJlQnl0ZXMpO1xuICAgIHNpbm9uLnN0dWIoQmFzZUNvaW4ucHJvdG90eXBlLCAna2V5Y2hhaW5zJykucmV0dXJucyh7XG4gICAgICBnZXRLZXlzRm9yU2lnbmluZzogc2lub24uc3R1YigpLnJlc29sdmVzKFt7IGlkOiB3YWxsZXREYXRhLmtleXNbMF0sIHB1YjogdXNlclB1YiB9XSksXG4gICAgfSBhcyBhbnkpO1xuICAgIG1vY2tCaXRHbyA9IHtcbiAgICAgIHVybDogc2lub24uc3R1YigpLnJldHVybnMoJ2h0dHBzOi8vdGVzdC5iaXRnby5jb20vJyksXG4gICAgICBwb3N0OiBzaW5vbi5zdHViKCksXG4gICAgICBzZXRSZXF1ZXN0VHJhY2VyOiBzaW5vbi5zdHViKCksXG4gICAgfTtcbiAgICBvZmNUb2tlbiA9IG5ldyBPZmNUb2tlbihtb2NrQml0R28sIFRFU1RfVE9LRU5fQ09ORklHKTtcbiAgICBtb2NrQml0R28uY29pbiA9IHNpbm9uLnN0dWIoKS5yZXR1cm5zKG9mY1Rva2VuKTtcbiAgICB3YWxsZXQgPSBuZXcgV2FsbGV0KG1vY2tCaXRHbywgb2ZjVG9rZW4sIHdhbGxldERhdGEpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dpdGggdXNlcktleVNpZ25pbmdSZXF1aXJlZDogdHJ1ZSAobG9jYWwgc2lnbmluZyB2aWEgdXNlciBrZXkpJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJ1aWxkVXJsID0gKCkgPT4gb2ZjVG9rZW4udXJsKCcvd2FsbGV0LycgKyB3YWxsZXREYXRhLmlkICsgJy90eC9idWlsZCcpO1xuICAgIGNvbnN0IHNpZ25VcmwgPSAoKSA9PiBvZmNUb2tlbi51cmwoJy93YWxsZXQvJyArIHdhbGxldERhdGEuaWQgKyAnL3R4L3NpZ24nKTtcbiAgICBjb25zdCBzZW5kVXJsID0gKCkgPT4gb2ZjVG9rZW4udXJsKCcvd2FsbGV0LycgKyB3YWxsZXREYXRhLmlkICsgJy90eC9zZW5kJyk7XG5cbiAgICBkZXNjcmliZSgnc2lnblRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBjYWxsIGJhc2VDb2luLnNpZ25NZXNzYWdlIHdpdGggdGhlIHBydiBhbmQgcGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7IHR4UHJlYnVpbGQ6IHsgcGF5bG9hZCB9IGFzIGFueSwgcHJ2IH0pO1xuXG4gICAgICAgIHNpZ25NZXNzYWdlU3R1Yi5jYWxsZWRPbmNlV2l0aCh7IHBydiB9LCBwYXlsb2FkKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgICAgIHJlc3VsdC5zaG91bGQuZGVlcEVxdWFsKHsgaGFsZlNpZ25lZDogeyBwYXlsb2FkLCBzaWduYXR1cmU6IHNpZ25hdHVyZUJ5dGVzLnRvU3RyaW5nKCdoZXgnKSB9IH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aXRoIHdhbGxldFBhc3NwaHJhc2UgYW5kIGtleWNoYWluJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCB3YWxsZXRQYXNzcGhyYXNlID0gJ3Rlc3QtcGFzc3BocmFzZSc7XG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZFBydiA9ICdlbmNyeXB0ZWQtcHJ2LWJsb2InO1xuXG4gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIGNvbXBpbGVkIHdhbGxldC5qczogZ2V0VXNlclBydiAoc3luYykg4oaSIGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkg4oaSIGJpdGdvLmRlY3J5cHRcbiAgICAgICAgICAvLyBUeXBlU2NyaXB0IHNvdXJjZTogIGdldFVzZXJQcnZBc3luYyAgICAgICAg4oaSIGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXlBc3luYyDihpIgYml0Z28uZGVjcnlwdEFzeW5jXG4gICAgICAgICAgbW9ja0JpdEdvLmRlY3J5cHQgPSBzaW5vbi5zdHViKCkucmV0dXJucyhwcnYpO1xuICAgICAgICAgIG1vY2tCaXRHby5kZWNyeXB0QXN5bmMgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMocHJ2KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBkZWNyeXB0IHRoZSBrZXljaGFpbiB3aXRoIHRoZSBwYXNzcGhyYXNlIGFuZCBzaWduIHZpYSBiYXNlQ29pbi5zaWduTWVzc2FnZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXQuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgcGF5bG9hZCB9IGFzIGFueSxcbiAgICAgICAgICAgIHdhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgICAgICBrZXljaGFpbjogeyBwdWI6IHVzZXJQdWIsIGVuY3J5cHRlZFBydiB9IGFzIGFueSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGRlY3J5cHRDYWxsZWQgPVxuICAgICAgICAgICAgbW9ja0JpdEdvLmRlY3J5cHQuY2FsbGVkV2l0aCh7IGlucHV0OiBlbmNyeXB0ZWRQcnYsIHBhc3N3b3JkOiB3YWxsZXRQYXNzcGhyYXNlIH0pIHx8XG4gICAgICAgICAgICBtb2NrQml0R28uZGVjcnlwdEFzeW5jLmNhbGxlZFdpdGgoeyBpbnB1dDogZW5jcnlwdGVkUHJ2LCBwYXNzd29yZDogd2FsbGV0UGFzc3BocmFzZSB9KTtcbiAgICAgICAgICBkZWNyeXB0Q2FsbGVkLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgICAgc2lnbk1lc3NhZ2VTdHViLmNhbGxlZE9uY2VXaXRoKHsgcHJ2IH0sIHBheWxvYWQpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICAgIHJlc3VsdC5zaG91bGQuZGVlcEVxdWFsKHsgaGFsZlNpZ25lZDogeyBwYXlsb2FkLCBzaWduYXR1cmU6IHNpZ25hdHVyZUJ5dGVzLnRvU3RyaW5nKCdoZXgnKSB9IH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3ByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIG1vY2tCaXRHby5wb3N0LndpdGhBcmdzKGJ1aWxkVXJsKCkpLnJldHVybnMobWFrZVJlcXVlc3RDaGFpbih7IHBheWxvYWQgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgY2FsbCB0aGUgcHJlYnVpbGQgQVBJIHRoZW4gc2lnbiBsb2NhbGx5IHdpdGggdGhlIHBydicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHsgcHJ2IH0pO1xuXG4gICAgICAgIG1vY2tCaXRHby5wb3N0LmNhbGxlZFdpdGgoYnVpbGRVcmwoKSkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkV2l0aChzaWduVXJsKCkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICBzaWduTWVzc2FnZVN0dWIuY2FsbGVkT25jZVdpdGgoeyBwcnYgfSwgcGF5bG9hZCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5kZWVwRXF1YWwoeyBoYWxmU2lnbmVkOiB7IHBheWxvYWQsIHNpZ25hdHVyZTogc2lnbmF0dXJlQnl0ZXMudG9TdHJpbmcoJ2hleCcpIH0gfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzZW5kTWFueScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICBtb2NrQml0R28ucG9zdC53aXRoQXJncyhidWlsZFVybCgpKS5yZXR1cm5zKG1ha2VSZXF1ZXN0Q2hhaW4oeyBwYXlsb2FkIH0pKTtcbiAgICAgICAgbW9ja0JpdEdvLnBvc3Qud2l0aEFyZ3Moc2VuZFVybCgpKS5yZXR1cm5zKG1ha2VSZXF1ZXN0Q2hhaW4oeyB0eGlkOiAndGVzdC10eGlkJywgc3RhdHVzOiAnc2lnbmVkJyB9KSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBwcmVidWlsZCwgc2lnbiBsb2NhbGx5LCBhbmQgc3VibWl0IHRvIHRoZSBzZW5kIGVuZHBvaW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3YWxsZXQuc2VuZE1hbnkoeyByZWNpcGllbnRzLCBwcnYgfSk7XG5cbiAgICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkV2l0aChidWlsZFVybCgpKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICBzaWduTWVzc2FnZVN0dWIuY2FsbGVkT25jZVdpdGgoeyBwcnYgfSwgcGF5bG9hZCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkV2l0aChzZW5kVXJsKCkpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIHJlc3VsdC5zaG91bGQuZGVlcEVxdWFsKHsgdHhpZDogJ3Rlc3QtdHhpZCcsIHN0YXR1czogJ3NpZ25lZCcgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dpdGggdXNlcktleVNpZ25pbmdSZXF1aXJlZDogZmFsc2UgKHJlbW90ZSBzaWduaW5nIHZpYSBCaXRHbyBrZXkpJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHNpZ25VcmwgPSAoKSA9PiBvZmNUb2tlbi51cmwoJy93YWxsZXQvJyArIHdhbGxldERhdGEuaWQgKyAnL3R4L3NpZ24nKTtcbiAgICBjb25zdCBidWlsZFVybCA9ICgpID0+IG9mY1Rva2VuLnVybCgnL3dhbGxldC8nICsgd2FsbGV0RGF0YS5pZCArICcvdHgvYnVpbGQnKTtcbiAgICBjb25zdCBzZW5kVXJsID0gKCkgPT4gb2ZjVG9rZW4udXJsKCcvd2FsbGV0LycgKyB3YWxsZXREYXRhLmlkICsgJy90eC9zZW5kJyk7XG4gICAgY29uc3QgaGV4U2lnbmF0dXJlID0gJ2RlYWRiZWVmJztcbiAgICBsZXQgcmVtb3RlV2FsbGV0OiBXYWxsZXQ7XG5cbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW90ZVdhbGxldCA9IG5ldyBXYWxsZXQobW9ja0JpdEdvLCBvZmNUb2tlbiwgeyAuLi53YWxsZXREYXRhLCB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSB9KTtcbiAgICAgIC8vIGNvbXBpbGVkIHdhbGxldC5qcyBjYWxscyBnZXRVc2VyUHJ2IChzeW5jKSBmb3IgYWxsIGNvaW5zOyBzdHViIHRvIHJldHVybiB1bmRlZmluZWRcbiAgICAgIC8vIHNvIHRoZSByZW1vdGUgc2lnbmluZyBwYXRoIHJlYWNoZXMgYmFzZUNvaW4uc2lnblRyYW5zYWN0aW9uIHdpdGggcHJ2OiB1bmRlZmluZWRcbiAgICAgIChyZW1vdGVXYWxsZXQgYXMgYW55KS5nZXRVc2VyUHJ2ID0gc2lub24uc3R1YigpLnJldHVybnModW5kZWZpbmVkKTtcbiAgICAgIG1vY2tCaXRHby5wb3N0LndpdGhBcmdzKHNpZ25VcmwoKSkucmV0dXJucyhtYWtlUmVxdWVzdENoYWluKHsgc2lnbmF0dXJlOiBoZXhTaWduYXR1cmUgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzaWduIGxvY2FsbHkgd2hlbiB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkIGlzIHRydWUgYW5kIHBydiBpcyBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHN0cmljdFdhbGxldCA9IG5ldyBXYWxsZXQobW9ja0JpdEdvLCBvZmNUb2tlbiwgeyAuLi53YWxsZXREYXRhLCB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiB0cnVlIH0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RyaWN0V2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7IHR4UHJlYnVpbGQ6IHsgcGF5bG9hZCB9IGFzIGFueSwgcHJ2IH0pO1xuXG4gICAgICBzaWduTWVzc2FnZVN0dWIuY2FsbGVkT25jZVdpdGgoeyBwcnYgfSwgcGF5bG9hZCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgIG1vY2tCaXRHby5wb3N0LmNhbGxlZFdpdGgoc2lnblVybCgpKS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgIHJlc3VsdC5zaG91bGQuZGVlcEVxdWFsKHsgaGFsZlNpZ25lZDogeyBwYXlsb2FkLCBzaWduYXR1cmU6IHNpZ25hdHVyZUJ5dGVzLnRvU3RyaW5nKCdoZXgnKSB9IH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NpZ25UcmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgUE9TVCB0byB0aGUgc2lnbiBlbmRwb2ludCBhbmQgcmV0dXJuIHRoZSBoYWxmU2lnbmVkIHJlc3VsdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlV2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7IHR4UHJlYnVpbGQ6IHsgcGF5bG9hZCB9IGFzIGFueSB9KTtcblxuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWRXaXRoKHNpZ25VcmwoKSkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgc2lnbk1lc3NhZ2VTdHViLmNhbGxlZC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5kZWVwRXF1YWwoeyBoYWxmU2lnbmVkOiB7IHBheWxvYWQsIHNpZ25hdHVyZTogaGV4U2lnbmF0dXJlIH0gfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdwcmVidWlsZEFuZFNpZ25UcmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICBtb2NrQml0R28ucG9zdC53aXRoQXJncyhidWlsZFVybCgpKS5yZXR1cm5zKG1ha2VSZXF1ZXN0Q2hhaW4oeyBwYXlsb2FkIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHByZWJ1aWxkIGFuZCByZW1vdGVseSBzaWduIHRoZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlV2FsbGV0LnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHt9KTtcblxuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWRXaXRoKGJ1aWxkVXJsKCkpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIG1vY2tCaXRHby5wb3N0LmNhbGxlZFdpdGgoc2lnblVybCgpKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICBzaWduTWVzc2FnZVN0dWIuY2FsbGVkLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICByZXN1bHQuc2hvdWxkLmRlZXBFcXVhbCh7IGhhbGZTaWduZWQ6IHsgcGF5bG9hZCwgc2lnbmF0dXJlOiBoZXhTaWduYXR1cmUgfSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NlbmRNYW55JywgZnVuY3Rpb24gKCkge1xuICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIG1vY2tCaXRHby5wb3N0LndpdGhBcmdzKGJ1aWxkVXJsKCkpLnJldHVybnMobWFrZVJlcXVlc3RDaGFpbih7IHBheWxvYWQgfSkpO1xuICAgICAgICBtb2NrQml0R28ucG9zdC53aXRoQXJncyhzZW5kVXJsKCkpLnJldHVybnMobWFrZVJlcXVlc3RDaGFpbih7IHR4aWQ6ICd0ZXN0LXR4aWQnLCBzdGF0dXM6ICdzaWduZWQnIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHByZWJ1aWxkLCByZW1vdGVseSBzaWduLCBhbmQgc2VuZCB0aGUgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZVdhbGxldC5zZW5kTWFueSh7IHJlY2lwaWVudHMgfSk7XG5cbiAgICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkV2l0aChidWlsZFVybCgpKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWRXaXRoKHNpZ25VcmwoKSkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgc2lnbk1lc3NhZ2VTdHViLmNhbGxlZC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5kZWVwRXF1YWwoeyB0eGlkOiAndGVzdC10eGlkJywgc3RhdHVzOiAnc2lnbmVkJyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,3 @@
1
+ import 'should';
2
+ import 'should-sinon';
3
+ //# sourceMappingURL=resourceManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceManagement.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/wallet/resourceManagement.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,CAAC;AAChB,OAAO,cAAc,CAAC"}