encode method

dynamic encode()

Implementation

dynamic encode() {
  final prim = type['prim'];
  MichelineEncoder encoder;

  switch (prim) {
    case 'pair':
      encoder = PairEncoder(params: _params, type: type);
      break;
    case 'timestamp':
      encoder = TimestampEncoder(_params);
      break;
    case 'string':
    // TODO: implement validators of these types
    case 'address':
    case 'contract':
    case 'key':
    case 'signature':
      encoder = StringEncoder(_params);
      break;
    case 'bytes':
      encoder = BytesEncoder(_params);
      break;
    case 'nat':
    case 'int':
      encoder = IntEncoder(_params);
      break;
    case 'option':
      encoder = OptionEncoder(params: _params, type: type);
      break;
    case 'list':
      encoder = ListEncoder(params: _params, type: type);
      break;
    case 'map':
    case 'big_map':
      encoder = MapEncoder(params: _params, type: type);
      break;
    case 'unit':
      encoder = UnitEncoder();
      break;
    default:
      throw UnimplementedError('Unknown type : $prim');
  }

  return encoder.encode();
}