<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

-   -   [fs](#fs)
-   [StromDAO Business Object](#stromdao-business-object)
    -   [\_createNewPK](#_createnewpk)
    -   [\_waitForTransaction](#_waitfortransaction)
    -   [\_getBlockNumber](#_getblocknumber)
    -   [\_keepObjRef](#_keepobjref)
    -   [\_keepHashRef](#_keephashref)
    -   [getRef](#getref)
    -   [\_loadContract](#_loadcontract)
    -   [\_owner_promise](#_owner_promise)
    -   [\_deployContract](#_deploycontract)
    -   [\_objInstance](#_objinstance)
    -   [dso](#dso)
    -   [mpo](#mpo)
    -   [mpo](#mpo-1)
-   [StromDAO Business Object: MPO](#stromdao-business-object-mpo)
    -   [provider](#provider)
    -   [billing](#billing)
    -   [delivery](#delivery)
    -   [stromkonto](#stromkonto)
    -   [roleLookup](#rolelookup)
    -   [approveMP](#approvemp)
    -   [storeReading](#storereading)
    -   [storeReading](#storereading-1)
    -   [lastDelivery](#lastdelivery)
    -   [readings](#readings)

## fs

[StromDAONode.js:9-9](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L9-L9 "Source code on GitHub")

# StromDAO Business Object

[DE] Binding für den StromDAO Node zur Anbindung der Energy Blockchain und Arbeit mit den unterschiedlichen BC Objekten (SmartContracts)
[EN] Binding for StromDAO Node to the Energy Blockchain.

**Meta**

-   **author**: Thorsten Zoerner thorsten.zoerner@stromdao.de

## \_createNewPK

[StromDAONode.js:23-30](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L23-L30 "Source code on GitHub")

Core Function to create a new key-pair.

## \_waitForTransaction

[StromDAONode.js:36-38](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L36-L38 "Source code on GitHub")

Core Function to wait for a transaction to be processed

**Parameters**

-   `tx`  
-   `Transaction`  hash to wait for

## \_getBlockNumber

[StromDAONode.js:48-50](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L48-L50 "Source code on GitHub")

Core Function - Get latest Block Number in Energy Blockchain

## \_keepObjRef

[StromDAONode.js:68-77](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L68-L77 "Source code on GitHub")

Keeps a reference of the object in local persitance store

**Parameters**

-   `address`  
-   `contract_type`  

## \_keepHashRef

[StromDAONode.js:82-85](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L82-L85 "Source code on GitHub")

Keeps transaction receipt for in local persistance store (Key=Hash, Value=Receipt)

**Parameters**

-   `transaction`  

## getRef

[StromDAONode.js:90-92](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L90-L92 "Source code on GitHub")

Retrieves a value fromm local persistance store (Key=>Value)

**Parameters**

-   `ref`  

## \_loadContract

[StromDAONode.js:97-115](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L97-L115 "Source code on GitHub")

Load a contract to be used in BO Instance

**Parameters**

-   `address`  
-   `contract_type`  
-   `roles_address`  

## \_owner_promise

[StromDAONode.js:120-127](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L120-L127 "Source code on GitHub")

Promise to retrieve general Owner() Function of SmartContracts

**Parameters**

-   `instance`  

## \_deployContract

[StromDAONode.js:132-162](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L132-L162 "Source code on GitHub")

Deploy a new contract to the Energy Blockchain

**Parameters**

-   `contract_type`  
-   `roles_address`  

## \_objInstance

[StromDAONode.js:167-174](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L167-L174 "Source code on GitHub")

Get generic instance of a smart contract as object

**Parameters**

-   `obj_or_address`  
-   `type_of_object`  

## dso

[StromDAONode.js:179-179](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L179-L179 "Source code on GitHub")

Bridge to DSO Smart Contract

## mpo

[StromDAONode.js:184-184](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L184-L184 "Source code on GitHub")

Bridge to MPO Smart Contract

## mpo

[MPO.js:12-124](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L12-L124 "Source code on GitHub")

# StromDAO Business Object: MPO

Meter Point Operator handling for StromDAO Energy Blockchain.

In general a Meter Point Operating (Contract) handles meter readings and issues Deliverables as soon as a new reading is received.

**Parameters**

-   `obj_or_address`  

**Meta**

-   **author**: Thorsten Zoerner thorsten.zoerner@stromdao.de

## provider

[StromDAONode.js:189-189](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L189-L189 "Source code on GitHub")

Bridge to Provider Smart Contract

## billing

[StromDAONode.js:194-194](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L194-L194 "Source code on GitHub")

Bridge to Billing Smart Contract

## delivery

[StromDAONode.js:199-199](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L199-L199 "Source code on GitHub")

Bridge to Delivery Smart Contract

## stromkonto

[StromDAONode.js:204-204](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L204-L204 "Source code on GitHub")

Bridge to Stromkonto Smart Contract

## roleLookup

[StromDAONode.js:209-209](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/StromDAONode.js#L209-L209 "Source code on GitHub")

Bridge to RoleLookup Smart Contract

## approveMP

[MPO.js:25-32](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L25-L32 "Source code on GitHub")

Approve a new Blockchain Address to this contract instance. Limit: Only-Owner

**Parameters**

-   `_meter`  address
-   `_role`  Eq. to 4= Consumer or 5= Producer

## storeReading

[MPO.js:38-46](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L38-L46 "Source code on GitHub")

-   **See: approveMP()**

Stores a reading to this contract instance. Requires sender to be approved Meter-Point

**Parameters**

-   `_reading`  

## storeReading

[MPO.js:51-59](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L51-L59 "Source code on GitHub")

Allows a test commit to check if it fails. Promise that might be used to validate a Meter-Point is fully connected.

**Parameters**

-   `_reading`  

## lastDelivery

[MPO.js:64-71](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L64-L71 "Source code on GitHub")

Returns last delivery issued for a Meter-Point

**Parameters**

-   `_meterpoint`  

## readings

[MPO.js:76-83](https://github.com/energychain/StromDAO-BusinessObject/blob/b78d7bf63853a782fc353ddd4c5acf26b381e9ea/MPO.js#L76-L83 "Source code on GitHub")

Returns last reading for a Meter-Point

**Parameters**

-   `_meterpoint`  
