number property
Returns an integer if the operation pushes a number, or null
Implementation
@override
int? get number {
// Only number if no more than 4 bytes
if (_data.length > 4) return null;
if (_data.isEmpty) return 0;
// Calculate negative numbers as done by Sumcoin
final isNeg = (_data.last & 0x80) == 0x80;
// Absolute number with sign bit removed
final abs = (
_data[0]
| (_data.length > 1 ? _data[1] << 8 : 0)
| (_data.length > 2 ? _data[2] << 16 : 0)
| (_data.length > 3 ? _data[3] << 24 : 0)
// Remove sign bit
) & 0x7fffffff >> (8*(4-_data.length));
return isNeg ? -abs : abs;
}