Documentation ¶
Overview ¶
Package fourbyte contains the 4byte database.
Index ¶
- func Asset(name string) ([]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetNames() []string
- type Database
- func (db *Database) AddSelector(selector string, data []byte) error
- func (db *Database) Selector(id []byte) (string, error)
- func (db *Database) Size() (int, int)
- func (db *Database) ValidateCallData(selector *string, data []byte, messages *core.ValidationMessages)
- func (db *Database) ValidateTransaction(selector *string, tx *core.SendTxArgs) (*core.ValidationMessages, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Asset ¶
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetDir ¶
AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:
data/ foo.txt img/ a.png b.png
then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is a 4byte database with the possibility of maintaining an immutable set (embedded) into the process and a mutable set (loaded and written to file).
func NewFromFile ¶
NewFromFile loads signature database from file, and errors if the file is not valid JSON. The constructor does no other validation of contents. This Method does not load the embedded 4byte database.
The provided path will be used to write new values into if they are submitted via the API.
func NewWithFile ¶
NewWithFile loads both the standard signature database (embedded resource file) as well as a custom database. The latter will be used to write new values into if they are submitted via the API.
func (*Database) AddSelector ¶
AddSelector inserts a new 4byte entry into the database. If custom database saving is enabled, the new dataset is also persisted to disk.
Node, this Method does _not_ validate the correctness of the data. It assumes the caller has already done so.
func (*Database) Selector ¶
Selector checks the given 4byte ID against the known ABI Methods.
This Method does not validate the match, it's assumed the caller will do.
func (*Database) Size ¶
Size returns the number of 4byte entries in the embedded and custom datasets.
func (*Database) ValidateCallData ¶
func (db *Database) ValidateCallData(selector *string, data []byte, messages *core.ValidationMessages)
ValidateCallData checks if the ABI call-data + Method selector (if given) can be parsed and seems to match.
func (*Database) ValidateTransaction ¶
func (db *Database) ValidateTransaction(selector *string, tx *core.SendTxArgs) (*core.ValidationMessages, error)
ValidateTransaction does a number of checks on the supplied transaction, and returns either a list of warnings, or an error (indicating that the transaction should be immediately rejected).