pushStruct method

dynamic pushStruct (Struct struct)

Implementation

pushStruct(Struct struct) {
  pushNum(AbiParameterType.struct.value);
  pushNum(struct.list.length);
  for (var item in struct.list) {
    if (item is String) {
      pushNum(AbiParameterType.byteArray.value);
      pushHex(Convert.strToBytes(item));
    } else if (item is int) {
      pushNum(AbiParameterType.byteArray.value);
      var sb = ScriptBuilder();
      sb.pushVarInt(item);
      pushHex(sb.buf.bytes);
    } else if (item is Uint8List) {
      pushNum(AbiParameterType.byteArray.value);
      pushHex(item);
    } else {
      throw ArgumentError('Invalid params: ' + item.runtimeType.toString());
    }
  }
}