;; SatGuard Price Feed
(define-constant err-unauth (err u610))
(define-constant err-amt (err u611))
(define-map prices {asset: (string-ascii 10)} {price: uint,ts: uint,by: principal})
(define-read-only (get-price (asset (string-ascii 10))) (map-get? prices {asset: asset}))
(define-read-only (get-last-update (asset (string-ascii 10)))
(match (map-get? prices {asset: asset})
p (ok (get ts p))
(err u610)))
(define-public (submit-price (asset (string-ascii 10)) (price uint))
(begin
(asserts! (contract-call? .sg-oracle-registry is-oracle tx-sender) err-unauth)
(asserts! (> price u0) err-amt)
(map-set prices {asset: asset} {price: price,ts: block-height,by: tx-sender})
(print {e: "price-submitted",asset: asset,price: price,by: tx-sender})
(ok true)))
(define-read-only (get-btc-price) (get-price "BTC"))
(define-read-only (get-stx-price) (get-price "STX"))