ipld-eth-server/libraries/shared/TransformerREADME.md
2018-03-16 15:07:19 -05:00

1.0 KiB

Transformers

Description

Transformers must be defined in order to define what events should trigger data updates and how those are performed.

Interface

Initializer

Accepts DB and Blockchain from Vulcanize and returns a new transformer. E.g. for a new object "Cup": func NewCupTransformer(db *postgres.DB, blockchain core.ContractDataFetcher) transformers.Transformer

Execute

Triggers operations to take in response to a given log event. Can persist data from logs, fetch and persist arbitrary data from outside services (e.g. contract state), or take any number of other actions. E.g.: func (cupTransformer *CupTransformer) Execute() error

Additional Requirements

Transformers must define log filters and create them so that relevant watched events can be identified and retrieved. E.g.:

	{
		Name:      "CupsBite",
		FromBlock: 0,
		ToBlock:   -1,
		Address:   "0x448a5065aebb8e423f0896e6c5d525c040f59af3",
		Topics:    core.Topics{"0x40cc885400000000000000000000000000000000000000000000000000000000"},
	},