btc-wallet 0.5.5-beta → 0.5.7-beta
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/connector/xverse.d.ts +8 -1
- package/dist/index.js +80 -78
- package/dist/index.js.map +2 -2
- package/esm/index.js +80 -78
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/esm/index.js
CHANGED
@@ -649,26 +649,18 @@ var XverseConnector = class extends BaseConnector {
|
|
649
649
|
downloadUrl: "https://www.xverse.app"
|
650
650
|
};
|
651
651
|
this.loadAccounts = (network) => __async(this, null, function* () {
|
652
|
-
const {
|
653
|
-
const
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
type: network
|
660
|
-
}
|
661
|
-
},
|
662
|
-
onFinish: (response) => {
|
663
|
-
resolve(response.addresses);
|
664
|
-
},
|
665
|
-
onCancel: () => reject({
|
666
|
-
code: 4001,
|
667
|
-
message: "User rejected the request."
|
668
|
-
})
|
669
|
-
};
|
670
|
-
getAddress(getAddressOptions).catch((error) => reject(error));
|
652
|
+
const { AddressPurpose } = yield import("sats-connect");
|
653
|
+
const provider = this.getProvider();
|
654
|
+
yield provider.request("wallet_requestPermissions", void 0);
|
655
|
+
const { result: walletType } = yield provider.request("wallet_getWalletType", void 0);
|
656
|
+
const { result } = yield provider.request("getAddresses", {
|
657
|
+
purposes: [AddressPurpose.Payment, AddressPurpose.Ordinals],
|
658
|
+
message: "Address for receiving Ordinals and payments"
|
671
659
|
});
|
660
|
+
const addresses = result.addresses.map((item) => __spreadProps(__spreadValues({}, item), {
|
661
|
+
walletType
|
662
|
+
}));
|
663
|
+
console.log("\u{1F680} ~ XverseConnector ~ loadAccounts ~ res:", addresses);
|
672
664
|
localStorage.setItem("btc-connect-xverse-addresses-" + network, JSON.stringify(addresses));
|
673
665
|
return addresses;
|
674
666
|
});
|
@@ -690,78 +682,76 @@ var XverseConnector = class extends BaseConnector {
|
|
690
682
|
}
|
691
683
|
requestAccounts() {
|
692
684
|
return __async(this, null, function* () {
|
693
|
-
if (isMobile()
|
694
|
-
|
695
|
-
|
685
|
+
if (isMobile()) {
|
686
|
+
try {
|
687
|
+
this.getProvider();
|
688
|
+
} catch (error) {
|
689
|
+
MobileWalletConnect.redirectToWallet(this.metadata.id);
|
690
|
+
return [];
|
691
|
+
}
|
696
692
|
}
|
697
693
|
const addresses = yield this.loadAccounts(__privateGet(this, _network));
|
698
694
|
return addresses.map((item) => item.address);
|
699
695
|
});
|
700
696
|
}
|
701
|
-
|
697
|
+
getAddresses() {
|
702
698
|
return __async(this, null, function* () {
|
703
|
-
if (!this.isReady()) {
|
704
|
-
throw new Error(`${this.metadata.name} is not install!`);
|
705
|
-
}
|
706
699
|
const data = localStorage.getItem("btc-connect-xverse-addresses-" + __privateGet(this, _network));
|
707
700
|
if (data) {
|
708
|
-
|
709
|
-
return addresses.map((item) => item.address);
|
710
|
-
} else {
|
711
|
-
return [];
|
701
|
+
return JSON.parse(data);
|
712
702
|
}
|
703
|
+
return [];
|
713
704
|
});
|
714
705
|
}
|
715
|
-
|
706
|
+
getCurrentAddress() {
|
716
707
|
return __async(this, null, function* () {
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
if (data) {
|
722
|
-
const addresses = JSON.parse(data);
|
723
|
-
return addresses[0].publicKey;
|
724
|
-
} else {
|
725
|
-
return "";
|
708
|
+
const addresses = yield this.getAddresses();
|
709
|
+
const address = addresses == null ? void 0 : addresses[0];
|
710
|
+
if (!address) {
|
711
|
+
throw new Error(`${this.metadata.name} not connected!`);
|
726
712
|
}
|
713
|
+
return address;
|
727
714
|
});
|
728
715
|
}
|
729
|
-
|
716
|
+
getAccounts() {
|
730
717
|
return __async(this, null, function* () {
|
731
718
|
if (!this.isReady()) {
|
732
719
|
throw new Error(`${this.metadata.name} is not install!`);
|
733
720
|
}
|
734
|
-
const addresses = yield this.
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
reject({
|
753
|
-
code: 4001,
|
754
|
-
message: "User rejected the request."
|
755
|
-
});
|
756
|
-
}
|
757
|
-
};
|
758
|
-
signMessage(signMessageOptions).catch((e) => {
|
759
|
-
reject(e);
|
760
|
-
});
|
721
|
+
const addresses = yield this.getAddresses();
|
722
|
+
return addresses.map((item) => item.address);
|
723
|
+
});
|
724
|
+
}
|
725
|
+
getPublicKey() {
|
726
|
+
return __async(this, null, function* () {
|
727
|
+
const address = yield this.getCurrentAddress();
|
728
|
+
return address.publicKey;
|
729
|
+
});
|
730
|
+
}
|
731
|
+
signMessage(signStr) {
|
732
|
+
return __async(this, null, function* () {
|
733
|
+
const address = yield this.getCurrentAddress();
|
734
|
+
const provider = this.getProvider();
|
735
|
+
const { result } = yield provider.request("signMessage", {
|
736
|
+
address: address.address,
|
737
|
+
message: signStr,
|
738
|
+
protocol: "ECDSA"
|
761
739
|
});
|
762
|
-
const modifiedSig = Buffer.from(
|
763
|
-
|
764
|
-
|
740
|
+
const modifiedSig = Buffer.from(result.signature, "base64");
|
741
|
+
console.log("xverse walletType", address.walletType);
|
742
|
+
console.log("xverse raw sig", result.signature, modifiedSig.toString("base64"));
|
743
|
+
if (address.walletType === "ledger") {
|
744
|
+
if (address.addressType === "p2wpkh") {
|
745
|
+
modifiedSig[0] = 31 + (modifiedSig[0] - 39);
|
746
|
+
} else if (address.addressType === "p2sh") {
|
747
|
+
modifiedSig[0] = 31 + (modifiedSig[0] - 35);
|
748
|
+
}
|
749
|
+
} else {
|
750
|
+
modifiedSig[0] = 31 + (modifiedSig[0] - 31) % 4;
|
751
|
+
}
|
752
|
+
const sig = modifiedSig.toString("base64");
|
753
|
+
console.log("xverse modified sig", sig);
|
754
|
+
return sig;
|
765
755
|
});
|
766
756
|
}
|
767
757
|
on(event, handler) {
|
@@ -771,9 +761,11 @@ var XverseConnector = class extends BaseConnector {
|
|
771
761
|
return __privateGet(this, _event).removeListener(event, handler);
|
772
762
|
}
|
773
763
|
getProvider() {
|
774
|
-
|
775
|
-
|
764
|
+
const provider = window.BitcoinProvider;
|
765
|
+
if (!provider) {
|
766
|
+
throw new Error(`${this.metadata.name} is not install!`);
|
776
767
|
}
|
768
|
+
return provider;
|
777
769
|
}
|
778
770
|
getNetwork() {
|
779
771
|
return __async(this, null, function* () {
|
@@ -791,9 +783,6 @@ var XverseConnector = class extends BaseConnector {
|
|
791
783
|
sendBitcoin(toAddress, satoshis) {
|
792
784
|
return __async(this, null, function* () {
|
793
785
|
const provider = this.getProvider();
|
794
|
-
if (!provider) {
|
795
|
-
throw new Error(`${this.metadata.name} is not install!`);
|
796
|
-
}
|
797
786
|
const { result } = yield provider.request("sendTransfer", {
|
798
787
|
recipients: [{ address: toAddress, amount: satoshis }]
|
799
788
|
});
|
@@ -3368,6 +3357,16 @@ function getCsnaAccountId(env) {
|
|
3368
3357
|
return csna;
|
3369
3358
|
});
|
3370
3359
|
}
|
3360
|
+
function checkDepositDisabledAddress() {
|
3361
|
+
const data = localStorage.getItem("btc-connect-xverse-addresses-Mainnet");
|
3362
|
+
if (!data)
|
3363
|
+
return;
|
3364
|
+
const addresses = JSON.parse(data);
|
3365
|
+
const address = addresses == null ? void 0 : addresses[0];
|
3366
|
+
if (address.walletType === "ledger" && (address.addressType !== "p2wpkh" || address.addressType !== "p2sh")) {
|
3367
|
+
throw new Error("Ledger is only supported for p2wpkh and p2sh address");
|
3368
|
+
}
|
3369
|
+
}
|
3371
3370
|
function executeBTCDepositAndAction(_0) {
|
3372
3371
|
return __async(this, arguments, function* ({
|
3373
3372
|
action,
|
@@ -3380,6 +3379,7 @@ function executeBTCDepositAndAction(_0) {
|
|
3380
3379
|
}) {
|
3381
3380
|
var _a;
|
3382
3381
|
try {
|
3382
|
+
checkDepositDisabledAddress();
|
3383
3383
|
const { getPublicKey } = getBtcProvider();
|
3384
3384
|
const config = yield getConfig(env);
|
3385
3385
|
const btcPublicKey = yield getPublicKey();
|
@@ -3822,7 +3822,9 @@ function setupButtonClickHandler(button, iframe, wallet, originalWallet) {
|
|
3822
3822
|
iframe.src = iframeSrc.toString();
|
3823
3823
|
const actions = {
|
3824
3824
|
signAndSendTransaction: wallet.signAndSendTransaction,
|
3825
|
-
|
3825
|
+
signAndSendTransactions: wallet.signAndSendTransactions,
|
3826
|
+
executeBTCDepositAndAction,
|
3827
|
+
getWithdrawTransaction
|
3826
3828
|
};
|
3827
3829
|
window.addEventListener("message", (event) => __async(this, null, function* () {
|
3828
3830
|
var _a2, _b;
|
@@ -4434,7 +4436,7 @@ function setupBTCWallet({
|
|
4434
4436
|
|
4435
4437
|
// src/index.ts
|
4436
4438
|
var getVersion = () => {
|
4437
|
-
return "0.5.
|
4439
|
+
return "0.5.7-beta";
|
4438
4440
|
};
|
4439
4441
|
if (typeof window !== "undefined") {
|
4440
4442
|
window.__BTC_WALLET_VERSION = getVersion();
|