Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | 57x 57x 57x 109x 109x 2x 115x 2x 1x 42x 2x 2x 58x 13x 2x 11x 2x 6x 2x 10x 2x 2x 1x 9x 2x 8x 2x 6x 2x 98x 1x 2x 2x 9x 8x 1x 95x 95x 57x 57x 57x 40x 40x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 40x | /* eslint-disable @typescript-eslint/no-unused-vars */
import { MerklePath } from "@bsv/sdk"
import { arraysEqual, entity, sdk, table, verifyId, verifyOneOrNone } from "../../../index.client";
import { EntityBase } from ".";
export class Certificate extends EntityBase<table.Certificate> {
constructor(api?: table.Certificate) {
const now = new Date()
super(api || {
certificateId: 0,
created_at: now,
updated_at: now,
userId: 0,
type: "",
subject: "",
verifier: undefined,
serialNumber: "",
certifier: "",
revocationOutpoint: "",
signature: "",
isDeleted: false
})
}
override updateApi(): void {
/* nothing needed yet... */
}
get certificateId() { return this.api.certificateId }
set certificateId(v: number) { this.api.certificateId = v }
get created_at() { return this.api.created_at }
set created_at(v: Date) { this.api.created_at = v }
get updated_at() { return this.api.updated_at }
set updated_at(v: Date) { this.api.updated_at = v }
get userId() { return this.api.userId }
set userId(v: number) { this.api.userId = v }
get type() { return this.api.type }
set type(v: string) { this.api.type = v }
get subject() { return this.api.subject }
set subject(v: string) { this.api.subject = v }
get verifier() { return this.api.verifier }
set verifier(v: string | undefined) { this.api.verifier = v }
get serialNumber() { return this.api.serialNumber }
set serialNumber(v: string) { this.api.serialNumber = v }
get certifier() { return this.api.certifier }
set certifier(v: string) { this.api.certifier = v }
get revocationOutpoint() { return this.api.revocationOutpoint }
set revocationOutpoint(v: string) { this.api.revocationOutpoint = v }
get signature() { return this.api.signature }
set signature(v: string) { this.api.signature = v }
get isDeleted() { return this.api.isDeleted }
set isDeleted(v: boolean) { this.api.isDeleted = v }
//get fields() { return this.api.fields }
//set fields(v: Record<string, string> | undefined) { this.api.fields = v }
override get id(): number { return this.api.certificateId }
override set id(v: number) { this.api.certificateId = v }
override get entityName(): string { return 'entity.Certificate' }
override get entityTable(): string { return 'certificates' }
override equals(ei: table.Certificate, syncMap?: entity.SyncMap): boolean {
if (
this.type !== ei.type ||
this.subject !== ei.subject ||
this.serialNumber !== ei.serialNumber ||
this.revocationOutpoint !== ei.revocationOutpoint ||
this.signature !== ei.signature ||
this.verifier !== ei.verifier ||
this.isDeleted !== ei.isDeleted
)
return false
return true
}
static async mergeFind(storage: entity.EntityStorage, userId: number, ei: table.Certificate, syncMap: entity.SyncMap, trx?: sdk.TrxToken)
: Promise<{ found: boolean, eo: entity.Certificate, eiId: number }> {
const ef = verifyOneOrNone(await storage.findCertificates({ partial: { serialNumber: ei.serialNumber, certifier: ei.certifier, userId }, trx }))
return {
found: !!ef,
eo: new entity.Certificate(ef || { ...ei }),
eiId: verifyId(ei.certificateId)
}
}
override async mergeNew(storage: entity.EntityStorage, userId: number, syncMap: entity.SyncMap, trx?: sdk.TrxToken): Promise<void> {
this.userId = userId
this.certificateId = 0
this.certificateId = await storage.insertCertificate(this.toApi(), trx)
}
override async mergeExisting(storage: entity.EntityStorage, since: Date | undefined, ei: table.Certificate, syncMap: entity.SyncMap, trx?: sdk.TrxToken): Promise<boolean> {
let wasMerged = false
if (ei.updated_at > this.updated_at) {
this.type = ei.type
this.subject = ei.subject
this.serialNumber = ei.serialNumber
this.revocationOutpoint = ei.revocationOutpoint
this.signature = ei.signature
this.verifier = ei.verifier
this.isDeleted = ei.isDeleted
this.updated_at = new Date()
await storage.updateCertificate(this.id, this.toApi(), trx)
wasMerged = true
}
return wasMerged
}
} |