pushInteger function
Implementation
List<int> pushInteger(int integer) {
if (integer < 0) {
throw ArgumentError('Integer is currently required to be positive.');
}
/// Calculate the number of bytes required to represent the integer
int numberOfBytes = (integer.bitLength + 7) ~/ 8;
/// Convert to little-endian bytes
List<int> integerBytes = List<int>.filled(numberOfBytes, 0);
for (int i = 0; i < numberOfBytes; i++) {
integerBytes[i] = (integer >> (i * 8)) & mask8;
}
/// If the last bit is set, add a sign byte to signify a positive integer
if ((integer & (1 << (numberOfBytes * 8 - 1))) != 0) {
integerBytes = List<int>.from([...integerBytes, 0x00]);
}
return List<int>.from(opPushData(BytesUtils.toHexString(integerBytes)));
}