@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
291 lines (283 loc) • 15.9 kB
JavaScript
// src/wallet/wallet.ts
import { Signer } from "@roochnetwork/rooch-sdk";
var Wallet = class extends Signer {
/**
* Checks if the wallet is installed.
* @returns A promise that resolves to true if the wallet is installed, otherwise false.
*/
async checkInstalled() {
for (let i = 1; i < 10 && !this.getTarget(); i += 1) {
await new Promise((resolve) => setTimeout(resolve, 100 * i));
}
return Promise.resolve(this.getTarget() !== void 0);
}
};
// src/wallet/bitcoin.ts
import {
Authenticator,
BitcoinSignMessage,
Secp256k1PublicKey,
fromHEX
} from "@roochnetwork/rooch-sdk";
var BitcoinWallet = class extends Wallet {
async signTransaction(input) {
const message = new BitcoinSignMessage(input.hashData(), input.getInfo() || "");
return Authenticator.bitcoin(message, this, "raw");
}
getPublicKey() {
if (!this.publicKey) {
throw Error("Please connect your wallet first");
}
return new Secp256k1PublicKey(fromHEX(this.publicKey));
}
getRoochAddress() {
if (!this.currentAddress) {
throw Error("Please connect your wallet first");
}
return this.currentAddress.genRoochAddress();
}
getBitcoinAddress() {
if (!this.currentAddress) {
throw Error("Please connect your wallet first");
}
return this.currentAddress;
}
getKeyScheme() {
return "Secp256k1";
}
normalize_recovery_id(v) {
let normalizeV = v - 27 - 4;
if (normalizeV < 0) {
normalizeV = normalizeV + 4;
}
return normalizeV;
}
switchAccount() {
throw new Error("Method not implemented.");
}
getChain() {
return "bitcoin";
}
};
// src/wallet/unisat.ts
import { BitcoinAddress as BitcoinAddress2, str, bytes } from "@roochnetwork/rooch-sdk";
// src/wallet/types.ts
var All_NETWORK = ["testnet", "livenet"];
// src/wallet/unisat.ts
var UniSatWallet = class extends BitcoinWallet {
getName() {
return "UniSat";
}
getIcon(_) {
return "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iX2ZyYW1lXzIiIGRhdGEtbmFtZT0iZnJhbWUgMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iLTE1IDAgMTAwIDEwMCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogdXJsKCNfbGxfMTI2KTsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiB1cmwoI19sbF8xMjMpOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6IHVybCgjX2xsXzEyMSk7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgICBmb250LWZhbWlseTogSmV0QnJhaW5zTW9ub1JvbWFuLU1lZGl1bSwgJ0pldEJyYWlucyBNb25vJzsKICAgICAgICBmb250LXNpemU6IDI0Ljc5cHg7CiAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA1MDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9Il9sbF8xMjYiICB4MT0iOTYxLjY4IiB5MT0iLTQ1LjU3IiB4Mj0iOTg2LjE0IiB5Mj0iLTExMC4wNiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3ODAuOTkgNjcxLjcpIHJvdGF0ZSgtMTM0LjczKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwNzAxMDAiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuMzYiIHN0b3AtY29sb3I9IiM3NzM5MGQiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNjciIHN0b3AtY29sb3I9IiNlYTgxMDEiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjRiODUyIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJfbGxfMTIxIiAgeDE9Ijk2NS4xNyIgeTE9Ii0xMzIuNDEiIHgyPSI5MjkuMjIiIHkyPSItNjUuMjIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzgwLjk5IDY3MS43KSByb3RhdGUoLTEzNC43MykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMDcwMTAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjM3IiBzdG9wLWNvbG9yPSIjNzczOTBkIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjY3IiBzdG9wLWNvbG9yPSIjZWE4MTAxIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2Y0ZmI1MiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0iX2xsXzEyMyIgIGN4PSIzNS41OSIgY3k9IjMwLjc2IiBmeD0iMzUuNTkiIGZ5PSIzMC43NiIgcj0iNy40NyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwIDApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2Y0Yjg1MiIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii4zMyIgc3RvcC1jb2xvcj0iI2VhODEwMSIvPgogICAgICA8c3RvcCBvZmZzZXQ9Ii42NCIgc3RvcC1jb2xvcj0iIzc3MzkwZCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwNzAxMDAiLz4KICAgIDwvcmFkaWFsR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxnIGlkPSJfZnJhbWVfMS0yIiA+CiAgICA8Zz4KICAgICAgPGc+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTQuODEsOC45MWwyMC4zNCwyMC4xNGMxLjczLDEuNzEsMi41OCwzLjQ0LDIuNTUsNS4xOS0uMDMsMS43NC0uNzcsMy4zNC0yLjIzLDQuNzgtMS41MiwxLjUxLTMuMTYsMi4yOC00LjkyLDIuMzEtMS43NiwuMDMtMy41LS44Mi01LjI0LTIuNTNsLTIwLjgtMjAuNmMtMi4zNi0yLjM0LTQuNjQtNC02Ljg0LTQuOTctMi4xOS0uOTctNC41LTEuMTItNi45Mi0uNDYtMi40MiwuNjYtNS4wMiwyLjM3LTcuOCw1LjEzLTMuODQsMy44LTUuNjcsNy4zNy01LjQ4LDEwLjcxLC4xOSwzLjM0LDIuMDksNi43OSw1LjcxLDEwLjM4bDIwLjk3LDIwLjc3YzEuNzUsMS43MywyLjYxLDMuNDYsMi41OCw1LjE4LS4wMywxLjcyLS43OCwzLjMyLTIuMjYsNC43OC0xLjQ4LDEuNDYtMy4xLDIuMjMtNC44OCwyLjI5LTEuNzcsLjA2LTMuNTMtLjc4LTUuMjgtMi41MUwxMy45OSw0OS4zNmMtMy4zMS0zLjI4LTUuNy02LjM4LTcuMTctOS4zLTEuNDctMi45Mi0yLjAyLTYuMjMtMS42NC05LjkyLC4zNC0zLjE2LDEuMzYtNi4yMiwzLjA0LTkuMTksMS42OS0yLjk3LDQuMS02LDcuMjMtOS4xMSwzLjczLTMuNyw3LjI5LTYuNTMsMTAuNjktOC41QzI5LjU0LDEuMzcsMzIuODIsLjI3LDM1Ljk5LC4wNGMzLjE3LS4yMyw2LjMsLjQsOS40LDEuODksMy4wOSwxLjQ5LDYuMjMsMy44MSw5LjQzLDYuOThaIi8+CiAgICAgICAgPHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjIuOTIsOTAuMTlMMi41OCw3MC4wNUMuODUsNjguMzQsMCw2Ni42MSwuMDMsNjQuODZzLjc3LTMuMzQsMi4yMy00Ljc4YzEuNTItMS41MSwzLjE2LTIuMjgsNC45Mi0yLjMxLDEuNzYtLjAzLDMuNSwuODEsNS4yNCwyLjUzbDIwLjgsMjAuNmMyLjM3LDIuMzQsNC42NCw0LDYuODQsNC45N3M0LjUsMS4xMiw2LjkyLC40NmMyLjQyLS42Niw1LjAyLTIuMzcsNy44LTUuMTMsMy44NC0zLjgsNS42Ny03LjM3LDUuNDgtMTAuNzEtLjE5LTMuMzQtMi4wOS02LjgtNS43MS0xMC4zOGwtMTEuMTctMTAuOTdjLTEuNzUtMS43My0yLjYxLTMuNDYtMi41OC01LjE4LC4wMy0xLjcyLC43OC0zLjMyLDIuMjYtNC43OCwxLjQ4LTEuNDYsMy4xLTIuMjMsNC44OC0yLjI5LDEuNzctLjA2LDMuNTMsLjc4LDUuMjgsMi41MWwxMC41MywxMC4zNGMzLjMxLDMuMjgsNS43LDYuMzgsNy4xNyw5LjMsMS40NywyLjkyLDIuMDIsNi4yMywxLjY0LDkuOTItLjM0LDMuMTYtMS4zNiw2LjIyLTMuMDQsOS4xOS0xLjY5LDIuOTctNC4xLDYtNy4yMyw5LjExLTMuNzMsMy43LTcuMjksNi41My0xMC42OSw4LjUtMy40LDEuOTctNi42OCwzLjA3LTkuODUsMy4zLTMuMTcsLjIzLTYuMy0uNC05LjQtMS44OS0zLjA5LTEuNDktNi4yNC0zLjgxLTkuNDMtNi45OFoiLz4KICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjM1LjYiIGN5PSIzMC43NSIgcj0iNy40NyIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K";
}
getDescription() {
return "UniSat Wallet";
}
getInstallUrl() {
return "https://chrome.google.com/webstore/detail/unisat/ppbibelpcjmhbdihakflkdcoccbgbkpo";
}
getTarget() {
return window.unisat;
}
async connect() {
let addresses = await this.getTarget().getAccounts();
if (!addresses || addresses.length === 0) {
await this.getTarget().requestAccounts();
return this.connect();
}
let publicKey = await this.getTarget().getPublicKey();
this.address = addresses.map((item) => new BitcoinAddress2(item));
this.currentAddress = this.address[0];
this.publicKey = publicKey;
return this.address;
}
async switchNetwork(network) {
return this.getTarget().switchNetwork(network);
}
getNetwork() {
return this.getTarget().getNetwork();
}
getSupportNetworks() {
return All_NETWORK;
}
onAccountsChanged(callback) {
this.getTarget().on("accountsChanged", callback);
}
removeAccountsChanged(callback) {
this.getTarget().removeListener("accountsChanged", callback);
}
onNetworkChanged(callback) {
this.getTarget().on("networkChanged", callback);
}
removeNetworkChanged(callback) {
this.getTarget().removeListener("networkChanged", callback);
}
async sign(msg) {
const msgStr = str("utf8", msg);
const sign = await this.getTarget().signMessage(msgStr);
return bytes("base64", sign).subarray(1);
}
sendBtc(input) {
return this.getTarget().sendBitcoin(input.toAddress, input.satoshis, input.options);
}
getBalance() {
return this.getTarget().getBalance();
}
};
// src/wallet/okx.ts
import { BitcoinAddress as BitcoinAddress3, str as str2, bytes as bytes2 } from "@roochnetwork/rooch-sdk";
var OkxWallet = class extends BitcoinWallet {
getName() {
return "OKX";
}
getIcon(_) {
return "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTAgMTUwIj48ZGVmcz48c3R5bGU+LmV7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iYiI+PGcgaWQ9ImMiPjxwYXRoIGlkPSJkIiBjbGFzcz0iZSIgZD0iTTAsMEgxNTBWMTUwSDBWMFoiLz48L2c+PC9nPjxwYXRoIGQ9Ik0xMy44MSwxMy41N3YxMjMuOThoMTIzLjk4VjEzLjU3SDEzLjgxWm0yNi44MiwyOC42NGMwLS44NywuNzEtMS41OCwxLjU4LTEuNThoMjAuM2MuODcsMCwxLjU4LC43MSwxLjU4LDEuNTh2MjAuM2MwLC44OC0uNzEsMS41OS0xLjU4LDEuNTloLTIwLjNjLS44NywwLTEuNTgtLjcxLTEuNTgtMS41OXYtMjAuM1ptMjMuNDYsNjYuN2MwLC44Ny0uNzEsMS41OC0xLjU4LDEuNThoLTIwLjNjLS44NywwLTEuNTgtLjcxLTEuNTgtMS41OHYtMjAuM2MwLS44OCwuNzEtMS41OSwxLjU4LTEuNTloMjAuM2MuODcsMCwxLjU4LC43MSwxLjU4LDEuNTl2MjAuM1ptMjEuODYtMjEuNjJoLTIwLjNjLS44NywwLTEuNTktLjcxLTEuNTktMS41OXYtMjAuM2MwLS44NywuNzEtMS41OSwxLjU5LTEuNTloMjAuM2MuODcsMCwxLjU5LC43MSwxLjU5LDEuNTl2MjAuM2MwLC44Ny0uNzEsMS41OS0xLjU5LDEuNTlabTI1LjA1LDIxLjYyYzAsLjg3LS43MSwxLjU4LTEuNTksMS41OGgtMjAuM2MtLjg3LDAtMS41OC0uNzEtMS41OC0xLjU4di0yMC4zYzAtLjg4LC43MS0xLjU5LDEuNTgtMS41OWgyMC4zYy44NywwLDEuNTksLjcxLDEuNTksMS41OXYyMC4zWm0wLTQ2LjQxYzAsLjg4LS43MSwxLjU5LTEuNTksMS41OWgtMjAuM2MtLjg3LDAtMS41OC0uNzEtMS41OC0xLjU5di0yMC4zYzAtLjg3LC43MS0xLjU4LDEuNTgtMS41OGgyMC4zYy44NywwLDEuNTksLjcxLDEuNTksMS41OHYyMC4zWiIvPjwvc3ZnPg==";
}
getDescription() {
return "OKX Wallet";
}
getInstallUrl() {
return "https://chromewebstore.google.com/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge";
}
async sign(msg) {
const msgStr = str2("utf8", msg);
const sign = await this.getTarget().signMessage(msgStr, {
from: this.currentAddress?.toStr()
});
return bytes2("base64", sign).subarray(1);
}
getTarget() {
return window.okxwallet?.bitcoin;
}
// BUG: If the wallet is locked, no reply will be received
// TODO: Use timeout fix ?
async connect() {
const timeoutPromise = new Promise(
(_, reject) => setTimeout(() => reject(new Error("Connection timed out")), 2e4)
);
const obj = await Promise.race([this.getTarget().connect(), timeoutPromise]);
this.currentAddress = new BitcoinAddress3(obj.address);
this.publicKey = obj.compressedPublicKey !== "" ? obj.compressedPublicKey : obj.publicKey;
this.address = [this.currentAddress];
return this.address;
}
switchNetwork(_) {
throw Error("okx not support switch network!");
}
getNetwork() {
return this.getTarget().getNetwork();
}
getSupportNetworks() {
return ["livenet"];
}
onAccountsChanged(callback) {
this.getTarget().on("accountsChanged", callback);
}
removeAccountsChanged(callback) {
this.getTarget().removeListener("accountsChanged", callback);
}
onNetworkChanged(callback) {
this.getTarget().on("networkChanged", callback);
}
removeNetworkChanged(callback) {
this.getTarget().removeListener("networkChanged", callback);
}
// TODO: okx not support test btc
sendBtc(input) {
return this.getTarget().sendBitcoin(input.toAddress, input.satoshis, input.options);
}
getBalance() {
return this.getTarget().getBalance();
}
};
// src/wallet/onekey.ts
import { BitcoinAddress as BitcoinAddress4, str as str3, bytes as bytes3 } from "@roochnetwork/rooch-sdk";
var OnekeyWallet = class extends BitcoinWallet {
getName() {
return "OneKey";
}
getIcon(theme) {
if (theme === "dark") {
return "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIgMTQ0QzEyMS43MDYgMTQ0IDE0NCAxMjEuNzA2IDE0NCA3MkMxNDQgMjIuMjk0NCAxMjEuNzA2IDAgNzIgMEMyMi4yOTQ0IDAgMCAyMi4yOTQ0IDAgNzJDMCAxMjEuNzA2IDIyLjI5NDQgMTQ0IDcyIDE0NFpNNTguNDc1MyAzMC41MzA1SDc4LjUwNTNWNjMuNTM4MUg2Ni4wODY1VjQxLjE1NjJINTQuOTYxM0w1OC40NzUzIDMwLjUzMDVaTTcyLjAwMDQgMTEzLjQ2OUM4NC42MTY0IDExMy40NjkgOTQuODQzNyAxMDMuMjQyIDk0Ljg0MzcgOTAuNjI2MUM5NC44NDM3IDc4LjAxMDEgODQuNjE2NCA2Ny43ODI4IDcyLjAwMDQgNjcuNzgyOEM1OS4zODQ0IDY3Ljc4MjggNDkuMTU3MSA3OC4wMTAxIDQ5LjE1NzEgOTAuNjI2MUM0OS4xNTcxIDEwMy4yNDIgNTkuMzg0NCAxMTMuNDY5IDcyLjAwMDQgMTEzLjQ2OVpNNzIuMDAwNCAxMDMuMDk5Qzc4Ljg4ODkgMTAzLjA5OSA4NC40NzMxIDk3LjUxNDUgODQuNDczMSA5MC42MjZDODQuNDczMSA4My43Mzc1IDc4Ljg4ODkgNzguMTUzMyA3Mi4wMDA0IDc4LjE1MzNDNjUuMTExOSA3OC4xNTMzIDU5LjUyNzYgODMuNzM3NSA1OS41Mjc2IDkwLjYyNkM1OS41Mjc2IDk3LjUxNDUgNjUuMTExOSAxMDMuMDk5IDcyLjAwMDQgMTAzLjA5OVoiIGZpbGw9ImJsYWNrIiBzdHlsZT0iZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTsiLz4KPC9zdmc+Cg==";
}
return "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIgMTQ0QzEyMS43MDYgMTQ0IDE0NCAxMjEuNzA2IDE0NCA3MkMxNDQgMjIuMjk0NCAxMjEuNzA2IDAgNzIgMEMyMi4yOTQ0IDAgMCAyMi4yOTQ0IDAgNzJDMCAxMjEuNzA2IDIyLjI5NDQgMTQ0IDcyIDE0NFpNNTguNDc1MyAzMC41MzA1SDc4LjUwNTNWNjMuNTM4MUg2Ni4wODY1VjQxLjE1NjJINTQuOTYxM0w1OC40NzUzIDMwLjUzMDVaTTcyLjAwMDQgMTEzLjQ2OUM4NC42MTY0IDExMy40NjkgOTQuODQzNyAxMDMuMjQyIDk0Ljg0MzcgOTAuNjI2MUM5NC44NDM3IDc4LjAxMDEgODQuNjE2NCA2Ny43ODI4IDcyLjAwMDQgNjcuNzgyOEM1OS4zODQ0IDY3Ljc4MjggNDkuMTU3MSA3OC4wMTAxIDQ5LjE1NzEgOTAuNjI2MUM0OS4xNTcxIDEwMy4yNDIgNTkuMzg0NCAxMTMuNDY5IDcyLjAwMDQgMTEzLjQ2OVpNNzIuMDAwNCAxMDMuMDk5Qzc4Ljg4ODkgMTAzLjA5OSA4NC40NzMxIDk3LjUxNDUgODQuNDczMSA5MC42MjZDODQuNDczMSA4My43Mzc1IDc4Ljg4ODkgNzguMTUzMyA3Mi4wMDA0IDc4LjE1MzNDNjUuMTExOSA3OC4xNTMzIDU5LjUyNzYgODMuNzM3NSA1OS41Mjc2IDkwLjYyNkM1OS41Mjc2IDk3LjUxNDUgNjUuMTExOSAxMDMuMDk5IDcyLjAwMDQgMTAzLjA5OVoiIGZpbGw9IiM0NEQ2MkMiIHN0eWxlPSJmaWxsOiM0NEQ2MkM7ZmlsbDpjb2xvcihkaXNwbGF5LXAzIDAuMjY2NyAwLjgzOTIgMC4xNzI1KTtmaWxsLW9wYWNpdHk6MTsiLz4KPC9zdmc+Cg==";
}
getDescription() {
return "OneKey Wallet";
}
getInstallUrl() {
return "https://chromewebstore.google.com/detail/onekey/jnmbobjmhlngoefaiojfljckilhhlhcj";
}
async sign(msg) {
const msgStr = str3("utf8", msg);
const sign = await this.getTarget().signMessage(msgStr);
return bytes3("base64", sign).subarray(1);
}
getTarget() {
return window.$onekey?.btc;
}
async connect() {
let addresses = await this.getTarget().getAccounts();
if (!addresses || addresses.length === 0) {
await this.getTarget().requestAccounts();
return this.connect();
}
let publicKey = await this.getTarget().getPublicKey();
this.address = addresses.map((item) => new BitcoinAddress4(item));
this.currentAddress = this.address[0];
this.publicKey = publicKey;
return this.address;
}
// TODO: onekey provider switch api, But it doesn't work.
switchNetwork(_) {
throw Error("onekey not support switch network!");
}
getNetwork() {
return this.getTarget().getNetwork();
}
getSupportNetworks() {
return All_NETWORK;
}
onAccountsChanged(callback) {
this.getTarget().on("accountsChanged", callback);
}
removeAccountsChanged(callback) {
this.getTarget().removeListener("accountsChanged", callback);
}
onNetworkChanged(callback) {
this.getTarget().on("networkChanged", callback);
}
removeNetworkChanged(callback) {
this.getTarget().removeListener("networkChanged", callback);
}
sendBtc(input) {
return this.getTarget().sendBitcoin(input.toAddress, input.satoshis, input.options);
}
getBalance() {
return this.getTarget().getBalance();
}
};
// src/wallet/error.ts
var USER_REJECTED = 4001;
var NOT_SUPPORT_ADDRESS = 99991;
var AMOUNT_INVALID = 99999;
var WalletError = class extends Error {
constructor(code, msg) {
super(msg);
this.code = code;
}
};
export {
AMOUNT_INVALID,
All_NETWORK,
BitcoinWallet,
NOT_SUPPORT_ADDRESS,
OkxWallet,
OnekeyWallet,
USER_REJECTED,
UniSatWallet,
Wallet,
WalletError
};
//# sourceMappingURL=index.js.map