Skip to content

Commit

Permalink
types and parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
ukstv committed Jul 4, 2024
1 parent 38e5982 commit ad9ea5a
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 27 deletions.
34 changes: 12 additions & 22 deletions src/components/services/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,31 @@ import { type DID } from "dids";
import {
cid,
didString,
uint8ArrayAsBase64,
type DIDString,
asDIDString,
uint8array,
JWSSignature,
} from "@didtools/codecs";
import {
type OutputOf,
type TypeOf,
array,
boolean,
literal,
nullCodec,
optional,
sparse,
strict,
string,
tuple,
union,
validate,
unknown,
unknownRecord,
Type,
Context,
type Context,
} from "codeco";
import { StreamID } from "./stream-id";

export type CreateInitHeaderParams = {
model: StreamID;
controller: DIDString | string;
// FIXME SU: Sorry types, I do not know why that does not work
// controller: DIDString | string;
controller: string;
unique?: Uint8Array | boolean;
context?: StreamID;
shouldIndex?: boolean;
Expand Down Expand Up @@ -63,7 +59,7 @@ export type CreateInitEventParams<T extends UnknownContent = UnknownContent> = {

export const InitEventHeader = sparse(
{
controllers: tuple([didString]),
controllers: tuple([didString] as const),
model: streamIDAsBytes,
sep: string,
unique: optional(uint8array),
Expand All @@ -81,10 +77,10 @@ export const InitEventPayload = sparse(
},
"InitEventPayload",
);
export type InitEventPayload = TypeOf<typeof InitEventPayload>;

export type PartialInitEventHeader = Omit<InitEventHeader, "controllers"> & {
controllers?: [DIDString];
};
export type PartialInitEventHeader = Omit<InitEventHeader, "controllers"> &
Pick<Partial<InitEventHeader>, "controllers">;

export const DagJWS = sparse({
payload: string,
Expand All @@ -95,7 +91,6 @@ export type DagJWS = TypeOf<typeof DagJWS>;

export const SignedEvent = sparse(
{
// @ts-ignore
jws: DagJWS,
linkedBlock: uint8array,
cacaoBlock: optional(uint8array),
Expand Down Expand Up @@ -123,7 +118,7 @@ export function assertValidContentLength(content: unknown) {

export const DocumentInitEventHeader = sparse(
{
controllers: tuple([didString]),
controllers: tuple([didString] as const),
model: streamIDAsBytes,
sep: literal("model"),
unique: optional(uint8array),
Expand All @@ -138,7 +133,6 @@ export function createInitHeader(
params: CreateInitHeaderParams,
): DocumentInitEventHeader {
const header: DocumentInitEventHeader = {
//@ts-ignore
controllers: [asDIDString(params.controller)],
model: params.model,
sep: "model",
Expand Down Expand Up @@ -201,18 +195,14 @@ export async function createInitEvent<
T extends UnknownContent = UnknownContent,
>(
params: CreateInitEventParams<T>,
): Promise<{ signedEvent: SignedEvent; payload: typeof InitEventPayload }> {
): Promise<{ signedEvent: SignedEvent; codec: typeof InitEventPayload }> {
const { content, controller, ...headerParams } = params;
assertValidContentLength(content);
const header = createInitHeader({
...headerParams,
controller: controller.id,
unique: false, // non-deterministic event
});
// @ts-ignore
const payload = InitEventPayload;
console.log(payload);
// @ts-ignore
const signedEvent = await createSignedInitEvent(controller, content, header);
return { signedEvent, payload };
return { signedEvent, codec: InitEventPayload };
}
2 changes: 1 addition & 1 deletion src/components/services/stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export const createEvent = async (
DID: DID,
payload: UnknownContent,
modelStreamID: StreamID,
): Promise<{ signedEvent: SignedEvent; payload: typeof InitEventPayload }> => {
): Promise<{ signedEvent: SignedEvent; codec: typeof InitEventPayload }> => {
return createInitEvent({
content: payload,
controller: DID,
Expand Down
9 changes: 5 additions & 4 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,13 @@ export default function Home() {
{ message },
MODEL_STREAM_ID,
);
console.log(event, "event");
const car = eventToCAR(event.payload, event.signedEvent);
console.log("event", event);
const car = eventToCAR(event.codec, event.signedEvent);
const response = await writeToRecon(car, endpoint);
const gotEvent = await getEvent(car.roots[0]!.toString(), endpoint);
const resultId = new StreamID("MID", gotEvent?.id as string);
setWriteStreamId(resultId.baseID.toString());
const resultId = new StreamID("MID", gotEvent?.id as string).baseID;
console.log("result.streamId", resultId.toString());
setWriteStreamId(resultId.toString());
return response;
} catch (error) {
console.error(error);
Expand Down

0 comments on commit ad9ea5a

Please sign in to comment.