getProofForExtrinsic method
Implementation
Uint8List getProofForExtrinsic(
Uint8List transaction,
Uint8List? txAdditionalSigned,
) {
final (version, signed, bytes) = decodeExtrinsic(transaction);
assertion(version == extrinsicMeta.version, 'Incorrect extrinsic version');
final List<TypeRef> typeRefs = signed
? [
extrinsicMeta.addressTy,
extrinsicMeta.signatureTy,
...extrinsicMeta.signedExtensions.map((x) => x.includedInExtrinsic),
extrinsicMeta.callTy,
]
: [extrinsicMeta.callTy];
if (txAdditionalSigned != null) {
typeRefs.addAll(extrinsicMeta.signedExtensions.map((e) => e.includedInSignedData));
}
final proofBytes = txAdditionalSigned != null ? mergeUint8([bytes, txAdditionalSigned]) : bytes;
return generateProof(decodeAndCollectKnownLeafs(proofBytes, typeRefs));
}