SignedExtensionsCodec constructor
SignedExtensionsCodec(
- MetadataTypeRegistry registry
Implementation
SignedExtensionsCodec(this.registry) {
// Handle both V14/V15 SignedExtensions and V16 TransactionExtensions
final extrinsic = registry.extrinsic;
if (extrinsic is ExtrinsicMetadataV16) {
// V16: Use transaction extensions for the primary extrinsic version
final txExtensions = extrinsic.extensionsForVersion(extrinsic.version);
extensions = txExtensions
.map((final te) => ExtensionInfo(identifier: te.identifier, type: te.type))
.toList(growable: false);
} else {
// V14/V15: Use legacy signed extensions
extensions = extrinsic.signedExtensions
.map((final se) => ExtensionInfo(identifier: se.identifier, type: se.type))
.toList(growable: false);
}
codecs = extensions.map((final extension) => registry.codecFor(extension.type)).toList();
}