emblem-vault-sdk 1.9.12 → 1.9.13
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/bundle.js +74 -43
- package/dist/index.js +6 -40
- package/dist/utils.js +66 -1
- package/docs/bundle.js +74 -43
- package/package.json +1 -1
- package/src/index.ts +9 -46
- package/src/utils.ts +72 -0
- package/types/index.d.ts +1 -15
- package/types/utils.d.ts +8 -0
package/dist/bundle.js
CHANGED
|
@@ -709475,9 +709475,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
709475
709475
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
709476
709476
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
709477
709477
|
const utils_1 = require("./utils");
|
|
709478
|
-
const sats_connect_1 = require("sats-connect");
|
|
709479
709478
|
const derive_1 = require("./derive");
|
|
709480
|
-
const SDK_VERSION = '1.9.
|
|
709479
|
+
const SDK_VERSION = '1.9.13';
|
|
709481
709480
|
class EmblemVaultSDK {
|
|
709482
709481
|
constructor(apiKey, baseUrl) {
|
|
709483
709482
|
this.apiKey = apiKey;
|
|
@@ -709961,40 +709960,10 @@ class EmblemVaultSDK {
|
|
|
709961
709960
|
return results;
|
|
709962
709961
|
});
|
|
709963
709962
|
}
|
|
709964
|
-
// BTC
|
|
709965
|
-
|
|
709966
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
709967
|
-
return new Promise((resolve, reject) => {
|
|
709968
|
-
(0, sats_connect_1.getAddress)({
|
|
709969
|
-
payload: {
|
|
709970
|
-
purposes: [
|
|
709971
|
-
sats_connect_1.AddressPurpose.Ordinals,
|
|
709972
|
-
sats_connect_1.AddressPurpose.Payment,
|
|
709973
|
-
],
|
|
709974
|
-
message: "My App's Name",
|
|
709975
|
-
network: {
|
|
709976
|
-
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
709977
|
-
},
|
|
709978
|
-
},
|
|
709979
|
-
onFinish: (response) => {
|
|
709980
|
-
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
709981
|
-
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
709982
|
-
resolve({
|
|
709983
|
-
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
709984
|
-
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
709985
|
-
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
709986
|
-
});
|
|
709987
|
-
},
|
|
709988
|
-
onCancel: () => {
|
|
709989
|
-
reject("Request canceled");
|
|
709990
|
-
},
|
|
709991
|
-
});
|
|
709992
|
-
});
|
|
709993
|
-
});
|
|
709994
|
-
}
|
|
709995
|
-
generatePSBT(phrase, satsPerByte = 20) {
|
|
709963
|
+
// BTC
|
|
709964
|
+
sweepVaultUsingPhrase(phrase, satsPerByte = 20, broadcast = false) {
|
|
709996
709965
|
return __awaiter(this, void 0, void 0, function* () {
|
|
709997
|
-
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield
|
|
709966
|
+
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield (0, utils_1.getSatsConnectAddress)();
|
|
709998
709967
|
// change this to mainnet
|
|
709999
709968
|
if (window.bitcoin) {
|
|
710000
709969
|
let bitcoin = window.bitcoin;
|
|
@@ -710069,14 +710038,11 @@ class EmblemVaultSDK {
|
|
|
710069
710038
|
// send this to wallet to sign all indexes except the first one
|
|
710070
710039
|
const psbtBase64 = psbt.toBase64();
|
|
710071
710040
|
console.log(psbtBase64);
|
|
710041
|
+
let signedPsbt = yield (0, utils_1.signPSBT)(psbtBase64, paymentAddress, [...Array(paymentUtxos.length).keys()].map(i => i + taprootUtxos.length), broadcast);
|
|
710042
|
+
return signedPsbt;
|
|
710072
710043
|
}
|
|
710073
710044
|
});
|
|
710074
710045
|
}
|
|
710075
|
-
getTaprootAddressFromMnemonic(phrase) {
|
|
710076
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
710077
|
-
return (0, derive_1.generateTaprootAddressFromMnemonic)(phrase);
|
|
710078
|
-
});
|
|
710079
|
-
}
|
|
710080
710046
|
}
|
|
710081
710047
|
if (typeof window !== 'undefined') {
|
|
710082
710048
|
window.EmblemVaultSDK = EmblemVaultSDK;
|
|
@@ -710084,7 +710050,7 @@ if (typeof window !== 'undefined') {
|
|
|
710084
710050
|
exports.default = EmblemVaultSDK;
|
|
710085
710051
|
|
|
710086
710052
|
}).call(this)}).call(this,require("buffer").Buffer)
|
|
710087
|
-
},{"./derive":3,"./utils":5,"@ethersproject/bignumber":58,"buffer":203,"
|
|
710053
|
+
},{"./derive":3,"./utils":5,"@ethersproject/bignumber":58,"buffer":203,"web3":559}],5:[function(require,module,exports){
|
|
710088
710054
|
"use strict";
|
|
710089
710055
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
710090
710056
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -710099,10 +710065,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
710099
710065
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
710100
710066
|
};
|
|
710101
710067
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
710102
|
-
exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
710068
|
+
exports.signPSBT = exports.getSatsConnectAddress = exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
710103
710069
|
const crypto_js_1 = __importDefault(require("crypto-js"));
|
|
710104
710070
|
const metadata_json_1 = __importDefault(require("./curated/metadata.json"));
|
|
710105
710071
|
const abi_json_1 = __importDefault(require("./abi/abi.json"));
|
|
710072
|
+
const sats_connect_1 = require("sats-connect");
|
|
710106
710073
|
// import { phrasePathToKey } from './derive'
|
|
710107
710074
|
exports.NFT_DATA = metadata_json_1.default;
|
|
710108
710075
|
// PROJECTS_DATA is list of projects i.e. curated collection names
|
|
@@ -710811,8 +710778,72 @@ function decryptKeys(vaultCiphertextV2, keys, addresses) {
|
|
|
710811
710778
|
});
|
|
710812
710779
|
}
|
|
710813
710780
|
exports.decryptKeys = decryptKeys;
|
|
710781
|
+
function getSatsConnectAddress() {
|
|
710782
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
710783
|
+
return new Promise((resolve, reject) => {
|
|
710784
|
+
(0, sats_connect_1.getAddress)({
|
|
710785
|
+
payload: {
|
|
710786
|
+
purposes: [
|
|
710787
|
+
sats_connect_1.AddressPurpose.Ordinals,
|
|
710788
|
+
sats_connect_1.AddressPurpose.Payment,
|
|
710789
|
+
],
|
|
710790
|
+
message: "My App's Name",
|
|
710791
|
+
network: {
|
|
710792
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
710793
|
+
},
|
|
710794
|
+
},
|
|
710795
|
+
onFinish: (response) => {
|
|
710796
|
+
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
710797
|
+
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
710798
|
+
resolve({
|
|
710799
|
+
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
710800
|
+
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
710801
|
+
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
710802
|
+
});
|
|
710803
|
+
},
|
|
710804
|
+
onCancel: () => {
|
|
710805
|
+
reject("Request canceled");
|
|
710806
|
+
},
|
|
710807
|
+
});
|
|
710808
|
+
});
|
|
710809
|
+
});
|
|
710810
|
+
}
|
|
710811
|
+
exports.getSatsConnectAddress = getSatsConnectAddress;
|
|
710812
|
+
function signPSBT(psbtBase64, paymentAddress, indexes, broadcast = false) {
|
|
710813
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
710814
|
+
return new Promise((resolve, reject) => {
|
|
710815
|
+
(0, sats_connect_1.signTransaction)({
|
|
710816
|
+
payload: {
|
|
710817
|
+
network: {
|
|
710818
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
710819
|
+
},
|
|
710820
|
+
message: "Sign Transaction",
|
|
710821
|
+
psbtBase64,
|
|
710822
|
+
broadcast: broadcast, // or false if you want to broadcast yourself
|
|
710823
|
+
inputsToSign: [
|
|
710824
|
+
{
|
|
710825
|
+
address: paymentAddress,
|
|
710826
|
+
signingIndexes: indexes, // this needs to match the number of inputs coming from the payment address
|
|
710827
|
+
sigHash: 1,
|
|
710828
|
+
},
|
|
710829
|
+
],
|
|
710830
|
+
},
|
|
710831
|
+
onFinish: (response) => {
|
|
710832
|
+
console.log('PSBT', response.psbtBase64);
|
|
710833
|
+
console.log('txid', response.txid); // only populated if broadcast is true
|
|
710834
|
+
resolve(response);
|
|
710835
|
+
},
|
|
710836
|
+
onCancel: () => {
|
|
710837
|
+
alert("Canceled");
|
|
710838
|
+
reject(new Error("Transaction cancelled"));
|
|
710839
|
+
},
|
|
710840
|
+
});
|
|
710841
|
+
});
|
|
710842
|
+
});
|
|
710843
|
+
}
|
|
710844
|
+
exports.signPSBT = signPSBT;
|
|
710814
710845
|
|
|
710815
|
-
},{"./abi/abi.json":1,"./curated/metadata.json":2,"@toruslabs/fetch-node-details":113,"@toruslabs/torus.js":115,"crypto-js":230}],6:[function(require,module,exports){
|
|
710846
|
+
},{"./abi/abi.json":1,"./curated/metadata.json":2,"@toruslabs/fetch-node-details":113,"@toruslabs/torus.js":115,"crypto-js":230,"sats-connect":457}],6:[function(require,module,exports){
|
|
710816
710847
|
var toPropertyKey = require("./toPropertyKey.js");
|
|
710817
710848
|
function _defineProperty(obj, key, value) {
|
|
710818
710849
|
key = toPropertyKey(key);
|
package/dist/index.js
CHANGED
|
@@ -34,9 +34,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
36
36
|
const utils_1 = require("./utils");
|
|
37
|
-
const sats_connect_1 = require("sats-connect");
|
|
38
37
|
const derive_1 = require("./derive");
|
|
39
|
-
const SDK_VERSION = '1.9.
|
|
38
|
+
const SDK_VERSION = '1.9.13';
|
|
40
39
|
class EmblemVaultSDK {
|
|
41
40
|
constructor(apiKey, baseUrl) {
|
|
42
41
|
this.apiKey = apiKey;
|
|
@@ -520,40 +519,10 @@ class EmblemVaultSDK {
|
|
|
520
519
|
return results;
|
|
521
520
|
});
|
|
522
521
|
}
|
|
523
|
-
// BTC
|
|
524
|
-
|
|
522
|
+
// BTC
|
|
523
|
+
sweepVaultUsingPhrase(phrase, satsPerByte = 20, broadcast = false) {
|
|
525
524
|
return __awaiter(this, void 0, void 0, function* () {
|
|
526
|
-
|
|
527
|
-
(0, sats_connect_1.getAddress)({
|
|
528
|
-
payload: {
|
|
529
|
-
purposes: [
|
|
530
|
-
sats_connect_1.AddressPurpose.Ordinals,
|
|
531
|
-
sats_connect_1.AddressPurpose.Payment,
|
|
532
|
-
],
|
|
533
|
-
message: "My App's Name",
|
|
534
|
-
network: {
|
|
535
|
-
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
536
|
-
},
|
|
537
|
-
},
|
|
538
|
-
onFinish: (response) => {
|
|
539
|
-
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
540
|
-
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
541
|
-
resolve({
|
|
542
|
-
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
543
|
-
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
544
|
-
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
545
|
-
});
|
|
546
|
-
},
|
|
547
|
-
onCancel: () => {
|
|
548
|
-
reject("Request canceled");
|
|
549
|
-
},
|
|
550
|
-
});
|
|
551
|
-
});
|
|
552
|
-
});
|
|
553
|
-
}
|
|
554
|
-
generatePSBT(phrase, satsPerByte = 20) {
|
|
555
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
556
|
-
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield this.getSatsConnectAddress();
|
|
525
|
+
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield (0, utils_1.getSatsConnectAddress)();
|
|
557
526
|
// change this to mainnet
|
|
558
527
|
if (window.bitcoin) {
|
|
559
528
|
let bitcoin = window.bitcoin;
|
|
@@ -628,14 +597,11 @@ class EmblemVaultSDK {
|
|
|
628
597
|
// send this to wallet to sign all indexes except the first one
|
|
629
598
|
const psbtBase64 = psbt.toBase64();
|
|
630
599
|
console.log(psbtBase64);
|
|
600
|
+
let signedPsbt = yield (0, utils_1.signPSBT)(psbtBase64, paymentAddress, [...Array(paymentUtxos.length).keys()].map(i => i + taprootUtxos.length), broadcast);
|
|
601
|
+
return signedPsbt;
|
|
631
602
|
}
|
|
632
603
|
});
|
|
633
604
|
}
|
|
634
|
-
getTaprootAddressFromMnemonic(phrase) {
|
|
635
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
636
|
-
return (0, derive_1.generateTaprootAddressFromMnemonic)(phrase);
|
|
637
|
-
});
|
|
638
|
-
}
|
|
639
605
|
}
|
|
640
606
|
if (typeof window !== 'undefined') {
|
|
641
607
|
window.EmblemVaultSDK = EmblemVaultSDK;
|
package/dist/utils.js
CHANGED
|
@@ -12,10 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
15
|
+
exports.signPSBT = exports.getSatsConnectAddress = exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
16
16
|
const crypto_js_1 = __importDefault(require("crypto-js"));
|
|
17
17
|
const metadata_json_1 = __importDefault(require("./curated/metadata.json"));
|
|
18
18
|
const abi_json_1 = __importDefault(require("./abi/abi.json"));
|
|
19
|
+
const sats_connect_1 = require("sats-connect");
|
|
19
20
|
// import { phrasePathToKey } from './derive'
|
|
20
21
|
exports.NFT_DATA = metadata_json_1.default;
|
|
21
22
|
// PROJECTS_DATA is list of projects i.e. curated collection names
|
|
@@ -724,3 +725,67 @@ function decryptKeys(vaultCiphertextV2, keys, addresses) {
|
|
|
724
725
|
});
|
|
725
726
|
}
|
|
726
727
|
exports.decryptKeys = decryptKeys;
|
|
728
|
+
function getSatsConnectAddress() {
|
|
729
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
730
|
+
return new Promise((resolve, reject) => {
|
|
731
|
+
(0, sats_connect_1.getAddress)({
|
|
732
|
+
payload: {
|
|
733
|
+
purposes: [
|
|
734
|
+
sats_connect_1.AddressPurpose.Ordinals,
|
|
735
|
+
sats_connect_1.AddressPurpose.Payment,
|
|
736
|
+
],
|
|
737
|
+
message: "My App's Name",
|
|
738
|
+
network: {
|
|
739
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
740
|
+
},
|
|
741
|
+
},
|
|
742
|
+
onFinish: (response) => {
|
|
743
|
+
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
744
|
+
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
745
|
+
resolve({
|
|
746
|
+
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
747
|
+
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
748
|
+
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
749
|
+
});
|
|
750
|
+
},
|
|
751
|
+
onCancel: () => {
|
|
752
|
+
reject("Request canceled");
|
|
753
|
+
},
|
|
754
|
+
});
|
|
755
|
+
});
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
exports.getSatsConnectAddress = getSatsConnectAddress;
|
|
759
|
+
function signPSBT(psbtBase64, paymentAddress, indexes, broadcast = false) {
|
|
760
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
761
|
+
return new Promise((resolve, reject) => {
|
|
762
|
+
(0, sats_connect_1.signTransaction)({
|
|
763
|
+
payload: {
|
|
764
|
+
network: {
|
|
765
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
766
|
+
},
|
|
767
|
+
message: "Sign Transaction",
|
|
768
|
+
psbtBase64,
|
|
769
|
+
broadcast: broadcast, // or false if you want to broadcast yourself
|
|
770
|
+
inputsToSign: [
|
|
771
|
+
{
|
|
772
|
+
address: paymentAddress,
|
|
773
|
+
signingIndexes: indexes, // this needs to match the number of inputs coming from the payment address
|
|
774
|
+
sigHash: 1,
|
|
775
|
+
},
|
|
776
|
+
],
|
|
777
|
+
},
|
|
778
|
+
onFinish: (response) => {
|
|
779
|
+
console.log('PSBT', response.psbtBase64);
|
|
780
|
+
console.log('txid', response.txid); // only populated if broadcast is true
|
|
781
|
+
resolve(response);
|
|
782
|
+
},
|
|
783
|
+
onCancel: () => {
|
|
784
|
+
alert("Canceled");
|
|
785
|
+
reject(new Error("Transaction cancelled"));
|
|
786
|
+
},
|
|
787
|
+
});
|
|
788
|
+
});
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
exports.signPSBT = signPSBT;
|
package/docs/bundle.js
CHANGED
|
@@ -709475,9 +709475,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
709475
709475
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
709476
709476
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
709477
709477
|
const utils_1 = require("./utils");
|
|
709478
|
-
const sats_connect_1 = require("sats-connect");
|
|
709479
709478
|
const derive_1 = require("./derive");
|
|
709480
|
-
const SDK_VERSION = '1.9.
|
|
709479
|
+
const SDK_VERSION = '1.9.13';
|
|
709481
709480
|
class EmblemVaultSDK {
|
|
709482
709481
|
constructor(apiKey, baseUrl) {
|
|
709483
709482
|
this.apiKey = apiKey;
|
|
@@ -709961,40 +709960,10 @@ class EmblemVaultSDK {
|
|
|
709961
709960
|
return results;
|
|
709962
709961
|
});
|
|
709963
709962
|
}
|
|
709964
|
-
// BTC
|
|
709965
|
-
|
|
709966
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
709967
|
-
return new Promise((resolve, reject) => {
|
|
709968
|
-
(0, sats_connect_1.getAddress)({
|
|
709969
|
-
payload: {
|
|
709970
|
-
purposes: [
|
|
709971
|
-
sats_connect_1.AddressPurpose.Ordinals,
|
|
709972
|
-
sats_connect_1.AddressPurpose.Payment,
|
|
709973
|
-
],
|
|
709974
|
-
message: "My App's Name",
|
|
709975
|
-
network: {
|
|
709976
|
-
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
709977
|
-
},
|
|
709978
|
-
},
|
|
709979
|
-
onFinish: (response) => {
|
|
709980
|
-
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
709981
|
-
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
709982
|
-
resolve({
|
|
709983
|
-
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
709984
|
-
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
709985
|
-
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
709986
|
-
});
|
|
709987
|
-
},
|
|
709988
|
-
onCancel: () => {
|
|
709989
|
-
reject("Request canceled");
|
|
709990
|
-
},
|
|
709991
|
-
});
|
|
709992
|
-
});
|
|
709993
|
-
});
|
|
709994
|
-
}
|
|
709995
|
-
generatePSBT(phrase, satsPerByte = 20) {
|
|
709963
|
+
// BTC
|
|
709964
|
+
sweepVaultUsingPhrase(phrase, satsPerByte = 20, broadcast = false) {
|
|
709996
709965
|
return __awaiter(this, void 0, void 0, function* () {
|
|
709997
|
-
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield
|
|
709966
|
+
const { paymentAddress, paymentPublicKey, ordinalsAddress } = yield (0, utils_1.getSatsConnectAddress)();
|
|
709998
709967
|
// change this to mainnet
|
|
709999
709968
|
if (window.bitcoin) {
|
|
710000
709969
|
let bitcoin = window.bitcoin;
|
|
@@ -710069,14 +710038,11 @@ class EmblemVaultSDK {
|
|
|
710069
710038
|
// send this to wallet to sign all indexes except the first one
|
|
710070
710039
|
const psbtBase64 = psbt.toBase64();
|
|
710071
710040
|
console.log(psbtBase64);
|
|
710041
|
+
let signedPsbt = yield (0, utils_1.signPSBT)(psbtBase64, paymentAddress, [...Array(paymentUtxos.length).keys()].map(i => i + taprootUtxos.length), broadcast);
|
|
710042
|
+
return signedPsbt;
|
|
710072
710043
|
}
|
|
710073
710044
|
});
|
|
710074
710045
|
}
|
|
710075
|
-
getTaprootAddressFromMnemonic(phrase) {
|
|
710076
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
710077
|
-
return (0, derive_1.generateTaprootAddressFromMnemonic)(phrase);
|
|
710078
|
-
});
|
|
710079
|
-
}
|
|
710080
710046
|
}
|
|
710081
710047
|
if (typeof window !== 'undefined') {
|
|
710082
710048
|
window.EmblemVaultSDK = EmblemVaultSDK;
|
|
@@ -710084,7 +710050,7 @@ if (typeof window !== 'undefined') {
|
|
|
710084
710050
|
exports.default = EmblemVaultSDK;
|
|
710085
710051
|
|
|
710086
710052
|
}).call(this)}).call(this,require("buffer").Buffer)
|
|
710087
|
-
},{"./derive":3,"./utils":5,"@ethersproject/bignumber":58,"buffer":203,"
|
|
710053
|
+
},{"./derive":3,"./utils":5,"@ethersproject/bignumber":58,"buffer":203,"web3":559}],5:[function(require,module,exports){
|
|
710088
710054
|
"use strict";
|
|
710089
710055
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
710090
710056
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -710099,10 +710065,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
710099
710065
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
710100
710066
|
};
|
|
710101
710067
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
710102
|
-
exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
710068
|
+
exports.signPSBT = exports.getSatsConnectAddress = exports.decryptKeys = exports.getTorusKeys = exports.COIN_TO_NETWORK = exports.checkContentType = exports.getLegacyContract = exports.getHandlerContract = exports.getQuoteContractObject = exports.genericGuard = exports.templateGuard = exports.generateTemplate = exports.generateImageTemplate = exports.generateAttributeTemplate = exports.fetchData = exports.metadataAllProjects = exports.metadataObj2Arr = exports.evaluateFacts = exports.pad = exports.NFT_DATA = void 0;
|
|
710103
710069
|
const crypto_js_1 = __importDefault(require("crypto-js"));
|
|
710104
710070
|
const metadata_json_1 = __importDefault(require("./curated/metadata.json"));
|
|
710105
710071
|
const abi_json_1 = __importDefault(require("./abi/abi.json"));
|
|
710072
|
+
const sats_connect_1 = require("sats-connect");
|
|
710106
710073
|
// import { phrasePathToKey } from './derive'
|
|
710107
710074
|
exports.NFT_DATA = metadata_json_1.default;
|
|
710108
710075
|
// PROJECTS_DATA is list of projects i.e. curated collection names
|
|
@@ -710811,8 +710778,72 @@ function decryptKeys(vaultCiphertextV2, keys, addresses) {
|
|
|
710811
710778
|
});
|
|
710812
710779
|
}
|
|
710813
710780
|
exports.decryptKeys = decryptKeys;
|
|
710781
|
+
function getSatsConnectAddress() {
|
|
710782
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
710783
|
+
return new Promise((resolve, reject) => {
|
|
710784
|
+
(0, sats_connect_1.getAddress)({
|
|
710785
|
+
payload: {
|
|
710786
|
+
purposes: [
|
|
710787
|
+
sats_connect_1.AddressPurpose.Ordinals,
|
|
710788
|
+
sats_connect_1.AddressPurpose.Payment,
|
|
710789
|
+
],
|
|
710790
|
+
message: "My App's Name",
|
|
710791
|
+
network: {
|
|
710792
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
710793
|
+
},
|
|
710794
|
+
},
|
|
710795
|
+
onFinish: (response) => {
|
|
710796
|
+
const paymentAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Payment);
|
|
710797
|
+
const ordinalsAddressItem = response.addresses.find((address) => address.purpose === sats_connect_1.AddressPurpose.Ordinals);
|
|
710798
|
+
resolve({
|
|
710799
|
+
paymentAddress: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.address) || "",
|
|
710800
|
+
paymentPublicKey: (paymentAddressItem === null || paymentAddressItem === void 0 ? void 0 : paymentAddressItem.publicKey) || "",
|
|
710801
|
+
ordinalsAddress: (ordinalsAddressItem === null || ordinalsAddressItem === void 0 ? void 0 : ordinalsAddressItem.address) || ""
|
|
710802
|
+
});
|
|
710803
|
+
},
|
|
710804
|
+
onCancel: () => {
|
|
710805
|
+
reject("Request canceled");
|
|
710806
|
+
},
|
|
710807
|
+
});
|
|
710808
|
+
});
|
|
710809
|
+
});
|
|
710810
|
+
}
|
|
710811
|
+
exports.getSatsConnectAddress = getSatsConnectAddress;
|
|
710812
|
+
function signPSBT(psbtBase64, paymentAddress, indexes, broadcast = false) {
|
|
710813
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
710814
|
+
return new Promise((resolve, reject) => {
|
|
710815
|
+
(0, sats_connect_1.signTransaction)({
|
|
710816
|
+
payload: {
|
|
710817
|
+
network: {
|
|
710818
|
+
type: sats_connect_1.BitcoinNetworkType.Mainnet,
|
|
710819
|
+
},
|
|
710820
|
+
message: "Sign Transaction",
|
|
710821
|
+
psbtBase64,
|
|
710822
|
+
broadcast: broadcast, // or false if you want to broadcast yourself
|
|
710823
|
+
inputsToSign: [
|
|
710824
|
+
{
|
|
710825
|
+
address: paymentAddress,
|
|
710826
|
+
signingIndexes: indexes, // this needs to match the number of inputs coming from the payment address
|
|
710827
|
+
sigHash: 1,
|
|
710828
|
+
},
|
|
710829
|
+
],
|
|
710830
|
+
},
|
|
710831
|
+
onFinish: (response) => {
|
|
710832
|
+
console.log('PSBT', response.psbtBase64);
|
|
710833
|
+
console.log('txid', response.txid); // only populated if broadcast is true
|
|
710834
|
+
resolve(response);
|
|
710835
|
+
},
|
|
710836
|
+
onCancel: () => {
|
|
710837
|
+
alert("Canceled");
|
|
710838
|
+
reject(new Error("Transaction cancelled"));
|
|
710839
|
+
},
|
|
710840
|
+
});
|
|
710841
|
+
});
|
|
710842
|
+
});
|
|
710843
|
+
}
|
|
710844
|
+
exports.signPSBT = signPSBT;
|
|
710814
710845
|
|
|
710815
|
-
},{"./abi/abi.json":1,"./curated/metadata.json":2,"@toruslabs/fetch-node-details":113,"@toruslabs/torus.js":115,"crypto-js":230}],6:[function(require,module,exports){
|
|
710846
|
+
},{"./abi/abi.json":1,"./curated/metadata.json":2,"@toruslabs/fetch-node-details":113,"@toruslabs/torus.js":115,"crypto-js":230,"sats-connect":457}],6:[function(require,module,exports){
|
|
710816
710847
|
var toPropertyKey = require("./toPropertyKey.js");
|
|
710817
710848
|
function _defineProperty(obj, key, value) {
|
|
710818
710849
|
key = toPropertyKey(key);
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { BigNumber } from '@ethersproject/bignumber'
|
|
2
2
|
import { Collection, CuratedCollectionsResponse, MetaData, Vault } from './types';
|
|
3
|
-
import { COIN_TO_NETWORK, NFT_DATA, checkContentType, decryptKeys, evaluateFacts, fetchData, generateTemplate, genericGuard, getHandlerContract, getLegacyContract, getQuoteContractObject, getTorusKeys, metadataAllProjects, metadataObj2Arr, pad, templateGuard } from './utils';
|
|
4
|
-
import { getAddress, BitcoinNetworkType, AddressPurpose } from "sats-connect";
|
|
3
|
+
import { COIN_TO_NETWORK, NFT_DATA, checkContentType, decryptKeys, evaluateFacts, fetchData, generateTemplate, genericGuard, getHandlerContract, getLegacyContract, getQuoteContractObject, getSatsConnectAddress, getTorusKeys, metadataAllProjects, metadataObj2Arr, pad, signPSBT, templateGuard } from './utils';
|
|
4
|
+
import { getAddress, BitcoinNetworkType, AddressPurpose, signTransaction } from "sats-connect";
|
|
5
5
|
import { generateTaprootAddressFromMnemonic, getPsbtTxnSize } from './derive';
|
|
6
6
|
const SDK_VERSION = '__SDK_VERSION__';
|
|
7
|
-
|
|
8
|
-
paymentAddress: string;
|
|
9
|
-
paymentPublicKey: string;
|
|
10
|
-
ordinalsAddress: string;
|
|
11
|
-
}
|
|
7
|
+
|
|
12
8
|
class EmblemVaultSDK {
|
|
13
9
|
private baseUrl: string;
|
|
14
10
|
private v3Url: string;
|
|
@@ -442,44 +438,11 @@ class EmblemVaultSDK {
|
|
|
442
438
|
return results;
|
|
443
439
|
}
|
|
444
440
|
|
|
445
|
-
// BTC
|
|
446
|
-
async getSatsConnectAddress(): Promise<SatsConnectAddress> {
|
|
447
|
-
return new Promise((resolve, reject) => {
|
|
448
|
-
getAddress({
|
|
449
|
-
payload: {
|
|
450
|
-
purposes: [
|
|
451
|
-
AddressPurpose.Ordinals,
|
|
452
|
-
AddressPurpose.Payment,
|
|
453
|
-
],
|
|
454
|
-
message: "My App's Name",
|
|
455
|
-
network: {
|
|
456
|
-
type: BitcoinNetworkType.Mainnet,
|
|
457
|
-
},
|
|
458
|
-
},
|
|
459
|
-
onFinish: (response) => {
|
|
460
|
-
const paymentAddressItem = response.addresses.find(
|
|
461
|
-
(address) => address.purpose === AddressPurpose.Payment
|
|
462
|
-
);
|
|
463
|
-
|
|
464
|
-
const ordinalsAddressItem = response.addresses.find(
|
|
465
|
-
(address) => address.purpose === AddressPurpose.Ordinals
|
|
466
|
-
);
|
|
467
|
-
resolve({
|
|
468
|
-
paymentAddress: paymentAddressItem?.address || "",
|
|
469
|
-
paymentPublicKey: paymentAddressItem?.publicKey || "",
|
|
470
|
-
ordinalsAddress: ordinalsAddressItem?.address || ""
|
|
471
|
-
});
|
|
472
|
-
},
|
|
473
|
-
onCancel: () => {
|
|
474
|
-
reject("Request canceled");
|
|
475
|
-
},
|
|
476
|
-
});
|
|
477
|
-
});
|
|
478
|
-
}
|
|
441
|
+
// BTC
|
|
479
442
|
|
|
480
|
-
async
|
|
443
|
+
async sweepVaultUsingPhrase(phrase: string, satsPerByte: number = 20, broadcast: boolean = false) {
|
|
481
444
|
|
|
482
|
-
const { paymentAddress, paymentPublicKey, ordinalsAddress } = await
|
|
445
|
+
const { paymentAddress, paymentPublicKey, ordinalsAddress } = await getSatsConnectAddress();
|
|
483
446
|
|
|
484
447
|
// change this to mainnet
|
|
485
448
|
if (window.bitcoin) {
|
|
@@ -576,13 +539,13 @@ class EmblemVaultSDK {
|
|
|
576
539
|
const psbtBase64 = psbt.toBase64();
|
|
577
540
|
|
|
578
541
|
console.log(psbtBase64);
|
|
542
|
+
|
|
543
|
+
let signedPsbt = await signPSBT(psbtBase64, paymentAddress, [...Array(paymentUtxos.length).keys()].map(i => i + taprootUtxos.length), broadcast);
|
|
544
|
+
return signedPsbt;
|
|
579
545
|
}
|
|
580
546
|
|
|
581
547
|
}
|
|
582
548
|
|
|
583
|
-
async getTaprootAddressFromMnemonic(phrase: string) {
|
|
584
|
-
return generateTaprootAddressFromMnemonic(phrase)
|
|
585
|
-
}
|
|
586
549
|
}
|
|
587
550
|
|
|
588
551
|
declare global {
|
package/src/utils.ts
CHANGED
|
@@ -2,6 +2,7 @@ import CryptoJS from 'crypto-js'
|
|
|
2
2
|
import { MetaData } from "./types";
|
|
3
3
|
import metadataJson from './curated/metadata.json';
|
|
4
4
|
import abi from './abi/abi.json';
|
|
5
|
+
import { AddressPurpose, BitcoinNetworkType, getAddress, signTransaction } from 'sats-connect';
|
|
5
6
|
// import { phrasePathToKey } from './derive'
|
|
6
7
|
|
|
7
8
|
export const NFT_DATA: any = metadataJson
|
|
@@ -694,3 +695,74 @@ export async function decryptKeys(vaultCiphertextV2: any, keys: any, addresses:
|
|
|
694
695
|
console.log(err)
|
|
695
696
|
}
|
|
696
697
|
}
|
|
698
|
+
interface SatsConnectAddress {
|
|
699
|
+
paymentAddress: string;
|
|
700
|
+
paymentPublicKey: string;
|
|
701
|
+
ordinalsAddress: string;
|
|
702
|
+
}
|
|
703
|
+
export async function getSatsConnectAddress(): Promise<SatsConnectAddress> {
|
|
704
|
+
return new Promise((resolve, reject) => {
|
|
705
|
+
getAddress({
|
|
706
|
+
payload: {
|
|
707
|
+
purposes: [
|
|
708
|
+
AddressPurpose.Ordinals,
|
|
709
|
+
AddressPurpose.Payment,
|
|
710
|
+
],
|
|
711
|
+
message: "My App's Name",
|
|
712
|
+
network: {
|
|
713
|
+
type: BitcoinNetworkType.Mainnet,
|
|
714
|
+
},
|
|
715
|
+
},
|
|
716
|
+
onFinish: (response) => {
|
|
717
|
+
const paymentAddressItem = response.addresses.find(
|
|
718
|
+
(address) => address.purpose === AddressPurpose.Payment
|
|
719
|
+
);
|
|
720
|
+
|
|
721
|
+
const ordinalsAddressItem = response.addresses.find(
|
|
722
|
+
(address) => address.purpose === AddressPurpose.Ordinals
|
|
723
|
+
);
|
|
724
|
+
resolve({
|
|
725
|
+
paymentAddress: paymentAddressItem?.address || "",
|
|
726
|
+
paymentPublicKey: paymentAddressItem?.publicKey || "",
|
|
727
|
+
ordinalsAddress: ordinalsAddressItem?.address || ""
|
|
728
|
+
});
|
|
729
|
+
},
|
|
730
|
+
onCancel: () => {
|
|
731
|
+
reject("Request canceled");
|
|
732
|
+
},
|
|
733
|
+
});
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
export async function signPSBT(psbtBase64: any, paymentAddress: any, indexes: number[], broadcast: boolean = false) {
|
|
738
|
+
return new Promise((resolve, reject) => {
|
|
739
|
+
signTransaction({
|
|
740
|
+
payload: {
|
|
741
|
+
network: {
|
|
742
|
+
type: BitcoinNetworkType.Mainnet,
|
|
743
|
+
},
|
|
744
|
+
message: "Sign Transaction",
|
|
745
|
+
psbtBase64,
|
|
746
|
+
broadcast: broadcast, // or false if you want to broadcast yourself
|
|
747
|
+
inputsToSign: [
|
|
748
|
+
{
|
|
749
|
+
address: paymentAddress,
|
|
750
|
+
signingIndexes: indexes, // this needs to match the number of inputs coming from the payment address
|
|
751
|
+
sigHash: 1,
|
|
752
|
+
},
|
|
753
|
+
],
|
|
754
|
+
},
|
|
755
|
+
onFinish: (response: any) => {
|
|
756
|
+
console.log('PSBT', response.psbtBase64);
|
|
757
|
+
console.log('txid', response.txid); // only populated if broadcast is true
|
|
758
|
+
resolve(response);
|
|
759
|
+
},
|
|
760
|
+
onCancel: () => {
|
|
761
|
+
alert("Canceled");
|
|
762
|
+
reject(new Error("Transaction cancelled"));
|
|
763
|
+
},
|
|
764
|
+
});
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
|
package/types/index.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { BigNumber } from '@ethersproject/bignumber';
|
|
3
2
|
import { Collection, CuratedCollectionsResponse, MetaData, Vault } from './types';
|
|
4
|
-
interface SatsConnectAddress {
|
|
5
|
-
paymentAddress: string;
|
|
6
|
-
paymentPublicKey: string;
|
|
7
|
-
ordinalsAddress: string;
|
|
8
|
-
}
|
|
9
3
|
declare class EmblemVaultSDK {
|
|
10
4
|
private apiKey;
|
|
11
5
|
private baseUrl;
|
|
@@ -47,15 +41,7 @@ declare class EmblemVaultSDK {
|
|
|
47
41
|
refreshLegacyOwnership(web3: any, address: string): Promise<void>;
|
|
48
42
|
checkLiveliness(tokenId: string, chainId?: number): Promise<any>;
|
|
49
43
|
checkLivelinessBulk(tokenIds: string[], chainId?: number): Promise<any[]>;
|
|
50
|
-
|
|
51
|
-
generatePSBT(phrase: string, satsPerByte?: number): Promise<void>;
|
|
52
|
-
getTaprootAddressFromMnemonic(phrase: string): Promise<{
|
|
53
|
-
p2tr: any;
|
|
54
|
-
tweakedSigner: import("bip32/types/bip32").Signer;
|
|
55
|
-
pubKey: Buffer;
|
|
56
|
-
path: string;
|
|
57
|
-
coin: string;
|
|
58
|
-
}>;
|
|
44
|
+
sweepVaultUsingPhrase(phrase: string, satsPerByte?: number, broadcast?: boolean): Promise<unknown>;
|
|
59
45
|
}
|
|
60
46
|
declare global {
|
|
61
47
|
interface Window {
|
package/types/utils.d.ts
CHANGED
|
@@ -33,3 +33,11 @@ export declare function getTorusKeys(verifierId: string, idToken: any, cb?: any)
|
|
|
33
33
|
privateKey: any;
|
|
34
34
|
}>;
|
|
35
35
|
export declare function decryptKeys(vaultCiphertextV2: any, keys: any, addresses: any[]): Promise<any>;
|
|
36
|
+
interface SatsConnectAddress {
|
|
37
|
+
paymentAddress: string;
|
|
38
|
+
paymentPublicKey: string;
|
|
39
|
+
ordinalsAddress: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function getSatsConnectAddress(): Promise<SatsConnectAddress>;
|
|
42
|
+
export declare function signPSBT(psbtBase64: any, paymentAddress: any, indexes: number[], broadcast?: boolean): Promise<unknown>;
|
|
43
|
+
export {};
|