@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,136 @@
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 assert_1 = __importDefault(require("assert"));
10
+ const sinon_1 = __importDefault(require("sinon"));
11
+ const src_1 = require("../../../../../src");
12
+ describe('TradingNetwork', function () {
13
+ const enterpriseId = 'enterprise-id';
14
+ const walletId = 'wallet-id';
15
+ const signature = 'signature';
16
+ let mockBitGo;
17
+ let mockWallet;
18
+ let requestCalls;
19
+ let tradingNetwork;
20
+ let tradingAccount;
21
+ beforeEach(function () {
22
+ requestCalls = [];
23
+ tradingAccount = { signPayload: sinon_1.default.stub().resolves(signature) };
24
+ mockWallet = {
25
+ id: sinon_1.default.stub().returns(walletId),
26
+ toTradingAccount: sinon_1.default.stub().returns(tradingAccount),
27
+ };
28
+ mockBitGo = {
29
+ microservicesUrl: sinon_1.default.stub().callsFake((path) => `https://microservices.example${path}`),
30
+ };
31
+ for (const method of ['get', 'post', 'put']) {
32
+ mockBitGo[method] = sinon_1.default.stub().callsFake((url) => {
33
+ const call = {
34
+ method,
35
+ url,
36
+ headers: {},
37
+ body: undefined,
38
+ };
39
+ requestCalls.push(call);
40
+ const request = {
41
+ set: sinon_1.default.stub().callsFake((name, value) => {
42
+ call.headers[name] = value;
43
+ return request;
44
+ }),
45
+ send: sinon_1.default.stub().callsFake((body) => {
46
+ call.body = body;
47
+ return request;
48
+ }),
49
+ result: sinon_1.default.stub().resolves({ ok: true }),
50
+ };
51
+ return request;
52
+ });
53
+ }
54
+ tradingNetwork = new src_1.TradingNetwork(enterpriseId, mockWallet, mockBitGo);
55
+ });
56
+ it('uses enterprise-scoped URLs and headers for network reads', async function () {
57
+ await tradingNetwork.getBalances({ pageNumber: 2 });
58
+ await tradingNetwork.getSettlementById({ settlementId: 'settlement-id' });
59
+ assert_1.default.deepStrictEqual(requestCalls, [
60
+ {
61
+ method: 'get',
62
+ url: 'https://microservices.example/api/network/v1/enterprises/enterprise-id/clients/balances',
63
+ headers: { 'enterprise-id': enterpriseId },
64
+ body: { pageNumber: 2 },
65
+ },
66
+ {
67
+ method: 'get',
68
+ url: 'https://microservices.example/api/network/v1/enterprises/enterprise-id/clients/settlements/settlement-id',
69
+ headers: { 'enterprise-id': enterpriseId },
70
+ body: {},
71
+ },
72
+ ]);
73
+ });
74
+ it('prepares a signed allocation with generated identifiers', async function () {
75
+ const prepared = await tradingNetwork.prepareAllocation({
76
+ connectionId: 'connection-id',
77
+ amount: { currency: 'tbtc', quantity: '100' },
78
+ notes: 'test',
79
+ });
80
+ assert_1.default.strictEqual(prepared.connectionId, 'connection-id');
81
+ assert_1.default.strictEqual(prepared.signature, signature);
82
+ assert_1.default.match(prepared.clientExternalId, /^[0-9a-f-]{36}$/);
83
+ assert_1.default.match(prepared.nonce, /^[0-9a-f]{64}$/);
84
+ assert_1.default.strictEqual(prepared.payload, JSON.stringify({
85
+ connectionId: 'connection-id',
86
+ amount: { currency: 'tbtc', quantity: '100' },
87
+ notes: 'test',
88
+ clientExternalId: prepared.clientExternalId,
89
+ nonce: prepared.nonce,
90
+ }));
91
+ tradingAccount.signPayload.calledOnce.should.be.true();
92
+ tradingAccount.signPayload.firstCall.args[0].should.deepEqual({
93
+ payload: prepared.payload,
94
+ walletPassphrase: undefined,
95
+ });
96
+ });
97
+ it('submits allocation and deallocation payloads to connection-scoped endpoints', async function () {
98
+ const params = {
99
+ connectionId: 'connection-id',
100
+ payload: '{}',
101
+ signature,
102
+ amount: { currency: 'tbtc', quantity: '100' },
103
+ clientExternalId: 'external-id',
104
+ nonce: 'nonce',
105
+ };
106
+ await tradingNetwork.createAllocation(params);
107
+ await tradingNetwork.createDeallocation(params);
108
+ assert_1.default.deepStrictEqual(requestCalls, [
109
+ {
110
+ method: 'post',
111
+ url: 'https://microservices.example/api/network/v1/enterprises/enterprise-id/clients/connections/connection-id/allocations',
112
+ headers: { 'enterprise-id': enterpriseId },
113
+ body: {
114
+ payload: params.payload,
115
+ signature: params.signature,
116
+ amount: params.amount,
117
+ clientExternalId: params.clientExternalId,
118
+ nonce: params.nonce,
119
+ },
120
+ },
121
+ {
122
+ method: 'post',
123
+ url: 'https://microservices.example/api/network/v1/enterprises/enterprise-id/clients/connections/connection-id/deallocations',
124
+ headers: { 'enterprise-id': enterpriseId },
125
+ body: {
126
+ payload: params.payload,
127
+ signature: params.signature,
128
+ amount: params.amount,
129
+ clientExternalId: params.clientExternalId,
130
+ nonce: params.nonce,
131
+ },
132
+ },
133
+ ]);
134
+ });
135
+ });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL3RyYWRpbmcvbmV0d29yay9uZXR3b3JrLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILG9EQUE0QjtBQUM1QixrREFBMEI7QUFDMUIsNENBQW9EO0FBRXBELFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRTtJQUN6QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7SUFDckMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQzdCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQztJQUM5QixJQUFJLFNBQWMsQ0FBQztJQUNuQixJQUFJLFVBQWUsQ0FBQztJQUNwQixJQUFJLFlBS0YsQ0FBQztJQUNILElBQUksY0FBOEIsQ0FBQztJQUNuQyxJQUFJLGNBQWdELENBQUM7SUFFckQsVUFBVSxDQUFDO1FBQ1QsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixjQUFjLEdBQUcsRUFBRSxXQUFXLEVBQUUsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ25FLFVBQVUsR0FBRztZQUNYLEVBQUUsRUFBRSxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNsQyxnQkFBZ0IsRUFBRSxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUN2RCxDQUFDO1FBRUYsU0FBUyxHQUFHO1lBQ1YsZ0JBQWdCLEVBQUUsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDO1NBQ25HLENBQUM7UUFFRixLQUFLLE1BQU0sTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMs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QUMxQyxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO29CQUN2QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7b0JBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtvQkFDekMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2lCQUNwQjthQUNGO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxFQUFFLHdIQUF3SDtnQkFDN0gsT0FBTyxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRTtnQkFDMUMsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDdkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07b0JBQ3JCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7b0JBQ3pDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgVHJhZGluZ05ldHdvcmsgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnVHJhZGluZ05ldHdvcmsnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGVudGVycHJpc2VJZCA9ICdlbnRlcnByaXNlLWlkJztcbiAgY29uc3Qgd2FsbGV0SWQgPSAnd2FsbGV0LWlkJztcbiAgY29uc3Qgc2lnbmF0dXJlID0gJ3NpZ25hdHVyZSc7XG4gIGxldCBtb2NrQml0R286IGFueTtcbiAgbGV0IG1vY2tXYWxsZXQ6IGFueTtcbiAgbGV0IHJlcXVlc3RDYWxsczogQXJyYXk8e1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgYm9keTogdW5rbm93bjtcbiAgfT47XG4gIGxldCB0cmFkaW5nTmV0d29yazogVHJhZGluZ05ldHdvcms7XG4gIGxldCB0cmFkaW5nQWNjb3VudDogeyBzaWduUGF5bG9hZDogc2lub24uU2lub25TdHViIH07XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgcmVxdWVzdENhbGxzID0gW107XG4gICAgdHJhZGluZ0FjY291bnQgPSB7IHNpZ25QYXlsb2FkOiBzaW5vbi5zdHViKCkucmVzb2x2ZXMoc2lnbmF0dXJlKSB9O1xuICAgIG1vY2tXYWxsZXQgPSB7XG4gICAgICBpZDogc2lub24uc3R1YigpLnJldHVybnMod2FsbGV0SWQpLFxuICAgICAgdG9UcmFkaW5nQWNjb3VudDogc2lub24uc3R1YigpLnJldHVybnModHJhZGluZ0FjY291bnQpLFxuICAgIH07XG5cbiAgICBtb2NrQml0R28gPSB7XG4gICAgICBtaWNyb3NlcnZpY2VzVXJsOiBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKChwYXRoOiBzdHJpbmcpID0+IGBodHRwczovL21pY3Jvc2VydmljZXMuZXhhbXBsZSR7cGF0aH1gKSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgWydnZXQnLCAncG9zdCcsICdwdXQnXSkge1xuICAgICAgbW9ja0JpdEdvW21ldGhvZF0gPSBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKCh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBjYWxsOiB7IG1ldGhvZDogc3RyaW5nOyB1cmw6IHN0cmluZzsgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgYm9keTogdW5rbm93biB9ID0ge1xuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgYm9keTogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICByZXF1ZXN0Q2FsbHMucHVzaChjYWxsKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICBzZXQ6IHNpbm9uLnN0dWIoKS5jYWxsc0Zha2UoKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY2FsbC5oZWFkZXJzW25hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzZW5kOiBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKChib2R5OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICBjYWxsLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzdWx0OiBzaW5vbi5zdHViKCkucmVzb2x2ZXMoeyBvazogdHJ1ZSB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFkaW5nTmV0d29yayA9IG5ldyBUcmFkaW5nTmV0d29yayhlbnRlcnByaXNlSWQsIG1vY2tXYWxsZXQsIG1vY2tCaXRHbyk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIGVudGVycHJpc2Utc2NvcGVkIFVSTHMgYW5kIGhlYWRlcnMgZm9yIG5ldHdvcmsgcmVhZHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYXdhaXQgdHJhZGluZ05ldHdvcmsuZ2V0QmFsYW5jZXMoeyBwYWdlTnVtYmVyOiAyIH0pO1xuICAgIGF3YWl0IHRyYWRpbmdOZXR3b3JrLmdldFNldHRsZW1lbnRCeUlkKHsgc2V0dGxlbWVudElkOiAnc2V0dGxlbWVudC1pZCcgfSk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcXVlc3RDYWxscywgW1xuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICB1cmw6ICdodHRwczovL21pY3Jvc2VydmljZXMuZXhhbXBsZS9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy9lbnRlcnByaXNlLWlkL2NsaWVudHMvYmFsYW5jZXMnLFxuICAgICAgICBoZWFkZXJzOiB7ICdlbnRlcnByaXNlLWlkJzogZW50ZXJwcmlzZUlkIH0sXG4gICAgICAgIGJvZHk6IHsgcGFnZU51bWJlcjogMiB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiAnaHR0cHM6Ly9taWNyb3NlcnZpY2VzLmV4YW1wbGUvYXBpL25ldHdvcmsvdjEvZW50ZXJwcmlzZXMvZW50ZXJwcmlzZS1pZC9jbGllbnRzL3NldHRsZW1lbnRzL3NldHRsZW1lbnQtaWQnLFxuICAgICAgICBoZWFkZXJzOiB7ICdlbnRlcnByaXNlLWlkJzogZW50ZXJwcmlzZUlkIH0sXG4gICAgICAgIGJvZHk6IHt9LFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXBhcmVzIGEgc2lnbmVkIGFsbG9jYXRpb24gd2l0aCBnZW5lcmF0ZWQgaWRlbnRpZmllcnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBhd2FpdCB0cmFkaW5nTmV0d29yay5wcmVwYXJlQWxsb2NhdGlvbih7XG4gICAgICBjb25uZWN0aW9uSWQ6ICdjb25uZWN0aW9uLWlkJyxcbiAgICAgIGFtb3VudDogeyBjdXJyZW5jeTogJ3RidGMnIGFzIHN0cmluZywgcXVhbnRpdHk6ICcxMDAnIH0sXG4gICAgICBub3RlczogJ3Rlc3QnLFxuICAgIH0pO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHByZXBhcmVkLmNvbm5lY3Rpb25JZCwgJ2Nvbm5lY3Rpb24taWQnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwocHJlcGFyZWQuc2lnbmF0dXJlLCBzaWduYXR1cmUpO1xuICAgIGFzc2VydC5tYXRjaChwcmVwYXJlZC5jbGllbnRFeHRlcm5hbElkLCAvXlswLTlhLWYtXXszNn0kLyk7XG4gICAgYXNzZXJ0Lm1hdGNoKHByZXBhcmVkLm5vbmNlLCAvXlswLTlhLWZdezY0fSQvKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICBwcmVwYXJlZC5wYXlsb2FkLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb25uZWN0aW9uSWQ6ICdjb25uZWN0aW9uLWlkJyxcbiAgICAgICAgYW1vdW50OiB7IGN1cnJlbmN5OiAndGJ0YycsIHF1YW50aXR5OiAnMTAwJyB9LFxuICAgICAgICBub3RlczogJ3Rlc3QnLFxuICAgICAgICBjbGllbnRFeHRlcm5hbElkOiBwcmVwYXJlZC5jbGllbnRFeHRlcm5hbElkLFxuICAgICAgICBub25jZTogcHJlcGFyZWQubm9uY2UsXG4gICAgICB9KVxuICAgICk7XG4gICAgdHJhZGluZ0FjY291bnQuc2lnblBheWxvYWQuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkLmZpcnN0Q2FsbC5hcmdzWzBdLnNob3VsZC5kZWVwRXF1YWwoe1xuICAgICAgcGF5bG9hZDogcHJlcGFyZWQucGF5bG9hZCxcbiAgICAgIHdhbGxldFBhc3NwaHJhc2U6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3N1Ym1pdHMgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIHBheWxvYWRzIHRvIGNvbm5lY3Rpb24tc2NvcGVkIGVuZHBvaW50cycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjb25uZWN0aW9uSWQ6ICdjb25uZWN0aW9uLWlkJyxcbiAgICAgIHBheWxvYWQ6ICd7fScsXG4gICAgICBzaWduYXR1cmUsXG4gICAgICBhbW91bnQ6IHsgY3VycmVuY3k6ICd0YnRjJywgcXVhbnRpdHk6ICcxMDAnIH0sXG4gICAgICBjbGllbnRFeHRlcm5hbElkOiAnZXh0ZXJuYWwtaWQnLFxuICAgICAgbm9uY2U6ICdub25jZScsXG4gICAgfTtcblxuICAgIGF3YWl0IHRyYWRpbmdOZXR3b3JrLmNyZWF0ZUFsbG9jYXRpb24ocGFyYW1zKTtcbiAgICBhd2FpdCB0cmFkaW5nTmV0d29yay5jcmVhdGVEZWFsbG9jYXRpb24ocGFyYW1zKTtcblxuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVxdWVzdENhbGxzLCBbXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICB1cmw6ICdodHRwczovL21pY3Jvc2VydmljZXMuZXhhbXBsZS9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy9lbnRlcnByaXNlLWlkL2NsaWVudHMvY29ubmVjdGlvbnMvY29ubmVjdGlvbi1pZC9hbGxvY2F0aW9ucycsXG4gICAgICAgIGhlYWRlcnM6IHsgJ2VudGVycHJpc2UtaWQnOiBlbnRlcnByaXNlSWQgfSxcbiAgICAgICAgYm9keToge1xuICAgICAgICAgIHBheWxvYWQ6IHBhcmFtcy5wYXlsb2FkLFxuICAgICAgICAgIHNpZ25hdHVyZTogcGFyYW1zLnNpZ25hdHVyZSxcbiAgICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgICAgY2xpZW50RXh0ZXJuYWxJZDogcGFyYW1zLmNsaWVudEV4dGVybmFsSWQsXG4gICAgICAgICAgbm9uY2U6IHBhcmFtcy5ub25jZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICB1cmw6ICdodHRwczovL21pY3Jvc2VydmljZXMuZXhhbXBsZS9hcGkvbmV0d29yay92MS9lbnRlcnByaXNlcy9lbnRlcnByaXNlLWlkL2NsaWVudHMvY29ubmVjdGlvbnMvY29ubmVjdGlvbi1pZC9kZWFsbG9jYXRpb25zJyxcbiAgICAgICAgaGVhZGVyczogeyAnZW50ZXJwcmlzZS1pZCc6IGVudGVycHJpc2VJZCB9LFxuICAgICAgICBib2R5OiB7XG4gICAgICAgICAgcGF5bG9hZDogcGFyYW1zLnBheWxvYWQsXG4gICAgICAgICAgc2lnbmF0dXJlOiBwYXJhbXMuc2lnbmF0dXJlLFxuICAgICAgICAgIGFtb3VudDogcGFyYW1zLmFtb3VudCxcbiAgICAgICAgICBjbGllbnRFeHRlcm5hbElkOiBwYXJhbXMuY2xpZW50RXh0ZXJuYWxJZCxcbiAgICAgICAgICBub25jZTogcGFyYW1zLm5vbmNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=tradingAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradingAccount.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/trading/tradingAccount.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,192 @@
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 tradingAccount_1 = require("../../../../src/bitgo/trading/tradingAccount");
12
+ describe('TradingAccount', function () {
13
+ let tradingAccount;
14
+ let userKeyRequiredTradingAccount;
15
+ let mockBitGo;
16
+ let mockWallet;
17
+ let mockUserKeyRequiredWallet;
18
+ let mockBaseCoin;
19
+ let sendStub;
20
+ const enterpriseId = 'test-enterprise-id';
21
+ const walletPassphrase = 'test-passphrase';
22
+ const encryptedPrv = 'encrypted-prv';
23
+ const decryptedPrv = 'decrypted-prv';
24
+ const signature = 'aabbccdd';
25
+ const payload = { data: 'test-payload' };
26
+ const payloadString = JSON.stringify(payload);
27
+ beforeEach(function () {
28
+ sendStub = sinon_1.default.stub();
29
+ sendStub.withArgs({ payload: payloadString }).returns({ result: sinon_1.default.stub().resolves({ signature }) });
30
+ mockBitGo = {
31
+ post: sinon_1.default.stub().returns({ send: sendStub }),
32
+ coin: sinon_1.default.stub().callsFake((coin) => ({
33
+ url: sinon_1.default.stub().callsFake((url) => `https://app.bitgo-staging.com/api/v2/${coin}${url}`),
34
+ })),
35
+ decrypt: sinon_1.default
36
+ .stub()
37
+ .callsFake(async ({ input, password }) => input === encryptedPrv && password === walletPassphrase ? decryptedPrv : undefined),
38
+ };
39
+ mockBaseCoin = {
40
+ keychains: sinon_1.default.stub().returns({
41
+ get: sinon_1.default.stub().resolves({ encryptedPrv }),
42
+ }),
43
+ signMessage: sinon_1.default.stub().callsFake(async (key) => {
44
+ if (key.prv === decryptedPrv) {
45
+ return Buffer.from(signature, 'hex');
46
+ }
47
+ throw new Error(`signMessage called with unexpected prv: ${key.prv}`);
48
+ }),
49
+ };
50
+ mockWallet = {
51
+ id: sinon_1.default.stub().returns('test-wallet-id'),
52
+ keyIds: sinon_1.default.stub().returns(['user-key-id', 'bitgo-key-id']),
53
+ toJSON: sinon_1.default.stub().returns({
54
+ id: 'test-wallet-id',
55
+ keys: ['user-key-id', 'backup-key-id', 'bitgo-key-id'],
56
+ coinSpecific: {
57
+ userKeySigningRequired: false,
58
+ },
59
+ }),
60
+ baseCoin: mockBaseCoin,
61
+ bitgo: mockBitGo,
62
+ };
63
+ mockUserKeyRequiredWallet = {
64
+ ...mockWallet,
65
+ toJSON: sinon_1.default.stub().returns({
66
+ id: 'test-wallet-id',
67
+ keys: ['user-key-id', 'backup-key-id', 'bitgo-key-id'],
68
+ coinSpecific: {
69
+ userKeySigningRequired: true,
70
+ },
71
+ }),
72
+ };
73
+ tradingAccount = new tradingAccount_1.TradingAccount(enterpriseId, mockWallet, mockBitGo);
74
+ userKeyRequiredTradingAccount = new tradingAccount_1.TradingAccount(enterpriseId, mockUserKeyRequiredWallet, mockBitGo);
75
+ });
76
+ afterEach(function () {
77
+ sinon_1.default.restore();
78
+ });
79
+ describe('id', function () {
80
+ it('should return the wallet id', function () {
81
+ tradingAccount.id.should.equal('test-wallet-id');
82
+ mockWallet.id.calledOnce.should.be.true();
83
+ });
84
+ });
85
+ describe('signPayload', function () {
86
+ it('should call the right url', async function () {
87
+ const expectedUrl = `https://app.bitgo-staging.com/api/v2/ofc/wallet/test-wallet-id/tx/sign`;
88
+ await tradingAccount.signPayload({ payload });
89
+ mockBitGo.post.calledWith(expectedUrl).should.be.true();
90
+ });
91
+ describe('without walletPassphrase or prv (BitGo remote signing)', function () {
92
+ it('should sign using the BitGo key remotely when no passphrase is provided', async function () {
93
+ const result = await tradingAccount.signPayload({ payload });
94
+ mockBitGo.post.calledOnce.should.be.true();
95
+ sendStub.calledWith({ payload: JSON.stringify(payload) }).should.be.true();
96
+ result.should.equal(signature);
97
+ });
98
+ it('should sign a string payload remotely when no passphrase is provided', async function () {
99
+ const result = await tradingAccount.signPayload({ payload: payloadString });
100
+ sendStub.calledWith({ payload: payloadString }).should.be.true();
101
+ result.should.equal(signature);
102
+ });
103
+ it('should throw if coinSpecific.userKeySigningRequired is true and no passphrase and prv are provided', async function () {
104
+ await userKeyRequiredTradingAccount
105
+ .signPayload({ payload })
106
+ .should.be.rejectedWith('Wallet must use user key to sign ofc transaction, please provide the wallet passphrase, the private key, or visit your wallet settings page to configure one.');
107
+ });
108
+ it('should fall back to top-level userKeySigningRequired when coinSpecific does not carry it', async function () {
109
+ await userKeyRequiredTradingAccount
110
+ .signPayload({ payload })
111
+ .should.be.rejectedWith('Wallet must use user key to sign ofc transaction, please provide the wallet passphrase, the private key, or visit your wallet settings page to configure one.');
112
+ });
113
+ it('should prefer coinSpecific.userKeySigningRequired over top-level when both are present', async function () {
114
+ mockWallet.toJSON.onCall(mockWallet.toJSON.callCount).returns({
115
+ id: 'test-wallet-id',
116
+ keys: ['user-key-id', 'backup-key-id', 'bitgo-key-id'],
117
+ coinSpecific: { userKeySigningRequired: false },
118
+ userKeySigningRequired: true,
119
+ });
120
+ const result = await tradingAccount.signPayload({ payload });
121
+ result.should.equal(signature);
122
+ });
123
+ it('should throw if wallet has fewer than 2 keys and no passphrase and prv are provided', async function () {
124
+ mockWallet.toJSON.onCall(mockWallet.toJSON.callCount).returns({
125
+ id: 'test-wallet-id',
126
+ keys: ['user-key-id'],
127
+ coinSpecific: {},
128
+ });
129
+ await tradingAccount
130
+ .signPayload({ payload })
131
+ .should.be.rejectedWith('Wallet does not support BitGo signing. Please reach out to support@bitgo.com to resolve this issue.');
132
+ });
133
+ });
134
+ describe('with walletPassphrase (local user key signing)', function () {
135
+ it('should decrypt the user key and sign the payload locally', async function () {
136
+ const result = await tradingAccount.signPayload({ payload, walletPassphrase });
137
+ mockBaseCoin.keychains().get.calledWith({ id: 'user-key-id' }).should.be.true();
138
+ mockBitGo.decrypt.calledWith({ input: encryptedPrv, password: walletPassphrase }).should.be.true();
139
+ mockBaseCoin.signMessage.calledOnce.should.be.true();
140
+ result.should.equal(Buffer.from(signature, 'hex').toString('hex'));
141
+ });
142
+ it('should stringify a Record payload before signing locally', async function () {
143
+ await tradingAccount.signPayload({ payload, walletPassphrase });
144
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
145
+ signMessageCall.args[1].should.equal(JSON.stringify(payload));
146
+ });
147
+ it('should pass a string payload directly to signMessage', async function () {
148
+ await tradingAccount.signPayload({ payload: payloadString, walletPassphrase });
149
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
150
+ signMessageCall.args[1].should.equal(payloadString);
151
+ });
152
+ });
153
+ describe('with both walletPassphrase and prv', function () {
154
+ it('should use prv directly and not call decrypt when both are provided', async function () {
155
+ await tradingAccount.signPayload({ payload, walletPassphrase, prv: decryptedPrv });
156
+ mockBitGo.decrypt.called.should.be.false();
157
+ mockBaseCoin.keychains.called.should.be.false();
158
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
159
+ signMessageCall.args[0].should.deepEqual({ prv: decryptedPrv });
160
+ });
161
+ });
162
+ describe('with prv (local user key signing without decryption)', function () {
163
+ it('should sign using the provided prv without calling decrypt', async function () {
164
+ const result = await tradingAccount.signPayload({ payload, prv: decryptedPrv });
165
+ mockBitGo.decrypt.called.should.be.false();
166
+ mockBaseCoin.keychains.called.should.be.false();
167
+ mockBaseCoin.signMessage.calledOnce.should.be.true();
168
+ result.should.equal(Buffer.from(signature, 'hex').toString('hex'));
169
+ });
170
+ it('should not use BitGo remote signing when prv is provided', async function () {
171
+ await tradingAccount.signPayload({ payload, prv: decryptedPrv });
172
+ mockBitGo.post.called.should.be.false();
173
+ });
174
+ it('should pass the prv directly to signMessage', async function () {
175
+ await tradingAccount.signPayload({ payload, prv: decryptedPrv });
176
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
177
+ signMessageCall.args[0].should.deepEqual({ prv: decryptedPrv });
178
+ });
179
+ it('should stringify a Record payload before signing with prv', async function () {
180
+ await tradingAccount.signPayload({ payload, prv: decryptedPrv });
181
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
182
+ signMessageCall.args[1].should.equal(JSON.stringify(payload));
183
+ });
184
+ it('should pass a string payload directly to signMessage when signing with prv', async function () {
185
+ await tradingAccount.signPayload({ payload: payloadString, prv: decryptedPrv });
186
+ const signMessageCall = mockBaseCoin.signMessage.getCall(0);
187
+ signMessageCall.args[1].should.equal(payloadString);
188
+ });
189
+ });
190
+ });
191
+ });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZ0FjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vdHJhZGluZy90cmFkaW5nQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsa0RBQTBCO0FBQzFCLGtCQUFnQjtBQUNoQixpRkFBOEU7QUFFOUUsUUFBUSxDQUFDLGdCQUFnQixFQUFFO0lBQ3pCLElBQUksY0FBOEIsQ0FBQztJQUNuQyxJQUFJLDZCQUE2QyxDQUFDO0lBQ2xELElBQUksU0FBYyxDQUFDO0lBQ25CLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUkseUJBQThCLENBQUM7SUFDbkMsSUFBSSxZQUFpQixDQUFDO0lBQ3RCLElBQUksUUFBeUIsQ0FBQztJQUU5QixNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztJQUMxQyxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQztJQUNyQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUMsVUFBVSxDQUFDO1FBQ1QsUUFBUSxHQUFHLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RyxTQUFTLEdBQUc7WUFDVixJQUFJLEVBQUUsZUFB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Q0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFkaW5nQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9iaXRnby90cmFkaW5nL3RyYWRpbmdBY2NvdW50JztcblxuZGVzY3JpYmUoJ1RyYWRpbmdBY2NvdW50JywgZnVuY3Rpb24gKCkge1xuICBsZXQgdHJhZGluZ0FjY291bnQ6IFRyYWRpbmdBY2NvdW50O1xuICBsZXQgdXNlcktleVJlcXVpcmVkVHJhZGluZ0FjY291bnQ6IFRyYWRpbmdBY2NvdW50O1xuICBsZXQgbW9ja0JpdEdvOiBhbnk7XG4gIGxldCBtb2NrV2FsbGV0OiBhbnk7XG4gIGxldCBtb2NrVXNlcktleVJlcXVpcmVkV2FsbGV0OiBhbnk7XG4gIGxldCBtb2NrQmFzZUNvaW46IGFueTtcbiAgbGV0IHNlbmRTdHViOiBzaW5vbi5TaW5vblN0dWI7XG5cbiAgY29uc3QgZW50ZXJwcmlzZUlkID0gJ3Rlc3QtZW50ZXJwcmlzZS1pZCc7XG4gIGNvbnN0IHdhbGxldFBhc3NwaHJhc2UgPSAndGVzdC1wYXNzcGhyYXNlJztcbiAgY29uc3QgZW5jcnlwdGVkUHJ2ID0gJ2VuY3J5cHRlZC1wcnYnO1xuICBjb25zdCBkZWNyeXB0ZWRQcnYgPSAnZGVjcnlwdGVkLXBydic7XG4gIGNvbnN0IHNpZ25hdHVyZSA9ICdhYWJiY2NkZCc7XG4gIGNvbnN0IHBheWxvYWQgPSB7IGRhdGE6ICd0ZXN0LXBheWxvYWQnIH07XG4gIGNvbnN0IHBheWxvYWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzZW5kU3R1YiA9IHNpbm9uLnN0dWIoKTtcbiAgICBzZW5kU3R1Yi53aXRoQXJncyh7IHBheWxvYWQ6IHBheWxvYWRTdHJpbmcgfSkucmV0dXJucyh7IHJlc3VsdDogc2lub24uc3R1YigpLnJlc29sdmVzKHsgc2lnbmF0dXJlIH0pIH0pO1xuXG4gICAgbW9ja0JpdEdvID0ge1xuICAgICAgcG9zdDogc2lub24uc3R1YigpLnJldHVybnMoeyBzZW5kOiBzZW5kU3R1YiB9KSxcbiAgICAgIGNvaW46IHNpbm9uLnN0dWIoKS5jYWxsc0Zha2UoKGNvaW46IHN0cmluZykgPT4gKHtcbiAgICAgICAgdXJsOiBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKCh1cmw6IHN0cmluZykgPT4gYGh0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi8ke2NvaW59JHt1cmx9YCksXG4gICAgICB9KSksXG4gICAgICBkZWNyeXB0OiBzaW5vblxuICAgICAgICAuc3R1YigpXG4gICAgICAgIC5jYWxsc0Zha2UoYXN5bmMgKHsgaW5wdXQsIHBhc3N3b3JkIH0pID0+XG4gICAgICAgICAgaW5wdXQgPT09IGVuY3J5cHRlZFBydiAmJiBwYXNzd29yZCA9PT0gd2FsbGV0UGFzc3BocmFzZSA/IGRlY3J5cHRlZFBydiA6IHVuZGVmaW5lZFxuICAgICAgICApLFxuICAgIH07XG5cbiAgICBtb2NrQmFzZUNvaW4gPSB7XG4gICAgICBrZXljaGFpbnM6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKHtcbiAgICAgICAgZ2V0OiBzaW5vbi5zdHViKCkucmVzb2x2ZXMoeyBlbmNyeXB0ZWRQcnYgfSksXG4gICAgICB9KSxcbiAgICAgIHNpZ25NZXNzYWdlOiBzaW5vbi5zdHViKCkuY2FsbHNGYWtlKGFzeW5jIChrZXk6IHsgcHJ2OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBpZiAoa2V5LnBydiA9PT0gZGVjcnlwdGVkUHJ2KSB7XG4gICAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSwgJ2hleCcpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbk1lc3NhZ2UgY2FsbGVkIHdpdGggdW5leHBlY3RlZCBwcnY6ICR7a2V5LnBydn1gKTtcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBtb2NrV2FsbGV0ID0ge1xuICAgICAgaWQ6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKCd0ZXN0LXdhbGxldC1pZCcpLFxuICAgICAga2V5SWRzOiBzaW5vbi5zdHViKCkucmV0dXJucyhbJ3VzZXIta2V5LWlkJywgJ2JpdGdvLWtleS1pZCddKSxcbiAgICAgIHRvSlNPTjogc2lub24uc3R1YigpLnJldHVybnMoe1xuICAgICAgICBpZDogJ3Rlc3Qtd2FsbGV0LWlkJyxcbiAgICAgICAga2V5czogWyd1c2VyLWtleS1pZCcsICdiYWNrdXAta2V5LWlkJywgJ2JpdGdvLWtleS1pZCddLFxuICAgICAgICBjb2luU3BlY2lmaWM6IHtcbiAgICAgICAgICB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgYmFzZUNvaW46IG1vY2tCYXNlQ29pbixcbiAgICAgIGJpdGdvOiBtb2NrQml0R28sXG4gICAgfTtcblxuICAgIG1vY2tVc2VyS2V5UmVxdWlyZWRXYWxsZXQgPSB7XG4gICAgICAuLi5tb2NrV2FsbGV0LFxuICAgICAgdG9KU09OOiBzaW5vbi5zdHViKCkucmV0dXJucyh7XG4gICAgICAgIGlkOiAndGVzdC13YWxsZXQtaWQnLFxuICAgICAgICBrZXlzOiBbJ3VzZXIta2V5LWlkJywgJ2JhY2t1cC1rZXktaWQnLCAnYml0Z28ta2V5LWlkJ10sXG4gICAgICAgIGNvaW5TcGVjaWZpYzoge1xuICAgICAgICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgdHJhZGluZ0FjY291bnQgPSBuZXcgVHJhZGluZ0FjY291bnQoZW50ZXJwcmlzZUlkLCBtb2NrV2FsbGV0LCBtb2NrQml0R28pO1xuICAgIHVzZXJLZXlSZXF1aXJlZFRyYWRpbmdBY2NvdW50ID0gbmV3IFRyYWRpbmdBY2NvdW50KGVudGVycHJpc2VJZCwgbW9ja1VzZXJLZXlSZXF1aXJlZFdhbGxldCwgbW9ja0JpdEdvKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgd2FsbGV0IGlkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdHJhZGluZ0FjY291bnQuaWQuc2hvdWxkLmVxdWFsKCd0ZXN0LXdhbGxldC1pZCcpO1xuICAgICAgbW9ja1dhbGxldC5pZC5jYWxsZWRPbmNlLnNob3VsZC5iZS50cnVlKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaWduUGF5bG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNhbGwgdGhlIHJpZ2h0IHVybCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVXJsID0gYGh0dHBzOi8vYXBwLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi9vZmMvd2FsbGV0L3Rlc3Qtd2FsbGV0LWlkL3R4L3NpZ25gO1xuICAgICAgYXdhaXQgdHJhZGluZ0FjY291bnQuc2lnblBheWxvYWQoeyBwYXlsb2FkIH0pO1xuICAgICAgbW9ja0JpdEdvLnBvc3QuY2FsbGVkV2l0aChleHBlY3RlZFVybCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRob3V0IHdhbGxldFBhc3NwaHJhc2Ugb3IgcHJ2IChCaXRHbyByZW1vdGUgc2lnbmluZyknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIHNpZ24gdXNpbmcgdGhlIEJpdEdvIGtleSByZW1vdGVseSB3aGVuIG5vIHBhc3NwaHJhc2UgaXMgcHJvdmlkZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkKHsgcGF5bG9hZCB9KTtcblxuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWRPbmNlLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIHNlbmRTdHViLmNhbGxlZFdpdGgoeyBwYXlsb2FkOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSB9KS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHNpZ25hdHVyZSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBzaWduIGEgc3RyaW5nIHBheWxvYWQgcmVtb3RlbHkgd2hlbiBubyBwYXNzcGhyYXNlIGlzIHByb3ZpZGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0cmFkaW5nQWNjb3VudC5zaWduUGF5bG9hZCh7IHBheWxvYWQ6IHBheWxvYWRTdHJpbmcgfSk7XG4gICAgICAgIHNlbmRTdHViLmNhbGxlZFdpdGgoeyBwYXlsb2FkOiBwYXlsb2FkU3RyaW5nIH0pLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwoc2lnbmF0dXJlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHRocm93IGlmIGNvaW5TcGVjaWZpYy51c2VyS2V5U2lnbmluZ1JlcXVpcmVkIGlzIHRydWUgYW5kIG5vIHBhc3NwaHJhc2UgYW5kIHBydiBhcmUgcHJvdmlkZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IHVzZXJLZXlSZXF1aXJlZFRyYWRpbmdBY2NvdW50XG4gICAgICAgICAgLnNpZ25QYXlsb2FkKHsgcGF5bG9hZCB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKFxuICAgICAgICAgICAgJ1dhbGxldCBtdXN0IHVzZSB1c2VyIGtleSB0byBzaWduIG9mYyB0cmFuc2FjdGlvbiwgcGxlYXNlIHByb3ZpZGUgdGhlIHdhbGxldCBwYXNzcGhyYXNlLCB0aGUgcHJpdmF0ZSBrZXksIG9yIHZpc2l0IHlvdXIgd2FsbGV0IHNldHRpbmdzIHBhZ2UgdG8gY29uZmlndXJlIG9uZS4nXG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGZhbGwgYmFjayB0byB0b3AtbGV2ZWwgdXNlcktleVNpZ25pbmdSZXF1aXJlZCB3aGVuIGNvaW5TcGVjaWZpYyBkb2VzIG5vdCBjYXJyeSBpdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgdXNlcktleVJlcXVpcmVkVHJhZGluZ0FjY291bnRcbiAgICAgICAgICAuc2lnblBheWxvYWQoeyBwYXlsb2FkIH0pXG4gICAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoXG4gICAgICAgICAgICAnV2FsbGV0IG11c3QgdXNlIHVzZXIga2V5IHRvIHNpZ24gb2ZjIHRyYW5zYWN0aW9uLCBwbGVhc2UgcHJvdmlkZSB0aGUgd2FsbGV0IHBhc3NwaHJhc2UsIHRoZSBwcml2YXRlIGtleSwgb3IgdmlzaXQgeW91ciB3YWxsZXQgc2V0dGluZ3MgcGFnZSB0byBjb25maWd1cmUgb25lLidcbiAgICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcHJlZmVyIGNvaW5TcGVjaWZpYy51c2VyS2V5U2lnbmluZ1JlcXVpcmVkIG92ZXIgdG9wLWxldmVsIHdoZW4gYm90aCBhcmUgcHJlc2VudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbW9ja1dhbGxldC50b0pTT04ub25DYWxsKG1vY2tXYWxsZXQudG9KU09OLmNhbGxDb3VudCkucmV0dXJucyh7XG4gICAgICAgICAgaWQ6ICd0ZXN0LXdhbGxldC1pZCcsXG4gICAgICAgICAga2V5czogWyd1c2VyLWtleS1pZCcsICdiYWNrdXAta2V5LWlkJywgJ2JpdGdvLWtleS1pZCddLFxuICAgICAgICAgIGNvaW5TcGVjaWZpYzogeyB1c2VyS2V5U2lnbmluZ1JlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgIHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkKHsgcGF5bG9hZCB9KTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbChzaWduYXR1cmUpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdGhyb3cgaWYgd2FsbGV0IGhhcyBmZXdlciB0aGFuIDIga2V5cyBhbmQgbm8gcGFzc3BocmFzZSBhbmQgcHJ2IGFyZSBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbW9ja1dhbGxldC50b0pTT04ub25DYWxsKG1vY2tXYWxsZXQudG9KU09OLmNhbGxDb3VudCkucmV0dXJucyh7XG4gICAgICAgICAgaWQ6ICd0ZXN0LXdhbGxldC1pZCcsXG4gICAgICAgICAga2V5czogWyd1c2VyLWtleS1pZCddLFxuICAgICAgICAgIGNvaW5TcGVjaWZpYzoge30sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHRyYWRpbmdBY2NvdW50XG4gICAgICAgICAgLnNpZ25QYXlsb2FkKHsgcGF5bG9hZCB9KVxuICAgICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKFxuICAgICAgICAgICAgJ1dhbGxldCBkb2VzIG5vdCBzdXBwb3J0IEJpdEdvIHNpZ25pbmcuIFBsZWFzZSByZWFjaCBvdXQgdG8gc3VwcG9ydEBiaXRnby5jb20gdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLidcbiAgICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2l0aCB3YWxsZXRQYXNzcGhyYXNlIChsb2NhbCB1c2VyIGtleSBzaWduaW5nKScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgZGVjcnlwdCB0aGUgdXNlciBrZXkgYW5kIHNpZ24gdGhlIHBheWxvYWQgbG9jYWxseScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdHJhZGluZ0FjY291bnQuc2lnblBheWxvYWQoeyBwYXlsb2FkLCB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuXG4gICAgICAgIG1vY2tCYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQuY2FsbGVkV2l0aCh7IGlkOiAndXNlci1rZXktaWQnIH0pLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIG1vY2tCaXRHby5kZWNyeXB0LmNhbGxlZFdpdGgoeyBpbnB1dDogZW5jcnlwdGVkUHJ2LCBwYXNzd29yZDogd2FsbGV0UGFzc3BocmFzZSB9KS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICBtb2NrQmFzZUNvaW4uc2lnbk1lc3NhZ2UuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSwgJ2hleCcpLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBzdHJpbmdpZnkgYSBSZWNvcmQgcGF5bG9hZCBiZWZvcmUgc2lnbmluZyBsb2NhbGx5JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCB0cmFkaW5nQWNjb3VudC5zaWduUGF5bG9hZCh7IHBheWxvYWQsIHdhbGxldFBhc3NwaHJhc2UgfSk7XG5cbiAgICAgICAgY29uc3Qgc2lnbk1lc3NhZ2VDYWxsID0gbW9ja0Jhc2VDb2luLnNpZ25NZXNzYWdlLmdldENhbGwoMCk7XG4gICAgICAgIHNpZ25NZXNzYWdlQ2FsbC5hcmdzWzFdLnNob3VsZC5lcXVhbChKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBwYXNzIGEgc3RyaW5nIHBheWxvYWQgZGlyZWN0bHkgdG8gc2lnbk1lc3NhZ2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkKHsgcGF5bG9hZDogcGF5bG9hZFN0cmluZywgd2FsbGV0UGFzc3BocmFzZSB9KTtcblxuICAgICAgICBjb25zdCBzaWduTWVzc2FnZUNhbGwgPSBtb2NrQmFzZUNvaW4uc2lnbk1lc3NhZ2UuZ2V0Q2FsbCgwKTtcbiAgICAgICAgc2lnbk1lc3NhZ2VDYWxsLmFyZ3NbMV0uc2hvdWxkLmVxdWFsKHBheWxvYWRTdHJpbmcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2l0aCBib3RoIHdhbGxldFBhc3NwaHJhc2UgYW5kIHBydicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgdXNlIHBydiBkaXJlY3RseSBhbmQgbm90IGNhbGwgZGVjcnlwdCB3aGVuIGJvdGggYXJlIHByb3ZpZGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCB0cmFkaW5nQWNjb3VudC5zaWduUGF5bG9hZCh7IHBheWxvYWQsIHdhbGxldFBhc3NwaHJhc2UsIHBydjogZGVjcnlwdGVkUHJ2IH0pO1xuXG4gICAgICAgIG1vY2tCaXRHby5kZWNyeXB0LmNhbGxlZC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgbW9ja0Jhc2VDb2luLmtleWNoYWlucy5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgICAgIGNvbnN0IHNpZ25NZXNzYWdlQ2FsbCA9IG1vY2tCYXNlQ29pbi5zaWduTWVzc2FnZS5nZXRDYWxsKDApO1xuICAgICAgICBzaWduTWVzc2FnZUNhbGwuYXJnc1swXS5zaG91bGQuZGVlcEVxdWFsKHsgcHJ2OiBkZWNyeXB0ZWRQcnYgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRoIHBydiAobG9jYWwgdXNlciBrZXkgc2lnbmluZyB3aXRob3V0IGRlY3J5cHRpb24pJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBzaWduIHVzaW5nIHRoZSBwcm92aWRlZCBwcnYgd2l0aG91dCBjYWxsaW5nIGRlY3J5cHQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkKHsgcGF5bG9hZCwgcHJ2OiBkZWNyeXB0ZWRQcnYgfSk7XG5cbiAgICAgICAgbW9ja0JpdEdvLmRlY3J5cHQuY2FsbGVkLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgICAgICBtb2NrQmFzZUNvaW4ua2V5Y2hhaW5zLmNhbGxlZC5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICAgICAgbW9ja0Jhc2VDb2luLnNpZ25NZXNzYWdlLmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWUoKTtcbiAgICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbChCdWZmZXIuZnJvbShzaWduYXR1cmUsICdoZXgnKS50b1N0cmluZygnaGV4JykpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IHVzZSBCaXRHbyByZW1vdGUgc2lnbmluZyB3aGVuIHBydiBpcyBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgdHJhZGluZ0FjY291bnQuc2lnblBheWxvYWQoeyBwYXlsb2FkLCBwcnY6IGRlY3J5cHRlZFBydiB9KTtcblxuICAgICAgICBtb2NrQml0R28ucG9zdC5jYWxsZWQuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBwYXNzIHRoZSBwcnYgZGlyZWN0bHkgdG8gc2lnbk1lc3NhZ2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IHRyYWRpbmdBY2NvdW50LnNpZ25QYXlsb2FkKHsgcGF5bG9hZCwgcHJ2OiBkZWNyeXB0ZWRQcnYgfSk7XG5cbiAgICAgICAgY29uc3Qgc2lnbk1lc3NhZ2VDYWxsID0gbW9ja0Jhc2VDb2luLnNpZ25NZXNzYWdlLmdldENhbGwoMCk7XG4gICAgICAgIHNpZ25NZXNzYWdlQ2FsbC5hcmdzWzBdLnNob3VsZC5kZWVwRXF1YWwoeyBwcnY6IGRlY3J5cHRlZFBydiB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHN0cmluZ2lmeSBhIFJlY29yZCBwYXlsb2FkIGJlZm9yZSBzaWduaW5nIHdpdGggcHJ2JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCB0cmFkaW5nQWNjb3VudC5zaWduUGF5bG9hZCh7IHBheWxvYWQsIHBydjogZGVjcnlwdGVkUHJ2IH0pO1xuXG4gICAgICAgIGNvbnN0IHNpZ25NZXNzYWdlQ2FsbCA9IG1vY2tCYXNlQ29pbi5zaWduTWVzc2FnZS5nZXRDYWxsKDApO1xuICAgICAgICBzaWduTWVzc2FnZUNhbGwuYXJnc1sxXS5zaG91bGQuZXF1YWwoSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcGFzcyBhIHN0cmluZyBwYXlsb2FkIGRpcmVjdGx5IHRvIHNpZ25NZXNzYWdlIHdoZW4gc2lnbmluZyB3aXRoIHBydicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgdHJhZGluZ0FjY291bnQuc2lnblBheWxvYWQoeyBwYXlsb2FkOiBwYXlsb2FkU3RyaW5nLCBwcnY6IGRlY3J5cHRlZFBydiB9KTtcblxuICAgICAgICBjb25zdCBzaWduTWVzc2FnZUNhbGwgPSBtb2NrQmFzZUNvaW4uc2lnbk1lc3NhZ2UuZ2V0Q2FsbCgwKTtcbiAgICAgICAgc2lnbk1lc3NhZ2VDYWxsLmFyZ3NbMV0uc2hvdWxkLmVxdWFsKHBheWxvYWRTdHJpbmcpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bitgoPubKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitgoPubKeys.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/tss/bitgoPubKeys.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
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 assert = __importStar(require("assert"));
37
+ const bitgoPubKeys_1 = require("../../../../src/bitgo/tss/bitgoPubKeys");
38
+ describe('bitgoPubKeys RedPallas MPCv2 key config', function () {
39
+ it('getBitgoMpcGpgPubKey returns a key for redpallasMpcv2 across env/hsmType combos', function () {
40
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('test', 'nitro', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.test);
41
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('prod', 'nitro', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.prod);
42
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('test', 'onprem', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.onprem.test);
43
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('prod', 'onprem', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.onprem.prod);
44
+ });
45
+ it('non-prod/non-adminProd envs default to the test key for redpallasMpcv2', function () {
46
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('staging', 'nitro', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.test);
47
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('adminTest', 'onprem', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.onprem.test);
48
+ });
49
+ it('adminProd resolves to the prod key for redpallasMpcv2', function () {
50
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('adminProd', 'nitro', 'redpallasMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.prod);
51
+ });
52
+ it('isBitgoRedpallasMpcv2PubKey identifies known redpallasMpcv2 keys', function () {
53
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoRedpallasMpcv2PubKey)(bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.test), true);
54
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoRedpallasMpcv2PubKey)(bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.onprem.prod), true);
55
+ });
56
+ it('isBitgoRedpallasMpcv2PubKey rejects keys from other mpc versions', function () {
57
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoRedpallasMpcv2PubKey)(bitgoPubKeys_1.bitgoMpcGpgPubKeys.mpcv1.nitro.test), false);
58
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoRedpallasMpcv2PubKey)('not-a-real-key'), false);
59
+ });
60
+ it('does not affect eddsaMpcv2 key lookups', function () {
61
+ assert.strictEqual((0, bitgoPubKeys_1.getBitgoMpcGpgPubKey)('test', 'nitro', 'eddsaMpcv2'), bitgoPubKeys_1.bitgoMpcGpgPubKeys.eddsaMpcv2.nitro.test);
62
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPubKeys_1.bitgoMpcGpgPubKeys.eddsaMpcv2.nitro.test), true);
63
+ assert.strictEqual((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPubKeys_1.bitgoMpcGpgPubKeys.redpallasMpcv2.nitro.test), true); // interim: same key material
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Z29QdWJLZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2JpdGdvL3Rzcy9iaXRnb1B1YktleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFDakMseUVBS2dEO0FBRWhELFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtJQUNsRCxFQUFFLENBQUMsaUZBQWlGLEVBQUU7UUFDcEYsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQ3ZELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM3QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQ3ZELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM3QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEVBQ3hELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM5QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEVBQ3hELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM5QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0VBQXdFLEVBQUU7UUFDM0UsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQzFELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM3QyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEVBQzdELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM5QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdURBQXVELEVBQUU7UUFDMUQsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBQSxtQ0FBb0IsRUFBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEVBQzVELGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUU7UUFDckUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBDQUEyQixFQUFDLGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBDQUEyQixFQUFDLGlDQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUU7UUFDckUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBDQUEyQixFQUFDLGlDQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLDBDQUEyQixFQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUU7UUFDM0MsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLG1DQUFvQixFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUUsaUNBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsSCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsc0NBQXVCLEVBQUMsaUNBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsc0NBQXVCLEVBQUMsaUNBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDZCQUE2QjtJQUNoSSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBiaXRnb01wY0dwZ1B1YktleXMsXG4gIGdldEJpdGdvTXBjR3BnUHViS2V5LFxuICBpc0JpdGdvRWRkc2FNcGN2MlB1YktleSxcbiAgaXNCaXRnb1JlZHBhbGxhc01wY3YyUHViS2V5LFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2JpdGdvUHViS2V5cyc7XG5cbmRlc2NyaWJlKCdiaXRnb1B1YktleXMgUmVkUGFsbGFzIE1QQ3YyIGtleSBjb25maWcnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdnZXRCaXRnb01wY0dwZ1B1YktleSByZXR1cm5zIGEga2V5IGZvciByZWRwYWxsYXNNcGN2MiBhY3Jvc3MgZW52L2hzbVR5cGUgY29tYm9zJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgIGdldEJpdGdvTXBjR3BnUHViS2V5KCd0ZXN0JywgJ25pdHJvJywgJ3JlZHBhbGxhc01wY3YyJyksXG4gICAgICBiaXRnb01wY0dwZ1B1YktleXMucmVkcGFsbGFzTXBjdjIubml0cm8udGVzdFxuICAgICk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgZ2V0Qml0Z29NcGNHcGdQdWJLZXkoJ3Byb2QnLCAnbml0cm8nLCAncmVkcGFsbGFzTXBjdjInKSxcbiAgICAgIGJpdGdvTXBjR3BnUHViS2V5cy5yZWRwYWxsYXNNcGN2Mi5uaXRyby5wcm9kXG4gICAgKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICBnZXRCaXRnb01wY0dwZ1B1YktleSgndGVzdCcsICdvbnByZW0nLCAncmVkcGFsbGFzTXBjdjInKSxcbiAgICAgIGJpdGdvTXBjR3BnUHViS2V5cy5yZWRwYWxsYXNNcGN2Mi5vbnByZW0udGVzdFxuICAgICk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgZ2V0Qml0Z29NcGNHcGdQdWJLZXkoJ3Byb2QnLCAnb25wcmVtJywgJ3JlZHBhbGxhc01wY3YyJyksXG4gICAgICBiaXRnb01wY0dwZ1B1YktleXMucmVkcGFsbGFzTXBjdjIub25wcmVtLnByb2RcbiAgICApO1xuICB9KTtcblxuICBpdCgnbm9uLXByb2Qvbm9uLWFkbWluUHJvZCBlbnZzIGRlZmF1bHQgdG8gdGhlIHRlc3Qga2V5IGZvciByZWRwYWxsYXNNcGN2MicsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICBnZXRCaXRnb01wY0dwZ1B1YktleSgnc3RhZ2luZycsICduaXRybycsICdyZWRwYWxsYXNNcGN2MicpLFxuICAgICAgYml0Z29NcGNHcGdQdWJLZXlzLnJlZHBhbGxhc01wY3YyLm5pdHJvLnRlc3RcbiAgICApO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgIGdldEJpdGdvTXBjR3BnUHViS2V5KCdhZG1pblRlc3QnLCAnb25wcmVtJywgJ3JlZHBhbGxhc01wY3YyJyksXG4gICAgICBiaXRnb01wY0dwZ1B1YktleXMucmVkcGFsbGFzTXBjdjIub25wcmVtLnRlc3RcbiAgICApO1xuICB9KTtcblxuICBpdCgnYWRtaW5Qcm9kIHJlc29sdmVzIHRvIHRoZSBwcm9kIGtleSBmb3IgcmVkcGFsbGFzTXBjdjInLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgZ2V0Qml0Z29NcGNHcGdQdWJLZXkoJ2FkbWluUHJvZCcsICduaXRybycsICdyZWRwYWxsYXNNcGN2MicpLFxuICAgICAgYml0Z29NcGNHcGdQdWJLZXlzLnJlZHBhbGxhc01wY3YyLm5pdHJvLnByb2RcbiAgICApO1xuICB9KTtcblxuICBpdCgnaXNCaXRnb1JlZHBhbGxhc01wY3YyUHViS2V5IGlkZW50aWZpZXMga25vd24gcmVkcGFsbGFzTXBjdjIga2V5cycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNCaXRnb1JlZHBhbGxhc01wY3YyUHViS2V5KGJpdGdvTXBjR3BnUHViS2V5cy5yZWRwYWxsYXNNcGN2Mi5uaXRyby50ZXN0KSwgdHJ1ZSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzQml0Z29SZWRwYWxsYXNNcGN2MlB1YktleShiaXRnb01wY0dwZ1B1YktleXMucmVkcGFsbGFzTXBjdjIub25wcmVtLnByb2QpLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ2lzQml0Z29SZWRwYWxsYXNNcGN2MlB1YktleSByZWplY3RzIGtleXMgZnJvbSBvdGhlciBtcGMgdmVyc2lvbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzQml0Z29SZWRwYWxsYXNNcGN2MlB1YktleShiaXRnb01wY0dwZ1B1YktleXMubXBjdjEubml0cm8udGVzdCksIGZhbHNlKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNCaXRnb1JlZHBhbGxhc01wY3YyUHViS2V5KCdub3QtYS1yZWFsLWtleScpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBhZmZlY3QgZWRkc2FNcGN2MiBrZXkgbG9va3VwcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0Qml0Z29NcGNHcGdQdWJLZXkoJ3Rlc3QnLCAnbml0cm8nLCAnZWRkc2FNcGN2MicpLCBiaXRnb01wY0dwZ1B1YktleXMuZWRkc2FNcGN2Mi5uaXRyby50ZXN0KTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNCaXRnb0VkZHNhTXBjdjJQdWJLZXkoYml0Z29NcGNHcGdQdWJLZXlzLmVkZHNhTXBjdjIubml0cm8udGVzdCksIHRydWUpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc0JpdGdvRWRkc2FNcGN2MlB1YktleShiaXRnb01wY0dwZ1B1YktleXMucmVkcGFsbGFzTXBjdjIubml0cm8udGVzdCksIHRydWUpOyAvLyBpbnRlcmltOiBzYW1lIGtleSBtYXRlcmlhbFxuICB9KTtcbn0pO1xuIl19
@@ -8,18 +8,59 @@ const src_1 = require("../../../../src");
8
8
  describe('getUtxoCoinScriptTypes', function () {
9
9
  it('success', function () {
10
10
  const fn = (coin, arr) => {
11
- const scriptTypes = src_1.getUtxoCoinScriptTypes2Of3(coin);
11
+ const scriptTypes = (0, src_1.getUtxoCoinScriptTypes2Of3)(coin);
12
12
  return arr.find((v) => scriptTypes.includes(v));
13
13
  };
14
14
  assert_1.default.ok(fn('btc', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', 'p2trMusig2']));
15
15
  assert_1.default.ok(fn('ltc', ['p2sh', 'p2shP2wsh', 'p2wsh']));
16
16
  assert_1.default.ok(fn('doge', ['p2sh']));
17
17
  });
18
+ it('fail with an actionable message for wasm-only coins', function () {
19
+ // pearl is served through @bitgo/wasm-utxo and has no utxo-lib network, so its
20
+ // utxolibName does not resolve here. Assert the guidance rather than letting it
21
+ // fall through to a bare `TypeError: invalid network`.
22
+ for (const coinName of ['pearl', 'tpearl']) {
23
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypes2Of3)(coinName), (e) => /has no utxo-lib network/.test(e.message) && /@bitgo\/wasm-utxo/.test(e.message));
24
+ }
25
+ });
26
+ it('fail for invalid coin name', function () {
27
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypes2Of3)('dummy'), (e) => e.message === `coin 'dummy' is not defined`);
28
+ });
29
+ it('fail for non-utxo coin name', function () {
30
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypes2Of3)('eth'), (e) => e.message === 'coin eth is not a utxo coin');
31
+ });
32
+ });
33
+ describe('getUtxoCoinScriptTypesForWalletType', function () {
34
+ it('success', function () {
35
+ const fn = (coin, walletType, arr) => {
36
+ const scriptTypes = (0, src_1.getUtxoCoinScriptTypesForWalletType)(coin, walletType);
37
+ return arr.find((v) => scriptTypes.includes(v));
38
+ };
39
+ assert_1.default.ok(fn('btc', 'hot', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr', 'p2trMusig2']));
40
+ assert_1.default.ok(fn('btc', 'cold', ['p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr']));
41
+ assert_1.default.ok(fn('ltc', 'hot', ['p2sh', 'p2shP2wsh', 'p2wsh']));
42
+ assert_1.default.ok(fn('ltc', 'cold', ['p2sh', 'p2shP2wsh', 'p2wsh']));
43
+ assert_1.default.ok(fn('doge', 'hot', ['p2sh']));
44
+ assert_1.default.ok(fn('doge', 'cold', ['p2sh']));
45
+ });
46
+ it('applies the wallet-type rule for p2trMusig2', function () {
47
+ // p2trMusig2 is hot-only on mainnet; cold is allowed on testnet
48
+ assert_1.default.ok((0, src_1.getUtxoCoinScriptTypesForWalletType)('btc', 'hot').includes('p2trMusig2'));
49
+ assert_1.default.ok(!(0, src_1.getUtxoCoinScriptTypesForWalletType)('btc', 'cold').includes('p2trMusig2'));
50
+ assert_1.default.ok((0, src_1.getUtxoCoinScriptTypesForWalletType)('tbtc', 'cold').includes('p2trMusig2'));
51
+ });
52
+ it('fail with an actionable message for wasm-only coins', function () {
53
+ for (const coinName of ['pearl', 'tpearl']) {
54
+ for (const walletType of ['hot', 'cold']) {
55
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypesForWalletType)(coinName, walletType), (e) => /has no utxo-lib network/.test(e.message) && /@bitgo\/wasm-utxo/.test(e.message));
56
+ }
57
+ }
58
+ });
18
59
  it('fail for invalid coin name', function () {
19
- assert_1.default.throws(() => src_1.getUtxoCoinScriptTypes2Of3('dummy'), (e) => e.message === `coin 'dummy' is not defined`);
60
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypesForWalletType)('dummy', 'hot'), (e) => e.message === `coin 'dummy' is not defined`);
20
61
  });
21
62
  it('fail for non-utxo coin name', function () {
22
- assert_1.default.throws(() => src_1.getUtxoCoinScriptTypes2Of3('eth'), (e) => e.message === 'coin eth is not a utxo coin');
63
+ assert_1.default.throws(() => (0, src_1.getUtxoCoinScriptTypesForWalletType)('eth', 'hot'), (e) => e.message === 'coin eth is not a utxo coin');
23
64
  });
24
65
  });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RVdHhvQ29pblV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vdXRpbHMvYWJzdHJhY3RVdHhvQ29pblV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIseUNBQTZEO0FBRzdELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxFQUFFLENBQUMsU0FBUyxFQUFFO1FBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFZLEVBQUUsR0FBaUQsRUFBRSxFQUFFO1lBQzdFLE1BQU0sV0FBVyxHQUFHLGdDQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQztRQUNGLGdCQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLGdCQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDRCQUE0QixFQUFFO1FBQy9CLGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLGdDQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUN6QyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyw2QkFBNkIsQ0FDeEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFO1FBQ2hDLGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLGdDQUEwQixDQUFDLEtBQUssQ0FBQyxFQUN2QyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyw2QkFBNkIsQ0FDeEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldFV0eG9Db2luU2NyaXB0VHlwZXMyT2YzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5kZXNjcmliZSgnZ2V0VXR4b0NvaW5TY3JpcHRUeXBlcycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZm4gPSAoY29pbjogc3RyaW5nLCBhcnI6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mM1tdKSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHRUeXBlcyA9IGdldFV0eG9Db2luU2NyaXB0VHlwZXMyT2YzKGNvaW4pO1xuICAgICAgcmV0dXJuIGFyci5maW5kKCh2KSA9PiBzY3JpcHRUeXBlcy5pbmNsdWRlcyh2KSk7XG4gICAgfTtcbiAgICBhc3NlcnQub2soZm4oJ2J0YycsIFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnLCAncDJ0cicsICdwMnRyTXVzaWcyJ10pKTtcbiAgICBhc3NlcnQub2soZm4oJ2x0YycsIFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnXSkpO1xuICAgIGFzc2VydC5vayhmbignZG9nZScsIFsncDJzaCddKSk7XG4gIH0pO1xuXG4gIGl0KCdmYWlsIGZvciBpbnZhbGlkIGNvaW4gbmFtZScsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4gZ2V0VXR4b0NvaW5TY3JpcHRUeXBlczJPZjMoJ2R1bW15JyksXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IGBjb2luICdkdW1teScgaXMgbm90IGRlZmluZWRgXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ2ZhaWwgZm9yIG5vbi11dHhvIGNvaW4gbmFtZScsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4gZ2V0VXR4b0NvaW5TY3JpcHRUeXBlczJPZjMoJ2V0aCcpLFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSAnY29pbiBldGggaXMgbm90IGEgdXR4byBjb2luJ1xuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RVdHhvQ29pblV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vdXRpbHMvYWJzdHJhY3RVdHhvQ29pblV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIseUNBQWtHO0FBR2xHLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxFQUFFLENBQUMsU0FBUyxFQUFFO1FBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFZLEVBQUUsR0FBaUQsRUFBRSxFQUFFO1lBQzdFLE1BQU0sV0FBVyxHQUFHLElBQUEsZ0NBQTBCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO1FBQ0YsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELGdCQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscURBQXFELEVBQUU7UUFDeEQsK0VBQStFO1FBQy9FLGdGQUFnRjtRQUNoRix1REFBdUQ7UUFDdkQsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lB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QUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldFV0eG9Db2luU2NyaXB0VHlwZXMyT2YzLCBnZXRVdHhvQ29pblNjcmlwdFR5cGVzRm9yV2FsbGV0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZGVzY3JpYmUoJ2dldFV0eG9Db2luU2NyaXB0VHlwZXMnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdzdWNjZXNzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGZuID0gKGNvaW46IHN0cmluZywgYXJyOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjNbXSkgPT4ge1xuICAgICAgY29uc3Qgc2NyaXB0VHlwZXMgPSBnZXRVdHhvQ29pblNjcmlwdFR5cGVzMk9mMyhjb2luKTtcbiAgICAgIHJldHVybiBhcnIuZmluZCgodikgPT4gc2NyaXB0VHlwZXMuaW5jbHVkZXModikpO1xuICAgIH07XG4gICAgYXNzZXJ0Lm9rKGZuKCdidGMnLCBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJywgJ3AydHInLCAncDJ0ck11c2lnMiddKSk7XG4gICAgYXNzZXJ0Lm9rKGZuKCdsdGMnLCBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJ10pKTtcbiAgICBhc3NlcnQub2soZm4oJ2RvZ2UnLCBbJ3Ayc2gnXSkpO1xuICB9KTtcblxuICBpdCgnZmFpbCB3aXRoIGFuIGFjdGlvbmFibGUgbWVzc2FnZSBmb3Igd2FzbS1vbmx5IGNvaW5zJywgZnVuY3Rpb24gKCkge1xuICAgIC8vIHBlYXJsIGlzIHNlcnZlZCB0aHJvdWdoIEBiaXRnby93YXNtLXV0eG8gYW5kIGhhcyBubyB1dHhvLWxpYiBuZXR3b3JrLCBzbyBpdHNcbiAgICAvLyB1dHhvbGliTmFtZSBkb2VzIG5vdCByZXNvbHZlIGhlcmUuIEFzc2VydCB0aGUgZ3VpZGFuY2UgcmF0aGVyIHRoYW4gbGV0dGluZyBpdFxuICAgIC8vIGZhbGwgdGhyb3VnaCB0byBhIGJhcmUgYFR5cGVFcnJvcjogaW52YWxpZCBuZXR3b3JrYC5cbiAgICBmb3IgKGNvbnN0IGNvaW5OYW1lIG9mIFsncGVhcmwnLCAndHBlYXJsJ10pIHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IGdldFV0eG9Db2luU2NyaXB0VHlwZXMyT2YzKGNvaW5OYW1lKSxcbiAgICAgICAgKGU6IGFueSkgPT4gL2hhcyBubyB1dHhvLWxpYiBuZXR3b3JrLy50ZXN0KGUubWVzc2FnZSkgJiYgL0BiaXRnb1xcL3dhc20tdXR4by8udGVzdChlLm1lc3NhZ2UpXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ2ZhaWwgZm9yIGludmFsaWQgY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiBnZXRVdHhvQ29pblNjcmlwdFR5cGVzMk9mMygnZHVtbXknKSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gYGNvaW4gJ2R1bW15JyBpcyBub3QgZGVmaW5lZGBcbiAgICApO1xuICB9KTtcblxuICBpdCgnZmFpbCBmb3Igbm9uLXV0eG8gY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiBnZXRVdHhvQ29pblNjcmlwdFR5cGVzMk9mMygnZXRoJyksXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdjb2luIGV0aCBpcyBub3QgYSB1dHhvIGNvaW4nXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2dldFV0eG9Db2luU2NyaXB0VHlwZXNGb3JXYWxsZXRUeXBlJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc3VjY2VzcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBmbiA9IChjb2luOiBzdHJpbmcsIHdhbGxldFR5cGU6ICdob3QnIHwgJ2NvbGQnLCBhcnI6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mM1tdKSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHRUeXBlcyA9IGdldFV0eG9Db2luU2NyaXB0VHlwZXNGb3JXYWxsZXRUeXBlKGNvaW4sIHdhbGxldFR5cGUpO1xuICAgICAgcmV0dXJuIGFyci5maW5kKCh2KSA9PiBzY3JpcHRUeXBlcy5pbmNsdWRlcyh2KSk7XG4gICAgfTtcbiAgICBhc3NlcnQub2soZm4oJ2J0YycsICdob3QnLCBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJywgJ3AydHInLCAncDJ0ck11c2lnMiddKSk7XG4gICAgYXNzZXJ0Lm9rKGZuKCdidGMnLCAnY29sZCcsIFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnLCAncDJ0ciddKSk7XG4gICAgYXNzZXJ0Lm9rKGZuKCdsdGMnLCAnaG90JywgWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCddKSk7XG4gICAgYXNzZXJ0Lm9rKGZuKCdsdGMnLCAnY29sZCcsIFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnXSkpO1xuICAgIGFzc2VydC5vayhmbignZG9nZScsICdob3QnLCBbJ3Ayc2gnXSkpO1xuICAgIGFzc2VydC5vayhmbignZG9nZScsICdjb2xkJywgWydwMnNoJ10pKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgdGhlIHdhbGxldC10eXBlIHJ1bGUgZm9yIHAydHJNdXNpZzInLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gcDJ0ck11c2lnMiBpcyBob3Qtb25seSBvbiBtYWlubmV0OyBjb2xkIGlzIGFsbG93ZWQgb24gdGVzdG5ldFxuICAgIGFzc2VydC5vayhnZXRVdHhvQ29pblNjcmlwdFR5cGVzRm9yV2FsbGV0VHlwZSgnYnRjJywgJ2hvdCcpLmluY2x1ZGVzKCdwMnRyTXVzaWcyJykpO1xuICAgIGFzc2VydC5vayghZ2V0VXR4b0NvaW5TY3JpcHRUeXBlc0ZvcldhbGxldFR5cGUoJ2J0YycsICdjb2xkJykuaW5jbHVkZXMoJ3AydHJNdXNpZzInKSk7XG4gICAgYXNzZXJ0Lm9rKGdldFV0eG9Db2luU2NyaXB0VHlwZXNGb3JXYWxsZXRUeXBlKCd0YnRjJywgJ2NvbGQnKS5pbmNsdWRlcygncDJ0ck11c2lnMicpKTtcbiAgfSk7XG5cbiAgaXQoJ2ZhaWwgd2l0aCBhbiBhY3Rpb25hYmxlIG1lc3NhZ2UgZm9yIHdhc20tb25seSBjb2lucycsIGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKGNvbnN0IGNvaW5OYW1lIG9mIFsncGVhcmwnLCAndHBlYXJsJ10pIHtcbiAgICAgIGZvciAoY29uc3Qgd2FsbGV0VHlwZSBvZiBbJ2hvdCcsICdjb2xkJ10gYXMgY29uc3QpIHtcbiAgICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgICAoKSA9PiBnZXRVdHhvQ29pblNjcmlwdFR5cGVzRm9yV2FsbGV0VHlwZShjb2luTmFtZSwgd2FsbGV0VHlwZSksXG4gICAgICAgICAgKGU6IGFueSkgPT4gL2hhcyBubyB1dHhvLWxpYiBuZXR3b3JrLy50ZXN0KGUubWVzc2FnZSkgJiYgL0BiaXRnb1xcL3dhc20tdXR4by8udGVzdChlLm1lc3NhZ2UpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpdCgnZmFpbCBmb3IgaW52YWxpZCBjb2luIG5hbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IGdldFV0eG9Db2luU2NyaXB0VHlwZXNGb3JXYWxsZXRUeXBlKCdkdW1teScsICdob3QnKSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gYGNvaW4gJ2R1bW15JyBpcyBub3QgZGVmaW5lZGBcbiAgICApO1xuICB9KTtcblxuICBpdCgnZmFpbCBmb3Igbm9uLXV0eG8gY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiBnZXRVdHhvQ29pblNjcmlwdFR5cGVzRm9yV2FsbGV0VHlwZSgnZXRoJywgJ2hvdCcpLFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSAnY29pbiBldGggaXMgbm90IGEgdXR4byBjb2luJ1xuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTypes.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/utils/messageTypes.ts"],"names":[],"mappings":""}