btc-wallet 0.5.6-beta → 0.5.7-beta
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/connector/xverse.d.ts +8 -1
- package/dist/index.js +69 -62
- package/dist/index.js.map +2 -2
- package/esm/index.js +69 -62
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/esm/index.js
CHANGED
@@ -651,16 +651,15 @@ var XverseConnector = class extends BaseConnector {
|
|
651
651
|
this.loadAccounts = (network) => __async(this, null, function* () {
|
652
652
|
const { AddressPurpose } = yield import("sats-connect");
|
653
653
|
const provider = this.getProvider();
|
654
|
-
if (!provider) {
|
655
|
-
throw new Error(`${this.metadata.name} is not install!`);
|
656
|
-
}
|
657
654
|
yield provider.request("wallet_requestPermissions", void 0);
|
658
655
|
const { result: walletType } = yield provider.request("wallet_getWalletType", void 0);
|
659
656
|
const { result } = yield provider.request("getAddresses", {
|
660
657
|
purposes: [AddressPurpose.Payment, AddressPurpose.Ordinals],
|
661
658
|
message: "Address for receiving Ordinals and payments"
|
662
659
|
});
|
663
|
-
const addresses = result.addresses.map((item) => __spreadProps(__spreadValues({}, item), {
|
660
|
+
const addresses = result.addresses.map((item) => __spreadProps(__spreadValues({}, item), {
|
661
|
+
walletType
|
662
|
+
}));
|
664
663
|
console.log("\u{1F680} ~ XverseConnector ~ loadAccounts ~ res:", addresses);
|
665
664
|
localStorage.setItem("btc-connect-xverse-addresses-" + network, JSON.stringify(addresses));
|
666
665
|
return addresses;
|
@@ -683,78 +682,76 @@ var XverseConnector = class extends BaseConnector {
|
|
683
682
|
}
|
684
683
|
requestAccounts() {
|
685
684
|
return __async(this, null, function* () {
|
686
|
-
if (isMobile()
|
687
|
-
|
688
|
-
|
685
|
+
if (isMobile()) {
|
686
|
+
try {
|
687
|
+
this.getProvider();
|
688
|
+
} catch (error) {
|
689
|
+
MobileWalletConnect.redirectToWallet(this.metadata.id);
|
690
|
+
return [];
|
691
|
+
}
|
689
692
|
}
|
690
693
|
const addresses = yield this.loadAccounts(__privateGet(this, _network));
|
691
694
|
return addresses.map((item) => item.address);
|
692
695
|
});
|
693
696
|
}
|
694
|
-
|
697
|
+
getAddresses() {
|
695
698
|
return __async(this, null, function* () {
|
696
|
-
if (!this.isReady()) {
|
697
|
-
throw new Error(`${this.metadata.name} is not install!`);
|
698
|
-
}
|
699
699
|
const data = localStorage.getItem("btc-connect-xverse-addresses-" + __privateGet(this, _network));
|
700
700
|
if (data) {
|
701
|
-
|
702
|
-
return addresses.map((item) => item.address);
|
703
|
-
} else {
|
704
|
-
return [];
|
701
|
+
return JSON.parse(data);
|
705
702
|
}
|
703
|
+
return [];
|
706
704
|
});
|
707
705
|
}
|
708
|
-
|
706
|
+
getCurrentAddress() {
|
709
707
|
return __async(this, null, function* () {
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
if (data) {
|
715
|
-
const addresses = JSON.parse(data);
|
716
|
-
return addresses[0].publicKey;
|
717
|
-
} else {
|
718
|
-
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!`);
|
719
712
|
}
|
713
|
+
return address;
|
720
714
|
});
|
721
715
|
}
|
722
|
-
|
716
|
+
getAccounts() {
|
723
717
|
return __async(this, null, function* () {
|
724
718
|
if (!this.isReady()) {
|
725
719
|
throw new Error(`${this.metadata.name} is not install!`);
|
726
720
|
}
|
727
|
-
const addresses = yield this.
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
reject({
|
746
|
-
code: 4001,
|
747
|
-
message: "User rejected the request."
|
748
|
-
});
|
749
|
-
}
|
750
|
-
};
|
751
|
-
signMessage(signMessageOptions).catch((e) => {
|
752
|
-
reject(e);
|
753
|
-
});
|
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"
|
754
739
|
});
|
755
|
-
const modifiedSig = Buffer.from(
|
756
|
-
|
757
|
-
|
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;
|
758
755
|
});
|
759
756
|
}
|
760
757
|
on(event, handler) {
|
@@ -764,9 +761,11 @@ var XverseConnector = class extends BaseConnector {
|
|
764
761
|
return __privateGet(this, _event).removeListener(event, handler);
|
765
762
|
}
|
766
763
|
getProvider() {
|
767
|
-
|
768
|
-
|
764
|
+
const provider = window.BitcoinProvider;
|
765
|
+
if (!provider) {
|
766
|
+
throw new Error(`${this.metadata.name} is not install!`);
|
769
767
|
}
|
768
|
+
return provider;
|
770
769
|
}
|
771
770
|
getNetwork() {
|
772
771
|
return __async(this, null, function* () {
|
@@ -784,9 +783,6 @@ var XverseConnector = class extends BaseConnector {
|
|
784
783
|
sendBitcoin(toAddress, satoshis) {
|
785
784
|
return __async(this, null, function* () {
|
786
785
|
const provider = this.getProvider();
|
787
|
-
if (!provider) {
|
788
|
-
throw new Error(`${this.metadata.name} is not install!`);
|
789
|
-
}
|
790
786
|
const { result } = yield provider.request("sendTransfer", {
|
791
787
|
recipients: [{ address: toAddress, amount: satoshis }]
|
792
788
|
});
|
@@ -3361,6 +3357,16 @@ function getCsnaAccountId(env) {
|
|
3361
3357
|
return csna;
|
3362
3358
|
});
|
3363
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
|
+
}
|
3364
3370
|
function executeBTCDepositAndAction(_0) {
|
3365
3371
|
return __async(this, arguments, function* ({
|
3366
3372
|
action,
|
@@ -3373,6 +3379,7 @@ function executeBTCDepositAndAction(_0) {
|
|
3373
3379
|
}) {
|
3374
3380
|
var _a;
|
3375
3381
|
try {
|
3382
|
+
checkDepositDisabledAddress();
|
3376
3383
|
const { getPublicKey } = getBtcProvider();
|
3377
3384
|
const config = yield getConfig(env);
|
3378
3385
|
const btcPublicKey = yield getPublicKey();
|
@@ -4429,7 +4436,7 @@ function setupBTCWallet({
|
|
4429
4436
|
|
4430
4437
|
// src/index.ts
|
4431
4438
|
var getVersion = () => {
|
4432
|
-
return "0.5.
|
4439
|
+
return "0.5.7-beta";
|
4433
4440
|
};
|
4434
4441
|
if (typeof window !== "undefined") {
|
4435
4442
|
window.__BTC_WALLET_VERSION = getVersion();
|