btc-wallet 0.0.5 → 0.0.7
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 +44 -42
- package/dist/index.js.map +3 -3
- package/dist/utils/setupBTCWallet.d.ts +2 -2
- package/esm/index.js +46 -48
- 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);
|
@@ -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
|
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 =
|
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 =
|
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)
|
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) =>
|
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
|
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.
|
2875
|
+
return "0.0.7";
|
2874
2876
|
};
|
2875
2877
|
if (typeof window !== "undefined") {
|
2876
2878
|
window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();
|