btc-wallet 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
10
  var __getProtoOf = Object.getPrototypeOf;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
12
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __pow = Math.pow;
13
14
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
15
  var __spreadValues = (a, b) => {
15
16
  for (var prop in b || (b = {}))
@@ -2357,12 +2358,17 @@ var import_bs58 = __toESM(require("bs58"), 1);
2357
2358
  var import_js_sha256 = require("js-sha256");
2358
2359
 
2359
2360
  // src/utils/initWalletButton.ts
2361
+ var walletUrlConfig = {
2362
+ dev: "https://wallet-dev.satoshibridge.top",
2363
+ testnet: "https://wallet-test.satoshibridge.top",
2364
+ mainnet: "https://wallet.satoshibridge.top"
2365
+ };
2360
2366
  function setupWalletButton(network, wallet, originalWallet) {
2361
2367
  if (document.getElementById("satoshi-wallet-button")) {
2362
2368
  return;
2363
2369
  }
2364
2370
  const iframe = createIframe({
2365
- iframeUrl: network === "testnet" ? "https://wallet-dev.satoshibridge.top" : "https://wallet.satoshibridge.top",
2371
+ iframeUrl: walletUrlConfig[network],
2366
2372
  iframeStyle: { width: "400px", height: "650px" }
2367
2373
  });
2368
2374
  iframe.addEventListener("mouseenter", () => {
@@ -2491,6 +2497,11 @@ function removeWalletButton() {
2491
2497
  // src/utils/setupBTCWallet.ts
2492
2498
  var { transfer, functionCall } = import_transactions.actionCreators;
2493
2499
  var config = {
2500
+ dev: {
2501
+ base_url: "https://api.dev.satoshibridge.top/v1",
2502
+ token: "nbtc1-nsp.dev",
2503
+ contractId: "dev1-nsp.dev"
2504
+ },
2494
2505
  testnet: {
2495
2506
  base_url: "https://api.testnet.satoshibridge.top/v1",
2496
2507
  token: "nbtc2-nsp.testnet",
@@ -2559,7 +2570,9 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2559
2570
  signAndSendTransaction,
2560
2571
  signAndSendTransactions
2561
2572
  };
2562
- initWalletButton(options.network.networkId, wallet);
2573
+ const currentConfig = "isDev" in metadata && metadata.isDev ? config.dev : config[options.network.networkId];
2574
+ const walletNetwork = "isDev" in metadata && metadata.isDev ? "dev" : options.network.networkId;
2575
+ initWalletButton(walletNetwork, wallet);
2563
2576
  if (!inter) {
2564
2577
  inter = setInterval(() => __async(void 0, null, function* () {
2565
2578
  const btcContext = window.btcContext;
@@ -2569,7 +2582,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2569
2582
  context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
2570
2583
  const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2571
2584
  removeWalletButton();
2572
- initWalletButton(options.network.networkId, wallet);
2585
+ initWalletButton(walletNetwork, wallet);
2573
2586
  emitter.emit("accountsChanged", {
2574
2587
  accounts: [
2575
2588
  {
@@ -2594,7 +2607,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2594
2607
  return __async(this, arguments, function* ({ method, args = {} }) {
2595
2608
  const res = yield provider.query({
2596
2609
  request_type: "call_function",
2597
- account_id: config[options.network.networkId].contractId,
2610
+ account_id: currentConfig.contractId,
2598
2611
  method_name: method,
2599
2612
  args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
2600
2613
  finality: "optimistic"
@@ -2626,7 +2639,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2626
2639
  const accountId = state.getAccount();
2627
2640
  const publicKey = state.getPublicKey();
2628
2641
  const btcContext = window.btcContext;
2629
- initWalletButton(options.network.networkId, wallet);
2642
+ initWalletButton(walletNetwork, wallet);
2630
2643
  if (accountId && publicKey) {
2631
2644
  return [
2632
2645
  {
@@ -2697,7 +2710,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2697
2710
  nonce: BigInt(rawAccessKey.nonce || 0)
2698
2711
  });
2699
2712
  const publicKeyFormat = import_key_pair.PublicKey.from(publicKey);
2700
- const nearNonceApi = yield getNearNonceFromApi(options.network.networkId, accountId);
2713
+ const nearNonceApi = yield getNearNonceFromApi(currentConfig.base_url, accountId);
2701
2714
  const newTransactions = params.transactions.map((transaction, index) => {
2702
2715
  let nearNonceNumber = accessKey.nonce + BigInt(1);
2703
2716
  if (nearNonceApi) {
@@ -2736,19 +2749,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2736
2749
  method: "get_account",
2737
2750
  args: { account_id: accountId }
2738
2751
  });
2739
- const nonceApi = yield getNonceFromApi(options.network.networkId, accountId);
2752
+ const nonceApi = yield getNonceFromApi(currentConfig.base_url, accountId);
2740
2753
  const nonce = Number(nonceApi == null ? void 0 : nonceApi.result_data) > Number(accountInfo.nonce) ? String(nonceApi == null ? void 0 : nonceApi.result_data) : String(accountInfo.nonce);
2741
2754
  const intention = {
2742
2755
  chain_id: "397",
2743
2756
  csna: accountId,
2744
2757
  near_transactions: newTransactions.map((t) => t.txHex),
2745
- gas_token: config[options.network.networkId].token,
2758
+ nonce,
2759
+ gas_token: currentConfig.token,
2746
2760
  gas_limit: "3000",
2747
- nonce
2761
+ use_near_pay_gas: false
2748
2762
  };
2763
+ const availableBalance = parseFloat(accountInfo.available_balance) / __pow(10, 24);
2764
+ if (availableBalance > 0.2) {
2765
+ intention.use_near_pay_gas = true;
2766
+ }
2749
2767
  const strIntention = JSON.stringify(intention);
2750
2768
  const signature = yield btcContext.signMessage(strIntention);
2751
- const result = yield uploadBTCTx(options.network.networkId, {
2769
+ const result = yield uploadBTCTx(currentConfig.base_url, {
2752
2770
  sig: signature,
2753
2771
  btcPubKey: state.getBtcPublicKey(),
2754
2772
  data: toHex(strIntention)
@@ -2782,24 +2800,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2782
2800
  }
2783
2801
  return wallet;
2784
2802
  });
2785
- function getNonceFromApi(network, accountId) {
2786
- return fetch(`${config[network].base_url}/nonce?csna=${accountId}`, {
2803
+ function getNonceFromApi(url, accountId) {
2804
+ return fetch(`${url}/nonce?csna=${accountId}`, {
2787
2805
  method: "GET",
2788
2806
  headers: {
2789
2807
  "Content-Type": "application/json"
2790
2808
  }
2791
2809
  }).then((res) => res.json());
2792
2810
  }
2793
- function getNearNonceFromApi(network, accountId) {
2794
- return fetch(`${config[network].base_url}/nonceNear?csna=${accountId}`, {
2811
+ function getNearNonceFromApi(url, accountId) {
2812
+ return fetch(`${url}/nonceNear?csna=${accountId}`, {
2795
2813
  method: "GET",
2796
2814
  headers: {
2797
2815
  "Content-Type": "application/json"
2798
2816
  }
2799
2817
  }).then((res) => res.json());
2800
2818
  }
2801
- function uploadBTCTx(network, data) {
2802
- return fetch(`${config[network].base_url}/receiveTransaction`, {
2819
+ function uploadBTCTx(url, data) {
2820
+ return fetch(`${url}/receiveTransaction`, {
2803
2821
  method: "POST",
2804
2822
  headers: {
2805
2823
  "Content-Type": "application/json"
@@ -2883,7 +2901,7 @@ function pollTransactionStatuses(network, hashes) {
2883
2901
 
2884
2902
  // src/index.ts
2885
2903
  var getVersion = () => {
2886
- return "0.2.0";
2904
+ return "0.2.2";
2887
2905
  };
2888
2906
  if (typeof window !== "undefined") {
2889
2907
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();