Skip to main content

newton_cli/
task_generator.rs

1//! Hardcoded `taskGenerator[]` addresses used by `policy-files generate-cids`.
2//!
3//! The CLI normally resolves attesters from `contracts/newton_prover_config.{env}.json`.
4//! Published CLI artifacts sometimes miss those JSON files; to keep `generate-cids`
5//! functional, we embed the `taskGenerator` arrays copied from:
6//! - `contracts/newton_prover_config.prod.json`
7//! - `contracts/newton_prover_config.stagef.json`
8
9// ----------------------------
10// prod taskGenerator arrays
11// ----------------------------
12static PROD_11155111_TASK_GENERATOR: [&'static str; 11] = [
13    "0x19F9dEC9928417B6Ea6aD52291acCa9deef59E3F",
14    "0x9Ccd55A0Fb8aBD14919bb5B2BCDD39C1Dd40E883",
15    "0xb3785B3CA4d6b175518c9a2A51AE836f2dE3016B",
16    "0xC6aA2638873e90eCaF0306cbCC4370C6AC893E68",
17    "0x64E33a6b2874129f2C6FB61832b763F65C8342fb",
18    "0xA21d5CCa5771DAB5a049b1FAA524c41ae911e185",
19    "0x22748005349aD3e261Fc6B1C83956781d6d661B4",
20    "0x3F15Da29D0de8c45bf625299AA20e43970153622",
21    "0x494221AaA9B9B273EB171512Ea000bEaE868d332",
22    "0xd1168701C5df97bdb65361aAF9318ae2c7e39312",
23    "0x51eBfB4c0441b0D8898d968975073c24B9190227",
24];
25
26static PROD_1_TASK_GENERATOR: [&'static str; 9] = [
27    "0x19F9dEC9928417B6Ea6aD52291acCa9deef59E3F",
28    "0x9Ccd55A0Fb8aBD14919bb5B2BCDD39C1Dd40E883",
29    "0xb3785B3CA4d6b175518c9a2A51AE836f2dE3016B",
30    "0xC6aA2638873e90eCaF0306cbCC4370C6AC893E68",
31    "0x64E33a6b2874129f2C6FB61832b763F65C8342fb",
32    "0xA21d5CCa5771DAB5a049b1FAA524c41ae911e185",
33    "0x22748005349aD3e261Fc6B1C83956781d6d661B4",
34    "0x3F15Da29D0de8c45bf625299AA20e43970153622",
35    "0x494221AaA9B9B273EB171512Ea000bEaE868d332",
36];
37
38static PROD_84532_TASK_GENERATOR: [&'static str; 10] = [
39    "0x19F9dEC9928417B6Ea6aD52291acCa9deef59E3F",
40    "0x9Ccd55A0Fb8aBD14919bb5B2BCDD39C1Dd40E883",
41    "0xb3785B3CA4d6b175518c9a2A51AE836f2dE3016B",
42    "0xC6aA2638873e90eCaF0306cbCC4370C6AC893E68",
43    "0x64E33a6b2874129f2C6FB61832b763F65C8342fb",
44    "0xA21d5CCa5771DAB5a049b1FAA524c41ae911e185",
45    "0x22748005349aD3e261Fc6B1C83956781d6d661B4",
46    "0x3F15Da29D0de8c45bf625299AA20e43970153622",
47    "0x494221AaA9B9B273EB171512Ea000bEaE868d332",
48    "0x51eBfB4c0441b0D8898d968975073c24B9190227",
49];
50
51// ----------------------------
52// stagef taskGenerator arrays
53// ----------------------------
54static STAGEF_31337_TASK_GENERATOR: [&'static str; 1] = [
55    "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
56];
57
58static STAGEF_31338_TASK_GENERATOR: [&'static str; 1] = [
59    "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
60];
61
62static STAGEF_11155111_TASK_GENERATOR: [&'static str; 2] = [
63    "0xD45062003a4626a532F30A4596aB253c45AE0647",
64    "0xd1168701C5df97bdb65361aAF9318ae2c7e39312",
65];
66
67static STAGEF_1_TASK_GENERATOR: [&'static str; 1] = [
68    "0x4883282094755C01cd0d15dFE74753c9E189d194",
69];
70
71static STAGEF_84532_TASK_GENERATOR: [&'static str; 2] = [
72    "0xD45062003a4626a532F30A4596aB253c45AE0647",
73    "0xd1168701C5df97bdb65361aAF9318ae2c7e39312",
74];
75
76/// Returns the hardcoded `taskGenerator[]` array for the given `env` + `chain_id`.
77///
78/// `env` is expected to be `prod` or `stagef` (case-insensitive).
79pub fn task_generators(env: &str, chain_id: u64) -> Option<&'static [&'static str]> {
80    let normalized_env = env.trim().to_lowercase();
81
82    match normalized_env.as_str() {
83        "prod" => match chain_id {
84            11155111 => Some(&PROD_11155111_TASK_GENERATOR),
85            1 => Some(&PROD_1_TASK_GENERATOR),
86            84532 => Some(&PROD_84532_TASK_GENERATOR),
87            _ => None,
88        },
89        "stagef" => match chain_id {
90            31337 => Some(&STAGEF_31337_TASK_GENERATOR),
91            31338 => Some(&STAGEF_31338_TASK_GENERATOR),
92            11155111 => Some(&STAGEF_11155111_TASK_GENERATOR),
93            1 => Some(&STAGEF_1_TASK_GENERATOR),
94            84532 => Some(&STAGEF_84532_TASK_GENERATOR),
95            _ => None,
96        },
97        _ => None,
98    }
99}
100
101/// Returns the hardcoded `taskGenerator[0]` address for the given `env` + `chain_id`.
102pub fn task_generator_0(env: &str, chain_id: u64) -> Option<&'static str> {
103    task_generators(env, chain_id)
104        .and_then(|arr| arr.first())
105        .copied()
106}
107