btc-wallet 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1127,6 +1127,7 @@ var checkBTCVersion = (accountContracts, accountContractKey, version) => {
1127
1127
  }
1128
1128
  return accountContracts[accountContractKey].some((item) => item.version === version);
1129
1129
  };
1130
+ var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
1130
1131
 
1131
1132
  // src/utils/ethereumUtils.ts
1132
1133
  var import_util2 = require("@ethereumjs/util");
@@ -2357,8 +2358,10 @@ var import_js_sha256 = require("js-sha256");
2357
2358
 
2358
2359
  // src/utils/initWalletButton.ts
2359
2360
  function setupWalletButton(network, wallet, originalWallet) {
2360
- if (document.getElementById("satoshi-wallet-button"))
2361
+ if (document.getElementById("satoshi-wallet-button")) {
2362
+ sendInitializeData(wallet, originalWallet);
2361
2363
  return;
2364
+ }
2362
2365
  const iframe = createIframe({
2363
2366
  iframeUrl: network === "testnet" ? "https://wallet-dev.satoshibridge.top" : "https://wallet.satoshibridge.top",
2364
2367
  iframeStyle: { width: "400px", height: "650px" }
@@ -2425,33 +2428,45 @@ function createIframe({
2425
2428
  document.body.appendChild(iframe);
2426
2429
  return iframe;
2427
2430
  }
2428
- function setupButtonClickHandler(button, iframe, wallet, originalWallet) {
2431
+ function sendInitializeData(wallet, originalWallet) {
2429
2432
  return __async(this, null, function* () {
2430
- var _a;
2433
+ var _a, _b;
2434
+ yield delay(1e3);
2431
2435
  const accountId = (_a = yield wallet == null ? void 0 : wallet.getAccounts()) == null ? void 0 : _a[0].accountId;
2432
2436
  const originalAccountId = originalWallet.account;
2433
2437
  const originalPublicKey = yield originalWallet.getPublicKey();
2438
+ const iframe = document.getElementById("satoshi-wallet-iframe");
2439
+ if ((iframe == null ? void 0 : iframe.contentWindow) && ((_b = iframe.contentDocument) == null ? void 0 : _b.readyState) === "complete") {
2440
+ iframe.contentWindow.postMessage({
2441
+ action: "initializeData",
2442
+ success: true,
2443
+ data: {
2444
+ accountId,
2445
+ originalAccountId,
2446
+ originalPublicKey
2447
+ }
2448
+ });
2449
+ }
2450
+ });
2451
+ }
2452
+ function setupButtonClickHandler(button, iframe, wallet, originalWallet) {
2453
+ return __async(this, null, function* () {
2454
+ iframe.onload = () => sendInitializeData(wallet, originalWallet);
2434
2455
  const iframeSrc = new URL(iframe.src);
2435
2456
  iframeSrc.searchParams.set("origin", window.location.origin);
2436
- if (accountId)
2437
- iframeSrc.searchParams.set("accountId", accountId);
2438
- if (originalAccountId)
2439
- iframeSrc.searchParams.set("originalAccountId", originalAccountId);
2440
- if (originalPublicKey)
2441
- iframeSrc.searchParams.set("originalPublicKey", originalPublicKey);
2442
2457
  iframe.src = iframeSrc.toString();
2443
2458
  window.addEventListener("message", (event) => __async(this, null, function* () {
2444
- var _a2, _b;
2459
+ var _a, _b;
2445
2460
  if (event.origin !== iframeSrc.origin)
2446
2461
  return;
2447
- const { action, requestId, params } = event.data;
2462
+ const { action, requestId, data } = event.data;
2448
2463
  if (action === "signAndSendTransaction") {
2449
2464
  try {
2450
- const result = yield wallet.signAndSendTransaction(params);
2451
- (_a2 = event.source) == null ? void 0 : _a2.postMessage(
2465
+ const result = yield wallet.signAndSendTransaction(data);
2466
+ (_a = event.source) == null ? void 0 : _a.postMessage(
2452
2467
  {
2453
2468
  requestId,
2454
- result,
2469
+ data,
2455
2470
  success: true
2456
2471
  },
2457
2472
  { targetOrigin: event.origin }
@@ -2558,9 +2573,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2558
2573
  initWalletButton(options.network.networkId, accountId, wallet);
2559
2574
  context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
2560
2575
  const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2561
- setTimeout(() => {
2562
- initWalletButton(options.network.networkId, nearTempAddress, wallet);
2563
- }, 1e3);
2576
+ initWalletButton(options.network.networkId, nearTempAddress, wallet);
2564
2577
  emitter.emit("accountsChanged", {
2565
2578
  accounts: [
2566
2579
  {
@@ -2628,6 +2641,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2628
2641
  const btcAccount = yield btcContext.login();
2629
2642
  const btcPublicKey = yield btcContext.getPublicKey();
2630
2643
  const { nearTempAddress, nearTempPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2644
+ initWalletButton(options.network.networkId, accountId, wallet);
2631
2645
  return [
2632
2646
  {
2633
2647
  accountId: nearTempAddress,
@@ -2811,17 +2825,20 @@ function toHex(originalString) {
2811
2825
  return hexString;
2812
2826
  }
2813
2827
  function initWalletButton(network, accountId, wallet) {
2814
- const checkAndSetupWalletButton = () => {
2815
- if (accountId) {
2816
- setupWalletButton(network, wallet, window.btcContext);
2828
+ return __async(this, null, function* () {
2829
+ yield delay(2e3);
2830
+ const checkAndSetupWalletButton = () => {
2831
+ if (accountId && window.btcContext.account) {
2832
+ setupWalletButton(network, wallet, window.btcContext);
2833
+ } else {
2834
+ removeWalletButton();
2835
+ }
2817
2836
  !window.btcContext.account && setTimeout(() => {
2818
2837
  checkAndSetupWalletButton();
2819
- }, 5e3);
2820
- } else {
2821
- removeWalletButton();
2822
- }
2823
- };
2824
- checkAndSetupWalletButton();
2838
+ }, 1e4);
2839
+ };
2840
+ checkAndSetupWalletButton();
2841
+ });
2825
2842
  }
2826
2843
  var rcpUrls = {
2827
2844
  mainnet: [
@@ -2836,9 +2853,6 @@ var rcpUrls = {
2836
2853
  "https://near-testnet.drpc.org"
2837
2854
  ]
2838
2855
  };
2839
- function delay(ms) {
2840
- return new Promise((resolve) => setTimeout(resolve, ms));
2841
- }
2842
2856
  function pollTransactionStatuses(network, hashes) {
2843
2857
  return __async(this, null, function* () {
2844
2858
  const provider = new import_near_api_js.providers.FailoverRpcProvider(
@@ -2871,7 +2885,7 @@ function pollTransactionStatuses(network, hashes) {
2871
2885
 
2872
2886
  // src/index.ts
2873
2887
  var getVersion = () => {
2874
- return "0.0.8";
2888
+ return "0.0.9";
2875
2889
  };
2876
2890
  if (typeof window !== "undefined") {
2877
2891
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();