btc-wallet 0.0.6 → 0.0.8
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.
- package/dist/index.js +49 -49
- package/dist/index.js.map +3 -3
- package/dist/utils/initWalletButton.d.ts +1 -1
- package/dist/utils/setupBTCWallet.d.ts +2 -2
- package/esm/index.js +51 -55
- package/esm/index.js.map +3 -3
- package/package.json +1 -1
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
|
-
(
|
1857
|
-
if (!checkBTCVersion(options.aaOptions.accountContracts,
|
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(
|
1861
|
-
_setAccountContract(
|
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
|
2021
|
-
if (
|
2022
|
-
_setAccountContract(
|
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 {
|
2482
|
-
var
|
2483
|
-
|
2484
|
-
|
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);
|
@@ -2548,14 +2557,9 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2548
2557
|
const accountId = state.getAccount();
|
2549
2558
|
initWalletButton(options.network.networkId, accountId, wallet);
|
2550
2559
|
context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
|
2551
|
-
const { nearTempAddress
|
2552
|
-
removeWalletButton();
|
2560
|
+
const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
|
2553
2561
|
setTimeout(() => {
|
2554
|
-
initWalletButton(
|
2555
|
-
options.network.networkId,
|
2556
|
-
nearTempAddress,
|
2557
|
-
wallet
|
2558
|
-
);
|
2562
|
+
initWalletButton(options.network.networkId, nearTempAddress, wallet);
|
2559
2563
|
}, 1e3);
|
2560
2564
|
emitter.emit("accountsChanged", {
|
2561
2565
|
accounts: [
|
@@ -2571,20 +2575,17 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2571
2575
|
});
|
2572
2576
|
}));
|
2573
2577
|
if ("autoConnect" in metadata && metadata.autoConnect && localStorage.getItem("near-wallet-selector:selectedWalletId") === '"btc-wallet"') {
|
2574
|
-
btcContext.autoConnect();
|
2578
|
+
yield btcContext.autoConnect();
|
2575
2579
|
}
|
2576
2580
|
clearInterval(inter);
|
2577
2581
|
}
|
2578
2582
|
}), 500);
|
2579
2583
|
}
|
2580
2584
|
function viewMethod(_02) {
|
2581
|
-
return __async(this, arguments, function* ({
|
2582
|
-
method,
|
2583
|
-
args = {}
|
2584
|
-
}) {
|
2585
|
+
return __async(this, arguments, function* ({ method, args = {} }) {
|
2585
2586
|
const res = yield provider.query({
|
2586
2587
|
request_type: "call_function",
|
2587
|
-
account_id: contractId,
|
2588
|
+
account_id: config[options.network.networkId].contractId,
|
2588
2589
|
method_name: method,
|
2589
2590
|
args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
|
2590
2591
|
finality: "optimistic"
|
@@ -2612,7 +2613,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2612
2613
|
});
|
2613
2614
|
}
|
2614
2615
|
function signIn(_02) {
|
2615
|
-
return __async(this, arguments, function* ({ contractId
|
2616
|
+
return __async(this, arguments, function* ({ contractId, methodNames }) {
|
2616
2617
|
const accountId = state.getAccount();
|
2617
2618
|
const publicKey = state.getPublicKey();
|
2618
2619
|
const btcContext = window.btcContext;
|
@@ -2686,11 +2687,11 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2686
2687
|
nonce: BigInt(rawAccessKey.nonce || 0)
|
2687
2688
|
});
|
2688
2689
|
const publicKeyFormat = import_key_pair.PublicKey.from(publicKey);
|
2689
|
-
const nearNonceApi = yield getNearNonceFromApi(accountId);
|
2690
|
+
const nearNonceApi = yield getNearNonceFromApi(options.network.networkId, accountId);
|
2690
2691
|
const newTransactions = params.transactions.map((transaction, index) => {
|
2691
2692
|
let nearNonceNumber = accessKey.nonce + BigInt(1);
|
2692
2693
|
if (nearNonceApi) {
|
2693
|
-
nearNonceNumber =
|
2694
|
+
nearNonceNumber = BigInt(nearNonceApi.result_data) > nearNonceNumber ? BigInt(nearNonceApi.result_data) : nearNonceNumber;
|
2694
2695
|
}
|
2695
2696
|
const newActions = transaction.actions.map((action) => {
|
2696
2697
|
switch (action.type) {
|
@@ -2714,8 +2715,10 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2714
2715
|
(0, import_utils5.baseDecode)(header.hash)
|
2715
2716
|
);
|
2716
2717
|
const txBytes = (0, import_transaction.encodeTransaction)(_transaction);
|
2717
|
-
const txHex = Array.from(
|
2718
|
-
|
2718
|
+
const txHex = Array.from(
|
2719
|
+
txBytes,
|
2720
|
+
(byte) => ("0" + (byte & 255).toString(16)).slice(-2)
|
2721
|
+
).join("");
|
2719
2722
|
const hash = import_bs58.default.encode(new Uint8Array(import_js_sha256.sha256.array(txBytes)));
|
2720
2723
|
return { txBytes, txHex, hash };
|
2721
2724
|
});
|
@@ -2723,29 +2726,26 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2723
2726
|
method: "get_account",
|
2724
2727
|
args: { account_id: accountId }
|
2725
2728
|
});
|
2726
|
-
const nonceApi = yield getNonceFromApi(accountId);
|
2727
|
-
const nonce = (nonceApi == null ? void 0 : nonceApi.result_data)
|
2729
|
+
const nonceApi = yield getNonceFromApi(options.network.networkId, accountId);
|
2730
|
+
const nonce = Number(nonceApi == null ? void 0 : nonceApi.result_data) > Number(accountInfo.nonce) ? String(nonceApi == null ? void 0 : nonceApi.result_data) : String(accountInfo.nonce);
|
2728
2731
|
const intention = {
|
2729
2732
|
chain_id: "397",
|
2730
2733
|
csna: accountId,
|
2731
2734
|
near_transactions: newTransactions.map((t) => t.txHex),
|
2732
|
-
gas_token: token,
|
2735
|
+
gas_token: config[options.network.networkId].token,
|
2733
2736
|
gas_limit: "3000",
|
2734
|
-
nonce
|
2737
|
+
nonce
|
2735
2738
|
};
|
2736
2739
|
const strIntention = JSON.stringify(intention);
|
2737
2740
|
const signature = yield btcContext.signMessage(strIntention);
|
2738
|
-
const result = yield uploadBTCTx({
|
2741
|
+
const result = yield uploadBTCTx(options.network.networkId, {
|
2739
2742
|
sig: signature,
|
2740
2743
|
btcPubKey: state.getBtcPublicKey(),
|
2741
2744
|
data: toHex(strIntention)
|
2742
2745
|
});
|
2743
2746
|
if (result.result_code === 0) {
|
2744
2747
|
const hash = newTransactions.map((t) => t.hash);
|
2745
|
-
const result2 = yield pollTransactionStatuses(
|
2746
|
-
options.network.networkId,
|
2747
|
-
hash
|
2748
|
-
);
|
2748
|
+
const result2 = yield pollTransactionStatuses(options.network.networkId, hash);
|
2749
2749
|
return result2;
|
2750
2750
|
} else {
|
2751
2751
|
return null;
|
@@ -2754,24 +2754,24 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2754
2754
|
}
|
2755
2755
|
return wallet;
|
2756
2756
|
});
|
2757
|
-
function getNonceFromApi(accountId) {
|
2758
|
-
return fetch(`${base_url}/nonce?csna=${accountId}`, {
|
2757
|
+
function getNonceFromApi(network, accountId) {
|
2758
|
+
return fetch(`${config[network].base_url}/nonce?csna=${accountId}`, {
|
2759
2759
|
method: "GET",
|
2760
2760
|
headers: {
|
2761
2761
|
"Content-Type": "application/json"
|
2762
2762
|
}
|
2763
2763
|
}).then((res) => res.json());
|
2764
2764
|
}
|
2765
|
-
function getNearNonceFromApi(accountId) {
|
2766
|
-
return fetch(`${base_url}/nonceNear?csna=${accountId}`, {
|
2765
|
+
function getNearNonceFromApi(network, accountId) {
|
2766
|
+
return fetch(`${config[network].base_url}/nonceNear?csna=${accountId}`, {
|
2767
2767
|
method: "GET",
|
2768
2768
|
headers: {
|
2769
2769
|
"Content-Type": "application/json"
|
2770
2770
|
}
|
2771
2771
|
}).then((res) => res.json());
|
2772
2772
|
}
|
2773
|
-
function uploadBTCTx(data) {
|
2774
|
-
return fetch(`${base_url}/receiveTransaction`, {
|
2773
|
+
function uploadBTCTx(network, data) {
|
2774
|
+
return fetch(`${config[network].base_url}/receiveTransaction`, {
|
2775
2775
|
method: "POST",
|
2776
2776
|
headers: {
|
2777
2777
|
"Content-Type": "application/json"
|
@@ -2812,13 +2812,13 @@ function toHex(originalString) {
|
|
2812
2812
|
}
|
2813
2813
|
function initWalletButton(network, accountId, wallet) {
|
2814
2814
|
const checkAndSetupWalletButton = () => {
|
2815
|
-
if (accountId
|
2815
|
+
if (accountId) {
|
2816
2816
|
setupWalletButton(network, wallet, window.btcContext);
|
2817
|
-
|
2818
|
-
removeWalletButton();
|
2819
|
-
setTimeout(() => {
|
2817
|
+
!window.btcContext.account && setTimeout(() => {
|
2820
2818
|
checkAndSetupWalletButton();
|
2821
2819
|
}, 5e3);
|
2820
|
+
} else {
|
2821
|
+
removeWalletButton();
|
2822
2822
|
}
|
2823
2823
|
};
|
2824
2824
|
checkAndSetupWalletButton();
|
@@ -2871,7 +2871,7 @@ function pollTransactionStatuses(network, hashes) {
|
|
2871
2871
|
|
2872
2872
|
// src/index.ts
|
2873
2873
|
var getVersion = () => {
|
2874
|
-
return "0.0.
|
2874
|
+
return "0.0.8";
|
2875
2875
|
};
|
2876
2876
|
if (typeof window !== "undefined") {
|
2877
2877
|
window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();
|