Skip to content

Commit 01e6b28

Browse files
committed
feat: automate type generation with append-only version log
Replace hand-maintained src/types/ with auto-generated types from Subsquid typegen, seeded from all TFChain networks (devnet, qanet, testnet, mainnet). JSONL sorted by specVersion so typegen assigns the lowest version label for each unique event hash. Infrastructure: - Add scripts/merge-versions.js: append-only JSONL merger, sorted output - Add scripts/seed-versions.sh: multi-network metadata discovery (order: devnet -> qanet -> testnet -> mainnet) - Seed typegen/tfchainVersions.jsonl with 93 specVersions from all networks - Update typegen/typegen.json: output directly to src/types/, add 3 events to config that were used by processor but missing from typegen config (FarmCertificationSet, NodeCertificationSet, FarmingPolicyUpdated) - Add Makefile targets: typegen, typegen-seed, typegen-add - Rewrite docs/typeChanges.md with automated workflow, deployment order, resync guidance, and notes on typesBundle.json being frozen Type generation: - Regenerate src/types/ from chain metadata (correct hashes) - Remove src/typesDevelopment/ (no longer needed) - Remove src/types/context.ts (unused) Mapping renames (all verified: identical hashes and type structures): - V49 -> V9: FarmDeleted, FarmPayoutV2, NodeDeleted, NodeUptimeReported, TwinDeleted, TwinStored, TwinUpdated, PricingPolicyStored - V49 -> V19: NodeContractCanceled, NameContractCanceled, PriceStored - V49 -> V12: NodePublicConfigStored - V101 -> V63: FarmStored, FarmUpdated, NodeStored, NodeUpdated - V122 -> V123: All ServiceContract events - V124 -> V125: TwinStored, TwinUpdated - V134 -> V140: NodeExtraFeeSet - Removed dead branches with phantom hashes from wrong field ordering (FarmStored/Updated V63, NodeStored/Updated V63, TwinStored/Updated V49) - Removed unused v63 import from farms.ts
1 parent 0095208 commit 01e6b28

36 files changed

Lines changed: 1101 additions & 1110 deletions

Makefile

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: version-bump
1+
.PHONY: version-bump typegen typegen-seed typegen-add
22

33
# usage: > type=patch make version-bump
44
# usage: > type=minor make version-bump
@@ -20,3 +20,21 @@ version-bump:
2020
else \
2121
echo "Invalid version type. Please use patch, minor, or major."; \
2222
fi
23+
24+
# Regenerate src/types/ from accumulated specVersions in tfchainVersions.jsonl
25+
typegen:
26+
npx squid-substrate-typegen typegen/typegen.json
27+
28+
# Discover all specVersions from all TFChain networks (mainnet, testnet, qanet, devnet)
29+
typegen-seed:
30+
./scripts/seed-versions.sh
31+
32+
# Add new specVersion from a chain endpoint and regenerate types
33+
# Usage: make typegen-add
34+
# Usage: WS_URL=wss://tfchain.test.grid.tf make typegen-add
35+
typegen-add:
36+
npx squid-substrate-metadata-explorer \
37+
--chain $${WS_URL:-ws://localhost:9944} \
38+
--out /tmp/new_versions.jsonl
39+
node scripts/merge-versions.js typegen/tfchainVersions.jsonl /tmp/new_versions.jsonl
40+
npx squid-substrate-typegen typegen/typegen.json

0 commit comments

Comments
 (0)