btc-wallet 0.3.18 → 0.3.19

Sign up to get free protection for your applications and to get access to all the features.
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,18 @@ 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
- }
3863
- };
3864
- yield delay(1e3);
3865
- checkAndSetupWalletButton();
3871
+ const btcContext = window.btcContext;
3872
+ if (!btcContext.account)
3873
+ return;
3874
+ const btcNetwork = yield btcContext.getNetwork();
3875
+ console.log("btcNetwork:", btcNetwork, network);
3876
+ if (network === "mainnet" && btcNetwork !== "livenet") {
3877
+ yield btcContext.switchNetwork("livenet");
3878
+ } else if (network === "testnet" && btcNetwork !== "testnet") {
3879
+ yield btcContext.switchNetwork("testnet");
3880
+ }
3866
3881
  });
3867
3882
  }
3868
3883
  return wallet;
@@ -3906,7 +3921,7 @@ function setupBTCWallet({
3906
3921
 
3907
3922
  // src/index.ts
3908
3923
  var getVersion = () => {
3909
- return "0.3.18";
3924
+ return "0.3.19";
3910
3925
  };
3911
3926
  if (typeof window !== "undefined") {
3912
3927
  window.__BTC_WALLET_VERSION = getVersion();