opPushData function
Implementation
List<int> opPushData(String hexData) {
final List<int> dataBytes = BytesUtils.fromHexString(hexData);
if (dataBytes.length < 0x4c) {
return List<int>.from([dataBytes.length]) + dataBytes;
} else if (dataBytes.length < mask8) {
return List<int>.from([0x4c]) +
List<int>.from([dataBytes.length]) +
dataBytes;
} else if (dataBytes.length < mask16) {
var lengthBytes = List<int>.filled(2, 0);
writeUint16LE(dataBytes.length, lengthBytes);
return List<int>.from([0x4d, ...lengthBytes, ...dataBytes]);
} else if (dataBytes.length < mask32) {
var lengthBytes = List<int>.filled(4, 0);
writeUint32LE(lengthBytes.length, lengthBytes);
return List<int>.from([0x4e, ...lengthBytes, ...dataBytes]);
} else {
throw ArgumentError("Data too large. Cannot push into script");
}
}