Skip to content

Instantly share code, notes, and snippets.

@eolszewski
Created August 22, 2018 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eolszewski/28aa16b31d85098930391a325bd0ecf8 to your computer and use it in GitHub Desktop.
Save eolszewski/28aa16b31d85098930391a325bd0ecf8 to your computer and use it in GitHub Desktop.
pragma solidity ^0.4.19;
library EventStoreLib {
event Event(
uint index,
address sender,
bytes32 key,
bytes32 value
);
struct EventStruct {
uint index;
address sender;
bytes32 key;
bytes32 value;
}
struct Storage {
EventStruct[] events;
}
function write(
Storage storage self,
bytes32 key,
bytes32 value
) public returns (uint) {
EventStruct memory evt;
evt.index = self.events.length;
evt.sender = msg.sender;
evt.key = key;
evt.value = value;
emit Event(evt.index, evt.sender, evt.key, evt.value);
self.events.push(evt);
return evt.index;
}
function read(Storage storage self, uint index) public constant
returns (uint, address, bytes32, bytes32 ) {
EventStruct memory evt = self.events[index];
return (
evt.index,
evt.sender,
evt.key,
evt.value
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment