nova-data-availability-oracle

SP2KZ109PC2HRFH8T37ZD8VAQF2DK38RTXQSBK80T

Source Code


;; Nova Data Availability Oracle
;; Verifies data availability for off-chain computation

(define-constant ERR-NOT-AUTHORIZED (err u100))
(define-constant ERR-DUPLICATE-ENTRY (err u101))

(define-data-var oracle-owner principal tx-sender)

(define-map data-availability-proofs 
    { data-hash: (buff 32) }
    { 
        provider: principal, 
        block-height: uint,
        verified: bool
    }
)

(define-public (post-proof (data-hash (buff 32)))
    (let
        (
            (existing-proof (map-get? data-availability-proofs { data-hash: data-hash }))
        )
        (asserts! (is-none existing-proof) ERR-DUPLICATE-ENTRY)
        (ok (map-set data-availability-proofs 
            { data-hash: data-hash }
            { 
                provider: tx-sender,
                block-height: block-height,
                verified: true
            }
        ))
    )
)

(define-read-only (get-verification (data-hash (buff 32)))
    (map-get? data-availability-proofs { data-hash: data-hash })
)

Functions (2)

FunctionAccessArgs
post-proofpublicdata-hash: (buff 32
get-verificationread-onlydata-hash: (buff 32