pub fn make_signature<T, A>(
    spending_key: &SecretKey<A>,
    data: &T
) -> Signature<T, A::PubAlg>where
    A: SigningAlgorithm,
    <A as AsymmetricKey>::PubAlg: VerificationAlgorithm,
    T: Serialize,