|
| 1 | +{ |
| 2 | + // Per-network deployment configuration template. |
| 3 | + // |
| 4 | + // Copy this to `<network>.json5` (file name = hardhat network name, see |
| 5 | + // CHAIN_CONFIG_MAP in lib/deployment-config.ts) and override only the keys |
| 6 | + // that need to differ from the defaults shown below. Anything you omit is |
| 7 | + // resolved from `DEFAULT_SETTINGS` at runtime — this file just shows the |
| 8 | + // full surface so you don't have to read the TypeScript schema. |
| 9 | + // |
| 10 | + // This file itself is NEVER loaded as a real config (no chain matches its |
| 11 | + // basename); it lives here purely as documentation + a starting point. |
| 12 | + // |
| 13 | + // Source of truth for shape and defaults: lib/deployment-config.ts. |
| 14 | + |
| 15 | + // ------------------------------------------------------------------------ |
| 16 | + // IssuanceAllocator — total issuance and per-target allocation table. |
| 17 | + // ------------------------------------------------------------------------ |
| 18 | + IssuanceAllocator: { |
| 19 | + // Expected total issuance per block, in GRT, as a string. Scripts |
| 20 | + // cross-check this against RM's on-chain `issuancePerBlock()` and error |
| 21 | + // on mismatch — config NEVER sets the rate. Omit if no allocations |
| 22 | + // are declared. No default. |
| 23 | + issuancePerBlock: '6.0365', |
| 24 | + |
| 25 | + // Per-target allocation map, keyed by full contract name. Each rate is a |
| 26 | + // string of GRT/block (parsed via parseUnits at 1e18). Unspecified rates |
| 27 | + // default to '0'. The values MUST sum to `issuancePerBlock` exactly. |
| 28 | + // Targets must be known allocation-target contracts (see |
| 29 | + // ALLOCATION_TARGET_CONTRACTS in lib/contract-registry.ts): |
| 30 | + // RewardsManager, RecurringAgreementManager, DefaultAllocation, |
| 31 | + // ReclaimedRewards, … |
| 32 | + // Default: {} (no allocations configured — issuance-allocate is a no-op). |
| 33 | + allocations: { |
| 34 | + RewardsManager: { selfGrtPerBlock: '5.5365' }, |
| 35 | + RecurringAgreementManager: { allocatorGrtPerBlock: '0.5' }, |
| 36 | + // DefaultAllocation: { allocatorGrtPerBlock: '0', selfGrtPerBlock: '0' }, |
| 37 | + }, |
| 38 | + }, |
| 39 | + |
| 40 | + // ------------------------------------------------------------------------ |
| 41 | + // RewardsManager — eligibility wiring + revert switch. |
| 42 | + // ------------------------------------------------------------------------ |
| 43 | + RewardsManager: { |
| 44 | + // Whether to revert reward claims by ineligible indexers. Applied in |
| 45 | + // 04_upgrade's bundled governance batch. |
| 46 | + // Default: true. |
| 47 | + revertOnIneligible: true, |
| 48 | + |
| 49 | + // Full name of the REO contract RM points at. Omit for no oracle. |
| 50 | + // Valid values: 'RewardsEligibilityOracleA' | 'RewardsEligibilityOracleB' |
| 51 | + // | 'RewardsEligibilityOracleMock' |
| 52 | + // (see ELIGIBILITY_ORACLE_CONTRACTS in lib/contract-registry.ts). |
| 53 | + // Default: undefined (no oracle). |
| 54 | + eligibilityOracle: 'RewardsEligibilityOracleA', |
| 55 | + }, |
| 56 | + |
| 57 | + // ------------------------------------------------------------------------ |
| 58 | + // RecurringAgreementManager — eligibility wiring. |
| 59 | + // ------------------------------------------------------------------------ |
| 60 | + RecurringAgreementManager: { |
| 61 | + // Full name of the REO contract RAM points at. Omit for no oracle. |
| 62 | + // Valid values: same as RewardsManager.eligibilityOracle above. |
| 63 | + // Default: undefined (no oracle). |
| 64 | + eligibilityOracle: 'RewardsEligibilityOracleA', |
| 65 | + }, |
| 66 | + |
| 67 | + // ------------------------------------------------------------------------ |
| 68 | + // RecurringCollector — constructor + initializer args. |
| 69 | + // ------------------------------------------------------------------------ |
| 70 | + // These are immutable after deployment (constructor / initializer args), |
| 71 | + // so a change here only affects fresh deployments. |
| 72 | + RecurringCollector: { |
| 73 | + // Signer revocation thaw period in seconds, as a string. |
| 74 | + // Default: '28800' (≈8 hours at 3s blocks). |
| 75 | + revokeSignerThawingPeriod: '28800', |
| 76 | + |
| 77 | + // EIP-712 domain name (initializer arg). |
| 78 | + // Default: 'RecurringCollector'. |
| 79 | + eip712Name: 'RecurringCollector', |
| 80 | + |
| 81 | + // EIP-712 domain version (initializer arg). |
| 82 | + // Default: '1'. |
| 83 | + eip712Version: '1', |
| 84 | + }, |
| 85 | + |
| 86 | + // ------------------------------------------------------------------------ |
| 87 | + // RewardsEligibilityOracle — duration parameters written at configure time. |
| 88 | + // ------------------------------------------------------------------------ |
| 89 | + // Applied via `getREOConditions(env)` to each deployed REO instance during |
| 90 | + // `GIP-0088:RewardsEligibilityOracleA:configure` (and …B). Re-configurable |
| 91 | + // later by governance via setEligibilityPeriod / setOracleUpdateTimeout. |
| 92 | + RewardsEligibilityOracle: { |
| 93 | + // Eligibility period in seconds, as a string. Indexers fall out of |
| 94 | + // eligibility this long after their last positive attestation. |
| 95 | + // Default: '1209600' (14 days). |
| 96 | + eligibilityPeriod: '1209600', |
| 97 | + |
| 98 | + // Oracle update timeout in seconds, as a string. All indexers go |
| 99 | + // ineligible after this long without any oracle update. |
| 100 | + // Default: '604800' (7 days). |
| 101 | + oracleUpdateTimeout: '604800', |
| 102 | + }, |
| 103 | + |
| 104 | + // ------------------------------------------------------------------------ |
| 105 | + // SubgraphService — optional close-guard switch. |
| 106 | + // ------------------------------------------------------------------------ |
| 107 | + SubgraphService: { |
| 108 | + // When true, allocations with active indexing agreements cannot be |
| 109 | + // closed. Applied by the `GIP-0088:issuance-close-guard` optional goal; |
| 110 | + // not part of the mandatory rollout (`GIP-0088,all`). |
| 111 | + // Default: true. |
| 112 | + blockClosingAllocationWithActiveAgreement: true, |
| 113 | + }, |
| 114 | +} |
0 commit comments