@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
36 lines • 1.45 kB
JavaScript
import { networks } from '@btc-vision/bitcoin';
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
import { MultiSignTransaction, } from '../builders/MultiSignTransaction.js';
export class P2TR_MS {
/**
* Generate a multi-sig address
* @param {Uint8Array[]} pubKeys - The public keys to use
* @param {number} minimumSignatureRequired - The minimum number of signatures required
* @param {Network} network - The network to use
* @returns {string} - The generated address
* @throws {Error} - If the address cannot be generated
*/
static generateMultiSigAddress(pubKeys, minimumSignatureRequired, network = networks.bitcoin) {
const publicKeys = EcKeyPair.verifyPubKeys(pubKeys, network);
if (publicKeys.length !== pubKeys.length)
throw new Error(`Contains invalid public keys`);
// fake params
const multiSignParams = {
network: network,
utxos: [],
pubkeys: pubKeys,
minimumSignatures: minimumSignatureRequired,
feeRate: 100,
receiver: 'a',
requestedAmount: 1n,
refundVault: 'a',
mldsaSigner: null,
};
const address = new MultiSignTransaction(multiSignParams).getScriptAddress();
if (!address) {
throw new Error('Failed to generate address');
}
return address;
}
}
//# sourceMappingURL=P2TR_MS.js.map