Source Code

(define-map block-miners {block-number: uint} {miner: principal})

(define-constant ERR-BLOCK-SEQUENCE-INVALID u1000)

(define-data-var current-block-ht uint u0)

(define-private (register-block (block-number uint)) 
  (let ((next-block (+ (var-get current-block-ht) u1)))
    (asserts! (and (is-eq block-number next-block) (<= next-block block-height)) 
      (err ERR-BLOCK-SEQUENCE-INVALID))
    (let 
      ((miner (default-to (as-contract tx-sender) (get-block-info? miner-address next-block))))
      (map-set block-miners {block-number: next-block} {miner: miner})
      (var-set current-block-ht next-block)
      (ok (print "Added block successfully")))))

(define-public (register-blocks (block-numbers (list 750 uint))) 
  (begin
    (map register-block block-numbers)
    (ok true)))

Functions (2)

FunctionAccessArgs
register-blockprivateblock-number: uint
register-blockspublicblock-numbers: (list 750 uint