hdwallet-filecoin 0.2.1

HD Wallet for Filecoin, including key generation, derivation and signing
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use blst::min_pk::PublicKey as BlsPublic;
use secp256k1::PublicKey as SecpPublic;

use super::address::Address;

pub enum PublicKey {
    Secp256k1(SecpPublic),
    Bls(BlsPublic),
}

impl PublicKey {
    pub fn address(&self) -> Address {
        match self {
            Self::Secp256k1(pk) => Address::new_secp256k1(pk.serialize_uncompressed()),
            Self::Bls(pk) => Address::new_bls(pk.compress()),
        }
    }
}