Taproot Outputs spend capacity

This commit is contained in:
tripathyr 2023-08-08 18:32:09 +05:30 committed by GitHub
parent 1a74ca0f4d
commit b7d102ec12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,6 +92,9 @@
},
bech32Address: {
value: key => coinjs.bech32Address(btcOperator.pubkey(key)).address
},
bech32mAddress: {
value: key => segwit_addr.encode("bc",1,key)
}
});
@ -107,6 +110,8 @@
return btcOperator.segwitAddress(key) === addr;
case "bech32":
return btcOperator.bech32Address(key) === addr;
case "bech32m":
return btcOperator.bech32mAddress(key) === addr; // Key is a byte array of 32 bytes
default:
return null;
}
@ -116,7 +121,7 @@
if (!addr)
return undefined;
let type = coinjs.addressDecode(addr).type;
if (["standard", "multisig", "bech32", "multisigBech32"].includes(type))
if (["standard", "multisig", "bech32", "multisigBech32","bech32m"].includes(type))
return type;
else
return false;
@ -281,6 +286,7 @@
BECH32_OUTPUT_SIZE = 23,
BECH32_MULTISIG_OUTPUT_SIZE = 34,
SEGWIT_OUTPUT_SIZE = 23;
BECH32M_OUTPUT_SIZE = 35; // Check this later
function _redeemScript(addr, key) {
let decode = coinjs.addressDecode(addr);
@ -291,6 +297,8 @@
return key ? coinjs.segwitAddress(btcOperator.pubkey(key)).redeemscript : null;
case "bech32":
return decode.redeemscript;
case "bech32m":
return decode.outstring; //Maybe the redeemscript will come when input processing happens for bech32m
default:
return null;
}
@ -328,6 +336,8 @@
return BASE_OUTPUT_SIZE + BECH32_MULTISIG_OUTPUT_SIZE;
case "multisig":
return BASE_OUTPUT_SIZE + SEGWIT_OUTPUT_SIZE;
case "bech32m":
return BASE_OUTPUT_SIZE + BECH32M_OUTPUT_SIZE;
default:
return null;
}