:ContractAccount leaf node


Label

Contract Account

Description

One of the two main types of accounts on Ethereum, a contract account is an account whose behaviour is controlled by a smart contract. Contract accounts are identified by their address which is derived from the creator account's address and nonce. A contract account has a non-empty associated EVM code. It's state data consists of the bytecode, the contract's balance and the storage state of the contract's code (for example the value of variables). A contract account can only act when it is triggered by a message. It may not create and sign transactions, but it can receive transactions from external accounts as well as send and receive contract messages, which may involve a transfer of Ether. Contract accounts can also contain events which create log entries when triggered.

Usage

Instances of :ContractAccount can have the following properties:

PROPERTYTYPEDESCRIPTIONRANGE
From class :ContractAccount
:accountCode owl:DatatypeProperty The immutable EVM bytecode of the contract account. xsd:hexBinary
:accountCodeHash owl:DatatypeProperty The immutable Keccak-256 hash of the EVM code of an account. xsd:hexBinary
:refunds owl:FunctionalProperty Relates a selfdestruct contract message to the contract account it sends its refund balance to. :Account
From class :Account
:address owl:DatatypeProperty A 160-bit identifier for accounts. xsd:hexBinary
:hasCurrentState owl:InverseFunctionalProperty This property relates an EthOn concept to its most current state. :AccountState
:hasState owl:InverseFunctionalProperty This property relates an EthOn concept to a state. It is inverse functional because a state can only belong to one single EthOn concept. :AccountState
:sends owl:ObjectProperty Relates a an account to a message it sends. :Msg
From class :AccountConcept
:AccountDataProperty owl:DatatypeProperty Groups all data properties that are specific to an account. owl:Thing
From class :EthOnConcept
:simpleDefinition owl:AnnotationProperty This property relates an EthOn concept to a definition in Simple English, intended especially for non-technical users. owl:Thing
:suggestedStringRepresentation owl:AnnotationProperty This property relates an EthOn concept with a suggested string representation. It can be used to give the term a name, e.g. in program code. owl:Thing
From class owl:Thing
:AccountObjectProperty owl:ObjectProperty Groups all EthOn account object properties owl:Thing
:BlockObjectProperty owl:ObjectProperty Groups all EthOn block object properties owl:Thing
:EthOnAnnotationProperty owl:AnnotationProperty Superclass of all EthOn specific annotation properties. owl:Thing
:EthOnDataProperty owl:DatatypeProperty Groups all data properties specific to EthOn. owl:Thing
:EthOnObjectProperty owl:ObjectProperty Groups all EthOn object properties owl:Thing
:MessageObjectProperty owl:ObjectProperty Groups all EthOn message object properties. owl:Thing
:NetworkDataProperty owl:DatatypeProperty Groups all EthOn network data properties. owl:Thing
:NetworkObjectProperty owl:ObjectProperty Groups all EthOn network object properties. owl:Thing
:StateObjectProperty owl:ObjectProperty Groups all EthOn state object properties. owl:Thing
:createsPostMsgState owl:FunctionalProperty Relates a message to the global state of the system after all the message has been executed. owl:Thing
:hasAccountStorage owl:FunctionalProperty Relates an account to the Merkle Patricia tree that encodes its storage contents at a certain account state. This property is Functional because an account state can have only one instance of account storage and inverse functional because an account storage can have only one associated account state. :AccountStorage
:hasTransition owl:ObjectProperty Relates a state to a transition (i.e. a message) that creates a new state. owl:Thing
:partOf owl:ObjectProperty This is a general relation to express part of relationships. The classic study of parts and wholes, mereology, has three axioms: 1. the part-of relation is Transitive - "parts of parts are parts of the whole" - If A is part of B and B is part of C, then A is part of C Reflexive - "Everything is part of itself" - A is part of A Antisymmetric - "Nothing is a part of its parts" - if A is part of B and A != B then B is not part of A. owl:Thing

Implementation

@prefix : <http://ethon.consensys.net/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ns: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix v0: <http://ethon.consensys.net/v0/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

:ContractAccount a owl:Class ;
    rdfs:label "Contract Account"@en ;
    :simpleDefinition "A type of Ethereum account that represents a smart contract. Its behaviour is controlled by the logic in the smart contract's code. Like external accounts it is identified by an address." ;
    :suggestedStringRepresentation "ContractAccount"@en ;
    rdfs:comment "One of the two main types of accounts on Ethereum, a contract account is an account whose behaviour is controlled by a smart contract. Contract accounts are identified by their address which is derived from the creator account's address and nonce. A contract account has a non-empty associated EVM code. It's state data consists of the bytecode, the contract's balance and the storage state of the contract's code (for example the value of variables). A contract account can only act when it is triggered by a message. It may not create and sign transactions, but it can receive transactions from external accounts as well as send and receive contract messages, which may involve a transfer of Ether. Contract accounts can also contain events which create log entries when triggered."@en ;
    rdfs:subClassOf :Account ;
    owl:disjointWith :ExternalAccount ;
    ns:term_status "unstable" .