PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/src/bitgo/wallet
Просмотр файла: WalletUnspentSigner.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WalletUnspentSigner = void 0;
const WalletKeys_1 = require("./WalletKeys");
class WalletUnspentSigner {
static from(walletKeys, signer, cosigner) {
return new WalletUnspentSigner(walletKeys, signer, cosigner);
}
constructor(walletKeys, signer, cosigner) {
this.signer = signer;
this.cosigner = cosigner;
if (Array.isArray(walletKeys)) {
walletKeys = new WalletKeys_1.RootWalletKeys(walletKeys);
}
this.signerIndex = walletKeys.triple.findIndex((k) => (0, WalletKeys_1.eqPublicKey)(k, signer));
if (this.signerIndex === undefined) {
throw new Error(`signer not part of walletKeys`);
}
this.cosignerIndex = walletKeys.triple.findIndex((k) => (0, WalletKeys_1.eqPublicKey)(k, cosigner));
if (this.cosignerIndex === undefined) {
throw new Error(`cosigner not part of walletKeys`);
}
this.walletKeys = walletKeys;
if ((0, WalletKeys_1.eqPublicKey)(signer, cosigner)) {
throw new Error(`signer must not equal cosigner`);
}
if (signer.isNeutered()) {
throw new Error(`signer must have private key`);
}
}
/**
* @param chain
* @param index
* @return WalletUnspentSigner that contains keys for generating output scripts and signatures.
*/
deriveForChainAndIndex(chain, index) {
if (this.walletKeys instanceof WalletKeys_1.DerivedWalletKeys) {
throw new Error(`cannot derive again from DerivedWalletKeys`);
}
if (this.walletKeys instanceof WalletKeys_1.RootWalletKeys) {
return new WalletUnspentSigner(this.walletKeys.deriveForChainAndIndex(chain, index), this.signer.derivePath(this.walletKeys.getDerivationPath(this.signer, chain, index)), this.cosigner.derivePath(this.walletKeys.getDerivationPath(this.cosigner, chain, index)));
}
throw new Error(`invalid state`);
}
}
exports.WalletUnspentSigner = WalletUnspentSigner;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0VW5zcGVudFNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0VW5zcGVudFNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBMEY7QUFHMUYsTUFBYSxtQkFBbUI7SUFHOUIsTUFBTSxDQUFDLElBQUksQ0FDVCxVQUEwQixFQUMxQixNQUFzQixFQUN0QixRQUF3QjtRQUV4QixPQUFPLElBQUksbUJBQW1CLENBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUtELFlBQ0UsVUFBK0MsRUFDeEMsTUFBc0IsRUFDdEIsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx3QkFBVyxFQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsd0JBQVcsRUFBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQWUsQ0FBQztRQUVsQyxJQUFJLElBQUEsd0JBQVcsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSw4QkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLDJCQUFjLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQTdERCxrREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcblxuaW1wb3J0IHsgRGVyaXZlZFdhbGxldEtleXMsIGVxUHVibGljS2V5LCBSb290V2FsbGV0S2V5cywgV2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRVbnNwZW50U2lnbmVyPFQgZXh0ZW5kcyBXYWxsZXRLZXlzPiB7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRLZXlzOiBUO1xuXG4gIHN0YXRpYyBmcm9tKFxuICAgIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICAgIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgY29zaWduZXI6IEJJUDMySW50ZXJmYWNlXG4gICk6IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgICByZXR1cm4gbmV3IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+KHdhbGxldEtleXMsIHNpZ25lciwgY29zaWduZXIpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2lnbmVySW5kZXg7XG4gIHJlYWRvbmx5IGNvc2lnbmVySW5kZXg7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgd2FsbGV0S2V5czogV2FsbGV0S2V5cyB8IFRyaXBsZTxCSVAzMkludGVyZmFjZT4sXG4gICAgcHVibGljIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgcHVibGljIGNvc2lnbmVyOiBCSVAzMkludGVyZmFjZVxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh3YWxsZXRLZXlzKSkge1xuICAgICAgd2FsbGV0S2V5cyA9IG5ldyBSb290V2FsbGV0S2V5cyh3YWxsZXRLZXlzKTtcbiAgICB9XG4gICAgdGhpcy5zaWduZXJJbmRleCA9IHdhbGxldEtleXMudHJpcGxlLmZpbmRJbmRleCgoaykgPT4gZXFQdWJsaWNLZXkoaywgc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuc2lnbmVySW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbm90IHBhcnQgb2Ygd2FsbGV0S2V5c2ApO1xuICAgIH1cbiAgICB0aGlzLmNvc2lnbmVySW5kZXggPSB3YWxsZXRLZXlzLnRyaXBsZS5maW5kSW5kZXgoKGspID0+IGVxUHVibGljS2V5KGssIGNvc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuY29zaWduZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvc2lnbmVyIG5vdCBwYXJ0IG9mIHdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICB0aGlzLndhbGxldEtleXMgPSB3YWxsZXRLZXlzIGFzIFQ7XG5cbiAgICBpZiAoZXFQdWJsaWNLZXkoc2lnbmVyLCBjb3NpZ25lcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG11c3Qgbm90IGVxdWFsIGNvc2lnbmVyYCk7XG4gICAgfVxuICAgIGlmIChzaWduZXIuaXNOZXV0ZXJlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25lciBtdXN0IGhhdmUgcHJpdmF0ZSBrZXlgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcmV0dXJuIFdhbGxldFVuc3BlbnRTaWduZXIgdGhhdCBjb250YWlucyBrZXlzIGZvciBnZW5lcmF0aW5nIG91dHB1dCBzY3JpcHRzIGFuZCBzaWduYXR1cmVzLlxuICAgKi9cbiAgZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbjogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogV2FsbGV0VW5zcGVudFNpZ25lcjxEZXJpdmVkV2FsbGV0S2V5cz4ge1xuICAgIGlmICh0aGlzLndhbGxldEtleXMgaW5zdGFuY2VvZiBEZXJpdmVkV2FsbGV0S2V5cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVyaXZlIGFnYWluIGZyb20gRGVyaXZlZFdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy53YWxsZXRLZXlzIGluc3RhbmNlb2YgUm9vdFdhbGxldEtleXMpIHtcbiAgICAgIHJldHVybiBuZXcgV2FsbGV0VW5zcGVudFNpZ25lcihcbiAgICAgICAgdGhpcy53YWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KSxcbiAgICAgICAgdGhpcy5zaWduZXIuZGVyaXZlUGF0aCh0aGlzLndhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgodGhpcy5zaWduZXIsIGNoYWluLCBpbmRleCkpLFxuICAgICAgICB0aGlzLmNvc2lnbmVyLmRlcml2ZVBhdGgodGhpcy53YWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHRoaXMuY29zaWduZXIsIGNoYWluLCBpbmRleCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzdGF0ZWApO1xuICB9XG59XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!