pushBytes method

dynamic pushBytes (Uint8List bytes)

Implementation

pushBytes(Uint8List bytes) {
  int len = bytes.lengthInBytes;
  if (len == 0) throw ArgumentError('empty bytes');

  if (len <= OpCode.pushbytes75 + 1 - OpCode.pushbytes1) {
    pushNum(len + OpCode.pushbytes1 - 1);
  } else if (len < 0x100) {
    pushOpcode(OpCode.pushdata1);
    pushNum(len);
  } else if (len < 0x10000) {
    pushOpcode(OpCode.pushdata2);
    pushNum(len, len: 2, bigEndian: false);
  } else if (len < 0x100000000) {
    pushOpcode(OpCode.pushdata4);
    pushNum(len, len: 4, bigEndian: false);
  } else {
    throw ArgumentError('Invalid bytes len: ' + len.toString());
  }
  pushRawBytes(bytes);
}