@meshsdk/bitcoin 1.9.0-beta.50 → 1.9.0-beta.52

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.
package/README.md CHANGED
@@ -1,3 +1,11 @@
1
1
  # mesh-bitcoin
2
2
 
3
+ Bitcoin integration for MeshJS, enabling developers to build applications that interact with the Bitcoin blockchain.
4
+
3
5
  [meshjs.dev](https://meshjs.dev/)
6
+
7
+ ## Get started
8
+
9
+ ```bash
10
+ npm install @meshsdk/bitcoin
11
+ ```
package/dist/index.cjs CHANGED
@@ -3607,24 +3607,23 @@ var axios_default = axios;
3607
3607
  var Axios2 = axios_default.Axios, AxiosError2 = axios_default.AxiosError, CanceledError2 = axios_default.CanceledError, isCancel2 = axios_default.isCancel, CancelToken2 = axios_default.CancelToken, VERSION2 = axios_default.VERSION, all2 = axios_default.all, Cancel = axios_default.Cancel, isAxiosError2 = axios_default.isAxiosError, spread2 = axios_default.spread, toFormData2 = axios_default.toFormData, AxiosHeaders2 = axios_default.AxiosHeaders, HttpStatusCode2 = axios_default.HttpStatusCode, formToJSON = axios_default.formToJSON, getAdapter = axios_default.getAdapter, mergeConfig2 = axios_default.mergeConfig;
3608
3608
  // src/providers/common.ts
3609
3609
  var parseHttpError = function(error) {
3610
- if (axios_default.isAxiosError(error)) {
3611
- if (error.response) {
3612
- return JSON.stringify({
3613
- data: error.response.data,
3614
- headers: error.response.headers,
3615
- status: error.response.status
3616
- });
3617
- } else if (error.request && !_instanceof(error.request, XMLHttpRequest)) {
3618
- return JSON.stringify(error.request);
3619
- } else {
3620
- return JSON.stringify({
3621
- code: error.code,
3622
- message: error.message
3623
- });
3624
- }
3625
- } else {
3610
+ if (!axios_default.isAxiosError(error)) {
3626
3611
  return JSON.stringify(error);
3627
3612
  }
3613
+ if (error.response) {
3614
+ return JSON.stringify({
3615
+ data: error.response.data,
3616
+ headers: error.response.headers,
3617
+ status: error.response.status
3618
+ });
3619
+ }
3620
+ if (error.request && !_instanceof(error.request, XMLHttpRequest)) {
3621
+ return JSON.stringify(error.request);
3622
+ }
3623
+ return JSON.stringify({
3624
+ code: error.code,
3625
+ message: error.message
3626
+ });
3628
3627
  };
3629
3628
  // src/providers/blockstream.ts
3630
3629
  var BlockstreamProvider = /*#__PURE__*/ function() {
@@ -4306,57 +4305,67 @@ var WalletStaticMethods = /*#__PURE__*/ function() {
4306
4305
  return WalletStaticMethods;
4307
4306
  }();
4308
4307
  // src/wallets/embedded/index.ts
4308
+ var import_bip39 = require("bip39");
4309
4309
  var EmbeddedWallet = /*#__PURE__*/ function() {
4310
4310
  function EmbeddedWallet(options) {
4311
4311
  _class_call_check(this, EmbeddedWallet);
4312
- this._networkId = options.networkId;
4313
- var bIP32Interface = WalletStaticMethods2.fromMnemonic(options.key.words.join(" "), options.networkId);
4314
- this._BIP32Interface = bIP32Interface;
4315
- this._p2wpkh = bitcoin.payments.p2wpkh({
4316
- pubkey: this._BIP32Interface.publicKey,
4317
- network: this._networkId === 0 ? bitcoin.networks.bitcoin : bitcoin.networks.testnet
4318
- });
4312
+ this._network = options.testnet ? bitcoin.networks.testnet : bitcoin.networks.bitcoin;
4313
+ var _options_path;
4314
+ this._wallet = _derive(options.key.words, (_options_path = options.path) !== null && _options_path !== void 0 ? _options_path : "m/84'/0'/0'/0/0", this._network);
4319
4315
  this._provider = options.provider;
4320
4316
  }
4321
4317
  _create_class(EmbeddedWallet, [
4322
4318
  {
4323
4319
  /**
4324
- * Get wallet network ID.
4320
+ * Returns the wallet's SegWit (P2WPKH) address and associated public key.
4325
4321
  *
4326
- * @returns network ID
4327
- */ key: "getNetworkId",
4328
- value: function getNetworkId() {
4329
- return this._networkId;
4330
- }
4331
- },
4332
- {
4333
- /*
4334
- * Get wallet address.
4335
- *
4336
- * @returns wallet address
4337
- */ key: "getPaymentAddress",
4338
- value: function getPaymentAddress() {
4339
- var address = {
4340
- address: this._p2wpkh.address,
4341
- publicKey: this._BIP32Interface.publicKey.toString("hex"),
4322
+ * @returns {Address} The wallet address object including address, public key, and metadata.
4323
+ * @throws {Error} If internal address or public key is not properly initialized.
4324
+ */ key: "getAddress",
4325
+ value: function getAddress() {
4326
+ var p2wpkh = bitcoin.payments.p2wpkh({
4327
+ pubkey: this._wallet.publicKey,
4328
+ network: this._network
4329
+ });
4330
+ if (!(p2wpkh === null || p2wpkh === void 0 ? void 0 : p2wpkh.address)) {
4331
+ throw new Error("Address is not initialized.");
4332
+ }
4333
+ return {
4334
+ address: p2wpkh.address,
4335
+ publicKey: this._wallet.publicKey.toString("hex"),
4342
4336
  purpose: "payment",
4343
4337
  addressType: "p2wpkh"
4344
4338
  };
4345
- return address;
4346
4339
  }
4347
4340
  },
4348
4341
  {
4349
- key: "getPublicKey",
4342
+ /**
4343
+ * Returns the hex-encoded public key of the wallet.
4344
+ *
4345
+ * @returns {string} The public key in hexadecimal format.
4346
+ */ key: "getPublicKey",
4350
4347
  value: function getPublicKey() {
4351
- return this._BIP32Interface.publicKey.toString("hex");
4348
+ return this._wallet.publicKey.toString("hex");
4349
+ }
4350
+ },
4351
+ {
4352
+ /**
4353
+ * Returns the network identifier of the wallet.
4354
+ * 0': Indicates the Bitcoin mainnet.
4355
+ * 1': Indicates the Bitcoin testnet.
4356
+ *
4357
+ * @returns {0 | 1} The Bitcoin network ID.
4358
+ */ key: "getNetworkId",
4359
+ value: function getNetworkId() {
4360
+ return this._network === bitcoin.networks.testnet ? 1 : 0;
4352
4361
  }
4353
4362
  },
4354
4363
  {
4355
- key: "getUtxos",
4364
+ key: "getUTxOs",
4356
4365
  value: /**
4357
4366
  * Get UTXOs for the wallet address.
4358
4367
  * @returns An array of UTXOs.
4359
- */ function getUtxos() {
4368
+ */ function getUTxOs() {
4360
4369
  var _this = this;
4361
4370
  return _async_to_generator(function() {
4362
4371
  var _this__provider, address;
@@ -4364,7 +4373,7 @@ var EmbeddedWallet = /*#__PURE__*/ function() {
4364
4373
  switch(_state.label){
4365
4374
  case 0:
4366
4375
  console.log("getUtxos");
4367
- address = _this.getPaymentAddress();
4376
+ address = _this.getAddress();
4368
4377
  if (_this._provider === void 0) {
4369
4378
  throw new Error("`provider` is not defined. Provide a BitcoinProvider.");
4370
4379
  }
@@ -4407,12 +4416,22 @@ var EmbeddedWallet = /*#__PURE__*/ function() {
4407
4416
  {
4408
4417
  key: "brew",
4409
4418
  value: /**
4410
- * Generate mnemonic or private key
4419
+ * Generates a mnemonic phrase and returns it as an array of words.
4411
4420
  *
4412
- * @param privateKey return private key if true
4413
- * @returns a transaction hash
4421
+ * @param {number} [strength=128] - The strength of the mnemonic in bits (must be a multiple of 32 between 128 and 256).
4422
+ * @returns {string[]} An array of words representing the generated mnemonic.
4423
+ * @throws {Error} If the strength is not valid.
4414
4424
  */ function brew() {
4415
4425
  var strength = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 128;
4426
+ if (![
4427
+ 128,
4428
+ 160,
4429
+ 192,
4430
+ 224,
4431
+ 256
4432
+ ].includes(strength)) {
4433
+ throw new Error("Invalid strength. Must be one of: 128, 160, 192, 224, 256.");
4434
+ }
4416
4435
  var mnemonic = bip39.generateMnemonic(strength);
4417
4436
  return mnemonic.split(" ");
4418
4437
  }
@@ -4420,32 +4439,15 @@ var EmbeddedWallet = /*#__PURE__*/ function() {
4420
4439
  ]);
4421
4440
  return EmbeddedWallet;
4422
4441
  }();
4423
- var WalletStaticMethods2 = /*#__PURE__*/ function() {
4424
- function _WalletStaticMethods() {
4425
- _class_call_check(this, _WalletStaticMethods);
4442
+ function _derive(words) {
4443
+ var path = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "m/84'/0'/0'/0/0", network = arguments.length > 2 ? arguments[2] : void 0;
4444
+ var mnemonic = words.join(" ");
4445
+ if (!(0, import_bip39.validateMnemonic)(mnemonic)) {
4446
+ throw new Error("Invalid mnemonic provided.");
4426
4447
  }
4427
- _create_class(_WalletStaticMethods, null, [
4428
- {
4429
- key: "fromMnemonic",
4430
- value: function fromMnemonic(mnemonic, networkId) {
4431
- var accountIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, change = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0, addressIndex = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : 0;
4432
- var seed = bip39.mnemonicToSeedSync(mnemonic);
4433
- var root = bip32.fromSeed(seed, _WalletStaticMethods.getNetwork(networkId));
4434
- var purpose = 84;
4435
- var coinType = networkId;
4436
- var path = "m/".concat(purpose, "'/").concat(coinType, "'/").concat(accountIndex, "'/").concat(change, "/").concat(addressIndex);
4437
- var child = root.derivePath(path);
4438
- return child;
4439
- }
4440
- },
4441
- {
4442
- key: "getNetwork",
4443
- value: // todo: this is the confusing part in our sdk, since cardano 0 is testnet. we need to use enums or string instead for clearer
4444
- function getNetwork(network) {
4445
- return network === 0 ? bitcoin.networks.bitcoin : bitcoin.networks.testnet;
4446
- }
4447
- }
4448
- ]);
4449
- return _WalletStaticMethods;
4450
- }();
4448
+ var seed = (0, import_bip39.mnemonicToSeedSync)(mnemonic);
4449
+ var root = bip32.fromSeed(seed, network);
4450
+ var child = root.derivePath(path);
4451
+ return child;
4452
+ }
4451
4453
  //# sourceMappingURL=index.cjs.map