mirror of
https://github.com/theodore-song/polymarket-analyst.git
synced 2026-07-27 16:07:46 +00:00
Add live money configuration setup
This commit is contained in:
+34
-3
@@ -1,11 +1,22 @@
|
||||
const REQUIRED_ENV = [
|
||||
["KYC_PROVIDER", "KYC / eligibility provider"],
|
||||
["KYC_API_KEY", "KYC provider API key"],
|
||||
["KYC_WEBHOOK_SECRET", "KYC webhook secret"],
|
||||
["PAYMENTS_PROVIDER", "Deposit and withdrawal provider"],
|
||||
["PAYMENTS_API_KEY", "Payments provider API key"],
|
||||
["PAYMENTS_WEBHOOK_SECRET", "Payments webhook secret"],
|
||||
["WALLET_PROVIDER", "Wallet or deposit-wallet provider"],
|
||||
["WALLET_PROJECT_ID", "Wallet provider project ID"],
|
||||
["WALLET_API_KEY", "Wallet provider API key"],
|
||||
["DEPOSIT_WALLET_ADDRESS", "Polymarket deposit-wallet address"],
|
||||
["POLYMARKET_SIGNATURE_TYPE", "Polymarket signature type"],
|
||||
["POLYMARKET_CLOB_API_KEY", "Polymarket CLOB API key"],
|
||||
["POLYMARKET_CLOB_SECRET", "Polymarket CLOB API secret"],
|
||||
["POLYMARKET_CLOB_PASSPHRASE", "Polymarket CLOB passphrase"],
|
||||
["SETTLEMENT_ASSET", "Settlement asset"],
|
||||
["SETTLEMENT_CHAIN", "Settlement chain"],
|
||||
["AUDIT_LOG_STORE", "Durable audit log store"],
|
||||
["ADMIN_ALERT_EMAIL", "Admin alert destination"],
|
||||
];
|
||||
|
||||
function providerStatus() {
|
||||
@@ -13,23 +24,43 @@ function providerStatus() {
|
||||
key,
|
||||
label,
|
||||
configured: Boolean(process.env[key]),
|
||||
expected: key === "POLYMARKET_SIGNATURE_TYPE" ? "3 for new deposit-wallet API users" : undefined,
|
||||
}));
|
||||
}
|
||||
|
||||
function liveTradingReady() {
|
||||
return providerStatus().every((x) => x.configured) && process.env.LIVE_TRADING_ENABLED === "true";
|
||||
const requiredConfigured = providerStatus().every((x) => x.configured);
|
||||
const liveFlagEnabled = process.env.LIVE_TRADING_ENABLED === "true";
|
||||
const signatureTypeOk = String(process.env.POLYMARKET_SIGNATURE_TYPE || "") === "3";
|
||||
const chainOk = String(process.env.POLYMARKET_CHAIN_ID || "137") === "137";
|
||||
return requiredConfigured && liveFlagEnabled && signatureTypeOk && chainOk;
|
||||
}
|
||||
|
||||
function baseStatus() {
|
||||
const providers = providerStatus();
|
||||
const liveFlagEnabled = process.env.LIVE_TRADING_ENABLED === "true";
|
||||
const signatureTypeOk = String(process.env.POLYMARKET_SIGNATURE_TYPE || "") === "3";
|
||||
const chainOk = String(process.env.POLYMARKET_CHAIN_ID || "137") === "137";
|
||||
const missing = providers.filter((x) => !x.configured).map((x) => x.label);
|
||||
if (!liveFlagEnabled) missing.push("LIVE_TRADING_ENABLED=true after final approval");
|
||||
if (!signatureTypeOk) missing.push("POLYMARKET_SIGNATURE_TYPE=3 for deposit-wallet users");
|
||||
if (!chainOk) missing.push("POLYMARKET_CHAIN_ID=137");
|
||||
return {
|
||||
ok: true,
|
||||
live_trading_enabled: liveTradingReady(),
|
||||
live_flag_enabled: liveFlagEnabled,
|
||||
signature_type_ok: signatureTypeOk,
|
||||
chain_ok: chainOk,
|
||||
locked_reason: liveTradingReady()
|
||||
? null
|
||||
: "Live trading is locked until KYC, payments, wallet signing, CLOB credentials, audit storage, and LIVE_TRADING_ENABLED=true are configured.",
|
||||
: "Live trading is locked until eligibility, payments, wallet/deposit-wallet signing, Polymarket CLOB credentials, audit storage, monitoring, and LIVE_TRADING_ENABLED=true are configured.",
|
||||
providers,
|
||||
next_required: providers.filter((x) => !x.configured).map((x) => x.label),
|
||||
next_required: missing,
|
||||
docs: {
|
||||
polymarket_overview: "https://docs.polymarket.com/trading/overview",
|
||||
polymarket_quickstart: "https://docs.polymarket.com/trading/quickstart",
|
||||
deposit_wallets: "https://docs.polymarket.com/trading/deposit-wallets",
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user