@bitgo-beta/abstract-utxo 1.6.1-alpha.25 → 1.6.1-alpha.250
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/.eslintrc.js +6 -0
- package/CHANGELOG.md +973 -0
- package/dist/src/abstractUtxoCoin.d.ts +192 -98
- package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/src/abstractUtxoCoin.js +290 -541
- package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
- package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
- package/dist/src/core/descriptor/DescriptorMap.js +12 -0
- package/dist/src/core/descriptor/Output.d.ts +24 -0
- package/dist/src/core/descriptor/Output.d.ts.map +1 -0
- package/dist/src/core/descriptor/Output.js +22 -0
- package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
- package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
- package/dist/src/core/descriptor/VirtualSize.js +83 -0
- package/dist/src/core/descriptor/address.d.ts +5 -0
- package/dist/src/core/descriptor/address.d.ts.map +1 -0
- package/dist/src/core/descriptor/address.js +48 -0
- package/dist/src/core/descriptor/index.d.ts +9 -0
- package/dist/src/core/descriptor/index.d.ts.map +1 -0
- package/dist/src/core/descriptor/index.js +17 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/assertSatisfiable.js +74 -0
- package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
- package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/createPsbt.js +82 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/findDescriptors.js +74 -0
- package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
- package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/index.js +10 -0
- package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
- package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/parse.js +87 -0
- package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
- package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
- package/dist/src/core/descriptor/psbt/wrap.js +76 -0
- package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
- package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
- package/dist/src/core/descriptor/signTxLocal.js +9 -0
- package/dist/src/descriptor/NamedDescriptor.d.ts +18 -0
- package/dist/src/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/src/descriptor/NamedDescriptor.js +75 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/src/descriptor/assertDescriptorWalletAddress.js +66 -0
- package/dist/src/descriptor/builder/builder.d.ts +13 -0
- package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/src/descriptor/builder/builder.js +37 -0
- package/dist/src/descriptor/builder/index.d.ts +3 -0
- package/dist/src/descriptor/builder/index.d.ts.map +1 -0
- package/dist/src/descriptor/builder/index.js +8 -0
- package/dist/src/descriptor/builder/parse.d.ts +5 -0
- package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/src/descriptor/builder/parse.js +149 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/createDescriptorWallet.js +74 -0
- package/dist/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/createDescriptors.js +33 -0
- package/dist/src/descriptor/createWallet/index.d.ts +3 -0
- package/dist/src/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/src/descriptor/createWallet/index.js +19 -0
- package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/src/descriptor/descriptorWallet.js +54 -0
- package/dist/src/descriptor/index.d.ts +7 -0
- package/dist/src/descriptor/index.d.ts.map +1 -0
- package/dist/src/descriptor/index.js +52 -0
- package/dist/src/descriptor/validatePolicy.d.ts +23 -0
- package/dist/src/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/src/descriptor/validatePolicy.js +91 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +30 -2
- package/dist/src/keychains.d.ts +48 -0
- package/dist/src/keychains.d.ts.map +1 -0
- package/dist/src/keychains.js +104 -0
- package/dist/src/names.d.ts +13 -0
- package/dist/src/names.d.ts.map +1 -0
- package/dist/src/names.js +175 -0
- package/dist/src/recovery/RecoveryProvider.d.ts +1 -1
- package/dist/src/recovery/RecoveryProvider.d.ts.map +1 -1
- package/dist/src/recovery/RecoveryProvider.js +2 -4
- package/dist/src/recovery/backupKeyRecovery.d.ts +41 -16
- package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/src/recovery/backupKeyRecovery.js +168 -96
- package/dist/src/recovery/baseApi.d.ts +3 -6
- package/dist/src/recovery/baseApi.d.ts.map +1 -1
- package/dist/src/recovery/baseApi.js +6 -6
- package/dist/src/recovery/coingeckoApi.d.ts +0 -3
- package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
- package/dist/src/recovery/coingeckoApi.js +1 -4
- package/dist/src/recovery/crossChainRecovery.d.ts +12 -3
- package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/src/recovery/crossChainRecovery.js +93 -21
- package/dist/src/recovery/index.d.ts +0 -1
- package/dist/src/recovery/index.d.ts.map +1 -1
- package/dist/src/recovery/index.js +6 -3
- package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
- package/dist/src/recovery/mempoolApi.js +10 -7
- package/dist/src/replayProtection.js +37 -5
- package/dist/src/sign.d.ts +29 -8
- package/dist/src/sign.d.ts.map +1 -1
- package/dist/src/sign.js +114 -15
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/src/transaction/common/verifyPayGoAmount.js +1 -0
- package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
- package/dist/src/transaction/descriptor/index.d.ts +7 -0
- package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/index.js +14 -0
- package/dist/src/transaction/descriptor/parse.d.ts +14 -0
- package/dist/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parse.js +115 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts +13 -0
- package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/parseToAmountType.js +60 -0
- package/dist/src/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/src/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/recipient.js +3 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/signPsbt.js +43 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts +33 -0
- package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/descriptor/verifyTransaction.js +105 -0
- package/dist/src/transaction/explainTransaction.d.ts +17 -0
- package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/src/transaction/explainTransaction.js +67 -0
- package/dist/src/transaction/fetchInputs.d.ts +26 -0
- package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
- package/dist/src/transaction/fetchInputs.js +109 -0
- package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
- package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/explainTransaction.js +216 -0
- package/dist/src/transaction/fixedScript/index.d.ts +6 -0
- package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/index.js +13 -0
- package/dist/src/transaction/fixedScript/parseOutput.d.ts +26 -0
- package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/parseOutput.js +213 -0
- package/dist/src/transaction/fixedScript/parseTransaction.d.ts +7 -0
- package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/parseTransaction.js +203 -0
- package/dist/src/transaction/fixedScript/signTransaction.d.ts +17 -0
- package/dist/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/signTransaction.js +138 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/fixedScript/verifyTransaction.js +176 -0
- package/dist/src/transaction/index.d.ts +6 -0
- package/dist/src/transaction/index.d.ts.map +1 -0
- package/dist/src/transaction/index.js +26 -0
- package/dist/src/transaction/outputDifference.d.ts +40 -0
- package/dist/src/transaction/outputDifference.d.ts.map +1 -0
- package/dist/src/transaction/outputDifference.js +47 -0
- package/dist/src/transaction/parseTransaction.d.ts +3 -0
- package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/src/transaction/parseTransaction.js +48 -0
- package/dist/src/transaction/recipient.d.ts +29 -0
- package/dist/src/transaction/recipient.d.ts.map +1 -0
- package/dist/src/transaction/recipient.js +88 -0
- package/dist/src/transaction/signTransaction.d.ts +6 -0
- package/dist/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/src/transaction/signTransaction.js +102 -0
- package/dist/src/transaction/verifyTransaction.d.ts +4 -0
- package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/src/transaction/verifyTransaction.js +50 -0
- package/dist/src/verifyKey.d.ts +28 -0
- package/dist/src/verifyKey.d.ts.map +1 -0
- package/dist/src/verifyKey.js +164 -0
- package/dist/src/wallet.d.ts +12 -0
- package/dist/src/wallet.d.ts.map +1 -0
- package/dist/src/wallet.js +3 -0
- package/dist/test/core/descriptor/descriptor.utils.d.ts +11 -0
- package/dist/test/core/descriptor/descriptor.utils.d.ts.map +1 -0
- package/dist/test/core/descriptor/descriptor.utils.js +63 -0
- package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +2 -0
- package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/VirtualSize.js +78 -0
- package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +2 -0
- package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/assertSatisfiable.js +56 -0
- package/dist/test/core/descriptor/psbt/createPsbt.d.ts +2 -0
- package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/createPsbt.js +85 -0
- package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +2 -0
- package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/findDescriptors.js +66 -0
- package/dist/test/core/descriptor/psbt/mock.utils.d.ts +34 -0
- package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/mock.utils.js +87 -0
- package/dist/test/core/descriptor/psbt/parse.d.ts +2 -0
- package/dist/test/core/descriptor/psbt/parse.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/parse.js +32 -0
- package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +4 -0
- package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +1 -0
- package/dist/test/core/descriptor/psbt/psbt.utils.js +20 -0
- package/dist/test/core/fixtures.utils.d.ts +15 -0
- package/dist/test/core/fixtures.utils.d.ts.map +1 -0
- package/dist/test/core/fixtures.utils.js +114 -0
- package/dist/test/core/key.utils.d.ts +16 -0
- package/dist/test/core/key.utils.d.ts.map +1 -0
- package/dist/test/core/key.utils.js +59 -0
- package/dist/test/core/toPlainObject.utils.d.ts +11 -0
- package/dist/test/core/toPlainObject.utils.d.ts.map +1 -0
- package/dist/test/core/toPlainObject.utils.js +75 -0
- package/dist/test/descriptor/NamedDescriptor.d.ts +2 -0
- package/dist/test/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/test/descriptor/NamedDescriptor.js +19 -0
- package/dist/test/descriptor/builder.d.ts +2 -0
- package/dist/test/descriptor/builder.d.ts.map +1 -0
- package/dist/test/descriptor/builder.js +72 -0
- package/dist/test/descriptor/createWallet/createDescriptors.d.ts +2 -0
- package/dist/test/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/test/descriptor/createWallet/createDescriptors.js +21 -0
- package/dist/test/descriptor/descriptorWallet.d.ts +2 -0
- package/dist/test/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/test/descriptor/descriptorWallet.js +28 -0
- package/dist/test/transaction/descriptor/explainPsbt.d.ts +2 -0
- package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/explainPsbt.js +28 -0
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts +2 -0
- package/dist/test/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/fixtures.utils.js +12 -0
- package/dist/test/transaction/descriptor/outputDifference.d.ts +2 -0
- package/dist/test/transaction/descriptor/outputDifference.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/outputDifference.js +76 -0
- package/dist/test/transaction/descriptor/parse.d.ts +2 -0
- package/dist/test/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/parse.js +78 -0
- package/dist/test/transaction/descriptor/sign.d.ts +2 -0
- package/dist/test/transaction/descriptor/sign.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/sign.js +33 -0
- package/dist/test/transaction/descriptor/validatePolicy.d.ts +2 -0
- package/dist/test/transaction/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/test/transaction/descriptor/validatePolicy.js +40 -0
- package/dist/tsconfig.tsbuildinfo +1 -7910
- package/package.json +16 -11
- package/dist/src/parseOutput.d.ts +0 -22
- package/dist/src/parseOutput.d.ts.map +0 -1
- package/dist/src/parseOutput.js +0 -170
- package/dist/src/recovery/smartbitApi.d.ts +0 -11
- package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
- package/dist/src/recovery/smartbitApi.js +0 -36
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DescriptorPolicyValidationError = exports.policyAllowAll = void 0;
|
|
4
|
+
exports.getValidatorDescriptorTemplate = getValidatorDescriptorTemplate;
|
|
5
|
+
exports.getValidatorEvery = getValidatorEvery;
|
|
6
|
+
exports.getValidatorSome = getValidatorSome;
|
|
7
|
+
exports.getValidatorOneOfTemplates = getValidatorOneOfTemplates;
|
|
8
|
+
exports.getValidatorSignedByUserKey = getValidatorSignedByUserKey;
|
|
9
|
+
exports.assertDescriptorPolicy = assertDescriptorPolicy;
|
|
10
|
+
exports.toDescriptorMapValidate = toDescriptorMapValidate;
|
|
11
|
+
exports.getPolicyForEnv = getPolicyForEnv;
|
|
12
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
13
|
+
const descriptor_1 = require("../core/descriptor");
|
|
14
|
+
const builder_1 = require("./builder");
|
|
15
|
+
const NamedDescriptor_1 = require("./NamedDescriptor");
|
|
16
|
+
exports.policyAllowAll = {
|
|
17
|
+
name: 'allowAll',
|
|
18
|
+
validate: () => true,
|
|
19
|
+
};
|
|
20
|
+
function getValidatorDescriptorTemplate(name) {
|
|
21
|
+
return {
|
|
22
|
+
name: 'descriptorTemplate(' + name + ')',
|
|
23
|
+
validate(d, walletKeys) {
|
|
24
|
+
const parsed = (0, builder_1.parseDescriptor)(d);
|
|
25
|
+
return (parsed.name === name &&
|
|
26
|
+
parsed.keys.length === walletKeys.length &&
|
|
27
|
+
parsed.keys.every((k, i) => k.toBase58() === walletKeys[i].neutered().toBase58()));
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function getValidatorEvery(validators) {
|
|
32
|
+
return {
|
|
33
|
+
name: 'every(' + validators.map((v) => v.name).join(',') + ')',
|
|
34
|
+
validate(d, walletKeys, signatures) {
|
|
35
|
+
return validators.every((v) => v.validate(d, walletKeys, signatures));
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function getValidatorSome(validators) {
|
|
40
|
+
return {
|
|
41
|
+
name: 'some(' + validators.map((v) => v.name).join(',') + ')',
|
|
42
|
+
validate(d, walletKeys, signatures) {
|
|
43
|
+
return validators.some((v) => v.validate(d, walletKeys, signatures));
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function getValidatorOneOfTemplates(names) {
|
|
48
|
+
return getValidatorSome(names.map(getValidatorDescriptorTemplate));
|
|
49
|
+
}
|
|
50
|
+
function getValidatorSignedByUserKey() {
|
|
51
|
+
return {
|
|
52
|
+
name: 'signedByUser',
|
|
53
|
+
validate(d, walletKeys, signatures) {
|
|
54
|
+
// the first key is the user key, by convention
|
|
55
|
+
return (0, NamedDescriptor_1.hasValidSignature)(d, walletKeys[0], signatures);
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
class DescriptorPolicyValidationError extends Error {
|
|
60
|
+
constructor(descriptor, policy) {
|
|
61
|
+
super(`Descriptor ${descriptor.toString()} does not match policy ${policy.name}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.DescriptorPolicyValidationError = DescriptorPolicyValidationError;
|
|
65
|
+
function assertDescriptorPolicy(descriptor, policy, walletKeys, signatures) {
|
|
66
|
+
if (!policy.validate(descriptor, walletKeys, signatures)) {
|
|
67
|
+
throw new DescriptorPolicyValidationError(descriptor, policy);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function toDescriptorMapValidate(descriptors, walletKeys, policy) {
|
|
71
|
+
return (0, descriptor_1.toDescriptorMap)(descriptors.map((namedDescriptor) => {
|
|
72
|
+
const d = wasm_miniscript_1.Descriptor.fromString(namedDescriptor.value, 'derivable');
|
|
73
|
+
assertDescriptorPolicy(d, policy, walletKeys, namedDescriptor.signatures ?? []);
|
|
74
|
+
return { name: namedDescriptor.name, value: d };
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
function getPolicyForEnv(env) {
|
|
78
|
+
switch (env) {
|
|
79
|
+
case 'adminProd':
|
|
80
|
+
case 'prod':
|
|
81
|
+
return getValidatorSome([
|
|
82
|
+
// allow all 2-of-3-ish descriptors where the keys match the wallet keys
|
|
83
|
+
getValidatorOneOfTemplates(['Wsh2Of3', 'Wsh2Of3CltvDrop', 'ShWsh2Of3CltvDrop']),
|
|
84
|
+
// allow all descriptors signed by the user key
|
|
85
|
+
getValidatorSignedByUserKey(),
|
|
86
|
+
]);
|
|
87
|
+
default:
|
|
88
|
+
return exports.policyAllowAll;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsd0VBWUM7QUFFRCw4Q0FPQztBQUVELDRDQU9DO0FBRUQsZ0VBRUM7QUFFRCxrRUFRQztBQVFELHdEQVNDO0FBRUQsMERBWUM7QUFFRCwwQ0FhQztBQS9HRCw0REFBb0Q7QUFJcEQsbURBQW9FO0FBRXBFLHVDQUE0QztBQUM1Qyx1REFBdUU7QUFTMUQsUUFBQSxjQUFjLEdBQStCO0lBQ3hELElBQUksRUFBRSxVQUFVO0lBQ2hCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO0NBQ3JCLENBQUM7QUFFRixTQUFnQiw4QkFBOEIsQ0FBQyxJQUFZO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEdBQUc7UUFDeEMsUUFBUSxDQUFDLENBQWEsRUFBRSxVQUFxQjtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHlCQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUNMLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSTtnQkFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU07Z0JBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUNsRixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsVUFBd0M7SUFDeEUsT0FBTztRQUNMLElBQUksRUFBRSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcs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TTtZQUNULE9BQU8sZ0JBQWdCLENBQUM7Z0JBQ3RCLHdFQUF3RTtnQkFDeEUsMEJBQTBCLENBQUMsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztnQkFDL0UsK0NBQStDO2dCQUMvQywyQkFBMkIsRUFBRTthQUM5QixDQUFDLENBQUM7UUFDTDtZQUNFLE9BQU8sc0JBQWMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IEVudmlyb25tZW50TmFtZSwgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JNYXAsIHRvRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2NvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IHBhcnNlRGVzY3JpcHRvciB9IGZyb20gJy4vYnVpbGRlcic7XG5pbXBvcnQgeyBoYXNWYWxpZFNpZ25hdHVyZSwgTmFtZWREZXNjcmlwdG9yIH0gZnJvbSAnLi9OYW1lZERlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8dXR4b2xpYi5CSVAzMkludGVyZmFjZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbGlkYXRlKGQ6IERlc2NyaXB0b3IsIHdhbGxldEtleXM6IEtleVRyaXBsZSwgc2lnbmF0dXJlczogc3RyaW5nW10pOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgcG9saWN5QWxsb3dBbGw6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5ID0ge1xuICBuYW1lOiAnYWxsb3dBbGwnLFxuICB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUobmFtZTogc3RyaW5nKTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdkZXNjcmlwdG9yVGVtcGxhdGUoJyArIG5hbWUgKyAnKScsXG4gICAgdmFsaWRhdGUoZDogRGVzY3JpcHRvciwgd2FsbGV0S2V5czogS2V5VHJpcGxlKTogYm9vbGVhbiB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZURlc2NyaXB0b3IoZCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBwYXJzZWQubmFtZSA9PT0gbmFtZSAmJlxuICAgICAgICBwYXJzZWQua2V5cy5sZW5ndGggPT09IHdhbGxldEtleXMubGVuZ3RoICYmXG4gICAgICAgIHBhcnNlZC5rZXlzLmV2ZXJ5KChrLCBpKSA9PiBrLnRvQmFzZTU4KCkgPT09IHdhbGxldEtleXNbaV0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpKVxuICAgICAgKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRXZlcnkodmFsaWRhdG9yczogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3lbXSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZXZlcnkoJyArIHZhbGlkYXRvcnMubWFwKCh2KSA9PiB2Lm5hbWUpLmpvaW4oJywnKSArICcpJyxcbiAgICB2YWxpZGF0ZShkOiBEZXNjcmlwdG9yLCB3YWxsZXRLZXlzOiBLZXlUcmlwbGUsIHNpZ25hdHVyZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdmFsaWRhdG9ycy5ldmVyeSgodikgPT4gdi52YWxpZGF0ZShkLCB3YWxsZXRLZXlzLCBzaWduYXR1cmVzKSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvclNvbWUodmFsaWRhdG9yczogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3lbXSk6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc29tZSgnICsgdmFsaWRhdG9ycy5tYXAoKHYpID0+IHYubmFtZSkuam9pbignLCcpICsgJyknLFxuICAgIHZhbGlkYXRlKGQ6IERlc2NyaXB0b3IsIHdhbGxldEtleXM6IEtleVRyaXBsZSwgc2lnbmF0dXJlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB2YWxpZGF0b3JzLnNvbWUoKHYpID0+IHYudmFsaWRhdGUoZCwgd2FsbGV0S2V5cywgc2lnbmF0dXJlcykpO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0b3JPbmVPZlRlbXBsYXRlcyhuYW1lczogc3RyaW5nW10pOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiBnZXRWYWxpZGF0b3JTb21lKG5hbWVzLm1hcChnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSgpOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpZ25lZEJ5VXNlcicsXG4gICAgdmFsaWRhdGUoZDogRGVzY3JpcHRvciwgd2FsbGV0S2V5czogS2V5VHJpcGxlLCBzaWduYXR1cmVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgLy8gdGhlIGZpcnN0IGtleSBpcyB0aGUgdXNlciBrZXksIGJ5IGNvbnZlbnRpb25cbiAgICAgIHJldHVybiBoYXNWYWxpZFNpZ25hdHVyZShkLCB3YWxsZXRLZXlzWzBdLCBzaWduYXR1cmVzKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgRGVzY3JpcHRvclBvbGljeVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSkge1xuICAgIHN1cGVyKGBEZXNjcmlwdG9yICR7ZGVzY3JpcHRvci50b1N0cmluZygpfSBkb2VzIG5vdCBtYXRjaCBwb2xpY3kgJHtwb2xpY3kubmFtZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RGVzY3JpcHRvclBvbGljeShcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgcG9saWN5OiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSxcbiAgd2FsbGV0S2V5czogS2V5VHJpcGxlLFxuICBzaWduYXR1cmVzOiBzdHJpbmdbXVxuKTogdm9pZCB7XG4gIGlmICghcG9saWN5LnZhbGlkYXRlKGRlc2NyaXB0b3IsIHdhbGxldEtleXMsIHNpZ25hdHVyZXMpKSB7XG4gICAgdGhyb3cgbmV3IERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IoZGVzY3JpcHRvciwgcG9saWN5KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUoXG4gIGRlc2NyaXB0b3JzOiBOYW1lZERlc2NyaXB0b3JbXSxcbiAgd2FsbGV0S2V5czogS2V5VHJpcGxlLFxuICBwb2xpY3k6IERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5XG4pOiBEZXNjcmlwdG9yTWFwIHtcbiAgcmV0dXJuIHRvRGVzY3JpcHRvck1hcChcbiAgICBkZXNjcmlwdG9ycy5tYXAoKG5hbWVkRGVzY3JpcHRvcikgPT4ge1xuICAgICAgY29uc3QgZCA9IERlc2NyaXB0b3IuZnJvbVN0cmluZyhuYW1lZERlc2NyaXB0b3IudmFsdWUsICdkZXJpdmFibGUnKTtcbiAgICAgIGFzc2VydERlc2NyaXB0b3JQb2xpY3koZCwgcG9saWN5LCB3YWxsZXRLZXlzLCBuYW1lZERlc2NyaXB0b3Iuc2lnbmF0dXJlcyA/PyBbXSk7XG4gICAgICByZXR1cm4geyBuYW1lOiBuYW1lZERlc2NyaXB0b3IubmFtZSwgdmFsdWU6IGQgfTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9saWN5Rm9yRW52KGVudjogRW52aXJvbm1lbnROYW1lKTogRGVzY3JpcHRvclZhbGlkYXRpb25Qb2xpY3kge1xuICBzd2l0Y2ggKGVudikge1xuICAgIGNhc2UgJ2FkbWluUHJvZCc6XG4gICAgY2FzZSAncHJvZCc6XG4gICAgICByZXR1cm4gZ2V0VmFsaWRhdG9yU29tZShbXG4gICAgICAgIC8vIGFsbG93IGFsbCAyLW9mLTMtaXNoIGRlc2NyaXB0b3JzIHdoZXJlIHRoZSBrZXlzIG1hdGNoIHRoZSB3YWxsZXQga2V5c1xuICAgICAgICBnZXRWYWxpZGF0b3JPbmVPZlRlbXBsYXRlcyhbJ1dzaDJPZjMnLCAnV3NoMk9mM0NsdHZEcm9wJywgJ1NoV3NoMk9mM0NsdHZEcm9wJ10pLFxuICAgICAgICAvLyBhbGxvdyBhbGwgZGVzY3JpcHRvcnMgc2lnbmVkIGJ5IHRoZSB1c2VyIGtleVxuICAgICAgICBnZXRWYWxpZGF0b3JTaWduZWRCeVVzZXJLZXkoKSxcbiAgICAgIF0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcG9saWN5QWxsb3dBbGw7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,18 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
9
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
12
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.descriptor = void 0;
|
|
13
40
|
__exportStar(require("./abstractUtxoCoin"), exports);
|
|
14
41
|
__exportStar(require("./config"), exports);
|
|
15
42
|
__exportStar(require("./recovery"), exports);
|
|
16
43
|
__exportStar(require("./replayProtection"), exports);
|
|
17
44
|
__exportStar(require("./sign"), exports);
|
|
18
|
-
|
|
45
|
+
exports.descriptor = __importStar(require("./descriptor"));
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLHlDQUF1QjtBQUd2QiwyREFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNvdmVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcGxheVByb3RlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduJztcblxuZXhwb3J0IHsgVXR4b1dhbGxldCB9IGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as t from 'io-ts';
|
|
2
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
+
import { IRequestTracer, IWallet, Triple } from '@bitgo-beta/sdk-core';
|
|
4
|
+
import { AbstractUtxoCoin } from './abstractUtxoCoin';
|
|
5
|
+
import { UtxoWallet } from './wallet';
|
|
6
|
+
/**
|
|
7
|
+
* A keychain for a UTXO wallet.
|
|
8
|
+
*/
|
|
9
|
+
export declare const UtxoKeychain: t.IntersectionC<[t.TypeC<{
|
|
10
|
+
pub: t.StringC;
|
|
11
|
+
}>, t.PartialC<{
|
|
12
|
+
prv: t.StringC;
|
|
13
|
+
encryptedPrv: t.StringC;
|
|
14
|
+
}>]>;
|
|
15
|
+
export type UtxoKeychain = t.TypeOf<typeof UtxoKeychain>;
|
|
16
|
+
export declare const UtxoNamedKeychains: t.TypeC<{
|
|
17
|
+
user: t.IntersectionC<[t.TypeC<{
|
|
18
|
+
pub: t.StringC;
|
|
19
|
+
}>, t.PartialC<{
|
|
20
|
+
prv: t.StringC;
|
|
21
|
+
encryptedPrv: t.StringC;
|
|
22
|
+
}>]>;
|
|
23
|
+
backup: t.IntersectionC<[t.TypeC<{
|
|
24
|
+
pub: t.StringC;
|
|
25
|
+
}>, t.PartialC<{
|
|
26
|
+
prv: t.StringC;
|
|
27
|
+
encryptedPrv: t.StringC;
|
|
28
|
+
}>]>;
|
|
29
|
+
bitgo: t.IntersectionC<[t.TypeC<{
|
|
30
|
+
pub: t.StringC;
|
|
31
|
+
}>, t.PartialC<{
|
|
32
|
+
prv: t.StringC;
|
|
33
|
+
encryptedPrv: t.StringC;
|
|
34
|
+
}>]>;
|
|
35
|
+
}>;
|
|
36
|
+
export type UtxoNamedKeychains = t.TypeOf<typeof UtxoNamedKeychains>;
|
|
37
|
+
export declare function toKeychainTriple(keychains: UtxoNamedKeychains): Triple<UtxoKeychain>;
|
|
38
|
+
export declare function toBip32Triple(keychains: UtxoNamedKeychains | Triple<{
|
|
39
|
+
pub: string;
|
|
40
|
+
}> | Triple<string>): Triple<utxolib.BIP32Interface>;
|
|
41
|
+
export declare function fetchKeychains(coin: AbstractUtxoCoin, wallet: IWallet, reqId?: IRequestTracer): Promise<UtxoNamedKeychains>;
|
|
42
|
+
export declare const KeySignatures: t.PartialC<{
|
|
43
|
+
backupPub: t.StringC;
|
|
44
|
+
bitgoPub: t.StringC;
|
|
45
|
+
}>;
|
|
46
|
+
export type KeySignatures = t.TypeOf<typeof KeySignatures>;
|
|
47
|
+
export declare function getKeySignatures(wallet: UtxoWallet): KeySignatures | undefined;
|
|
48
|
+
//# sourceMappingURL=keychains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../src/keychains.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,OAAO,EAA4B,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;IAWxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAErE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC,CAGpF;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GACvE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAShC;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAED,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAK9E"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.KeySignatures = exports.UtxoNamedKeychains = exports.UtxoKeychain = void 0;
|
|
40
|
+
exports.toKeychainTriple = toKeychainTriple;
|
|
41
|
+
exports.toBip32Triple = toBip32Triple;
|
|
42
|
+
exports.fetchKeychains = fetchKeychains;
|
|
43
|
+
exports.getKeySignatures = getKeySignatures;
|
|
44
|
+
const assert_1 = __importDefault(require("assert"));
|
|
45
|
+
const t = __importStar(require("io-ts"));
|
|
46
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
47
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
48
|
+
/*
|
|
49
|
+
|
|
50
|
+
The standard Keychain type from sdk-core requires a bunch of uninteresting parameters like `id` and `type` and leaves
|
|
51
|
+
important fields like `pub` and `prv` optional.
|
|
52
|
+
|
|
53
|
+
This is a more focused type that only includes the fields we care about.
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* A keychain for a UTXO wallet.
|
|
57
|
+
*/
|
|
58
|
+
exports.UtxoKeychain = t.intersection([
|
|
59
|
+
t.type({
|
|
60
|
+
pub: t.string,
|
|
61
|
+
}),
|
|
62
|
+
t.partial({
|
|
63
|
+
prv: t.string,
|
|
64
|
+
encryptedPrv: t.string,
|
|
65
|
+
}),
|
|
66
|
+
], 'UtxoKeychain');
|
|
67
|
+
exports.UtxoNamedKeychains = t.type({
|
|
68
|
+
user: exports.UtxoKeychain,
|
|
69
|
+
backup: exports.UtxoKeychain,
|
|
70
|
+
bitgo: exports.UtxoKeychain,
|
|
71
|
+
});
|
|
72
|
+
function toKeychainTriple(keychains) {
|
|
73
|
+
const { user, backup, bitgo } = keychains;
|
|
74
|
+
return [user, backup, bitgo];
|
|
75
|
+
}
|
|
76
|
+
function toBip32Triple(keychains) {
|
|
77
|
+
if (Array.isArray(keychains)) {
|
|
78
|
+
return keychains.map((keychain) => {
|
|
79
|
+
const v = typeof keychain === 'string' ? keychain : keychain.pub;
|
|
80
|
+
return utxolib.bip32.fromBase58(v);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return toBip32Triple(toKeychainTriple(keychains));
|
|
84
|
+
}
|
|
85
|
+
async function fetchKeychains(coin, wallet, reqId) {
|
|
86
|
+
const result = await (0, sdk_core_1.promiseProps)({
|
|
87
|
+
user: coin.keychains().get({ id: wallet.keyIds()[sdk_core_1.KeyIndices.USER], reqId }),
|
|
88
|
+
backup: coin.keychains().get({ id: wallet.keyIds()[sdk_core_1.KeyIndices.BACKUP], reqId }),
|
|
89
|
+
bitgo: coin.keychains().get({ id: wallet.keyIds()[sdk_core_1.KeyIndices.BITGO], reqId }),
|
|
90
|
+
});
|
|
91
|
+
(0, assert_1.default)(exports.UtxoNamedKeychains.is(result));
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
exports.KeySignatures = t.partial({
|
|
95
|
+
backupPub: t.string,
|
|
96
|
+
bitgoPub: t.string,
|
|
97
|
+
});
|
|
98
|
+
function getKeySignatures(wallet) {
|
|
99
|
+
if (t.partial({ keySignatures: exports.KeySignatures }).is(wallet._wallet)) {
|
|
100
|
+
return wallet._wallet.keySignatures;
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleWNoYWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQ0EsNENBR0M7QUFFRCxzQ0FXQztBQUVELHdDQVlDO0FBU0QsNENBS0M7QUF2RkQsb0RBQTRCO0FBRTVCLHlDQUEyQjtBQUMzQiw4REFBZ0Q7QUFDaEQsbURBQWlHO0FBS2pHOzs7Ozs7R0FNRztBQUVIOztHQUVHO0FBQ1UsUUFBQSxZQUFZLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FDeEM7SUFDRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ0wsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNO0tBQ2QsQ0FBQztJQUNGLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDUixHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDYixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDdkIsQ0FBQztDQUNILEVBQ0QsY0FBYyxDQUNmLENBQUM7QUFJVyxRQUFBLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsSUFBSSxFQUFFLG9CQUFZO0lBQ2xCLE1BQU0sRUFBRSxvQkFBWTtJQUNwQixLQUFLLEVBQUUsb0JBQVk7Q0FDcEIsQ0FBQyxDQUFDO0FBSUgsU0FBZ0IsZ0JBQWdCLENBQUMsU0FBNkI7SUFDNUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQzFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQzNCLFNBQXdFO0lBRXhFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQWtDLEVBQUUsRUFBRTtZQUMxRCxNQUFNLENBQUMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNqRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBbUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBc0IsRUFDdEIsTUFBZSxFQUNmLEtBQXNCO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSx1QkFBWSxFQUFDO1FBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQy9FLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQzlFLENBQUMsQ0FBQztJQUNILElBQUEsZ0JBQU0sRUFBQywwQkFBa0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRVksUUFBQSxhQUFhLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ25CLENBQUMsQ0FBQztBQUlILFNBQWdCLGdCQUFnQixDQUFDLE1BQWtCO0lBQ2pELElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWEsRUFBRSxxQkFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IElSZXF1ZXN0VHJhY2VyLCBJV2FsbGV0LCBLZXlJbmRpY2VzLCBwcm9taXNlUHJvcHMsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiB9IGZyb20gJy4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBVdHhvV2FsbGV0IH0gZnJvbSAnLi93YWxsZXQnO1xuXG4vKlxuXG5UaGUgc3RhbmRhcmQgS2V5Y2hhaW4gdHlwZSBmcm9tIHNkay1jb3JlIHJlcXVpcmVzIGEgYnVuY2ggb2YgdW5pbnRlcmVzdGluZyBwYXJhbWV0ZXJzIGxpa2UgYGlkYCBhbmQgYHR5cGVgIGFuZCBsZWF2ZXNcbmltcG9ydGFudCBmaWVsZHMgbGlrZSBgcHViYCBhbmQgYHBydmAgb3B0aW9uYWwuXG5cblRoaXMgaXMgYSBtb3JlIGZvY3VzZWQgdHlwZSB0aGF0IG9ubHkgaW5jbHVkZXMgdGhlIGZpZWxkcyB3ZSBjYXJlIGFib3V0LlxuICovXG5cbi8qKlxuICogQSBrZXljaGFpbiBmb3IgYSBVVFhPIHdhbGxldC5cbiAqL1xuZXhwb3J0IGNvbnN0IFV0eG9LZXljaGFpbiA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIHB1YjogdC5zdHJpbmcsXG4gICAgfSksXG4gICAgdC5wYXJ0aWFsKHtcbiAgICAgIHBydjogdC5zdHJpbmcsXG4gICAgICBlbmNyeXB0ZWRQcnY6IHQuc3RyaW5nLFxuICAgIH0pLFxuICBdLFxuICAnVXR4b0tleWNoYWluJ1xuKTtcblxuZXhwb3J0IHR5cGUgVXR4b0tleWNoYWluID0gdC5UeXBlT2Y8dHlwZW9mIFV0eG9LZXljaGFpbj47XG5cbmV4cG9ydCBjb25zdCBVdHhvTmFtZWRLZXljaGFpbnMgPSB0LnR5cGUoe1xuICB1c2VyOiBVdHhvS2V5Y2hhaW4sXG4gIGJhY2t1cDogVXR4b0tleWNoYWluLFxuICBiaXRnbzogVXR4b0tleWNoYWluLFxufSk7XG5cbmV4cG9ydCB0eXBlIFV0eG9OYW1lZEtleWNoYWlucyA9IHQuVHlwZU9mPHR5cGVvZiBVdHhvTmFtZWRLZXljaGFpbnM+O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9LZXljaGFpblRyaXBsZShrZXljaGFpbnM6IFV0eG9OYW1lZEtleWNoYWlucyk6IFRyaXBsZTxVdHhvS2V5Y2hhaW4+IHtcbiAgY29uc3QgeyB1c2VyLCBiYWNrdXAsIGJpdGdvIH0gPSBrZXljaGFpbnM7XG4gIHJldHVybiBbdXNlciwgYmFja3VwLCBiaXRnb107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0JpcDMyVHJpcGxlKFxuICBrZXljaGFpbnM6IFV0eG9OYW1lZEtleWNoYWlucyB8IFRyaXBsZTx7IHB1Yjogc3RyaW5nIH0+IHwgVHJpcGxlPHN0cmluZz5cbik6IFRyaXBsZTx1dHhvbGliLkJJUDMySW50ZXJmYWNlPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGtleWNoYWlucykpIHtcbiAgICByZXR1cm4ga2V5Y2hhaW5zLm1hcCgoa2V5Y2hhaW46IHsgcHViOiBzdHJpbmcgfSB8IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdiA9IHR5cGVvZiBrZXljaGFpbiA9PT0gJ3N0cmluZycgPyBrZXljaGFpbiA6IGtleWNoYWluLnB1YjtcbiAgICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgodik7XG4gICAgfSkgYXMgVHJpcGxlPHV0eG9saWIuQklQMzJJbnRlcmZhY2U+O1xuICB9XG5cbiAgcmV0dXJuIHRvQmlwMzJUcmlwbGUodG9LZXljaGFpblRyaXBsZShrZXljaGFpbnMpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoS2V5Y2hhaW5zKFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB3YWxsZXQ6IElXYWxsZXQsXG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbik6IFByb21pc2U8VXR4b05hbWVkS2V5Y2hhaW5zPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2VQcm9wcyh7XG4gICAgdXNlcjogY29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogd2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuVVNFUl0sIHJlcUlkIH0pLFxuICAgIGJhY2t1cDogY29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogd2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuQkFDS1VQXSwgcmVxSWQgfSksXG4gICAgYml0Z286IGNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHdhbGxldC5rZXlJZHMoKVtLZXlJbmRpY2VzLkJJVEdPXSwgcmVxSWQgfSksXG4gIH0pO1xuICBhc3NlcnQoVXR4b05hbWVkS2V5Y2hhaW5zLmlzKHJlc3VsdCkpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgS2V5U2lnbmF0dXJlcyA9IHQucGFydGlhbCh7XG4gIGJhY2t1cFB1YjogdC5zdHJpbmcsXG4gIGJpdGdvUHViOiB0LnN0cmluZyxcbn0pO1xuXG5leHBvcnQgdHlwZSBLZXlTaWduYXR1cmVzID0gdC5UeXBlT2Y8dHlwZW9mIEtleVNpZ25hdHVyZXM+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5U2lnbmF0dXJlcyh3YWxsZXQ6IFV0eG9XYWxsZXQpOiBLZXlTaWduYXR1cmVzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHQucGFydGlhbCh7IGtleVNpZ25hdHVyZXM6IEtleVNpZ25hdHVyZXMgfSkuaXMod2FsbGV0Ll93YWxsZXQpKSB7XG4gICAgcmV0dXJuIHdhbGxldC5fd2FsbGV0LmtleVNpZ25hdHVyZXM7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
/**
|
|
3
|
+
* @param n
|
|
4
|
+
* @returns the family name for a network. Testnets and mainnets of the same coin share the same family name.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getFamilyFromNetwork(n: utxolib.Network): string;
|
|
7
|
+
/**
|
|
8
|
+
* Get the chain name for a network.
|
|
9
|
+
* The chain is different for every network.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getChainFromNetwork(n: utxolib.Network): string;
|
|
12
|
+
export declare function getFullNameFromNetwork(n: utxolib.Network): string;
|
|
13
|
+
//# sourceMappingURL=names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAUhD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAiC/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CA6B9D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAwDjE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getFamilyFromNetwork = getFamilyFromNetwork;
|
|
37
|
+
exports.getChainFromNetwork = getChainFromNetwork;
|
|
38
|
+
exports.getFullNameFromNetwork = getFullNameFromNetwork;
|
|
39
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
40
|
+
function getNetworkName(n) {
|
|
41
|
+
const name = utxolib.getNetworkName(n);
|
|
42
|
+
if (!name) {
|
|
43
|
+
throw new Error('Unknown network');
|
|
44
|
+
}
|
|
45
|
+
return name;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @param n
|
|
49
|
+
* @returns the family name for a network. Testnets and mainnets of the same coin share the same family name.
|
|
50
|
+
*/
|
|
51
|
+
function getFamilyFromNetwork(n) {
|
|
52
|
+
switch (getNetworkName(n)) {
|
|
53
|
+
case 'bitcoin':
|
|
54
|
+
case 'testnet':
|
|
55
|
+
case 'bitcoinPublicSignet':
|
|
56
|
+
case 'bitcoinTestnet4':
|
|
57
|
+
case 'bitcoinBitGoSignet':
|
|
58
|
+
return 'btc';
|
|
59
|
+
case 'bitcoincash':
|
|
60
|
+
case 'bitcoincashTestnet':
|
|
61
|
+
return 'bch';
|
|
62
|
+
case 'ecash':
|
|
63
|
+
case 'ecashTest':
|
|
64
|
+
return 'bcha';
|
|
65
|
+
case 'bitcoingold':
|
|
66
|
+
case 'bitcoingoldTestnet':
|
|
67
|
+
return 'btg';
|
|
68
|
+
case 'bitcoinsv':
|
|
69
|
+
case 'bitcoinsvTestnet':
|
|
70
|
+
return 'bsv';
|
|
71
|
+
case 'dash':
|
|
72
|
+
case 'dashTest':
|
|
73
|
+
return 'dash';
|
|
74
|
+
case 'dogecoin':
|
|
75
|
+
case 'dogecoinTest':
|
|
76
|
+
return 'doge';
|
|
77
|
+
case 'litecoin':
|
|
78
|
+
case 'litecoinTest':
|
|
79
|
+
return 'ltc';
|
|
80
|
+
case 'zcash':
|
|
81
|
+
case 'zcashTest':
|
|
82
|
+
return 'zec';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get the chain name for a network.
|
|
87
|
+
* The chain is different for every network.
|
|
88
|
+
*/
|
|
89
|
+
function getChainFromNetwork(n) {
|
|
90
|
+
switch (getNetworkName(n)) {
|
|
91
|
+
case 'bitcoinPublicSignet':
|
|
92
|
+
return 'tbtcsig';
|
|
93
|
+
case 'bitcoinTestnet4':
|
|
94
|
+
return 'tbtc4';
|
|
95
|
+
case 'bitcoinBitGoSignet':
|
|
96
|
+
return 'tbtcbgsig';
|
|
97
|
+
case 'bitcoin':
|
|
98
|
+
case 'testnet':
|
|
99
|
+
case 'bitcoincash':
|
|
100
|
+
case 'bitcoincashTestnet':
|
|
101
|
+
case 'ecash':
|
|
102
|
+
case 'ecashTest':
|
|
103
|
+
case 'bitcoingold':
|
|
104
|
+
case 'bitcoingoldTestnet':
|
|
105
|
+
case 'bitcoinsv':
|
|
106
|
+
case 'bitcoinsvTestnet':
|
|
107
|
+
case 'dash':
|
|
108
|
+
case 'dashTest':
|
|
109
|
+
case 'dogecoin':
|
|
110
|
+
case 'dogecoinTest':
|
|
111
|
+
case 'litecoin':
|
|
112
|
+
case 'litecoinTest':
|
|
113
|
+
case 'zcash':
|
|
114
|
+
case 'zcashTest':
|
|
115
|
+
const mainnetName = getFamilyFromNetwork(n);
|
|
116
|
+
return utxolib.isTestnet(n) ? `t${mainnetName}` : mainnetName;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function getFullNameFromNetwork(n) {
|
|
120
|
+
const name = getNetworkName(n);
|
|
121
|
+
let prefix;
|
|
122
|
+
switch (name) {
|
|
123
|
+
case 'bitcoinTestnet4':
|
|
124
|
+
prefix = 'Testnet4 ';
|
|
125
|
+
break;
|
|
126
|
+
case 'bitcoinPublicSignet':
|
|
127
|
+
prefix = 'Public Signet ';
|
|
128
|
+
break;
|
|
129
|
+
case 'bitcoinBitGoSignet':
|
|
130
|
+
prefix = 'BitGo Signet ';
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
if (utxolib.isTestnet(n)) {
|
|
134
|
+
prefix = 'Testnet ';
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
prefix = '';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
switch (name) {
|
|
141
|
+
case 'bitcoin':
|
|
142
|
+
case 'testnet':
|
|
143
|
+
case 'bitcoinTestnet4':
|
|
144
|
+
case 'bitcoinPublicSignet':
|
|
145
|
+
case 'bitcoinBitGoSignet':
|
|
146
|
+
return prefix + 'Bitcoin';
|
|
147
|
+
case 'bitcoincash':
|
|
148
|
+
case 'bitcoincashTestnet':
|
|
149
|
+
return prefix + 'Bitcoin Cash';
|
|
150
|
+
case 'ecash':
|
|
151
|
+
case 'ecashTest':
|
|
152
|
+
return prefix + 'Bitcoin ABC';
|
|
153
|
+
case 'bitcoingold':
|
|
154
|
+
case 'bitcoingoldTestnet':
|
|
155
|
+
return prefix + 'Bitcoin Gold';
|
|
156
|
+
case 'bitcoinsv':
|
|
157
|
+
case 'bitcoinsvTestnet':
|
|
158
|
+
return prefix + 'Bitcoin SV';
|
|
159
|
+
case 'dash':
|
|
160
|
+
case 'dashTest':
|
|
161
|
+
return prefix + 'Dash';
|
|
162
|
+
case 'dogecoin':
|
|
163
|
+
case 'dogecoinTest':
|
|
164
|
+
return prefix + 'Dogecoin';
|
|
165
|
+
case 'litecoin':
|
|
166
|
+
case 'litecoinTest':
|
|
167
|
+
return prefix + 'Litecoin';
|
|
168
|
+
case 'zcash':
|
|
169
|
+
case 'zcashTest':
|
|
170
|
+
return prefix + 'ZCash';
|
|
171
|
+
default:
|
|
172
|
+
throw new Error('Unknown network');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxvREFpQ0M7QUFNRCxrREE2QkM7QUFFRCx3REF3REM7QUE1SUQsOERBQWdEO0FBRWhELFNBQVMsY0FBYyxDQUFDLENBQWtCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxDQUFrQjtJQUNyRCxRQUFRLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFCLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLHFCQUFxQixDQUFDO1FBQzNCLEtBQUssaUJBQWlCLENBQUM7UUFDdkIsS0FBSyxvQkFBb0I7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLGFBQWEsQ0FBQztRQUNuQixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxXQUFXO1lBQ2QsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxhQUFhLENBQUM7UUFDbkIsS0FBSyxvQkFBb0I7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLFdBQVcsQ0FBQztRQUNqQixLQUFLLGtCQUFrQjtZQUNyQixPQUFPLEtBQUssQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxVQUFVO1lBQ2IsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxVQUFVLENBQUM7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UUFDWixLQUFLLFVBQVU7WUFDYixPQUFPLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDekIsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxjQUFjO1lBQ2pCLE9BQU8sTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUM3QixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLGNBQWM7WUFDakIsT0FBTyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQzdCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxXQUFXO1lBQ2QsT0FBTyxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQzFCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtOYW1lKG46IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWIuTmV0d29ya05hbWUge1xuICBjb25zdCBuYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuKTtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIG5ldHdvcmsnKTtcbiAgfVxuICByZXR1cm4gbmFtZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gblxuICogQHJldHVybnMgdGhlIGZhbWlseSBuYW1lIGZvciBhIG5ldHdvcmsuIFRlc3RuZXRzIGFuZCBtYWlubmV0cyBvZiB0aGUgc2FtZSBjb2luIHNoYXJlIHRoZSBzYW1lIGZhbWlseSBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmFtaWx5RnJvbU5ldHdvcmsobjogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHtcbiAgc3dpdGNoIChnZXROZXR3b3JrTmFtZShuKSkge1xuICAgIGNhc2UgJ2JpdGNvaW4nOlxuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgIGNhc2UgJ2JpdGNvaW5QdWJsaWNTaWduZXQnOlxuICAgIGNhc2UgJ2JpdGNvaW5UZXN0bmV0NCc6XG4gICAgY2FzZSAnYml0Y29pbkJpdEdvU2lnbmV0JzpcbiAgICAgIHJldHVybiAnYnRjJztcbiAgICBjYXNlICdiaXRjb2luY2FzaCc6XG4gICAgY2FzZSAnYml0Y29pbmNhc2hUZXN0bmV0JzpcbiAgICAgIHJldHVybiAnYmNoJztcbiAgICBjYXNlICdlY2FzaCc6XG4gICAgY2FzZSAnZWNhc2hUZXN0JzpcbiAgICAgIHJldHVybiAnYmNoYSc7XG4gICAgY2FzZSAnYml0Y29pbmdvbGQnOlxuICAgIGNhc2UgJ2JpdGNvaW5nb2xkVGVzdG5ldCc6XG4gICAgICByZXR1cm4gJ2J0Zyc7XG4gICAgY2FzZSAnYml0Y29pbnN2JzpcbiAgICBjYXNlICdiaXRjb2luc3ZUZXN0bmV0JzpcbiAgICAgIHJldHVybiAnYnN2JztcbiAgICBjYXNlICdkYXNoJzpcbiAgICBjYXNlICdkYXNoVGVzdCc6XG4gICAgICByZXR1cm4gJ2Rhc2gnO1xuICAgIGNhc2UgJ2RvZ2Vjb2luJzpcbiAgICBjYXNlICdkb2dlY29pblRlc3QnOlxuICAgICAgcmV0dXJuICdkb2dlJztcbiAgICBjYXNlICdsaXRlY29pbic6XG4gICAgY2FzZSAnbGl0ZWNvaW5UZXN0JzpcbiAgICAgIHJldHVybiAnbHRjJztcbiAgICBjYXNlICd6Y2FzaCc6XG4gICAgY2FzZSAnemNhc2hUZXN0JzpcbiAgICAgIHJldHVybiAnemVjJztcbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgY2hhaW4gbmFtZSBmb3IgYSBuZXR3b3JrLlxuICogVGhlIGNoYWluIGlzIGRpZmZlcmVudCBmb3IgZXZlcnkgbmV0d29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoYWluRnJvbU5ldHdvcmsobjogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHtcbiAgc3dpdGNoIChnZXROZXR3b3JrTmFtZShuKSkge1xuICAgIGNhc2UgJ2JpdGNvaW5QdWJsaWNTaWduZXQnOlxuICAgICAgcmV0dXJuICd0YnRjc2lnJztcbiAgICBjYXNlICdiaXRjb2luVGVzdG5ldDQnOlxuICAgICAgcmV0dXJuICd0YnRjNCc7XG4gICAgY2FzZSAnYml0Y29pbkJpdEdvU2lnbmV0JzpcbiAgICAgIHJldHVybiAndGJ0Y2Jnc2lnJztcbiAgICBjYXNlICdiaXRjb2luJzpcbiAgICBjYXNlICd0ZXN0bmV0JzpcbiAgICBjYXNlICdiaXRjb2luY2FzaCc6XG4gICAgY2FzZSAnYml0Y29pbmNhc2hUZXN0bmV0JzpcbiAgICBjYXNlICdlY2FzaCc6XG4gICAgY2FzZSAnZWNhc2hUZXN0JzpcbiAgICBjYXNlICdiaXRjb2luZ29sZCc6XG4gICAgY2FzZSAnYml0Y29pbmdvbGRUZXN0bmV0JzpcbiAgICBjYXNlICdiaXRjb2luc3YnOlxuICAgIGNhc2UgJ2JpdGNvaW5zdlRlc3RuZXQnOlxuICAgIGNhc2UgJ2Rhc2gnOlxuICAgIGNhc2UgJ2Rhc2hUZXN0JzpcbiAgICBjYXNlICdkb2dlY29pbic6XG4gICAgY2FzZSAnZG9nZWNvaW5UZXN0JzpcbiAgICBjYXNlICdsaXRlY29pbic6XG4gICAgY2FzZSAnbGl0ZWNvaW5UZXN0JzpcbiAgICBjYXNlICd6Y2FzaCc6XG4gICAgY2FzZSAnemNhc2hUZXN0JzpcbiAgICAgIGNvbnN0IG1haW5uZXROYW1lID0gZ2V0RmFtaWx5RnJvbU5ldHdvcmsobik7XG4gICAgICByZXR1cm4gdXR4b2xpYi5pc1Rlc3RuZXQobikgPyBgdCR7bWFpbm5ldE5hbWV9YCA6IG1haW5uZXROYW1lO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGdWxsTmFtZUZyb21OZXR3b3JrKG46IHV0eG9saWIuTmV0d29yayk6IHN0cmluZyB7XG4gIGNvbnN0IG5hbWUgPSBnZXROZXR3b3JrTmFtZShuKTtcblxuICBsZXQgcHJlZml4OiBzdHJpbmc7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ2JpdGNvaW5UZXN0bmV0NCc6XG4gICAgICBwcmVmaXggPSAnVGVzdG5ldDQgJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JpdGNvaW5QdWJsaWNTaWduZXQnOlxuICAgICAgcHJlZml4ID0gJ1B1YmxpYyBTaWduZXQgJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JpdGNvaW5CaXRHb1NpZ25ldCc6XG4gICAgICBwcmVmaXggPSAnQml0R28gU2lnbmV0ICc7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHV0eG9saWIuaXNUZXN0bmV0KG4pKSB7XG4gICAgICAgIHByZWZpeCA9ICdUZXN0bmV0ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmVmaXggPSAnJztcbiAgICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ2JpdGNvaW4nOlxuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgIGNhc2UgJ2JpdGNvaW5UZXN0bmV0NCc6XG4gICAgY2FzZSAnYml0Y29pblB1YmxpY1NpZ25ldCc6XG4gICAgY2FzZSAnYml0Y29pbkJpdEdvU2lnbmV0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnQml0Y29pbic7XG4gICAgY2FzZSAnYml0Y29pbmNhc2gnOlxuICAgIGNhc2UgJ2JpdGNvaW5jYXNoVGVzdG5ldCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0JpdGNvaW4gQ2FzaCc7XG4gICAgY2FzZSAnZWNhc2gnOlxuICAgIGNhc2UgJ2VjYXNoVGVzdCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0JpdGNvaW4gQUJDJztcbiAgICBjYXNlICdiaXRjb2luZ29sZCc6XG4gICAgY2FzZSAnYml0Y29pbmdvbGRUZXN0bmV0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnQml0Y29pbiBHb2xkJztcbiAgICBjYXNlICdiaXRjb2luc3YnOlxuICAgIGNhc2UgJ2JpdGNvaW5zdlRlc3RuZXQnOlxuICAgICAgcmV0dXJuIHByZWZpeCArICdCaXRjb2luIFNWJztcbiAgICBjYXNlICdkYXNoJzpcbiAgICBjYXNlICdkYXNoVGVzdCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0Rhc2gnO1xuICAgIGNhc2UgJ2RvZ2Vjb2luJzpcbiAgICBjYXNlICdkb2dlY29pblRlc3QnOlxuICAgICAgcmV0dXJuIHByZWZpeCArICdEb2dlY29pbic7XG4gICAgY2FzZSAnbGl0ZWNvaW4nOlxuICAgIGNhc2UgJ2xpdGVjb2luVGVzdCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0xpdGVjb2luJztcbiAgICBjYXNlICd6Y2FzaCc6XG4gICAgY2FzZSAnemNhc2hUZXN0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnWkNhc2gnO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbmV0d29yaycpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AddressInfo, TransactionIO } from '@bitgo-beta/blockapis';
|
|
2
2
|
import { bitgo } from '@bitgo-beta/utxo-lib';
|
|
3
|
-
|
|
3
|
+
type Unspent<TNumber extends number | bigint = number> = bitgo.Unspent<TNumber>;
|
|
4
4
|
/**
|
|
5
5
|
* An account with bear minimum information required for recoveries.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecoveryProvider.d.ts","sourceRoot":"","sources":["../../../src/recovery/RecoveryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RecoveryProvider.d.ts","sourceRoot":"","sources":["../../../src/recovery/RecoveryProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,KAAK,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IACxE,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACxD;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAgBrF"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.forCoin =
|
|
3
|
+
exports.forCoin = forCoin;
|
|
4
4
|
const blockapis_1 = require("@bitgo-beta/blockapis");
|
|
5
5
|
const baseApi_1 = require("./baseApi");
|
|
6
6
|
function forCoin(coinName, apiToken) {
|
|
7
7
|
switch (coinName) {
|
|
8
8
|
case 'btc':
|
|
9
9
|
case 'tbtc':
|
|
10
|
-
return blockapis_1.BlockstreamApi.forCoin(coinName);
|
|
11
10
|
case 'bch':
|
|
12
11
|
case 'bcha':
|
|
13
12
|
case 'bsv':
|
|
@@ -20,5 +19,4 @@ function forCoin(coinName, apiToken) {
|
|
|
20
19
|
}
|
|
21
20
|
throw new baseApi_1.ApiNotImplementedError(coinName);
|
|
22
21
|
}
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3ZlcnlQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9SZWNvdmVyeVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRztBQUNsRyx1Q0FBbUQ7QUF1Qm5ELFNBQWdCLE9BQU8sQ0FBQyxRQUFnQixFQUFFLFFBQWlCO0lBQ3pELFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNO1lBQ1QsT0FBTywwQkFBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssS0FBSztZQUNSLE9BQU8seUJBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUVELE1BQU0sSUFBSSxnQ0FBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBakJELDBCQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJsb2NrY2hhaXJBcGksIEJsb2Nrc3RyZWFtQXBpLCBBZGRyZXNzSW5mbywgVHJhbnNhY3Rpb25JTyB9IGZyb20gJ0BiaXRnby1iZXRhL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBBcGlOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi9iYXNlQXBpJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG50eXBlIFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSBiaXRnby5VbnNwZW50PFROdW1iZXI+O1xuXG4vKipcbiAqIEFuIGFjY291bnQgd2l0aCBiZWFyIG1pbmltdW0gaW5mb3JtYXRpb24gcmVxdWlyZWQgZm9yIHJlY292ZXJpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlBY2NvdW50RGF0YSB7XG4gIHR4Q291bnQ6IG51bWJlcjtcbiAgdG90YWxCYWxhbmNlOiBudW1iZXI7XG59XG5cbi8qKlxuICogRmFjdG9yeSBmb3IgQWRkcmVzc0FwaSAmIFV0eG9BcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeVByb3ZpZGVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IHtcbiAgZ2V0VW5zcGVudHNGb3JBZGRyZXNzZXMoYWRkcmVzc2VzOiBzdHJpbmdbXSk6IFByb21pc2U8VW5zcGVudDxUTnVtYmVyPltdPjtcbiAgZ2V0QWRkcmVzc0luZm8oYWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxBZGRyZXNzSW5mbz47XG4gIGdldFRyYW5zYWN0aW9uSGV4KHR4aWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPjtcbiAgZ2V0VHJhbnNhY3Rpb25JTyh0eGlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSU8+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yQ29pbihjb2luTmFtZTogc3RyaW5nLCBhcGlUb2tlbj86IHN0cmluZyk6IFJlY292ZXJ5UHJvdmlkZXI8bnVtYmVyPiB7XG4gIHN3aXRjaCAoY29pbk5hbWUpIHtcbiAgICBjYXNlICdidGMnOlxuICAgIGNhc2UgJ3RidGMnOlxuICAgICAgcmV0dXJuIEJsb2Nrc3RyZWFtQXBpLmZvckNvaW4oY29pbk5hbWUpO1xuICAgIGNhc2UgJ2JjaCc6XG4gICAgY2FzZSAnYmNoYSc6XG4gICAgY2FzZSAnYnN2JzpcbiAgICBjYXNlICdidGcnOlxuICAgIGNhc2UgJ2Rhc2gnOlxuICAgIGNhc2UgJ2RvZ2UnOlxuICAgIGNhc2UgJ2x0Yyc6XG4gICAgY2FzZSAnemVjJzpcbiAgICAgIHJldHVybiBCbG9ja2NoYWlyQXBpLmZvckNvaW4oY29pbk5hbWUsIHsgYXBpVG9rZW4gfSk7XG4gIH1cblxuICB0aHJvdyBuZXcgQXBpTm90SW1wbGVtZW50ZWRFcnJvcihjb2luTmFtZSk7XG59XG4iXX0=
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3ZlcnlQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9SZWNvdmVyeVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUJBLDBCQWdCQztBQXpDRCxxREFBa0Y7QUFHbEYsdUNBQW1EO0FBc0JuRCxTQUFnQixPQUFPLENBQUMsUUFBZ0IsRUFBRSxRQUFpQjtJQUN6RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssS0FBSztZQUNSLE9BQU8seUJBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxJQUFJLGdDQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCbG9ja2NoYWlyQXBpLCBBZGRyZXNzSW5mbywgVHJhbnNhY3Rpb25JTyB9IGZyb20gJ0BiaXRnby1iZXRhL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBiaXRnbyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgQXBpTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJy4vYmFzZUFwaSc7XG5cbnR5cGUgVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IGJpdGdvLlVuc3BlbnQ8VE51bWJlcj47XG5cbi8qKlxuICogQW4gYWNjb3VudCB3aXRoIGJlYXIgbWluaW11bSBpbmZvcm1hdGlvbiByZXF1aXJlZCBmb3IgcmVjb3Zlcmllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeUFjY291bnREYXRhIHtcbiAgdHhDb3VudDogbnVtYmVyO1xuICB0b3RhbEJhbGFuY2U6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZvciBBZGRyZXNzQXBpICYgVXR4b0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5UHJvdmlkZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4ge1xuICBnZXRVbnNwZW50c0ZvckFkZHJlc3NlcyhhZGRyZXNzZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxVbnNwZW50PFROdW1iZXI+W10+O1xuICBnZXRBZGRyZXNzSW5mbyhhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPEFkZHJlc3NJbmZvPjtcbiAgZ2V0VHJhbnNhY3Rpb25IZXgodHhpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+O1xuICBnZXRUcmFuc2FjdGlvbklPKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JTz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JDb2luKGNvaW5OYW1lOiBzdHJpbmcsIGFwaVRva2VuPzogc3RyaW5nKTogUmVjb3ZlcnlQcm92aWRlcjxudW1iZXI+IHtcbiAgc3dpdGNoIChjb2luTmFtZSkge1xuICAgIGNhc2UgJ2J0Yyc6XG4gICAgY2FzZSAndGJ0Yyc6XG4gICAgY2FzZSAnYmNoJzpcbiAgICBjYXNlICdiY2hhJzpcbiAgICBjYXNlICdic3YnOlxuICAgIGNhc2UgJ2J0Zyc6XG4gICAgY2FzZSAnZGFzaCc6XG4gICAgY2FzZSAnZG9nZSc6XG4gICAgY2FzZSAnbHRjJzpcbiAgICBjYXNlICd6ZWMnOlxuICAgICAgcmV0dXJuIEJsb2NrY2hhaXJBcGkuZm9yQ29pbihjb2luTmFtZSwgeyBhcGlUb2tlbiB9KTtcbiAgfVxuXG4gIHRocm93IG5ldyBBcGlOb3RJbXBsZW1lbnRlZEVycm9yKGNvaW5OYW1lKTtcbn1cbiJdfQ==
|