package vm import ( . "github.com/tendermint/go-common" ptypes "github.com/tendermint/tendermint/permission/types" ) const ( defaultDataStackCapacity = 10 ) type Account struct { Address Word256 Balance int64 Code []byte Nonce int64 Other interface{} // For holding all other data. Permissions ptypes.AccountPermissions } func (acc *Account) String() string { if acc == nil { return "nil-VMAccount" } return Fmt("VMAccount{%X B:%v C:%X N:%v}", acc.Address, acc.Balance, acc.Code, acc.Nonce) } type AppState interface { // Accounts GetAccount(addr Word256) *Account UpdateAccount(*Account) RemoveAccount(*Account) CreateAccount(*Account) *Account // Storage GetStorage(Word256, Word256) Word256 SetStorage(Word256, Word256, Word256) // Setting to Zero is deleting. } type Params struct { BlockHeight int64 BlockHash Word256 BlockTime int64 GasLimit int64 }