/*
Netmap contract is a contract deployed in FrostFS sidechain.

Netmap contract stores and manages FrostFS network map, Storage node candidates
and epoch number counter.

# Contract notifications

AddPeer notification. This notification is produced when a Storage node sends
a bootstrap request by invoking AddPeer method.

	AddPeer
	  - name: nodeInfo
	    type: ByteArray

UpdateState notification. This notification is produced when a Storage node wants
to change its state (go offline) by invoking UpdateState method. Supported
states: (2) -- offline.

	UpdateState
	  - name: state
	    type: Integer
	  - name: publicKey
	    type: PublicKey

NewEpoch notification. This notification is produced when a new epoch is applied
in the network by invoking NewEpoch method.

	NewEpoch
	  - name: epoch
	    type: Integer

# Contract storage scheme

	|   Key                       | Value      |           Description             |
	|-----------------------------|------------|-----------------------------------|
	| `snapshotCount`             | int        | snapshot count                    |
	| `snapshotEpoch`             | int        | snapshot epoch                    |
	| `snapshotBlock`             | int        | snapshot block                    |
	| `snapshot_` + snapshotNum   | ByteArray  | serialized '[]Node' array         |
	| `snapshotCurrent`           | int        | current snapshot                  |
	| `balanceScriptHash`         | Hash160    | balance contract hash             |
	| `containerScriptHash`       | Hash160    | container contract hash           |
*/
package netmap