85 lines
2.3 KiB
Go
85 lines
2.3 KiB
Go
|
/*
|
||
|
FrostFS contract is a contract deployed in FrostFS mainchain.
|
||
|
|
||
|
FrostFS contract is an entry point to FrostFS users. This contract stores all FrostFS
|
||
|
related GAS, registers new Inner Ring candidates and produces notifications
|
||
|
to control the sidechain.
|
||
|
|
||
|
While mainchain committee controls the list of Alphabet nodes in native
|
||
|
RoleManagement contract, FrostFS can't change more than 1\3 keys at a time.
|
||
|
FrostFS contract contains the actual list of Alphabet nodes in the sidechain.
|
||
|
|
||
|
Network configuration is also stored in FrostFS contract. All changes in
|
||
|
configuration are mirrored in the sidechain with notifications.
|
||
|
|
||
|
# Contract notifications
|
||
|
|
||
|
Deposit notification. This notification is produced when user transfers native
|
||
|
GAS to the FrostFS contract address. The same amount of FROSTFS token will be
|
||
|
minted in Balance contract in the sidechain.
|
||
|
|
||
|
Deposit:
|
||
|
- name: from
|
||
|
type: Hash160
|
||
|
- name: amount
|
||
|
type: Integer
|
||
|
- name: receiver
|
||
|
type: Hash160
|
||
|
- name: txHash
|
||
|
type: Hash256
|
||
|
|
||
|
Withdraw notification. This notification is produced when a user wants to
|
||
|
withdraw GAS from the internal FrostFS balance and has paid fee for that.
|
||
|
|
||
|
Withdraw:
|
||
|
- name: user
|
||
|
type: Hash160
|
||
|
- name: amount
|
||
|
type: Integer
|
||
|
- name: txHash
|
||
|
type: Hash256
|
||
|
|
||
|
Cheque notification. This notification is produced when FrostFS contract
|
||
|
has 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 a user wants to bind
|
||
|
public keys with the user account (OwnerID). Keys argument is an array of ByteArray.
|
||
|
|
||
|
Bind:
|
||
|
- name: user
|
||
|
type: ByteArray
|
||
|
- name: keys
|
||
|
type: Array
|
||
|
|
||
|
Unbind notification. This notification is produced when a user wants to unbind
|
||
|
public keys with the user account (OwnerID). Keys argument is an array of ByteArray.
|
||
|
|
||
|
Unbind:
|
||
|
- name: user
|
||
|
type: ByteArray
|
||
|
- name: keys
|
||
|
type: Array
|
||
|
|
||
|
SetConfig notification. This notification is produced when Alphabet nodes update
|
||
|
FrostFS network configuration value.
|
||
|
|
||
|
SetConfig
|
||
|
- name: id
|
||
|
type: ByteArray
|
||
|
- name: key
|
||
|
type: ByteArray
|
||
|
- name: value
|
||
|
type: ByteArray
|
||
|
*/
|
||
|
package frostfs
|