All methods return an Status error, which translates over the wire always to gRPC InvalidArgument code, no matter the nature of the error.
We should be able to determine wether an error is a validation error, network, I/O, etc.
impl From<GrpcServerError> for Status {
fn from(err: GrpcServerError) -> Self {
Status::invalid_argument(err.to_string())
}
}
async fn get_association_state(
&self,
request: Request<GetAssociationStateRequest>,
) -> Result<Response<GetAssociationStateResponse>, Status>