Proposal type
Modify column
Affected scope (files/folders/chains)
references/offers/faucets.csv; listings/**/faucets.csv; faucet column definitions and validation
Motivation / problem statement
The current dripLimitAmount and dripLimitPeriod fields mix quantities, asset symbols, prose, multiple tiers, missing units, and literal null sentinels. A census of current listing rows found periods such as 24, 24h, 10sec, 0.1, NULL, and blank, while amounts include 0.1 ETH/1 ETH72h, 0.5/1/2.5/5 SOL, up to 1 TON, bare numbers, and asset-qualified numbers. These values cannot be compared or validated reliably, and ambiguous bare periods can be interpreted as hours, seconds, or counts.
Detailed proposal
Category/table: faucets
Column changes:
- Replace free-text
dripLimitAmount with dripLimits, a JSON array of objects. Each object has required numeric-string amount, required asset, and optional integer cooldownSeconds and optional short condition.
- Deprecate
dripLimitPeriod after migration because cooldown belongs to the same tier as its amount.
Examples:
[{"amount":"0.01","asset":"ETH","cooldownSeconds":86400}]
[{"amount":"0.5","asset":"SOL","cooldownSeconds":28800},{"amount":"1","asset":"SOL","cooldownSeconds":28800}]
[{"amount":"1","asset":"TON","condition":"maximum; exact amount chosen by provider"}]
Constraints:
- Decimal values remain strings to avoid binary floating-point changes.
asset uses the official ticker shown by the faucet.
cooldownSeconds is a non-negative integer; blank means the official source does not specify a cooldown.
- Empty data is a blank cell, never literal
null/NULL.
- Multi-tier faucets use one object per tier, keeping each amount paired with its cooldown.
Migration can be incremental: add dripLimits, migrate only source-verified rows, then remove the two legacy columns after no populated legacy cells remain.
Measured evidence: current main contains more than 60 distinct non-empty amount/period combinations, including unitless periods and compound values that cannot be parsed consistently.
AI disclosure: AI assisted with the census and drafting; the value inventory was computed directly from the downloaded current main branch.
Contact (optional)
No response
Rewards address (optional)
0xc2633a3baf513319b2bc9cec7d5ac65a8103fbbe
Proposal type
Modify column
Affected scope (files/folders/chains)
references/offers/faucets.csv; listings/**/faucets.csv; faucet column definitions and validation
Motivation / problem statement
The current
dripLimitAmountanddripLimitPeriodfields mix quantities, asset symbols, prose, multiple tiers, missing units, and literal null sentinels. A census of current listing rows found periods such as24,24h,10sec,0.1,NULL, and blank, while amounts include0.1 ETH/1 ETH72h,0.5/1/2.5/5 SOL,up to 1 TON, bare numbers, and asset-qualified numbers. These values cannot be compared or validated reliably, and ambiguous bare periods can be interpreted as hours, seconds, or counts.Detailed proposal
Category/table: faucets
Column changes:
dripLimitAmountwithdripLimits, a JSON array of objects. Each object has required numeric-stringamount, requiredasset, and optional integercooldownSecondsand optional shortcondition.dripLimitPeriodafter migration because cooldown belongs to the same tier as its amount.Examples:
[{"amount":"0.01","asset":"ETH","cooldownSeconds":86400}][{"amount":"0.5","asset":"SOL","cooldownSeconds":28800},{"amount":"1","asset":"SOL","cooldownSeconds":28800}][{"amount":"1","asset":"TON","condition":"maximum; exact amount chosen by provider"}]Constraints:
assetuses the official ticker shown by the faucet.cooldownSecondsis a non-negative integer; blank means the official source does not specify a cooldown.null/NULL.Migration can be incremental: add
dripLimits, migrate only source-verified rows, then remove the two legacy columns after no populated legacy cells remain.Measured evidence: current main contains more than 60 distinct non-empty amount/period combinations, including unitless periods and compound values that cannot be parsed consistently.
AI disclosure: AI assisted with the census and drafting; the value inventory was computed directly from the downloaded current main branch.
Contact (optional)
No response
Rewards address (optional)
0xc2633a3baf513319b2bc9cec7d5ac65a8103fbbe