mirror of
https://github.com/floor-licker/polyfill-rs.git
synced 2026-07-27 20:47:46 +00:00
feat: integrate dotenv for secure credential management, update benchmark scripts to load API credentials from .env file, add .env.example template, and ensure .env is properly gitignored for security
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
# Polymarket API Credentials
|
||||
# Copy this file to .env and fill in your actual credentials
|
||||
|
||||
POLYMARKET_API_KEY=your-api-key-here
|
||||
POLYMARKET_SECRET=your-secret-here
|
||||
POLYMARKET_PASSPHRASE=your-passphrase-here
|
||||
@@ -6,3 +6,6 @@ tarpaulin-report.html
|
||||
*.profraw
|
||||
/target/tarpaulin/
|
||||
|
||||
# Environment variables (contains secrets)
|
||||
.env
|
||||
|
||||
|
||||
Generated
+7
@@ -1189,6 +1189,12 @@ dependencies = [
|
||||
"syn 2.0.104",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dotenv"
|
||||
version = "0.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
|
||||
|
||||
[[package]]
|
||||
name = "dunce"
|
||||
version = "1.0.5"
|
||||
@@ -2414,6 +2420,7 @@ dependencies = [
|
||||
"bytes",
|
||||
"chrono",
|
||||
"criterion",
|
||||
"dotenv",
|
||||
"env_logger",
|
||||
"futures",
|
||||
"futures-util",
|
||||
|
||||
@@ -24,6 +24,7 @@ reqwest = { version = "0.12", features = ["json", "stream", "gzip"] }
|
||||
# Serialization
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
dotenv = "0.15"
|
||||
|
||||
# Ethereum and crypto
|
||||
alloy-primitives = "0.8"
|
||||
|
||||
@@ -5,18 +5,21 @@ use std::time::Instant;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Load environment variables from .env file
|
||||
dotenv::dotenv().ok();
|
||||
|
||||
println!("🔐 Authenticated Network Benchmark - Real Order Creation");
|
||||
println!("=======================================================");
|
||||
println!("To run with real credentials, set environment variables:");
|
||||
println!(" export POLYMARKET_API_KEY=your-api-key");
|
||||
println!(" export POLYMARKET_SECRET=your-secret");
|
||||
println!(" export POLYMARKET_PASSPHRASE=your-passphrase");
|
||||
println!("");
|
||||
|
||||
// API credentials from environment variables
|
||||
let _api_key = std::env::var("POLYMARKET_API_KEY").unwrap_or_else(|_| "your-api-key".to_string());
|
||||
let _secret = std::env::var("POLYMARKET_SECRET").unwrap_or_else(|_| "your-secret".to_string());
|
||||
let _passphrase = std::env::var("POLYMARKET_PASSPHRASE").unwrap_or_else(|_| "your-passphrase".to_string());
|
||||
// API credentials from .env file
|
||||
let _api_key = std::env::var("POLYMARKET_API_KEY")
|
||||
.map_err(|_| "POLYMARKET_API_KEY not found in .env file")?;
|
||||
let _secret = std::env::var("POLYMARKET_SECRET")
|
||||
.map_err(|_| "POLYMARKET_SECRET not found in .env file")?;
|
||||
let _passphrase = std::env::var("POLYMARKET_PASSPHRASE")
|
||||
.map_err(|_| "POLYMARKET_PASSPHRASE not found in .env file")?;
|
||||
|
||||
println!("✅ Loaded API credentials from .env file");
|
||||
|
||||
let client = ClobClient::new_internet("https://clob.polymarket.com");
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
use polyfill_rs::ClobClient;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Load environment variables from .env file
|
||||
dotenv::dotenv().ok();
|
||||
|
||||
println!("🔧 Environment Configuration Example");
|
||||
println!("===================================");
|
||||
|
||||
// Check if credentials are available
|
||||
match (
|
||||
std::env::var("POLYMARKET_API_KEY"),
|
||||
std::env::var("POLYMARKET_SECRET"),
|
||||
std::env::var("POLYMARKET_PASSPHRASE"),
|
||||
) {
|
||||
(Ok(api_key), Ok(secret), Ok(passphrase)) => {
|
||||
println!("✅ All credentials loaded from .env file:");
|
||||
println!(" API Key: {}...{}", &api_key[..8], &api_key[api_key.len()-8..]);
|
||||
println!(" Secret: {}...{}", &secret[..8], &secret[secret.len()-8..]);
|
||||
println!(" Passphrase: {}...{}", &passphrase[..8], &passphrase[passphrase.len()-8..]);
|
||||
|
||||
// Create client (would normally use these credentials)
|
||||
let client = ClobClient::new_internet("https://clob.polymarket.com");
|
||||
|
||||
// Test basic connectivity
|
||||
println!("\n🌐 Testing connectivity...");
|
||||
match client.get_server_time().await {
|
||||
Ok(timestamp) => {
|
||||
println!("✅ Server time: {}", timestamp);
|
||||
println!("🚀 Ready for authenticated operations!");
|
||||
}
|
||||
Err(e) => {
|
||||
println!("❌ Connection error: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
println!("❌ Missing credentials in .env file");
|
||||
println!("📝 Create a .env file with:");
|
||||
println!(" POLYMARKET_API_KEY=your-api-key");
|
||||
println!(" POLYMARKET_SECRET=your-secret");
|
||||
println!(" POLYMARKET_PASSPHRASE=your-passphrase");
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -5,21 +5,24 @@ use std::time::Instant;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Load environment variables from .env file
|
||||
dotenv::dotenv().ok();
|
||||
|
||||
println!("🚀 Real Network Benchmark - polyfill-rs vs polymarket-rs-client");
|
||||
println!("================================================================");
|
||||
println!("To run with real credentials, set environment variables:");
|
||||
println!(" export POLYMARKET_API_KEY=your-api-key");
|
||||
println!(" export POLYMARKET_SECRET=your-secret");
|
||||
println!(" export POLYMARKET_PASSPHRASE=your-passphrase");
|
||||
println!("");
|
||||
|
||||
// Set up client with credentials
|
||||
let client = ClobClient::new("https://clob.polymarket.com");
|
||||
|
||||
// API credentials from environment variables
|
||||
let _api_key = std::env::var("POLYMARKET_API_KEY").unwrap_or_else(|_| "your-api-key".to_string());
|
||||
let _secret = std::env::var("POLYMARKET_SECRET").unwrap_or_else(|_| "your-secret".to_string());
|
||||
let _passphrase = std::env::var("POLYMARKET_PASSPHRASE").unwrap_or_else(|_| "your-passphrase".to_string());
|
||||
// API credentials from .env file
|
||||
let _api_key = std::env::var("POLYMARKET_API_KEY")
|
||||
.map_err(|_| "POLYMARKET_API_KEY not found in .env file")?;
|
||||
let _secret = std::env::var("POLYMARKET_SECRET")
|
||||
.map_err(|_| "POLYMARKET_SECRET not found in .env file")?;
|
||||
let _passphrase = std::env::var("POLYMARKET_PASSPHRASE")
|
||||
.map_err(|_| "POLYMARKET_PASSPHRASE not found in .env file")?;
|
||||
|
||||
println!("✅ Loaded API credentials from .env file");
|
||||
|
||||
println!("🔑 Using API credentials for authenticated requests");
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ set -e
|
||||
|
||||
echo "🌐 Network Latency Benchmark for polyfill-rs"
|
||||
echo "============================================="
|
||||
echo "📝 Note: API credentials loaded from .env file"
|
||||
echo ""
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
|
||||
Reference in New Issue
Block a user