From 12f85ccc0a4e5e30f06a4dd3db514c5cf5f91ba0 Mon Sep 17 00:00:00 2001 From: Diana Carvalho Date: Thu, 6 Feb 2025 13:03:03 +0000 Subject: [PATCH] feat: Get current runtime if there is any instead of creating a new one every time --- don't change below this line --- ENG-4088 Took 18 minutes Took 6 seconds --- src/encoding/evm/approvals/permit2.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/encoding/evm/approvals/permit2.rs b/src/encoding/evm/approvals/permit2.rs index 37686a2..05ab7dc 100644 --- a/src/encoding/evm/approvals/permit2.rs +++ b/src/encoding/evm/approvals/permit2.rs @@ -61,8 +61,14 @@ sol! { impl Permit2 { pub fn new(signer_pk: String, chain: Chain) -> Result { - let runtime = Runtime::new() - .map_err(|_| EncodingError::FatalError("Failed to create runtime".to_string()))?; + let runtime = tokio::runtime::Handle::try_current() + .is_err() + .then(|| { + tokio::runtime::Runtime::new().map_err(|_| { + EncodingError::FatalError("Failed to create tokio runtime".to_string()) + }) + }) + .ok_or(EncodingError::FatalError("Failed to get tokio runtime".to_string()))??; let client = runtime.block_on(get_client())?; let pk = B256::from_str(&signer_pk).map_err(|_| { EncodingError::FatalError("Failed to convert signer private key to B256".to_string())