request_randomness.rs 756 B

123456789101112131415161718192021222324252627282930
  1. use {
  2. crate::{
  3. chain::ethereum::SignablePythContract,
  4. config::{
  5. Config,
  6. RequestRandomnessOptions,
  7. },
  8. },
  9. anyhow::Result,
  10. std::sync::Arc,
  11. };
  12. pub async fn request_randomness(opts: &RequestRandomnessOptions) -> Result<()> {
  13. let contract = Arc::new(
  14. SignablePythContract::from_config(
  15. &Config::load(&opts.config.config)?.get_chain_config(&opts.chain_id)?,
  16. &opts.private_key,
  17. )
  18. .await?,
  19. );
  20. let user_randomness = rand::random::<[u8; 32]>();
  21. let sequence_number = contract
  22. .request_wrapper(&opts.provider, &user_randomness, false)
  23. .await?;
  24. tracing::info!("sequence number: {:#?}", sequence_number);
  25. Ok(())
  26. }