forked from TrueCloudLab/frostfs-contract
d38a076920
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
95 lines
2.5 KiB
Go
95 lines
2.5 KiB
Go
/*
|
|
NeoFS contract is a contract deployed in NeoFS main chain.
|
|
|
|
NeoFS contract is an entry point to NeoFS users. This contract stores all NeoFS
|
|
related GAS, registers new Inner Ring candidates and produces notifications
|
|
to control side chain.
|
|
|
|
While main chain committee controls list of Alphabet nodes in native
|
|
RoleManagement contract, NeoFS can't change more than 1\3 keys at a time.
|
|
NeoFS contract contains actual list of Alphabet nodes in the side chain.
|
|
|
|
Network configuration also stored in NeoFS contract. All the changes in
|
|
configuration are mirrored in side chain with notifications.
|
|
|
|
Contract notifications
|
|
|
|
Deposit notification. This notification is produced when user transfers native
|
|
GAS to the NeoFS contract address. The same amount of NEOFS token will be
|
|
minted in Balance contract in the side chain.
|
|
|
|
Deposit:
|
|
- name: from
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
- name: receiver
|
|
type: Hash160
|
|
- name: txHash
|
|
type: Hash256
|
|
|
|
Withdraw notification. This notification is produced when user wants to
|
|
withdraw GAS from internal NeoFS balance and has payed fee for that.
|
|
|
|
Withdraw:
|
|
- name: user
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
- name: txHash
|
|
type: Hash256
|
|
|
|
|
|
Cheque notification. This notification is produced when NeoFS contract
|
|
successfully transferred assets back to the user after withdraw.
|
|
|
|
Cheque:
|
|
- name: id
|
|
type: ByteArray
|
|
- name: user
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
- name: lockAccount
|
|
type: ByteArray
|
|
|
|
Bind notification. This notification is produced when user wants to bind
|
|
public keys with user account (OwnerID). Keys argument is array of ByteArray.
|
|
|
|
Bind:
|
|
- name: user
|
|
type: ByteArray
|
|
- name: keys
|
|
type: Array
|
|
|
|
Unbind notification. This notification is produced when user wants to unbind
|
|
public keys with user account (OwnerID). Keys argument is an array of ByteArray.
|
|
|
|
Unbind:
|
|
- name: user
|
|
type: ByteArray
|
|
- name: keys
|
|
type: Array
|
|
|
|
AlphabetUpdate notification. This notification is produced when Alphabet nodes
|
|
updated it's list in the contract. Alphabet argument is an array of ByteArray. It
|
|
contains public keys of new alphabet nodes.
|
|
|
|
AlphabetUpdate:
|
|
- name: id
|
|
type: ByteArray
|
|
- name: alphabet
|
|
type: Array
|
|
|
|
SetConfig notification. This notification is produced when Alphabet nodes update
|
|
NeoFS network configuration value.
|
|
|
|
SetConfig
|
|
- name: id
|
|
type: ByteArray
|
|
- name: key
|
|
type: ByteArray
|
|
- name: value
|
|
type: ByteArray
|
|
*/
|
|
package neofs
|