v0.9.5 -> v0.11.0
Breaking Changes (v0.11.0)
This release introduces two small but breaking changes to the Streams SDK:
registerEventSchemasnow expects a nestedschemaobject.registerDataSchemasnow usesschemaNameinstead ofid.
All other APIs (reading/writing data, computeSchemaId, set, getAllPublisherDataForSchema, etc.) remain unchanged.
1. registerEventSchemas – New schema Shape
registerEventSchemas – New schema ShapeWhat changed
The registerEventSchemas method now expects event metadata to be passed inside a schema object with the following shape:
schema.eventTopic– full event signature, e.g."ChatMessage(bytes32 indexed roomId)".schema.params– the indexed and non-indexed parameters for the event.
New usage
const registerEventSchemasTxHash = await sdk.streams.registerEventSchemas([
{
id: eventId,
schema: {
params: eventParams,
eventTopic: eventSignature,
},
},
]);Migration (before → after)
Before:
const registerEventSchemasTxHash = await sdk.streams.registerEventSchemas([
{
id: eventId,
eventTopic: eventSignature,
params: eventParams,
},
]);After:
const registerEventSchemasTxHash = await sdk.streams.registerEventSchemas([
{
id: eventId,
schema: {
params: eventParams,
eventTopic: eventSignature,
},
},
]);Tip: Search your codebase for
registerEventSchemas(and wrapeventTopic+paramsunderschema: { … }.
2. registerDataSchemas – id → schemaName
registerDataSchemas – id → schemaNameWhat changed
For data schemas, the field previously called id has been renamed to schemaName.
This aligns the SDK with the underlying contract, which expects:
(string schemaName, string schema, bytes32 parentSchemaId)New usage
const registerTxHash = await sdk.streams.registerDataSchemas(
[
{
schemaName: "hello_world",
schema: helloSchema,
parentSchemaId: zeroBytes32,
},
],
ignoreRegisteredSchemas,
);Migration (before → after)
Before:
const registerTxHash = await sdk.streams.registerDataSchemas(
[
{
id: "hello_world",
schema: helloSchema,
parentSchemaId: zeroBytes32,
},
],
ignoreRegisteredSchemas,
);After:
const registerTxHash = await sdk.streams.registerDataSchemas(
[
{
schemaName: "hello_world",
schema: helloSchema,
parentSchemaId: zeroBytes32,
},
],
ignoreRegisteredSchemas,
);If you continue to use id, calls to registerDataSchemas will revert with a NoData() error.
Tip: Search your codebase for
registerDataSchemas(and replace everyid: "..."withschemaName: "...".
3. Quick Migration Checklist
When upgrading to this version of the Streams SDK:
Update event schemas: Wrap eventTopic + params into schema: { eventTopic, params }.
Update data schemas: Replace id with schemaName in all calls to registerDataSchemas.
No changes required for:
computeSchemaIdset/getAllPublisherDataForSchemaExisting read/write flows that do not touch schema registration.
If you see errors like:
Error: Schema is not registered on-chain, orNoData()when callingregisterDataSchemas
double-check that you’ve applied the two changes described above.
Last updated