Skip to content

Commit 551a153

Browse files
montycheeseclaude
andauthored
fix(vibenet): remove 200ms Blocks feature card — not live on vibenet yet (#58)
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 6bd03ae commit 551a153

2 files changed

Lines changed: 6 additions & 43 deletions

File tree

app/vibenet/data/contracts.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,21 @@ import type { ContractMeta, ResolvedContract } from '../library/types';
88
// - `hidden` keeps internal/demo deployments out of the public list;
99
// - `watch` adds an "add to wallet" affordance for tokens.
1010
export const CONTRACT_REGISTRY: Record<string, ContractMeta> = {
11-
baseTime: { label: 'BaseTime (predeploy)' },
1211
usdv: { label: 'USDV (ERC-20)', watch: { type: 'ERC20', symbol: 'USDV', decimals: 6 } },
1312
nfv: { label: 'NFV (ERC-721)' },
1413
// Internal/demo deployments intentionally omitted from the public list.
1514
faucetAddress: { label: 'Faucet', hidden: true },
1615
vibecheck: { label: 'Vibecheck', hidden: true },
1716
};
1817

19-
const BASE_TIME_ADDRESS = '0x4200000000000000000000000000000000000030';
20-
2118
// Turn the raw contracts map into a display list: keep only real addresses,
2219
// drop hidden entries, and layer on registry metadata (or a humanized label).
2320
// Returns null while the contracts payload hasn't loaded yet.
2421
export function resolveContracts(
2522
contracts: Record<string, unknown> | null,
2623
): ResolvedContract[] | null {
2724
if (!contracts) return null;
28-
return Object.entries({ ...contracts, baseTime: BASE_TIME_ADDRESS })
25+
return Object.entries(contracts)
2926
.filter((entry): entry is [string, string] => isAddress(entry[1]))
3027
.filter(([key]) => !CONTRACT_REGISTRY[key]?.hidden)
3128
.map(([key, address]) => {

app/vibenet/data/features.ts

Lines changed: 5 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -35,45 +35,11 @@ export const FEATURES: VibenetFeature[] = [
3535
secondaryCta: { label: 'Build Your Own', href: 'https://docs.base.org/base-chain/specs/upgrades/cobalt/eip-8130', external: true },
3636
links: [{ label: 'EIP-8130', href: 'https://eip.tools/eip/8130', external: true }],
3737
},
38-
{
39-
id: '200ms-canonical-blocks',
40-
tag: '200ms',
41-
title: '200ms Blocks',
42-
summary:
43-
'Native blocks at a 200ms cadence, each with its own hash, state, receipts, and finality lifecycle.',
44-
status: 'preview',
45-
availability: 'Coming soon in ',
46-
availabilityLabel: 'Base Denim',
47-
highlights: [
48-
{
49-
title: 'Native Blocks Every 200ms',
50-
detail: 'Full blocks, not partial pending-state updates or Flashblocks.',
51-
},
52-
{
53-
title: 'Millisecond RPC Timestamps',
54-
detail: 'Read exact block time from timestampMs and blockTimestampMs fields.',
55-
},
56-
{
57-
title: 'Onchain Millisecond Time',
58-
detail: 'Contracts can read the current full timestamp from the BaseTime predeploy.',
59-
},
60-
{
61-
title: 'Ethereum Compatible',
62-
detail: 'Header timestamps and EVM block.timestamp remain in whole seconds.',
63-
},
64-
],
65-
cta: {
66-
label: 'Explore Blocks',
67-
href: '/vibenet/explorer',
68-
},
69-
links: [
70-
{
71-
label: 'Protocol source',
72-
href: 'https://github.com/base/contracts/blob/4848ec70d8f1062fec59470d6e731e13ece8a728/src/L2/BaseTime.sol',
73-
external: true,
74-
},
75-
],
76-
},
38+
// 200ms Blocks is intentionally absent: it is a Denim roadmap item that has
39+
// not landed on vibenet yet (blocks are still ~2s, `timestampMs` is not on
40+
// the RPC payload, and the BaseTime predeploy is an uninitialized proxy).
41+
// It stays documented under /upgrades/changelog/200ms-blocks until it ships
42+
// here — add the feature card back in the same PR that enables it.
7743
];
7844

7945
// Raw feature shape as it appears in the API `config` payload.

0 commit comments

Comments
 (0)