Skip to content
This repository was archived by the owner on Nov 20, 2023. It is now read-only.

Commit 35a1160

Browse files
authored
Update readme for v0.6.0 (#34)
1 parent b5e31ff commit 35a1160

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

README.md

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ use enr::{EnrBuilder, k256};
6464
use std::net::Ipv4Addr;
6565
use rand::thread_rng;
6666

67+
// generate a random secp256k1 key
6768
let mut rng = thread_rng();
68-
// generate a random k256 key
6969
let key = k256::ecdsa::SigningKey::random(&mut rng);
7070

7171
let ip = Ipv4Addr::new(192,168,0,1);
72-
let enr = EnrBuilder::new("v4").ip(ip.into()).tcp(8000).build(&key).unwrap();
72+
let enr = EnrBuilder::new("v4").ip4(ip).tcp4(8000).build(&key).unwrap();
7373

74-
assert_eq!(enr.ip(), Some("192.168.0.1".parse().unwrap()));
74+
assert_eq!(enr.ip4(), Some("192.168.0.1".parse().unwrap()));
7575
assert_eq!(enr.id(), Some("v4".into()));
7676
```
7777

@@ -84,49 +84,52 @@ Note the `ed25519` feature flag must be set. This makes use of the
8484
use enr::{EnrBuilder, CombinedKey};
8585
use std::net::Ipv4Addr;
8686

87-
// create a new k256 key
87+
// create a new secp256k1 key
8888
let key = CombinedKey::generate_secp256k1();
8989

9090
// or create a new ed25519 key
9191
let key = CombinedKey::generate_ed25519();
9292

9393
let ip = Ipv4Addr::new(192,168,0,1);
94-
let enr = EnrBuilder::new("v4").ip(ip.into()).tcp(8000).build(&key).unwrap();
94+
let enr = EnrBuilder::new("v4").ip4(ip).tcp4(8000).build(&key).unwrap();
9595

96-
assert_eq!(enr.ip(), Some("192.168.0.1".parse().unwrap()));
96+
assert_eq!(enr.ip4(), Some("192.168.0.1".parse().unwrap()));
9797
assert_eq!(enr.id(), Some("v4".into()));
9898
```
9999

100100
#### Modifying an ENR
101101

102-
Enr fields can be added and modified using the getters/setters on `Enr`. A custom field
102+
ENR fields can be added and modified using the getters/setters on `Enr`. A custom field
103103
can be added using `insert` and retrieved with `get`.
104104

105105
```rust
106106
use enr::{EnrBuilder, k256::ecdsa::SigningKey, Enr};
107107
use std::net::Ipv4Addr;
108108
use rand::thread_rng;
109109

110-
// generate a random k256 key
110+
// specify the type of ENR
111+
type DefaultEnr = Enr<SigningKey>;
112+
113+
// generate a random secp256k1 key
111114
let mut rng = thread_rng();
112115
let key = SigningKey::random(&mut rng);
113116

114117
let ip = Ipv4Addr::new(192,168,0,1);
115-
let mut enr = EnrBuilder::new("v4").ip(ip.into()).tcp(8000).build(&key).unwrap();
118+
let mut enr = EnrBuilder::new("v4").ip4(ip).tcp4(8000).build(&key).unwrap();
116119

117-
enr.set_tcp(8001, &key);
120+
enr.set_tcp4(8001, &key);
118121
// set a custom key
119122
enr.insert("custom_key", &vec![0,0,1], &key);
120123

121124
// encode to base64
122125
let base_64_string = enr.to_base64();
123126

124127
// decode from base64
125-
let decoded_enr: Enr<SigningKey> = base_64_string.parse().unwrap();
128+
let decoded_enr: DefaultEnr = base_64_string.parse().unwrap();
126129

127-
assert_eq!(decoded_enr.ip(), Some("192.168.0.1".parse().unwrap()));
130+
assert_eq!(decoded_enr.ip4(), Some("192.168.0.1".parse().unwrap()));
128131
assert_eq!(decoded_enr.id(), Some("v4".into()));
129-
assert_eq!(decoded_enr.tcp(), Some(8001));
132+
assert_eq!(decoded_enr.tcp4(), Some(8001));
130133
assert_eq!(decoded_enr.get("custom_key"), Some(vec![0,0,1].as_slice()));
131134
```
132135

@@ -136,28 +139,30 @@ assert_eq!(decoded_enr.get("custom_key"), Some(vec![0,0,1].as_slice()));
136139
use enr::{EnrBuilder, k256::ecdsa::SigningKey, Enr, ed25519_dalek::Keypair, CombinedKey};
137140
use std::net::Ipv4Addr;
138141
use rand::thread_rng;
142+
use rand::Rng;
139143

140-
// generate a random k256 key
144+
// generate a random secp256k1 key
141145
let mut rng = thread_rng();
142146
let key = SigningKey::random(&mut rng);
143147
let ip = Ipv4Addr::new(192,168,0,1);
144-
let enr_secp256k1 = EnrBuilder::new("v4").ip(ip.into()).tcp(8000).build(&key).unwrap();
148+
let enr_secp256k1 = EnrBuilder::new("v4").ip4(ip).tcp4(8000).build(&key).unwrap();
145149

146150
// encode to base64
147151
let base64_string_secp256k1 = enr_secp256k1.to_base64();
148152

149153
// generate a random ed25519 key
154+
let mut rng = rand_07::thread_rng();
150155
let key = Keypair::generate(&mut rng);
151-
let enr_ed25519 = EnrBuilder::new("v4").ip(ip.into()).tcp(8000).build(&key).unwrap();
156+
let enr_ed25519 = EnrBuilder::new("v4").ip4(ip).tcp4(8000).build(&key).unwrap();
152157

153158
// encode to base64
154159
let base64_string_ed25519 = enr_ed25519.to_base64();
155160

156161
// decode base64 strings of varying key types
157162
// decode the secp256k1 with default Enr
158-
let decoded_enr_secp256k1: Enr<SigningKey> = base64_string_secp256k1.parse().unwrap();
163+
let decoded_enr_secp256k1: Enr<k256::ecdsa::SigningKey> = base64_string_secp256k1.parse().unwrap();
159164
// decode ed25519 ENRs
160-
let decoded_enr_ed25519: Enr<Keypair> = base64_string_ed25519.parse().unwrap();
165+
let decoded_enr_ed25519: Enr<ed25519_dalek::Keypair> = base64_string_ed25519.parse().unwrap();
161166

162167
// use the combined key to be able to decode either
163168
let decoded_enr: Enr<CombinedKey> = base64_string_secp256k1.parse().unwrap();

0 commit comments

Comments
 (0)