btc-wallet 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 = {}))
@@ -2450,6 +2451,11 @@ function removeWalletButton() {
2450
2451
  // src/utils/setupBTCWallet.ts
2451
2452
  var { transfer, functionCall } = actionCreators;
2452
2453
  var config = {
2454
+ dev: {
2455
+ base_url: "https://api.dev.satoshibridge.top/v1",
2456
+ token: "nbtc1-nsp.dev",
2457
+ contractId: "dev1-nsp.dev"
2458
+ },
2453
2459
  testnet: {
2454
2460
  base_url: "https://api.testnet.satoshibridge.top/v1",
2455
2461
  token: "nbtc2-nsp.testnet",
@@ -2518,6 +2524,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2518
2524
  signAndSendTransaction,
2519
2525
  signAndSendTransactions
2520
2526
  };
2527
+ const currentConfig = "isDev" in metadata && metadata.isDev ? config.dev : config[options.network.networkId];
2521
2528
  initWalletButton(options.network.networkId, wallet);
2522
2529
  if (!inter) {
2523
2530
  inter = setInterval(() => __async(void 0, null, function* () {
@@ -2553,7 +2560,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2553
2560
  return __async(this, arguments, function* ({ method, args = {} }) {
2554
2561
  const res = yield provider.query({
2555
2562
  request_type: "call_function",
2556
- account_id: config[options.network.networkId].contractId,
2563
+ account_id: currentConfig.contractId,
2557
2564
  method_name: method,
2558
2565
  args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
2559
2566
  finality: "optimistic"
@@ -2656,7 +2663,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2656
2663
  nonce: BigInt(rawAccessKey.nonce || 0)
2657
2664
  });
2658
2665
  const publicKeyFormat = PublicKey.from(publicKey);
2659
- const nearNonceApi = yield getNearNonceFromApi(options.network.networkId, accountId);
2666
+ const nearNonceApi = yield getNearNonceFromApi(currentConfig.base_url, accountId);
2660
2667
  const newTransactions = params.transactions.map((transaction, index) => {
2661
2668
  let nearNonceNumber = accessKey.nonce + BigInt(1);
2662
2669
  if (nearNonceApi) {
@@ -2695,19 +2702,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2695
2702
  method: "get_account",
2696
2703
  args: { account_id: accountId }
2697
2704
  });
2698
- const nonceApi = yield getNonceFromApi(options.network.networkId, accountId);
2705
+ const nonceApi = yield getNonceFromApi(currentConfig.base_url, accountId);
2699
2706
  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
2707
  const intention = {
2701
2708
  chain_id: "397",
2702
2709
  csna: accountId,
2703
2710
  near_transactions: newTransactions.map((t) => t.txHex),
2704
- gas_token: config[options.network.networkId].token,
2711
+ nonce,
2712
+ gas_token: currentConfig.token,
2705
2713
  gas_limit: "3000",
2706
- nonce
2714
+ use_near_pay_gas: false
2707
2715
  };
2716
+ const availableBalance = parseFloat(accountInfo.available_balance) / __pow(10, 24);
2717
+ if (availableBalance > 0.2) {
2718
+ intention.use_near_pay_gas = true;
2719
+ }
2708
2720
  const strIntention = JSON.stringify(intention);
2709
2721
  const signature = yield btcContext.signMessage(strIntention);
2710
- const result = yield uploadBTCTx(options.network.networkId, {
2722
+ const result = yield uploadBTCTx(currentConfig.base_url, {
2711
2723
  sig: signature,
2712
2724
  btcPubKey: state.getBtcPublicKey(),
2713
2725
  data: toHex(strIntention)
@@ -2741,24 +2753,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2741
2753
  }
2742
2754
  return wallet;
2743
2755
  });
2744
- function getNonceFromApi(network, accountId) {
2745
- return fetch(`${config[network].base_url}/nonce?csna=${accountId}`, {
2756
+ function getNonceFromApi(url, accountId) {
2757
+ return fetch(`${url}/nonce?csna=${accountId}`, {
2746
2758
  method: "GET",
2747
2759
  headers: {
2748
2760
  "Content-Type": "application/json"
2749
2761
  }
2750
2762
  }).then((res) => res.json());
2751
2763
  }
2752
- function getNearNonceFromApi(network, accountId) {
2753
- return fetch(`${config[network].base_url}/nonceNear?csna=${accountId}`, {
2764
+ function getNearNonceFromApi(url, accountId) {
2765
+ return fetch(`${url}/nonceNear?csna=${accountId}`, {
2754
2766
  method: "GET",
2755
2767
  headers: {
2756
2768
  "Content-Type": "application/json"
2757
2769
  }
2758
2770
  }).then((res) => res.json());
2759
2771
  }
2760
- function uploadBTCTx(network, data) {
2761
- return fetch(`${config[network].base_url}/receiveTransaction`, {
2772
+ function uploadBTCTx(url, data) {
2773
+ return fetch(`${url}/receiveTransaction`, {
2762
2774
  method: "POST",
2763
2775
  headers: {
2764
2776
  "Content-Type": "application/json"
@@ -2842,7 +2854,7 @@ function pollTransactionStatuses(network, hashes) {
2842
2854
 
2843
2855
  // src/index.ts
2844
2856
  var getVersion = () => {
2845
- return "0.2.0";
2857
+ return "0.2.1";
2846
2858
  };
2847
2859
  if (typeof window !== "undefined") {
2848
2860
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();