pushParam method
dynamic
pushParam
(dynamic param)
Implementation
pushParam(dynamic param) {
if (param is Uint8List) {
pushHex(param);
} else if (param is String) {
pushStr(param);
} else if (param is bool) {
pushBool(param);
} else if (param is int) {
pushInt(param);
} else if (param is BigInt) {
pushBigInt(param);
} else if (param is Address) {
pushAddress(param);
} else if (param is Struct) {
var pb = VmParamsBuilder();
pb.pushStruct(param);
pushHex(pb.buf.bytes);
} else if (param is Map<String, dynamic>) {
pushMap(param);
} else if (param is List<dynamic>) {
for (var item in param.reversed) {
pushParam(item);
}
pushInt(param.length);
pushOpcode(OpCode.pack);
} else {
throw ArgumentError(
'Unsupported param type: ' + param.runtimeType.toString());
}
}