@txnlab/use-wallet 3.10.0 → 4.0.0-beta.1

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/dist/index.cjs CHANGED
@@ -3363,7 +3363,7 @@ var logger = Logger.getInstance();
3363
3363
 
3364
3364
  // src/manager.ts
3365
3365
  var import_store14 = require("@tanstack/store");
3366
- var import_algosdk12 = __toESM(require("algosdk"), 1);
3366
+ var import_algosdk13 = __toESM(require("algosdk"), 1);
3367
3367
 
3368
3368
  // src/network.ts
3369
3369
  var NetworkId = /* @__PURE__ */ ((NetworkId2) => {
@@ -3594,6 +3594,9 @@ function isValidState(state) {
3594
3594
  return true;
3595
3595
  }
3596
3596
 
3597
+ // src/utils.ts
3598
+ var import_algosdk12 = __toESM(require("algosdk"), 1);
3599
+
3597
3600
  // src/wallets/walletconnect.ts
3598
3601
  var import_algosdk2 = __toESM(require("algosdk"), 1);
3599
3602
 
@@ -4031,7 +4034,7 @@ var WalletConnect = class extends BaseWallet {
4031
4034
  const txnsToSign = [];
4032
4035
  txnGroup.forEach((txn, index) => {
4033
4036
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4034
- const signer = import_algosdk2.default.encodeAddress(txn.from.publicKey);
4037
+ const signer = txn.sender.toString();
4035
4038
  const canSignTxn = this.addresses.includes(signer);
4036
4039
  const txnString = byteArrayToBase64(txn.toByte());
4037
4040
  if (isIndexMatch && canSignTxn) {
@@ -4045,11 +4048,11 @@ var WalletConnect = class extends BaseWallet {
4045
4048
  processEncodedTxns(txnGroup, indexesToSign) {
4046
4049
  const txnsToSign = [];
4047
4050
  txnGroup.forEach((txnBuffer, index) => {
4048
- const txnDecodeObj = import_algosdk2.default.decodeObj(txnBuffer);
4049
- const isSigned = isSignedTxn(txnDecodeObj);
4051
+ const decodedObj = import_algosdk2.default.msgpackRawDecode(txnBuffer);
4052
+ const isSigned = isSignedTxn(decodedObj);
4050
4053
  const txn = isSigned ? import_algosdk2.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk2.default.decodeUnsignedTransaction(txnBuffer);
4051
4054
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4052
- const signer = import_algosdk2.default.encodeAddress(txn.from.publicKey);
4055
+ const signer = txn.sender.toString();
4053
4056
  const canSignTxn = !isSigned && this.addresses.includes(signer);
4054
4057
  const txnString = byteArrayToBase64(txn.toByte());
4055
4058
  if (isIndexMatch && canSignTxn) {
@@ -4379,7 +4382,7 @@ var DeflyWallet = class extends BaseWallet {
4379
4382
  const txnsToSign = [];
4380
4383
  txnGroup.forEach((txn, index) => {
4381
4384
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4382
- const signer = import_algosdk3.default.encodeAddress(txn.from.publicKey);
4385
+ const signer = txn.sender.toString();
4383
4386
  const canSignTxn = this.addresses.includes(signer);
4384
4387
  if (isIndexMatch && canSignTxn) {
4385
4388
  txnsToSign.push({ txn });
@@ -4392,11 +4395,11 @@ var DeflyWallet = class extends BaseWallet {
4392
4395
  processEncodedTxns(txnGroup, indexesToSign) {
4393
4396
  const txnsToSign = [];
4394
4397
  txnGroup.forEach((txnBuffer, index) => {
4395
- const txnDecodeObj = import_algosdk3.default.decodeObj(txnBuffer);
4396
- const isSigned = isSignedTxn(txnDecodeObj);
4398
+ const decodedObj = import_algosdk3.default.msgpackRawDecode(txnBuffer);
4399
+ const isSigned = isSignedTxn(decodedObj);
4397
4400
  const txn = isSigned ? import_algosdk3.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk3.default.decodeUnsignedTransaction(txnBuffer);
4398
4401
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4399
- const signer = import_algosdk3.default.encodeAddress(txn.from.publicKey);
4402
+ const signer = txn.sender.toString();
4400
4403
  const canSignTxn = !isSigned && this.addresses.includes(signer);
4401
4404
  if (isIndexMatch && canSignTxn) {
4402
4405
  txnsToSign.push({ txn });
@@ -4554,7 +4557,7 @@ var ExodusWallet = class extends BaseWallet {
4554
4557
  const txnsToSign = [];
4555
4558
  txnGroup.forEach((txn, index) => {
4556
4559
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4557
- const signer = import_algosdk4.default.encodeAddress(txn.from.publicKey);
4560
+ const signer = txn.sender.toString();
4558
4561
  const canSignTxn = this.addresses.includes(signer);
4559
4562
  const txnString = byteArrayToBase64(txn.toByte());
4560
4563
  if (isIndexMatch && canSignTxn) {
@@ -4568,11 +4571,11 @@ var ExodusWallet = class extends BaseWallet {
4568
4571
  processEncodedTxns(txnGroup, indexesToSign) {
4569
4572
  const txnsToSign = [];
4570
4573
  txnGroup.forEach((txnBuffer, index) => {
4571
- const txnDecodeObj = import_algosdk4.default.decodeObj(txnBuffer);
4572
- const isSigned = isSignedTxn(txnDecodeObj);
4574
+ const decodedObj = import_algosdk4.default.msgpackRawDecode(txnBuffer);
4575
+ const isSigned = isSignedTxn(decodedObj);
4573
4576
  const txn = isSigned ? import_algosdk4.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk4.default.decodeUnsignedTransaction(txnBuffer);
4574
4577
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4575
- const signer = import_algosdk4.default.encodeAddress(txn.from.publicKey);
4578
+ const signer = txn.sender.toString();
4576
4579
  const canSignTxn = !isSigned && this.addresses.includes(signer);
4577
4580
  const txnString = byteArrayToBase64(txn.toByte());
4578
4581
  if (isIndexMatch && canSignTxn) {
@@ -4757,7 +4760,7 @@ var KibisisWallet = class extends BaseWallet {
4757
4760
  async _getGenesisHash() {
4758
4761
  const algodClient = this.getAlgodClient();
4759
4762
  const version = await algodClient.versionsCheck().do();
4760
- return version.genesis_hash_b64;
4763
+ return import_algosdk5.default.bytesToBase64(version.genesisHashB64);
4761
4764
  }
4762
4765
  async _initializeAVMWebClient() {
4763
4766
  const avmWebProviderSDK = this.avmWebProviderSDK || await this._initializeAVMWebProviderSDK();
@@ -4934,7 +4937,7 @@ var KibisisWallet = class extends BaseWallet {
4934
4937
  const txnsToSign = [];
4935
4938
  txnGroup.forEach((txn, index) => {
4936
4939
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4937
- const signer = import_algosdk5.default.encodeAddress(txn.from.publicKey);
4940
+ const signer = txn.sender.toString();
4938
4941
  const canSignTxn = this.addresses.includes(signer);
4939
4942
  const txnString = byteArrayToBase64(txn.toByte());
4940
4943
  if (isIndexMatch && canSignTxn) {
@@ -4948,11 +4951,11 @@ var KibisisWallet = class extends BaseWallet {
4948
4951
  processEncodedTxns(txnGroup, indexesToSign) {
4949
4952
  const txnsToSign = [];
4950
4953
  txnGroup.forEach((txnBuffer, index) => {
4951
- const txnDecodeObj = import_algosdk5.default.decodeObj(txnBuffer);
4952
- const isSigned = isSignedTxn(txnDecodeObj);
4954
+ const decodedObj = import_algosdk5.default.msgpackRawDecode(txnBuffer);
4955
+ const isSigned = isSignedTxn(decodedObj);
4953
4956
  const txn = isSigned ? import_algosdk5.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk5.default.decodeUnsignedTransaction(txnBuffer);
4954
4957
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
4955
- const signer = import_algosdk5.default.encodeAddress(txn.from.publicKey);
4958
+ const signer = txn.sender.toString();
4956
4959
  const canSignTxn = !isSigned && this.addresses.includes(signer);
4957
4960
  const txnString = byteArrayToBase64(txn.toByte());
4958
4961
  if (isIndexMatch && canSignTxn) {
@@ -5103,7 +5106,7 @@ var KmdWallet = class extends BaseWallet {
5103
5106
  const txnsToSign = [];
5104
5107
  txnGroup.forEach((txn, index) => {
5105
5108
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5106
- const signer = import_algosdk6.default.encodeAddress(txn.from.publicKey);
5109
+ const signer = txn.sender.toString();
5107
5110
  const canSignTxn = this.addresses.includes(signer);
5108
5111
  if (isIndexMatch && canSignTxn) {
5109
5112
  txnsToSign.push(txn);
@@ -5114,11 +5117,11 @@ var KmdWallet = class extends BaseWallet {
5114
5117
  processEncodedTxns(txnGroup, indexesToSign) {
5115
5118
  const txnsToSign = [];
5116
5119
  txnGroup.forEach((txnBuffer, index) => {
5117
- const txnDecodeObj = import_algosdk6.default.decodeObj(txnBuffer);
5118
- const isSigned = isSignedTxn(txnDecodeObj);
5120
+ const decodedObj = import_algosdk6.default.msgpackRawDecode(txnBuffer);
5121
+ const isSigned = isSignedTxn(decodedObj);
5119
5122
  const txn = isSigned ? import_algosdk6.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk6.default.decodeUnsignedTransaction(txnBuffer);
5120
5123
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5121
- const signer = import_algosdk6.default.encodeAddress(txn.from.publicKey);
5124
+ const signer = txn.sender.toString();
5122
5125
  const canSignTxn = !isSigned && this.addresses.includes(signer);
5123
5126
  if (isIndexMatch && canSignTxn) {
5124
5127
  txnsToSign.push(txn);
@@ -5360,7 +5363,10 @@ var LuteWallet = class extends BaseWallet {
5360
5363
  }
5361
5364
  async getGenesisId() {
5362
5365
  const algodClient = this.getAlgodClient();
5363
- const genesis = await algodClient.genesis().do();
5366
+ const genesisStr = await algodClient.genesis().do();
5367
+ const genesis = import_algosdk7.default.parseJSON(genesisStr, {
5368
+ intDecoding: import_algosdk7.default.IntDecoding.MIXED
5369
+ });
5364
5370
  const genesisId = `${genesis.network}-${genesis.id}`;
5365
5371
  return genesisId;
5366
5372
  }
@@ -5414,7 +5420,7 @@ var LuteWallet = class extends BaseWallet {
5414
5420
  const txnsToSign = [];
5415
5421
  txnGroup.forEach((txn, index) => {
5416
5422
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5417
- const signer = import_algosdk7.default.encodeAddress(txn.from.publicKey);
5423
+ const signer = txn.sender.toString();
5418
5424
  const canSignTxn = this.addresses.includes(signer);
5419
5425
  const txnString = byteArrayToBase64(txn.toByte());
5420
5426
  if (isIndexMatch && canSignTxn) {
@@ -5428,11 +5434,11 @@ var LuteWallet = class extends BaseWallet {
5428
5434
  processEncodedTxns(txnGroup, indexesToSign) {
5429
5435
  const txnsToSign = [];
5430
5436
  txnGroup.forEach((txnBuffer, index) => {
5431
- const txnDecodeObj = import_algosdk7.default.decodeObj(txnBuffer);
5432
- const isSigned = isSignedTxn(txnDecodeObj);
5437
+ const decodedObj = import_algosdk7.default.msgpackRawDecode(txnBuffer);
5438
+ const isSigned = isSignedTxn(decodedObj);
5433
5439
  const txn = isSigned ? import_algosdk7.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk7.default.decodeUnsignedTransaction(txnBuffer);
5434
5440
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5435
- const signer = import_algosdk7.default.encodeAddress(txn.from.publicKey);
5441
+ const signer = txn.sender.toString();
5436
5442
  const canSignTxn = !isSigned && this.addresses.includes(signer);
5437
5443
  const txnString = byteArrayToBase64(txn.toByte());
5438
5444
  if (isIndexMatch && canSignTxn) {
@@ -5618,7 +5624,7 @@ var MagicAuth = class extends BaseWallet {
5618
5624
  const txnsToSign = [];
5619
5625
  txnGroup.forEach((txn, index) => {
5620
5626
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5621
- const signer = import_algosdk8.default.encodeAddress(txn.from.publicKey);
5627
+ const signer = txn.sender.toString();
5622
5628
  const canSignTxn = this.addresses.includes(signer);
5623
5629
  const txnString = byteArrayToBase64(txn.toByte());
5624
5630
  if (isIndexMatch && canSignTxn) {
@@ -5632,11 +5638,11 @@ var MagicAuth = class extends BaseWallet {
5632
5638
  processEncodedTxns(txnGroup, indexesToSign) {
5633
5639
  const txnsToSign = [];
5634
5640
  txnGroup.forEach((txnBuffer, index) => {
5635
- const txnDecodeObj = import_algosdk8.default.decodeObj(txnBuffer);
5636
- const isSigned = isSignedTxn(txnDecodeObj);
5641
+ const decodedObj = import_algosdk8.default.msgpackRawDecode(txnBuffer);
5642
+ const isSigned = isSignedTxn(decodedObj);
5637
5643
  const txn = isSigned ? import_algosdk8.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk8.default.decodeUnsignedTransaction(txnBuffer);
5638
5644
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5639
- const signer = import_algosdk8.default.encodeAddress(txn.from.publicKey);
5645
+ const signer = txn.sender.toString();
5640
5646
  const canSignTxn = !isSigned && this.addresses.includes(signer);
5641
5647
  const txnString = byteArrayToBase64(txn.toByte());
5642
5648
  if (isIndexMatch && canSignTxn) {
@@ -5761,7 +5767,7 @@ var MnemonicWallet = class extends BaseWallet {
5761
5767
  const account = this.initializeAccount();
5762
5768
  const walletAccount = {
5763
5769
  name: `${this.metadata.name} Account`,
5764
- address: account.addr
5770
+ address: account.addr.toString()
5765
5771
  };
5766
5772
  const walletState = {
5767
5773
  accounts: [walletAccount],
@@ -5808,8 +5814,8 @@ var MnemonicWallet = class extends BaseWallet {
5808
5814
  const txnsToSign = [];
5809
5815
  txnGroup.forEach((txn, index) => {
5810
5816
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5811
- const signer = import_algosdk9.default.encodeAddress(txn.from.publicKey);
5812
- const canSignTxn = signer === this.account.addr;
5817
+ const signer = txn.sender.toString();
5818
+ const canSignTxn = signer === this.account.addr.toString();
5813
5819
  if (isIndexMatch && canSignTxn) {
5814
5820
  txnsToSign.push(txn);
5815
5821
  }
@@ -5819,12 +5825,12 @@ var MnemonicWallet = class extends BaseWallet {
5819
5825
  processEncodedTxns(txnGroup, indexesToSign) {
5820
5826
  const txnsToSign = [];
5821
5827
  txnGroup.forEach((txnBuffer, index) => {
5822
- const txnDecodeObj = import_algosdk9.default.decodeObj(txnBuffer);
5823
- const isSigned = isSignedTxn(txnDecodeObj);
5828
+ const decodedObj = import_algosdk9.default.msgpackRawDecode(txnBuffer);
5829
+ const isSigned = isSignedTxn(decodedObj);
5824
5830
  const txn = isSigned ? import_algosdk9.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk9.default.decodeUnsignedTransaction(txnBuffer);
5825
5831
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5826
- const signer = import_algosdk9.default.encodeAddress(txn.from.publicKey);
5827
- const canSignTxn = !isSigned && signer === this.account.addr;
5832
+ const signer = txn.sender.toString();
5833
+ const canSignTxn = !isSigned && signer === this.account.addr.toString();
5828
5834
  if (isIndexMatch && canSignTxn) {
5829
5835
  txnsToSign.push(txn);
5830
5836
  }
@@ -5990,7 +5996,7 @@ var PeraWallet = class extends BaseWallet {
5990
5996
  const txnsToSign = [];
5991
5997
  txnGroup.forEach((txn, index) => {
5992
5998
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
5993
- const signer = import_algosdk10.default.encodeAddress(txn.from.publicKey);
5999
+ const signer = txn.sender.toString();
5994
6000
  const canSignTxn = this.addresses.includes(signer);
5995
6001
  if (isIndexMatch && canSignTxn) {
5996
6002
  txnsToSign.push({ txn });
@@ -6003,11 +6009,11 @@ var PeraWallet = class extends BaseWallet {
6003
6009
  processEncodedTxns(txnGroup, indexesToSign) {
6004
6010
  const txnsToSign = [];
6005
6011
  txnGroup.forEach((txnBuffer, index) => {
6006
- const txnDecodeObj = import_algosdk10.default.decodeObj(txnBuffer);
6007
- const isSigned = isSignedTxn(txnDecodeObj);
6012
+ const decodedObj = import_algosdk10.default.msgpackRawDecode(txnBuffer);
6013
+ const isSigned = isSignedTxn(decodedObj);
6008
6014
  const txn = isSigned ? import_algosdk10.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk10.default.decodeUnsignedTransaction(txnBuffer);
6009
6015
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
6010
- const signer = import_algosdk10.default.encodeAddress(txn.from.publicKey);
6016
+ const signer = txn.sender.toString();
6011
6017
  const canSignTxn = !isSigned && this.addresses.includes(signer);
6012
6018
  if (isIndexMatch && canSignTxn) {
6013
6019
  txnsToSign.push({ txn });
@@ -6171,7 +6177,7 @@ var PeraWallet2 = class extends BaseWallet {
6171
6177
  const txnsToSign = [];
6172
6178
  txnGroup.forEach((txn, index) => {
6173
6179
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
6174
- const signer = import_algosdk11.default.encodeAddress(txn.from.publicKey);
6180
+ const signer = txn.sender.toString();
6175
6181
  const canSignTxn = this.addresses.includes(signer);
6176
6182
  if (isIndexMatch && canSignTxn) {
6177
6183
  txnsToSign.push({ txn });
@@ -6184,11 +6190,11 @@ var PeraWallet2 = class extends BaseWallet {
6184
6190
  processEncodedTxns(txnGroup, indexesToSign) {
6185
6191
  const txnsToSign = [];
6186
6192
  txnGroup.forEach((txnBuffer, index) => {
6187
- const txnDecodeObj = import_algosdk11.default.decodeObj(txnBuffer);
6188
- const isSigned = isSignedTxn(txnDecodeObj);
6193
+ const decodedObj = import_algosdk11.default.msgpackRawDecode(txnBuffer);
6194
+ const isSigned = isSignedTxn(decodedObj);
6189
6195
  const txn = isSigned ? import_algosdk11.default.decodeSignedTransaction(txnBuffer).txn : import_algosdk11.default.decodeUnsignedTransaction(txnBuffer);
6190
6196
  const isIndexMatch = !indexesToSign || indexesToSign.includes(index);
6191
- const signer = import_algosdk11.default.encodeAddress(txn.from.publicKey);
6197
+ const signer = txn.sender.toString();
6192
6198
  const canSignTxn = !isSigned && this.addresses.includes(signer);
6193
6199
  if (isIndexMatch && canSignTxn) {
6194
6200
  txnsToSign.push({ txn });
@@ -6284,11 +6290,17 @@ function byteArrayToString(array) {
6284
6290
  }
6285
6291
  return result;
6286
6292
  }
6287
- function isSignedTxn(txnDecodeObj) {
6288
- return txnDecodeObj.txn !== void 0;
6293
+ function isSignedTxn(txnObj) {
6294
+ if (!txnObj || typeof txnObj !== "object") return false;
6295
+ if (!("sig" in txnObj && "txn" in txnObj)) return false;
6296
+ if (!(txnObj.sig instanceof Uint8Array)) return false;
6297
+ const txn = txnObj.txn;
6298
+ if (!txn || typeof txn !== "object") return false;
6299
+ const hasRequiredProps = "type" in txn && "snd" in txn;
6300
+ return hasRequiredProps;
6289
6301
  }
6290
6302
  function isTransaction(item) {
6291
- return item && typeof item === "object" && "genesisID" in item && typeof item.genesisID === "string";
6303
+ return item && typeof item === "object" && "sender" in item && (item.sender instanceof import_algosdk12.default.Address || typeof item.sender === "string");
6292
6304
  }
6293
6305
  function isTransactionArray(txnGroup) {
6294
6306
  if (!Array.isArray(txnGroup) || txnGroup.length === 0) {
@@ -6504,7 +6516,7 @@ var WalletManager = class {
6504
6516
  createAlgodClient(networkId) {
6505
6517
  this.logger.info(`Creating Algodv2 client for ${networkId}...`);
6506
6518
  const { token = "", baseServer, port = "", headers = {} } = this.networkConfig[networkId];
6507
- return new import_algosdk12.default.Algodv2(token, baseServer, port, headers);
6519
+ return new import_algosdk13.default.Algodv2(token, baseServer, port, headers);
6508
6520
  }
6509
6521
  getAlgodClient = () => {
6510
6522
  return this.algodClient;