use std::collections::HashMap;
use std::hash::Hash;
-use secp256k1::{Secp256k1, Signature};
+use secp256k1::Signature;
use secp256k1::key::{PublicKey, SecretKey};
use bitcoin::util::hash::Sha256dHash;
use bitcoin::blockdata::script::Script;
use std::marker::Sized;
use ln::msgs::DecodeError;
+use ln::channelmanager::{PaymentPreimage, PaymentHash};
use util::byte_utils;
use util::byte_utils::{be64_to_array, be48_to_array, be32_to_array, be16_to_array, slice_to_be16, slice_to_be32, slice_to_be48, slice_to_be64};
impl<R: Read> Readable<R> for PublicKey {
fn read(r: &mut R) -> Result<Self, DecodeError> {
let buf: [u8; 33] = Readable::read(r)?;
- match PublicKey::from_slice(&Secp256k1::without_caps(), &buf) {
+ match PublicKey::from_slice(&buf) {
Ok(key) => Ok(key),
Err(_) => return Err(DecodeError::InvalidValue),
}
impl<R: Read> Readable<R> for SecretKey {
fn read(r: &mut R) -> Result<Self, DecodeError> {
let buf: [u8; 32] = Readable::read(r)?;
- match SecretKey::from_slice(&Secp256k1::without_caps(), &buf) {
+ match SecretKey::from_slice(&buf) {
Ok(key) => Ok(key),
Err(_) => return Err(DecodeError::InvalidValue),
}
impl Writeable for Signature {
fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
- self.serialize_compact(&Secp256k1::without_caps()).write(w)
+ self.serialize_compact().write(w)
}
}
impl<R: Read> Readable<R> for Signature {
fn read(r: &mut R) -> Result<Self, DecodeError> {
let buf: [u8; 64] = Readable::read(r)?;
- match Signature::from_compact(&Secp256k1::without_caps(), &buf) {
+ match Signature::from_compact(&buf) {
Ok(sig) => Ok(sig),
Err(_) => return Err(DecodeError::InvalidValue),
}
}
}
+
+impl Writeable for PaymentPreimage {
+ fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
+ self.0.write(w)
+ }
+}
+
+impl<R: Read> Readable<R> for PaymentPreimage {
+ fn read(r: &mut R) -> Result<Self, DecodeError> {
+ let buf: [u8; 32] = Readable::read(r)?;
+ Ok(PaymentPreimage(buf))
+ }
+}
+
+impl Writeable for PaymentHash {
+ fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
+ self.0.write(w)
+ }
+}
+
+impl<R: Read> Readable<R> for PaymentHash {
+ fn read(r: &mut R) -> Result<Self, DecodeError> {
+ let buf: [u8; 32] = Readable::read(r)?;
+ Ok(PaymentHash(buf))
+ }
+}