`MetaBoard.hash(bytes calldata)` (src/concrete/MetaBoard.sol:18-26) was added to let indexers compute keccak256 over event data without needing the hash in the event log. The subgraph migrated to `crypto.keccak256` from `@graphprotocol/graph-ts` in `7fcb543` (closed #44), and modern subgraph runtimes everywhere expose native keccak256, so the original justification (the comment at line 15-17) no longer applies.
The function is `pure` and costs nothing at runtime, but it's dead surface area in the contract.
Removing it is not free — it changes the contract bytecode, which changes the deterministic deploy address (`0xfb8437…6928`). Every consumer that hardcodes the address would need to update, and the network-by-network deploy would have to be repeated. Re-deploying onto a new address while keeping the old one alive is the only forward-compatible path.
Options:
- Leave it — keep the function indefinitely (current state).
- Remove and re-deploy — bump to MetaBoard v2 at a new deterministic address; integrators migrate.
Filing this so the trade-off is captured. Recommendation: option 1 unless there's a separate reason to roll v2.
`MetaBoard.hash(bytes calldata)` (src/concrete/MetaBoard.sol:18-26) was added to let indexers compute keccak256 over event data without needing the hash in the event log. The subgraph migrated to `crypto.keccak256` from `@graphprotocol/graph-ts` in `7fcb543` (closed #44), and modern subgraph runtimes everywhere expose native keccak256, so the original justification (the comment at line 15-17) no longer applies.
The function is `pure` and costs nothing at runtime, but it's dead surface area in the contract.
Removing it is not free — it changes the contract bytecode, which changes the deterministic deploy address (`0xfb8437…6928`). Every consumer that hardcodes the address would need to update, and the network-by-network deploy would have to be repeated. Re-deploying onto a new address while keeping the old one alive is the only forward-compatible path.
Options:
Filing this so the trade-off is captured. Recommendation: option 1 unless there's a separate reason to roll v2.