EIPs/EIPS/eip-801.md
Pandapip1 9e393a79d9
Force usage of included LICENSE file (#5055)
* Include LICENCE in the Jekyll build

* Replace old licence link with new and improved licence link

* Add note to EIP-1 mandating the new link

* Maybe this fixes it?

* Rename LICENCE so that jekyll picks it up

* Add original LICENCE file back

* Delete the markdown file

* Add Jekyll header

Hopefully the tooling still detects it as CC0

* Remove Jekyll header

* Maybe this will trick Jekyll and satisfy github?

* Remove config changes

* Enable incremental build

* Will it work if I rename it?

* I'll just paste the content of the licence into the file...

* Perhaps this will work

* Replace the licence file

* Fix false positive

Co-authored-by: Micah Zoltu <micah@zoltu.net>

* Resolve feedback

* Perhaps this might work

* It didn't work

This reverts commit 55116e15168fb20ae57dea97388bb260c0941465.

* Will licencee still detect this correctly?

* Jekyll Preamble in licence file

* Include it?

* Licence -> License, get rid of CC0.md

* Force wording of copyright waiver

* Formatting consistent with the rest of the list

* Spelling

* Escape

* Task failed successfully

* Fix two more links

* Will this render it?

* Perhaps this will work too

* .md essential

* Fix the issues Micah noted

Co-authored-by: Micah Zoltu <micah@zoltu.net>
2022-05-06 00:29:09 -07:00

1.9 KiB

eip title author type category status created
801 Canary Standard ligi <ligi@ligi.de> Standards Track ERC Stagnant 2017-12-16

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.

function isAlive() constant returns (bool alive)

getBlockOfDeath()

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

function getBlockOfDeath() constant returns (uint256 block)

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.

function getType() constant returns (uint8 type)

Events

RIP

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

event RIP()

Implementation

TODO

Copyright and related rights waived via CC0.