Skip to content

Instantly share code, notes, and snippets.

@jeremyorme
jeremyorme / validate-interfaces.txt
Last active June 10, 2022 16:30
Add write access validation
validate IEntry {
clock: Clock;
}
validate IEntryBlockList {
clock: Clock;
}
check_signature(IEntryBlockList.publicKey, IEntryBlockList.signature, IEntryBlock)
check_not_empty(IEntryBlockList.entryBlockCids);
@jeremyorme
jeremyorme / validate-interfaces.txt
Last active June 10, 2022 16:29
Remaining self-contained validations
validate IStoreManifest {
ownerIdentity: ID;
}
validate IEntry {
clock: Clock;
}
validate IEntryBlockList {
ownerIdentity: ID;
@jeremyorme
jeremyorme / validate-interfaces.txt
Last active June 10, 2022 16:29
Add signature validation
validate IStoreManifest {
ownerIdentity: ID;
}
validate IEntry {
clock: Clock;
}
validate IEntryBlock {
entries: IEntry[];
@jeremyorme
jeremyorme / validate-interfaces.txt
Last active June 10, 2022 08:19
Initial list of properties to validate for each interface
validate IStoreManifest {
ownerIdentity: ID;
}
validate IEntry {
clock: Clock;
}
validate IEntryBlock {
entries: IEntry[];
@jeremyorme
jeremyorme / db.ts
Created May 16, 2022 14:37
IObject schema
const objectSchema: JTDSchemaType<IObject> = {
properties: {
_id: { type: 'string' }
},
additionalProperties: true
}
@jeremyorme
jeremyorme / db.ts
Created May 16, 2022 14:36
Use IObject type for value in IEntry
interface IEntry {
value: IObject;
clock: number;
}
@jeremyorme
jeremyorme / db.ts
Created May 16, 2022 14:34
IObject interface
interface IObject {
_id: string;
}
@jeremyorme
jeremyorme / db.ts
Last active May 16, 2022 13:57
Validate entry blocks
const allEntries: IEntry[] = mergeArrays(entryBlocks.map(eb => eb && validateEntryBlock(eb) ? eb.entries : []));
@jeremyorme
jeremyorme / db.ts
Last active May 16, 2022 13:36
Validate the store manifest
if (!validateStoreManifest(manifest)) {
console.log('Store address ' + this._address + ' refers to invalid manifest');
return;
}
@jeremyorme
jeremyorme / db.ts
Last active May 16, 2022 13:35
Validate store received from pubsub
const sub = storeJson => {
const store: IStore = JSON.parse(storeJson.data) as IStore;
if (store.senderIdentity == this._identity.id || !validateStore(store))
return;
...
};