btc-wallet 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1853,12 +1853,12 @@ var ConnectProvider = ({
1853
1853
  version: ((_c = options.aaOptions.accountContracts[((_b = Object.keys(options.aaOptions.accountContracts)) == null ? void 0 : _b[0]) || "BTC"]) == null ? void 0 : _c[0].version) || "1.0.0"
1854
1854
  });
1855
1855
  const setAccountContract = (0, import_react10.useCallback)(
1856
- (config) => {
1857
- if (!checkBTCVersion(options.aaOptions.accountContracts, config.name, config.version)) {
1856
+ (config2) => {
1857
+ if (!checkBTCVersion(options.aaOptions.accountContracts, config2.name, config2.version)) {
1858
1858
  throw new Error("Invalid Account Contract");
1859
1859
  }
1860
- localStorage.setItem(SAContractKey, JSON.stringify(config));
1861
- _setAccountContract(config);
1860
+ localStorage.setItem(SAContractKey, JSON.stringify(config2));
1861
+ _setAccountContract(config2);
1862
1862
  },
1863
1863
  [options.aaOptions.accountContracts, _setAccountContract]
1864
1864
  );
@@ -2017,9 +2017,9 @@ var ConnectProvider = ({
2017
2017
  setConnectorId(void 0);
2018
2018
  }, [connector]);
2019
2019
  (0, import_react10.useEffect)(() => {
2020
- const config = JSON.parse(localStorage.getItem(SAContractKey) || "{}");
2021
- if (config.name && config.version && checkBTCVersion(options.aaOptions.accountContracts, config.name, config.version)) {
2022
- _setAccountContract(config);
2020
+ const config2 = JSON.parse(localStorage.getItem(SAContractKey) || "{}");
2021
+ if (config2.name && config2.version && checkBTCVersion(options.aaOptions.accountContracts, config2.name, config2.version)) {
2022
+ _setAccountContract(config2);
2023
2023
  }
2024
2024
  }, [options.aaOptions.accountContracts, _setAccountContract]);
2025
2025
  (0, import_react10.useEffect)(() => {
@@ -2478,10 +2478,19 @@ function removeWalletButton() {
2478
2478
  }
2479
2479
 
2480
2480
  // src/utils/setupBTCWallet.ts
2481
- var { signedDelegate, transfer, functionCall } = import_transactions.actionCreators;
2482
- var base_url = "https://api.dev.satoshibridge.top/v1";
2483
- var token = "nbtc1-nsp.testnet";
2484
- var contractId = "dev1-nsp.testnet";
2481
+ var { transfer, functionCall } = import_transactions.actionCreators;
2482
+ var config = {
2483
+ testnet: {
2484
+ base_url: "https://api.testnet.satoshibridge.top/v1",
2485
+ token: "nbtc2-nsp.testnet",
2486
+ contractId: "dev2-nsp.testnet"
2487
+ },
2488
+ mainnet: {
2489
+ base_url: "https://api.mainnet.satoshibridge.top/v1",
2490
+ token: "",
2491
+ contractId: ""
2492
+ }
2493
+ };
2485
2494
  var state = {
2486
2495
  saveAccount(account) {
2487
2496
  window.localStorage.setItem("btc-wallet-account", account);
@@ -2551,11 +2560,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2551
2560
  const { nearTempAddress, nearTempPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
2552
2561
  removeWalletButton();
2553
2562
  setTimeout(() => {
2554
- initWalletButton(
2555
- options.network.networkId,
2556
- nearTempAddress,
2557
- wallet
2558
- );
2563
+ initWalletButton(options.network.networkId, nearTempAddress, wallet);
2559
2564
  }, 1e3);
2560
2565
  emitter.emit("accountsChanged", {
2561
2566
  accounts: [
@@ -2578,13 +2583,10 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2578
2583
  }), 500);
2579
2584
  }
2580
2585
  function viewMethod(_02) {
2581
- return __async(this, arguments, function* ({
2582
- method,
2583
- args = {}
2584
- }) {
2586
+ return __async(this, arguments, function* ({ method, args = {} }) {
2585
2587
  const res = yield provider.query({
2586
2588
  request_type: "call_function",
2587
- account_id: contractId,
2589
+ account_id: config[options.network.networkId].contractId,
2588
2590
  method_name: method,
2589
2591
  args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
2590
2592
  finality: "optimistic"
@@ -2612,7 +2614,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2612
2614
  });
2613
2615
  }
2614
2616
  function signIn(_02) {
2615
- return __async(this, arguments, function* ({ contractId: contractId2, methodNames }) {
2617
+ return __async(this, arguments, function* ({ contractId, methodNames }) {
2616
2618
  const accountId = state.getAccount();
2617
2619
  const publicKey = state.getPublicKey();
2618
2620
  const btcContext = window.btcContext;
@@ -2686,11 +2688,11 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2686
2688
  nonce: BigInt(rawAccessKey.nonce || 0)
2687
2689
  });
2688
2690
  const publicKeyFormat = import_key_pair.PublicKey.from(publicKey);
2689
- const nearNonceApi = yield getNearNonceFromApi(accountId);
2691
+ const nearNonceApi = yield getNearNonceFromApi(options.network.networkId, accountId);
2690
2692
  const newTransactions = params.transactions.map((transaction, index) => {
2691
2693
  let nearNonceNumber = accessKey.nonce + BigInt(1);
2692
2694
  if (nearNonceApi) {
2693
- nearNonceNumber = Number(nearNonceApi.result_data) > nearNonceNumber ? BigInt(Number(nearNonceApi.result_data)) : nearNonceNumber;
2695
+ nearNonceNumber = BigInt(nearNonceApi.result_data) > nearNonceNumber ? BigInt(nearNonceApi.result_data) : nearNonceNumber;
2694
2696
  }
2695
2697
  const newActions = transaction.actions.map((action) => {
2696
2698
  switch (action.type) {
@@ -2714,7 +2716,10 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2714
2716
  (0, import_utils5.baseDecode)(header.hash)
2715
2717
  );
2716
2718
  const txBytes = (0, import_transaction.encodeTransaction)(_transaction);
2717
- const txHex = toHex(txBytes.toString());
2719
+ const txHex = Array.from(
2720
+ txBytes,
2721
+ (byte) => ("0" + (byte & 255).toString(16)).slice(-2)
2722
+ ).join("");
2718
2723
  const hash = import_bs58.default.encode(new Uint8Array(import_js_sha256.sha256.array(txBytes)));
2719
2724
  return { txBytes, txHex, hash };
2720
2725
  });
@@ -2722,29 +2727,26 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2722
2727
  method: "get_account",
2723
2728
  args: { account_id: accountId }
2724
2729
  });
2725
- const nonceApi = yield getNonceFromApi(accountId);
2726
- const nonce = (nonceApi == null ? void 0 : nonceApi.result_data) ? Number(nonceApi == null ? void 0 : nonceApi.result_data) : accountInfo.nonce;
2730
+ const nonceApi = yield getNonceFromApi(options.network.networkId, accountId);
2731
+ const nonce = Number(nonceApi == null ? void 0 : nonceApi.result_data) > Number(accountInfo.nonce) ? String(nonceApi == null ? void 0 : nonceApi.result_data) : String(accountInfo.nonce);
2727
2732
  const intention = {
2728
2733
  chain_id: "397",
2729
2734
  csna: accountId,
2730
- near_transactions: newTransactions.map((t) => Array.from(t.txHex)),
2731
- gas_token: token,
2735
+ near_transactions: newTransactions.map((t) => t.txHex),
2736
+ gas_token: config[options.network.networkId].token,
2732
2737
  gas_limit: "3000",
2733
- nonce: Number(nonce).toString()
2738
+ nonce
2734
2739
  };
2735
2740
  const strIntention = JSON.stringify(intention);
2736
2741
  const signature = yield btcContext.signMessage(strIntention);
2737
- const result = yield uploadBTCTx({
2742
+ const result = yield uploadBTCTx(options.network.networkId, {
2738
2743
  sig: signature,
2739
2744
  btcPubKey: state.getBtcPublicKey(),
2740
2745
  data: toHex(strIntention)
2741
2746
  });
2742
2747
  if (result.result_code === 0) {
2743
2748
  const hash = newTransactions.map((t) => t.hash);
2744
- const result2 = yield pollTransactionStatuses(
2745
- options.network.networkId,
2746
- hash
2747
- );
2749
+ const result2 = yield pollTransactionStatuses(options.network.networkId, hash);
2748
2750
  return result2;
2749
2751
  } else {
2750
2752
  return null;
@@ -2753,24 +2755,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
2753
2755
  }
2754
2756
  return wallet;
2755
2757
  });
2756
- function getNonceFromApi(accountId) {
2757
- return fetch(`${base_url}/nonce?csna=${accountId}`, {
2758
+ function getNonceFromApi(network, accountId) {
2759
+ return fetch(`${config[network].base_url}/nonce?csna=${accountId}`, {
2758
2760
  method: "GET",
2759
2761
  headers: {
2760
2762
  "Content-Type": "application/json"
2761
2763
  }
2762
2764
  }).then((res) => res.json());
2763
2765
  }
2764
- function getNearNonceFromApi(accountId) {
2765
- return fetch(`${base_url}/nonceNear?csna=${accountId}`, {
2766
+ function getNearNonceFromApi(network, accountId) {
2767
+ return fetch(`${config[network].base_url}/nonceNear?csna=${accountId}`, {
2766
2768
  method: "GET",
2767
2769
  headers: {
2768
2770
  "Content-Type": "application/json"
2769
2771
  }
2770
2772
  }).then((res) => res.json());
2771
2773
  }
2772
- function uploadBTCTx(data) {
2773
- return fetch(`${base_url}/receiveTransaction`, {
2774
+ function uploadBTCTx(network, data) {
2775
+ return fetch(`${config[network].base_url}/receiveTransaction`, {
2774
2776
  method: "POST",
2775
2777
  headers: {
2776
2778
  "Content-Type": "application/json"
@@ -2870,7 +2872,7 @@ function pollTransactionStatuses(network, hashes) {
2870
2872
 
2871
2873
  // src/index.ts
2872
2874
  var getVersion = () => {
2873
- return "0.0.5";
2875
+ return "0.0.7";
2874
2876
  };
2875
2877
  if (typeof window !== "undefined") {
2876
2878
  window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();