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 | 57x 57x 57x 115x 115x 3x 127x 4x 1x 47x 1x 3x 1x 7x 64x 3x 1x 107x 1x 1x 1x 2x 2x 1x 1x 1x 105x 105x 63x 63x 63x 43x 43x 43x | /* 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 TxLabel extends EntityBase<table.TxLabel> {
constructor(api?: table.TxLabel) {
const now = new Date()
super(api || {
txLabelId: 0,
created_at: now,
updated_at: now,
label: "",
userId: 0,
isDeleted: false
})
}
override updateApi(): void {
/* nothing needed yet... */
}
get txLabelId() { return this.api.txLabelId }
set txLabelId(v: number) { this.api.txLabelId = 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 label() { return this.api.label }
set label(v: string) { this.api.label = v }
get userId() { return this.api.userId }
set userId(v: number) { this.api.userId = v }
get isDeleted() { return this.api.isDeleted }
set isDeleted(v: boolean) { this.api.isDeleted = v }
override get id(): number { return this.api.txLabelId }
override set id(v: number) { this.api.txLabelId = v}
override get entityName(): string { return 'entity.TxLabel' }
override get entityTable(): string { return 'tx_labels' }
override equals(ei: table.TxLabel, syncMap?: entity.SyncMap): boolean {
const eo = this.toApi()
if (
eo.label != ei.label ||
eo.isDeleted != ei.isDeleted
)
return false
Iif (!syncMap) {
Iif (
eo.userId !== ei.userId
)
return false
}
return true
}
static async mergeFind(storage: entity.EntityStorage, userId: number, ei: table.TxLabel, syncMap: entity.SyncMap, trx?: sdk.TrxToken)
: Promise<{ found: boolean, eo: entity.TxLabel, eiId: number }> {
const ef = verifyOneOrNone(await storage.findTxLabels({ partial: { label: ei.label, userId }, trx }))
return {
found: !!ef,
eo: new entity.TxLabel(ef || { ...ei }),
eiId: verifyId(ei.txLabelId)
}
}
override async mergeNew(storage: entity.EntityStorage, userId: number, syncMap: entity.SyncMap, trx?: sdk.TrxToken): Promise<void> {
this.userId = userId
this.txLabelId = 0
this.txLabelId = await storage.insertTxLabel(this.toApi(), trx)
}
override async mergeExisting(storage: entity.EntityStorage, since: Date | undefined, ei: table.TxLabel, syncMap: entity.SyncMap, trx?: sdk.TrxToken): Promise<boolean> {
let wasMerged = false
Iif (ei.updated_at > this.updated_at) {
this.isDeleted = ei.isDeleted
this.updated_at = new Date()
await storage.updateTxLabel(this.id, this.toApi(), trx)
wasMerged = true
}
return wasMerged
}
} |