btc-wallet 0.1.6 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +45 -4
- package/dist/index.js.map +2 -2
- package/esm/index.js +45 -4
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/esm/index.js
CHANGED
@@ -84,6 +84,7 @@ var InjectedConnector = class extends BaseConnector {
|
|
84
84
|
requestAccounts() {
|
85
85
|
return __async(this, null, function* () {
|
86
86
|
const accounts = yield this.getProviderOrThrow().requestAccounts();
|
87
|
+
console.log("\u{1F680} ~ InjectedConnector ~ requestAccounts ~ accounts:", accounts);
|
87
88
|
return accounts;
|
88
89
|
});
|
89
90
|
}
|
@@ -649,6 +650,7 @@ var WalletClientProvider = class {
|
|
649
650
|
}
|
650
651
|
}
|
651
652
|
if (method === "personal_sign" /* personalSign */) {
|
653
|
+
console.log("personal_sign ---- ", arg);
|
652
654
|
return new Promise((resolve, reject) => {
|
653
655
|
eventUtils_default.emit("personalSign" /* personalSign */, arg);
|
654
656
|
eventUtils_default.once("personalSignResult" /* personalSignResult */, ({ result, error }) => {
|
@@ -954,6 +956,7 @@ var ConnectModal = ({ open, onClose }) => {
|
|
954
956
|
yield connect(connector.metadata.id);
|
955
957
|
closeConnectModal();
|
956
958
|
} catch (error) {
|
959
|
+
console.error("onConnect error", error);
|
957
960
|
if (error.code === 4001) {
|
958
961
|
setRetryVisible(true);
|
959
962
|
}
|
@@ -1496,10 +1499,13 @@ var SignModal = ({ open, onClose, onOpen }) => {
|
|
1496
1499
|
}), [userOpBundle, smartAccount, accountContract]);
|
1497
1500
|
useEffect4(() => {
|
1498
1501
|
if (userOpBundle && open) {
|
1502
|
+
console.log("deserializeUserOp start");
|
1499
1503
|
setDeserializeLoading(true);
|
1500
1504
|
deserializeUserOp().then((result) => {
|
1505
|
+
console.log("\u{1F680} ~ deserializeUserOp ~ result:", result);
|
1501
1506
|
setDeserializeResult(result);
|
1502
1507
|
}).catch((error) => {
|
1508
|
+
console.log("\u{1F680} ~ deserializeUserOp ~ error:", error);
|
1503
1509
|
eventUtils_default.emit("sendUserOpResult" /* sendUserOpResult */, {
|
1504
1510
|
error
|
1505
1511
|
});
|
@@ -1510,6 +1516,7 @@ var SignModal = ({ open, onClose, onOpen }) => {
|
|
1510
1516
|
useEffect4(() => {
|
1511
1517
|
if (open && publicClient && evmAccount && userOpBundle) {
|
1512
1518
|
publicClient.getBalance({ address: evmAccount }).then((result) => setNativeBalance(result)).catch((error) => {
|
1519
|
+
console.log("\u{1F680} ~ getBalance ~ error:", error);
|
1513
1520
|
eventUtils_default.emit("sendUserOpResult" /* sendUserOpResult */, {
|
1514
1521
|
error
|
1515
1522
|
});
|
@@ -1682,6 +1689,7 @@ var AASignerProvider = class {
|
|
1682
1689
|
this.getPublicClient = () => {
|
1683
1690
|
var _a, _b;
|
1684
1691
|
const rpcUrl = ((_a = this == null ? void 0 : this.rpcUrls) == null ? void 0 : _a[this.chainId]) || ((_b = chains3.getEVMChainInfoById(this.chainId || 1)) == null ? void 0 : _b.rpcUrl);
|
1692
|
+
console.log("rpcUrl", rpcUrl);
|
1685
1693
|
return createPublicClient({
|
1686
1694
|
transport: http(rpcUrl)
|
1687
1695
|
});
|
@@ -1716,8 +1724,10 @@ var AASignerProvider = class {
|
|
1716
1724
|
return `0x${this.chainId.toString(16)}`;
|
1717
1725
|
} else if (arg.method === "personal_sign" /* personalSign */) {
|
1718
1726
|
let message = (_a = arg.params) == null ? void 0 : _a[0];
|
1727
|
+
console.log("personal_sign message:", message);
|
1719
1728
|
if (message.length !== 66) {
|
1720
1729
|
const hash = hashMessage({ raw: message });
|
1730
|
+
console.log("personal_sign hash:", hash);
|
1721
1731
|
message = hash;
|
1722
1732
|
}
|
1723
1733
|
const result = yield this.personalSign(message || "");
|
@@ -1725,15 +1735,19 @@ var AASignerProvider = class {
|
|
1725
1735
|
if (!convertResult) {
|
1726
1736
|
throw new Error("sign error");
|
1727
1737
|
}
|
1738
|
+
console.log(`personal_sign result(${convertResult.length}): `, convertResult);
|
1728
1739
|
return convertResult;
|
1729
1740
|
} else if (arg.method === "eth_signTypedData" || arg.method === "eth_signTypedData_v4") {
|
1730
1741
|
const typedData = (_b = arg.params) == null ? void 0 : _b[1];
|
1742
|
+
console.log("signTypedData typedData", typedData);
|
1731
1743
|
const hash = hashTypedData(typeof typedData === "string" ? JSON.parse(typedData) : typedData);
|
1744
|
+
console.log("signTypedData hash", hash);
|
1732
1745
|
const result = yield this.personalSign(hash || "");
|
1733
1746
|
const convertResult = convertSignature(result);
|
1734
1747
|
if (!convertResult) {
|
1735
1748
|
throw new Error("sign error");
|
1736
1749
|
}
|
1750
|
+
console.log(`eth_signTypedData result(${convertResult.length}): `, convertResult);
|
1737
1751
|
return convertResult;
|
1738
1752
|
} else if (arg.method === "wallet_switchEthereumChain") {
|
1739
1753
|
if (arg.params && arg.params instanceof Array && arg.params[0] && arg.params[0].chainId) {
|
@@ -1905,6 +1919,7 @@ var ConnectProvider = ({
|
|
1905
1919
|
setEVMAccount(res);
|
1906
1920
|
}).catch((e) => {
|
1907
1921
|
setEVMAccount(void 0);
|
1922
|
+
console.error("smartAccount getAddress error", e);
|
1908
1923
|
});
|
1909
1924
|
} else {
|
1910
1925
|
setEVMAccount(void 0);
|
@@ -1926,6 +1941,7 @@ var ConnectProvider = ({
|
|
1926
1941
|
const requestAccount = useCallback7(
|
1927
1942
|
(connector2) => __async(void 0, null, function* () {
|
1928
1943
|
let accounts2 = yield connector2.getAccounts();
|
1944
|
+
console.log("requestAccount start, autoConnect", accounts2, autoConnect);
|
1929
1945
|
if (accounts2.length === 0 && autoConnect) {
|
1930
1946
|
accounts2 = yield connector2.requestAccounts();
|
1931
1947
|
}
|
@@ -1935,7 +1951,9 @@ var ConnectProvider = ({
|
|
1935
1951
|
);
|
1936
1952
|
const requestDirectAccount = useCallback7(
|
1937
1953
|
(connector2) => __async(void 0, null, function* () {
|
1954
|
+
console.log(111);
|
1938
1955
|
let accounts2 = yield connector2.getAccounts();
|
1956
|
+
console.log("requestAccount start, autoConnect", accounts2, autoConnect);
|
1939
1957
|
if (accounts2.length === 0) {
|
1940
1958
|
accounts2 = yield connector2.requestAccounts();
|
1941
1959
|
}
|
@@ -1947,6 +1965,7 @@ var ConnectProvider = ({
|
|
1947
1965
|
useEffect5(() => {
|
1948
1966
|
if (connector) {
|
1949
1967
|
requestAccount(connector).catch((e) => {
|
1968
|
+
console.log("get account error", e);
|
1950
1969
|
setAccounts([]);
|
1951
1970
|
});
|
1952
1971
|
} else {
|
@@ -2002,6 +2021,7 @@ var ConnectProvider = ({
|
|
2002
2021
|
})
|
2003
2022
|
})
|
2004
2023
|
);
|
2024
|
+
console.log("walletEntryPlugin init");
|
2005
2025
|
}
|
2006
2026
|
}, [options, evmSupportChainIds, accountContract]);
|
2007
2027
|
useEffect5(() => {
|
@@ -2010,6 +2030,7 @@ var ConnectProvider = ({
|
|
2010
2030
|
walletEntryPlugin.setWalletCore({
|
2011
2031
|
ethereum: smartAccount.provider
|
2012
2032
|
});
|
2033
|
+
console.log("walletEntryPlugin setWalletCore");
|
2013
2034
|
}
|
2014
2035
|
}, [smartAccount, options]);
|
2015
2036
|
useEffect5(() => {
|
@@ -2017,8 +2038,10 @@ var ConnectProvider = ({
|
|
2017
2038
|
if (((_a2 = options.walletOptions) == null ? void 0 : _a2.visible) !== false) {
|
2018
2039
|
if (evmAccount) {
|
2019
2040
|
walletEntryPlugin.walletEntryCreate();
|
2041
|
+
console.log("walletEntryPlugin walletEntryCreate");
|
2020
2042
|
} else {
|
2021
2043
|
walletEntryPlugin.walletEntryDestroy();
|
2044
|
+
console.log("walletEntryPlugin walletEntryDestroy");
|
2022
2045
|
}
|
2023
2046
|
}
|
2024
2047
|
}, [evmAccount, smartAccount, options]);
|
@@ -2317,6 +2340,7 @@ import { sha256 } from "js-sha256";
|
|
2317
2340
|
|
2318
2341
|
// src/utils/initWalletButton.ts
|
2319
2342
|
function setupWalletButton(network, wallet, originalWallet) {
|
2343
|
+
console.log("setupWalletButton");
|
2320
2344
|
if (document.getElementById("satoshi-wallet-button")) {
|
2321
2345
|
return;
|
2322
2346
|
}
|
@@ -2404,20 +2428,24 @@ function setupButtonClickHandler(button, iframe, wallet, originalWallet) {
|
|
2404
2428
|
const accountId = (_a = yield wallet == null ? void 0 : wallet.getAccounts()) == null ? void 0 : _a[0].accountId;
|
2405
2429
|
const originalAccountId = originalWallet.account;
|
2406
2430
|
const originalPublicKey = yield originalWallet.getPublicKey();
|
2431
|
+
console.log({ accountId, originalAccountId, originalPublicKey });
|
2407
2432
|
const iframeSrc = new URL(iframe.src);
|
2408
2433
|
iframeSrc.searchParams.set("origin", window.location.origin);
|
2409
2434
|
accountId && iframeSrc.searchParams.set("accountId", accountId);
|
2410
2435
|
originalAccountId && iframeSrc.searchParams.set("originalAccountId", originalAccountId);
|
2411
2436
|
originalPublicKey && iframeSrc.searchParams.set("originalPublicKey", originalPublicKey);
|
2412
2437
|
iframe.src = iframeSrc.toString();
|
2438
|
+
console.log("iframe src", iframe.src);
|
2413
2439
|
window.addEventListener("message", (event) => __async(this, null, function* () {
|
2414
2440
|
var _a2, _b;
|
2415
2441
|
if (event.origin !== iframeSrc.origin)
|
2416
2442
|
return;
|
2417
2443
|
const { action, requestId, data } = event.data;
|
2418
2444
|
if (action === "signAndSendTransaction") {
|
2445
|
+
console.log("signAndSendTransaction message", event.data);
|
2419
2446
|
try {
|
2420
2447
|
const result = yield wallet.signAndSendTransaction(data);
|
2448
|
+
console.log("signAndSendTransaction result", result);
|
2421
2449
|
(_a2 = event.source) == null ? void 0 : _a2.postMessage(
|
2422
2450
|
{
|
2423
2451
|
requestId,
|
@@ -2427,6 +2455,7 @@ function setupButtonClickHandler(button, iframe, wallet, originalWallet) {
|
|
2427
2455
|
{ targetOrigin: event.origin }
|
2428
2456
|
);
|
2429
2457
|
} catch (error) {
|
2458
|
+
console.error("signAndSendTransaction error", error);
|
2430
2459
|
(_b = event.source) == null ? void 0 : _b.postMessage(
|
2431
2460
|
{
|
2432
2461
|
requestId,
|
@@ -2518,15 +2547,16 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2518
2547
|
signAndSendTransaction,
|
2519
2548
|
signAndSendTransactions
|
2520
2549
|
};
|
2521
|
-
initWalletButton(options.network.networkId, wallet);
|
2522
2550
|
if (!inter) {
|
2523
2551
|
inter = setInterval(() => __async(void 0, null, function* () {
|
2524
2552
|
const btcContext = window.btcContext;
|
2553
|
+
console.log("inter btcContext:", btcContext);
|
2525
2554
|
if (btcContext) {
|
2526
2555
|
clearInterval(inter);
|
2527
2556
|
const context = btcContext.getContext();
|
2528
2557
|
context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
|
2529
2558
|
const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
|
2559
|
+
initWalletButton(options.network.networkId, wallet);
|
2530
2560
|
emitter.emit("accountsChanged", {
|
2531
2561
|
accounts: [
|
2532
2562
|
{
|
@@ -2540,6 +2570,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2540
2570
|
accounts: []
|
2541
2571
|
});
|
2542
2572
|
}));
|
2573
|
+
console.log("metadata.autoConnect:", metadata);
|
2543
2574
|
if ("autoConnect" in metadata && metadata.autoConnect && localStorage.getItem("near-wallet-selector:selectedWalletId") === '"btc-wallet"') {
|
2544
2575
|
yield btcContext.autoConnect();
|
2545
2576
|
}
|
@@ -2580,9 +2611,11 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2580
2611
|
}
|
2581
2612
|
function signIn(_02) {
|
2582
2613
|
return __async(this, arguments, function* ({ contractId, methodNames }) {
|
2614
|
+
console.log(provider);
|
2583
2615
|
const accountId = state.getAccount();
|
2584
2616
|
const publicKey = state.getPublicKey();
|
2585
2617
|
const btcContext = window.btcContext;
|
2618
|
+
initWalletButton(options.network.networkId, wallet);
|
2586
2619
|
if (accountId && publicKey) {
|
2587
2620
|
return [
|
2588
2621
|
{
|
@@ -2608,7 +2641,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2608
2641
|
btcContext.logout();
|
2609
2642
|
state.clear();
|
2610
2643
|
window.localStorage.removeItem("near-wallet-selector:selectedWalletId");
|
2611
|
-
|
2644
|
+
removeWalletButton();
|
2612
2645
|
});
|
2613
2646
|
}
|
2614
2647
|
function getAccounts() {
|
@@ -2685,6 +2718,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2685
2718
|
txBytes,
|
2686
2719
|
(byte) => ("0" + (byte & 255).toString(16)).slice(-2)
|
2687
2720
|
).join("");
|
2721
|
+
console.log("txHex:", txHex);
|
2688
2722
|
const hash = bs58.encode(new Uint8Array(sha256.array(txBytes)));
|
2689
2723
|
return { txBytes, txHex, hash };
|
2690
2724
|
});
|
@@ -2709,8 +2743,10 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2709
2743
|
btcPubKey: state.getBtcPublicKey(),
|
2710
2744
|
data: toHex(strIntention)
|
2711
2745
|
});
|
2746
|
+
console.log("result:", result);
|
2712
2747
|
if (result.result_code === 0) {
|
2713
2748
|
const hash = newTransactions.map((t) => t.hash);
|
2749
|
+
console.log("txHash:", hash);
|
2714
2750
|
const result2 = yield pollTransactionStatuses(options.network.networkId, hash);
|
2715
2751
|
return result2;
|
2716
2752
|
} else {
|
@@ -2720,14 +2756,16 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2720
2756
|
}
|
2721
2757
|
function initWalletButton(network, wallet2) {
|
2722
2758
|
return __async(this, null, function* () {
|
2759
|
+
console.log("initWalletButton:", network, wallet2);
|
2723
2760
|
const checkAndSetupWalletButton = () => {
|
2724
2761
|
const accountId = state.getAccount();
|
2725
2762
|
const btcContext = window.btcContext;
|
2763
|
+
console.log("checkAndSetupWalletButton:", accountId, btcContext.account);
|
2726
2764
|
if (accountId && btcContext.account) {
|
2727
2765
|
setupWalletButton(network, wallet2, btcContext);
|
2728
2766
|
} else {
|
2729
2767
|
removeWalletButton();
|
2730
|
-
|
2768
|
+
setTimeout(() => {
|
2731
2769
|
checkAndSetupWalletButton();
|
2732
2770
|
}, 5e3);
|
2733
2771
|
}
|
@@ -2822,14 +2860,17 @@ function pollTransactionStatuses(network, hashes) {
|
|
2822
2860
|
try {
|
2823
2861
|
const result = yield provider.txStatus(hash, "unused", "FINAL");
|
2824
2862
|
if (result && result.status) {
|
2863
|
+
console.log(`Transaction ${hash} result:`, result);
|
2825
2864
|
return result;
|
2826
2865
|
}
|
2827
2866
|
} catch (error) {
|
2867
|
+
console.error(`Failed to fetch transaction status for ${hash}: ${error.message}`);
|
2828
2868
|
}
|
2829
2869
|
if (attempt === maxAttempts) {
|
2830
2870
|
throw new Error(`Transaction not found after max attempts: ${hash}`);
|
2831
2871
|
}
|
2832
2872
|
yield delay(1e4);
|
2873
|
+
console.log(`RPC request failed for ${hash}, retrying ${maxAttempts - attempt} more times`);
|
2833
2874
|
}
|
2834
2875
|
});
|
2835
2876
|
const results = yield Promise.all(hashes.map((hash) => pollStatus(hash)));
|
@@ -2839,7 +2880,7 @@ function pollTransactionStatuses(network, hashes) {
|
|
2839
2880
|
|
2840
2881
|
// src/index.ts
|
2841
2882
|
var getVersion = () => {
|
2842
|
-
return "0.1.
|
2883
|
+
return "0.1.8";
|
2843
2884
|
};
|
2844
2885
|
if (typeof window !== "undefined") {
|
2845
2886
|
window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();
|