var ( // ErrBadProDAOExtra is returned if a header doesn't support the DAO fork on a // pro-fork client. ErrBadProDAOExtra = errors.New("bad DAO pro-fork extra-data") // ErrBadNoDAOExtra is returned if a header does support the DAO fork on a no- // fork client. ErrBadNoDAOExtra = errors.New("bad DAO no-fork extra-data") )
ApplyDAOHardFork modifies the state database according to the DAO hard-fork rules, transferring all balances of a set of DAO accounts to a single refund contract.
VerifyDAOHeaderExtraData validates the extra-data field of a block header to ensure it conforms to DAO hard-fork rules.
DAO hard-fork extension to the header validity:
a) if the node is no-fork, do not accept blocks in the [fork, fork+10) range with the fork specific extra-data set b) if the node is pro-fork, require blocks in the specific range to have the unique extra-data set.
VerifyForkHashes verifies that blocks conforming to network hard-forks do have the correct hashes, to avoid clients going off on different chains. This is an optional feature.