issue-166-open-timestamps #220

Merged
eugene merged 25 commits from issue-166-open-timestamps into staging 2024-10-25 11:18:47 +00:00
2 changed files with 13 additions and 7 deletions
Showing only changes of commit 7f00f9e8bf - Show all commits

View File

@ -54,6 +54,7 @@ import {
SigitFile SigitFile
} from '../../utils/file.ts' } from '../../utils/file.ts'
import { ARRAY_BUFFER, DEFLATE } from '../../utils/const.ts' import { ARRAY_BUFFER, DEFLATE } from '../../utils/const.ts'
import { generateTimestamp } from '../../utils/opentimestamps.ts'
enum SignedStatus { enum SignedStatus {
Fully_Signed, Fully_Signed,
User_Is_Next_Signer, User_Is_Next_Signer,
@ -549,6 +550,12 @@ export const SignPage = () => {
const updatedMeta = updateMetaSignatures(meta, signedEvent) const updatedMeta = updateMetaSignatures(meta, signedEvent)
const timestamp = await generateTimestamp(signedEvent.id)
if (timestamp) {
updatedMeta.timestamps = [...(updatedMeta.timestamps || []), timestamp]
updatedMeta.modifiedAt = unixNow()
}
if (await isOnline()) { if (await isOnline()) {
await handleOnlineFlow(updatedMeta) await handleOnlineFlow(updatedMeta)
} else { } else {

View File

@ -1,6 +1,7 @@
import { Timestamp } from '../types' import { Timestamp } from '../types'
import { retry } from './retry.ts' import { retry } from './retry.ts'
import { bytesToHex, hexToBytes } from '@noble/hashes/utils' import { bytesToHex } from '@noble/hashes/utils'
import { utf8Encoder } from 'nostr-tools/utils'
/** /**
* Generates a timestamp for the provided nostr event ID. * Generates a timestamp for the provided nostr event ID.
@ -20,18 +21,16 @@ export const generateTimestamp = async (
} }
} }
const timestamp = async (hash: string): Promise<string> => { const timestamp = async (nostrId: string): Promise<string> => {
const detachedTimestamp = const detachedTimestamp =
window.OpenTimestamps.DetachedTimestampFile.fromHash( window.OpenTimestamps.DetachedTimestampFile.fromBytes(
new window.OpenTimestamps.Ops.OpSHA256(), new window.OpenTimestamps.Ops.OpSHA256(),
hexToBytes(hash) utf8Encoder.encode(nostrId)
) )
await window.OpenTimestamps.stamp(detachedTimestamp) await window.OpenTimestamps.stamp(detachedTimestamp)
const ctx = new window.OpenTimestamps.Context.StreamSerialization() const ctx = new window.OpenTimestamps.Context.StreamSerialization()
detachedTimestamp.serialize(ctx) detachedTimestamp.serialize(ctx)
const timestampBytes = ctx.getOutput() const timestampBytes = ctx.getOutput()
const hex = bytesToHex(timestampBytes) return bytesToHex(timestampBytes)
return hex
} }