(define-constant E1 (err u800))
(define-constant E2 (err u801))
(define-map profiles principal
{name: (string-ascii 32), bio: (string-ascii 128), avatar: (string-ascii 128), joined: uint})
(define-public (set-profile (name (string-ascii 32)) (bio (string-ascii 128)) (avatar (string-ascii 128)))
(ok (map-set profiles tx-sender
{name: name, bio: bio, avatar: avatar,
joined: (default-to stacks-block-height
(get joined (map-get? profiles tx-sender)))})))
(define-public (clear-profile)
(ok (map-delete profiles tx-sender)))
(define-read-only (get-profile (u principal))
(map-get? profiles u))
(define-read-only (has-profile (u principal))
(is-some (map-get? profiles u)))