btc-wallet 0.1.6 → 0.1.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 +43 -2
- package/dist/index.js.map +2 -2
- package/esm/index.js +43 -2
- 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,
|
@@ -2522,11 +2551,13 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2522
2551
|
if (!inter) {
|
2523
2552
|
inter = setInterval(() => __async(void 0, null, function* () {
|
2524
2553
|
const btcContext = window.btcContext;
|
2554
|
+
console.log("inter btcContext:", btcContext);
|
2525
2555
|
if (btcContext) {
|
2526
2556
|
clearInterval(inter);
|
2527
2557
|
const context = btcContext.getContext();
|
2528
2558
|
context.on("updatePublicKey", (btcPublicKey) => __async(void 0, null, function* () {
|
2529
2559
|
const { nearTempAddress } = yield getNearAccountByBtcPublicKey(btcPublicKey);
|
2560
|
+
console.info("accountsChanged:", nearTempAddress, btcContext.account);
|
2530
2561
|
emitter.emit("accountsChanged", {
|
2531
2562
|
accounts: [
|
2532
2563
|
{
|
@@ -2540,6 +2571,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2540
2571
|
accounts: []
|
2541
2572
|
});
|
2542
2573
|
}));
|
2574
|
+
console.log("metadata.autoConnect:", metadata);
|
2543
2575
|
if ("autoConnect" in metadata && metadata.autoConnect && localStorage.getItem("near-wallet-selector:selectedWalletId") === '"btc-wallet"') {
|
2544
2576
|
yield btcContext.autoConnect();
|
2545
2577
|
}
|
@@ -2580,6 +2612,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
2580
2612
|
}
|
2581
2613
|
function signIn(_02) {
|
2582
2614
|
return __async(this, arguments, function* ({ contractId, methodNames }) {
|
2615
|
+
console.log(provider);
|
2583
2616
|
const accountId = state.getAccount();
|
2584
2617
|
const publicKey = state.getPublicKey();
|
2585
2618
|
const btcContext = window.btcContext;
|
@@ -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,9 +2756,11 @@ 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 {
|
@@ -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.7";
|
2843
2884
|
};
|
2844
2885
|
if (typeof window !== "undefined") {
|
2845
2886
|
window.__PARTICLE_BTC_CONNECT_VERSION = getVersion();
|