Source Code

;; Encrypted Storage
;; Store encrypted data on-chain

(define-map storage
  principal
  {
    data-hash: (buff 32),
    encryption-key-hash: (buff 32),
    timestamp: uint,
    size: uint
  }
)

(define-read-only (get-storage (owner principal))
  (map-get? storage owner)
)

(define-public (store-data (data-hash (buff 32)) (encryption-key-hash (buff 32)) (size uint))
  (ok (map-set storage tx-sender {
    data-hash: data-hash,
    encryption-key-hash: encryption-key-hash,
    timestamp: block-height,
    size: size
  }))
)

(define-public (update-data (data-hash (buff 32)) (encryption-key-hash (buff 32)) (size uint))
  (let ((existing (unwrap! (map-get? storage tx-sender) (err u100))))
    (ok (map-set storage tx-sender {
      data-hash: data-hash,
      encryption-key-hash: encryption-key-hash,
      timestamp: block-height,
      size: size
    }))
  )
)

Functions (3)

FunctionAccessArgs
get-storageread-onlyowner: principal
store-datapublicdata-hash: (buff 32
update-datapublicdata-hash: (buff 32