1// Package entity provides an interface that abstracts a notion of entity which2// can under the hood be an EOA (address), a package realm (PkgPath, address).3// It also tries to give a notion of type where for instance, a user can be4// either a simple user or a team, and a contract can be either an arbitrary5// contract, or one that implements a famous pattern/interface, such as a DAO.6// It also provides some composition utilities so that an entity can be a flow7// that matches multiple other entities.8package entity910import (11 "chain/runtime"12)1314type Entity interface {15 Addr() address16 Path() string17 Kind18 isEntity()19}2021type Kind interface {22 kind()23}2425type UserEntity interface {26 Entity27 isUserEntity()28}2930type RealmEntity interface {31 Entity32 isRealmEntity()33}3435func NewUserByAddr(addr address) UserEntity { panic("not implemented") }36func NewUserByName(name string) UserEntity { panic("not implemented") }37func NewRealm(rlm runtime.Realm) RealmEntity { panic("not implemented") }38Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.