btc-wallet 0.2.0 → 0.2.2

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.
@@ -9,6 +9,7 @@ interface BTCWalletParams {
9
9
  iconUrl?: string;
10
10
  deprecated?: boolean;
11
11
  autoConnect?: boolean;
12
+ isDev?: boolean;
12
13
  }
13
14
  export declare function setupBTCWallet({ iconUrl, deprecated, autoConnect, }?: BTCWalletParams | undefined): WalletModuleFactory<InjectedWallet>;
14
15
  declare const _default: {
package/esm/index.js CHANGED
@@ -5,6 +5,7 @@ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
5
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __pow = Math.pow;
8
9
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
10
  var __spreadValues = (a, b) => {
10
11
  for (var prop in b || (b = {}))
@@ -2316,12 +2317,17 @@ import bs58 from "bs58";
2316
2317
  import { sha256 } from "js-sha256";
2317
2318
 
2318
2319
  // src/utils/initWalletButton.ts
2320
+ var walletUrlConfig = {
2321
+ dev: "https://wallet-dev.satoshibridge.top",
2322
+ testnet: "https://wallet-test.satoshibridge.top",
2323
+ mainnet: "https://wallet.satoshibridge.top"
2324
+ };
2319
2325
  function setupWalletButton(network, wallet, originalWallet) {
2320
2326
  if (document.getElementById("satoshi-wallet-button")) {
2321
2327
  return;
2322
2328
  }
2323
2329
  const iframe = createIframe({
2324
- iframeUrl: network === "testnet" ? "https://wallet-dev.satoshibridge.top" : "https://wallet.satoshibridge.top",
2330
+ iframeUrl: walletUrlConfig[network],
2325
2331
  iframeStyle: { width: "400px", height: "650px" }
2326
2332
  });
2327
2333
  iframe.addEventListener("mouseenter", () => {
@@ -2450,6 +2456,11 @@ function removeWalletButton() {
2450
2456
  // src/utils/setupBTCWallet.ts
2451
2457
  var { transfer, functionCall } = actionCreators;
2452
2458
  var config = {
2459
+ dev: {
2460
+ base_url: "https://api.dev.satoshibridge.top/v1",
2461
+ token: "nbtc1-nsp.dev",
2462
+ contractId: "dev1-nsp.dev"
2463
+ },
2453
2464
  testnet: {
2454
2465
  base_url: "https://api.testnet.satoshibridge.top/v1",
2455
2466
  token: "nbtc2-nsp.testnet",
@@ -2518,7 +2529,9 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2518
2529
  signAndSendTransaction,
2519
2530
  signAndSendTransactions
2520
2531
  };
2521
- initWalletButton(options.network.networkId, wallet);
2532
+ const currentConfig = "isDev" in metadata && metadata.isDev ? config.dev : config[options.network.networkId];
2533
+ const walletNetwork = "isDev" in metadata && metadata.isDev ? "dev" : options.network.networkId;
2534
+ initWalletButton(walletNetwork, wallet);
2522
2535
  if (!inter) {
2523
2536
  inter = setInterval(() => __async(void 0, null, function* () {
2524
2537
  const btcContext = window.btcContext;
@@ -2528,7 +2541,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2528
2541
  context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
2529
2542
  const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2530
2543
  removeWalletButton();
2531
- initWalletButton(options.network.networkId, wallet);
2544
+ initWalletButton(walletNetwork, wallet);
2532
2545
  emitter.emit("accountsChanged", {
2533
2546
  accounts: [
2534
2547
  {
@@ -2553,7 +2566,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2553
2566
  return __async(this, arguments, function* ({ method, args = {} }) {
2554
2567
  const res = yield provider.query({
2555
2568
  request_type: "call_function",
2556
- account_id: config[options.network.networkId].contractId,
2569
+ account_id: currentConfig.contractId,
2557
2570
  method_name: method,
2558
2571
  args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
2559
2572
  finality: "optimistic"
@@ -2585,7 +2598,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2585
2598
  const accountId = state.getAccount();
2586
2599
  const publicKey = state.getPublicKey();
2587
2600
  const btcContext = window.btcContext;
2588
- initWalletButton(options.network.networkId, wallet);
2601
+ initWalletButton(walletNetwork, wallet);
2589
2602
  if (accountId && publicKey) {
2590
2603
  return [
2591
2604
  {
@@ -2656,7 +2669,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2656
2669
  nonce: BigInt(rawAccessKey.nonce || 0)
2657
2670
  });
2658
2671
  const publicKeyFormat = PublicKey.from(publicKey);
2659
- const nearNonceApi = yield getNearNonceFromApi(options.network.networkId, accountId);
2672
+ const nearNonceApi = yield getNearNonceFromApi(currentConfig.base_url, accountId);
2660
2673
  const newTransactions = params.transactions.map((transaction, index) => {
2661
2674
  let nearNonceNumber = accessKey.nonce + BigInt(1);
2662
2675
  if (nearNonceApi) {
@@ -2695,19 +2708,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2695
2708
  method: "get_account",
2696
2709
  args: { account_id: accountId }
2697
2710
  });
2698
- const nonceApi = yield getNonceFromApi(options.network.networkId, accountId);
2711
+ const nonceApi = yield getNonceFromApi(currentConfig.base_url, accountId);
2699
2712
  const nonce = Number(nonceApi == null ? void 0 : nonceApi.result_data) > Number(accountInfo.nonce) ? String(nonceApi == null ? void 0 : nonceApi.result_data) : String(accountInfo.nonce);
2700
2713
  const intention = {
2701
2714
  chain_id: "397",
2702
2715
  csna: accountId,
2703
2716
  near_transactions: newTransactions.map((t) => t.txHex),
2704
- gas_token: config[options.network.networkId].token,
2717
+ nonce,
2718
+ gas_token: currentConfig.token,
2705
2719
  gas_limit: "3000",
2706
- nonce
2720
+ use_near_pay_gas: false
2707
2721
  };
2722
+ const availableBalance = parseFloat(accountInfo.available_balance) / __pow(10, 24);
2723
+ if (availableBalance > 0.2) {
2724
+ intention.use_near_pay_gas = true;
2725
+ }
2708
2726
  const strIntention = JSON.stringify(intention);
2709
2727
  const signature = yield btcContext.signMessage(strIntention);
2710
- const result = yield uploadBTCTx(options.network.networkId, {
2728
+ const result = yield uploadBTCTx(currentConfig.base_url, {
2711
2729
  sig: signature,
2712
2730
  btcPubKey: state.getBtcPublicKey(),
2713
2731
  data: toHex(strIntention)
@@ -2741,24 +2759,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2741
2759
  }
2742
2760
  return wallet;
2743
2761
  });
2744
- function getNonceFromApi(network, accountId) {
2745
- return fetch(`${config[network].base_url}/nonce?csna=${accountId}`, {
2762
+ function getNonceFromApi(url, accountId) {
2763
+ return fetch(`${url}/nonce?csna=${accountId}`, {
2746
2764
  method: "GET",
2747
2765
  headers: {
2748
2766
  "Content-Type": "application/json"
2749
2767
  }
2750
2768
  }).then((res) => res.json());
2751
2769
  }
2752
- function getNearNonceFromApi(network, accountId) {
2753
- return fetch(`${config[network].base_url}/nonceNear?csna=${accountId}`, {
2770
+ function getNearNonceFromApi(url, accountId) {
2771
+ return fetch(`${url}/nonceNear?csna=${accountId}`, {
2754
2772
  method: "GET",
2755
2773
  headers: {
2756
2774
  "Content-Type": "application/json"
2757
2775
  }
2758
2776
  }).then((res) => res.json());
2759
2777
  }
2760
- function uploadBTCTx(network, data) {
2761
- return fetch(`${config[network].base_url}/receiveTransaction`, {
2778
+ function uploadBTCTx(url, data) {
2779
+ return fetch(`${url}/receiveTransaction`, {
2762
2780
  method: "POST",
2763
2781
  headers: {
2764
2782
  "Content-Type": "application/json"
@@ -2842,7 +2860,7 @@ function pollTransactionStatuses(network, hashes) {
2842
2860
 
2843
2861
  // src/index.ts
2844
2862
  var getVersion = () => {
2845
- return "0.2.0";
2863
+ return "0.2.2";
2846
2864
  };
2847
2865
  if (typeof window !== "undefined") {
2848
2866
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();