ERC-801: Canary Standard


Metadata
Status: StagnantStandards Track: ERCCreated: 2017-12-16
Authors

Simple Summary


A standard interface for canary contracts.

Abstract


The following standard allows the implementation of canaries within contracts. This standard provides basic functionality to check if a canary is alive, keeping the canary alive and optionally manage feeders.

Motivation


The canary can e.g. be used as a warrant canary. A standard interface allows other applications to easily interface with canaries on Ethereum - e.g. for visualizing the state, automated alarms, applications to feed the canary or contracts (e.g. insurance) that use the state.

Specification


Methods

isAlive()

Returns if the canary was fed properly to signal e.g. that no warrant was received.


getBlockOfDeath()

Returns the block the canary died. Throws if the canary is alive.


getType()

Returns the type of the canary:

  • 1 = Simple (just the pure interface as defined in this ERC)
  • 2 = Single feeder (as defined in ERC-TBD)
  • 3 = Single feeder with bad food (as defined in ERC-TBD)
  • 4 = Multiple feeders (as defined in ERC-TBD)
  • 5 = Multiple mandatory feeders (as defined in ERC-TBD)
  • 6 = IOT (as defined in ERC-TBD)

1 might also be used for a special purpose contract that does not need a special type but still wants to expose the functions and provide events as defined in this ERC.


Events

RIP

MUST trigger when the contract is called the first time after the canary died.


Implementation


TODO

Copyright


Copyright and related rights waived via CC0.