Jayant Krishnamurthy %!s(int64=2) %!d(string=hai) anos
pai
achega
fb99016dd6

+ 1 - 2
pyth-rng/src/ethereum/register_provider.rs

@@ -8,14 +8,13 @@ use std::error::Error;
 use std::sync::Arc;
 
 
-// TODO: Don't use hardcoded 32.
 // TODO: Return to use rand::random instead of hardcoded randomness.
 pub async fn register_provider(opts: &RegisterProviderOptions) -> Result<(), Box<dyn Error>> {
     // Initialize a Provider to interface with the EVM contract.
     let contract = Arc::new(provider(&opts.ethereum).await?);
 
     // Create new HashChain. We need a real random number to seed this.
-    let random = [0u8; 32]; // rand::random::<[u8; 32]>();
+    let random = rand::random::<[u8; 32]>();
     let mut chain = PebbleHashChain::from_config(&opts.randomness, random)?;
 
     // Arguments to the contract to register our new provider.

+ 3 - 0
pyth-rng/src/main.rs

@@ -73,6 +73,9 @@ async fn run(opts: &RunOptions) -> Result<(), Box<dyn Error>> {
     let mut chain = PebbleHashChain::from_config(&opts.randomness, random)?;
     let contract = Arc::new(provider(&opts.ethereum).await?);
     let provider_addr = opts.provider.parse::<Address>()?;
+    let provider_info = contract.get_provider_info(provider_addr).call().await?;
+    println!("Provider info: {:?}", provider_info);
+
     let mut state = ApiState{ state: Arc::new(chain), contract, provider: provider_addr };
 
     // Initialize Axum Router. Note the type here is a `Router<State>` due to the use of the

+ 1 - 0
pyth-rng/src/state.rs

@@ -27,6 +27,7 @@ impl PebbleHashChain {
         Self { hash, next: 0 }
     }
 
+    // TODO: possibly take the chain id here to ensure different hash chains on every blockchain
     pub fn from_config(opts: &RandomnessOptions, random: [u8; 32]) -> Result<Self, Box<dyn Error>> {
         let mut secret: [u8; 32] = [0u8; 32];
         secret.copy_from_slice(&hex::decode(opts.secret.clone())?[0..32]);