btc-wallet 0.3.18 → 0.3.20

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/esm/index.js CHANGED
@@ -271,7 +271,7 @@ var _network, _event;
271
271
  var XverseConnector = class extends BaseConnector {
272
272
  constructor() {
273
273
  super();
274
- __privateAdd(this, _network, "Testnet");
274
+ __privateAdd(this, _network, "Mainnet");
275
275
  __privateAdd(this, _event, new EventEmitter());
276
276
  this.metadata = {
277
277
  id: "xverse",
@@ -2545,21 +2545,18 @@ function useBtcWalletSelector() {
2545
2545
  return context;
2546
2546
  },
2547
2547
  getNetwork: getNetwork2,
2548
- switchNetwork: (network) => __async(this, null, function* () {
2549
- console.log("switchNetwork:", network);
2550
- yield switchNetwork(network);
2551
- }),
2548
+ switchNetwork,
2552
2549
  sendBitcoin: sendBitcoin2
2553
2550
  };
2554
2551
  }, [
2555
2552
  accounts,
2556
- context,
2557
- disconnect,
2558
2553
  getNetwork2,
2559
2554
  switchNetwork,
2555
+ sendBitcoin2,
2560
2556
  openConnectModal,
2561
2557
  requestDirectAccount,
2562
- sendBitcoin2
2558
+ context,
2559
+ disconnect
2563
2560
  ]);
2564
2561
  return hook;
2565
2562
  }
@@ -3497,6 +3494,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3497
3494
  getAccounts,
3498
3495
  verifyOwner,
3499
3496
  signMessage,
3497
+ isSignedIn,
3500
3498
  signAndSendTransaction,
3501
3499
  signAndSendTransactions
3502
3500
  };
@@ -3504,25 +3502,43 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3504
3502
  const currentConfig = isDev ? walletConfig.dev : walletConfig[options.network.networkId];
3505
3503
  const walletNetwork = isDev ? "dev" : options.network.networkId;
3506
3504
  yield initBtcContext();
3507
- function setupBtcContextListeners(btcContext) {
3505
+ function setupBtcContextListeners() {
3508
3506
  return __async(this, null, function* () {
3509
- const context = btcContext.getContext();
3507
+ const handleConnectionUpdate = () => __async(this, null, function* () {
3508
+ yield checkBtcNetwork(walletNetwork);
3509
+ const accountId = state.getAccount();
3510
+ const btcContext = window.btcContext;
3511
+ if (accountId && btcContext.account) {
3512
+ setupWalletButton(walletNetwork, wallet, btcContext);
3513
+ } else {
3514
+ removeWalletButton();
3515
+ setTimeout(() => {
3516
+ handleConnectionUpdate();
3517
+ }, 5e3);
3518
+ }
3519
+ });
3520
+ const context = window.btcContext.getContext();
3510
3521
  context.on("updatePublicKey", (btcPublicKey) => __async(this, null, function* () {
3511
- const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
3512
- removeWalletButton();
3513
- initConnected(walletNetwork, wallet);
3522
+ console.log("updatePublicKey");
3523
+ const { nearAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
3514
3524
  emitter.emit("accountsChanged", {
3515
- accounts: [{ accountId: nearTempAddress }]
3525
+ accounts: [{ accountId: nearAddress }]
3516
3526
  });
3527
+ yield handleConnectionUpdate();
3517
3528
  }));
3518
3529
  context.on("btcLoginError", () => __async(this, null, function* () {
3530
+ console.log("btcLoginError");
3519
3531
  emitter.emit("accountsChanged", { accounts: [] });
3532
+ yield handleConnectionUpdate();
3520
3533
  }));
3521
3534
  context.on("btcLogOut", () => __async(this, null, function* () {
3535
+ console.log("btcLogOut");
3522
3536
  emitter.emit("accountsChanged", { accounts: [] });
3537
+ yield handleConnectionUpdate();
3523
3538
  }));
3539
+ yield handleConnectionUpdate();
3524
3540
  if ("autoConnect" in metadata && metadata.autoConnect && localStorage.getItem("near-wallet-selector:selectedWalletId") === '"btc-wallet"') {
3525
- yield btcContext.autoConnect();
3541
+ yield window.btcContext.autoConnect();
3526
3542
  }
3527
3543
  });
3528
3544
  }
@@ -3543,7 +3559,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3543
3559
  delayMs: 500
3544
3560
  }
3545
3561
  );
3546
- yield setupBtcContextListeners(btcContext);
3562
+ yield setupBtcContextListeners();
3547
3563
  return btcContext;
3548
3564
  });
3549
3565
  }
@@ -3554,22 +3570,22 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3554
3570
  }
3555
3571
  function getNearAccountByBtcPublicKey(btcPublicKey) {
3556
3572
  return __async(this, null, function* () {
3557
- const nearTempAddress = yield nearCall2(
3573
+ const nearAddress = yield nearCall2(
3558
3574
  currentConfig.accountContractId,
3559
3575
  "get_chain_signature_near_account_id",
3560
3576
  { btc_public_key: btcPublicKey }
3561
3577
  );
3562
- const nearTempPublicKey = yield nearCall2(
3578
+ const nearPublicKey = yield nearCall2(
3563
3579
  currentConfig.accountContractId,
3564
3580
  "get_chain_signature_near_account_public_key",
3565
3581
  { btc_public_key: btcPublicKey }
3566
3582
  );
3567
- state.saveAccount(nearTempAddress);
3568
- state.savePublicKey(nearTempPublicKey);
3583
+ state.saveAccount(nearAddress);
3584
+ state.savePublicKey(nearPublicKey);
3569
3585
  state.saveBtcPublicKey(btcPublicKey);
3570
3586
  return {
3571
- nearTempAddress,
3572
- nearTempPublicKey
3587
+ nearAddress,
3588
+ nearPublicKey
3573
3589
  };
3574
3590
  });
3575
3591
  }
@@ -3587,12 +3603,11 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3587
3603
  if (!btcPublicKey) {
3588
3604
  throw new Error("No connected BTC wallet, please connect your BTC wallet first.");
3589
3605
  }
3590
- const { nearTempAddress, nearTempPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
3591
- initConnected(walletNetwork, wallet);
3606
+ const { nearAddress, nearPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
3592
3607
  return [
3593
3608
  {
3594
- accountId: nearTempAddress,
3595
- publicKey: nearTempPublicKey
3609
+ accountId: nearAddress,
3610
+ publicKey: nearPublicKey
3596
3611
  }
3597
3612
  ];
3598
3613
  });
@@ -3607,13 +3622,17 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3607
3622
  const btcContext = window.btcContext;
3608
3623
  if (metadata.syncLogOut) {
3609
3624
  btcContext.logout();
3610
- yield delay(300);
3611
3625
  }
3612
3626
  state.clear();
3613
3627
  window.localStorage.removeItem("near-wallet-selector:selectedWalletId");
3614
3628
  removeWalletButton();
3615
3629
  });
3616
3630
  }
3631
+ function isSignedIn() {
3632
+ const accountId = state.getAccount();
3633
+ const publicKey = state.getPublicKey();
3634
+ return accountId && publicKey;
3635
+ }
3617
3636
  function getAccounts() {
3618
3637
  return __async(this, null, function* () {
3619
3638
  return [{ accountId: state.getAccount() }];
@@ -3847,22 +3866,20 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3847
3866
  return { txBytes, txHex, hash };
3848
3867
  });
3849
3868
  }
3850
- function initConnected(network, wallet2) {
3869
+ function checkBtcNetwork(network) {
3851
3870
  return __async(this, null, function* () {
3852
- const checkAndSetupWalletButton = () => {
3853
- const accountId = state.getAccount();
3854
- const btcContext = window.btcContext;
3855
- if (accountId && btcContext.account) {
3856
- setupWalletButton(network, wallet2, btcContext);
3857
- } else {
3858
- removeWalletButton();
3859
- setTimeout(() => {
3860
- checkAndSetupWalletButton();
3861
- }, 5e3);
3862
- }
3871
+ const btcContext = window.btcContext;
3872
+ if (!btcContext.account)
3873
+ return;
3874
+ const btcNetwork = yield btcContext.getNetwork();
3875
+ console.log("btcNetwork:", btcNetwork, network);
3876
+ const networkMap = {
3877
+ livenet: ["mainnet"],
3878
+ testnet: ["testnet", "dev"]
3863
3879
  };
3864
- yield delay(1e3);
3865
- checkAndSetupWalletButton();
3880
+ if (!networkMap[btcNetwork].includes(network)) {
3881
+ yield btcContext.switchNetwork(btcNetwork === "livenet" ? "testnet" : "livenet");
3882
+ }
3866
3883
  });
3867
3884
  }
3868
3885
  return wallet;
@@ -3906,7 +3923,7 @@ function setupBTCWallet({
3906
3923
 
3907
3924
  // src/index.ts
3908
3925
  var getVersion = () => {
3909
- return "0.3.18";
3926
+ return "0.3.20";
3910
3927
  };
3911
3928
  if (typeof window !== "undefined") {
3912
3929
  window.__BTC_WALLET_VERSION = getVersion();