forked from TrueCloudLab/frostfs-contract
8ca71d22b2
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
78 lines
2.2 KiB
Go
78 lines
2.2 KiB
Go
/*
|
|
Balance contract is a contract deployed in NeoFS sidechain.
|
|
|
|
Balance contract stores all NeoFS account balances. It is a NEP-17 compatible
|
|
contract, so it can be tracked and controlled by N3 compatible network
|
|
monitors and wallet software.
|
|
|
|
This contract is used to store all micro transactions in the sidechain, such as
|
|
data audit settlements or container fee payments. It is inefficient to make such
|
|
small payment transactions in the mainchain. To process small transfers, balance
|
|
contract has higher (12) decimal precision than native GAS contract.
|
|
|
|
NeoFS balances are synchronized with mainchain operations. Deposit produces
|
|
minting of NEOFS tokens in Balance contract. Withdraw locks some NEOFS tokens
|
|
in a special lock account. When NeoFS contract transfers GAS assets back to the
|
|
user, the lock account is destroyed with burn operation.
|
|
|
|
# Contract notifications
|
|
|
|
Transfer notification. This is a NEP-17 standard notification.
|
|
|
|
Transfer:
|
|
- name: from
|
|
type: Hash160
|
|
- name: to
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
|
|
TransferX notification. This is an enhanced transfer notification with details.
|
|
|
|
TransferX:
|
|
- name: from
|
|
type: Hash160
|
|
- name: to
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
- name: details
|
|
type: ByteArray
|
|
|
|
Lock notification. This notification is produced when a lock account is
|
|
created. It contains information about the mainchain transaction that has produced
|
|
the asset lock, the address of the lock account and the NeoFS epoch number until which the
|
|
lock account is valid. Alphabet nodes of the Inner Ring catch notification and initialize
|
|
Cheque method invocation of NeoFS contract.
|
|
|
|
Lock:
|
|
- name: txID
|
|
type: ByteArray
|
|
- name: from
|
|
type: Hash160
|
|
- name: to
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
- name: until
|
|
type: Integer
|
|
|
|
Mint notification. This notification is produced when user balance is
|
|
replenished from deposit in the mainchain.
|
|
|
|
Mint:
|
|
- name: to
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
|
|
Burn notification. This notification is produced after user balance is reduced
|
|
when NeoFS contract has transferred GAS assets back to the user.
|
|
|
|
Burn:
|
|
- name: from
|
|
type: Hash160
|
|
- name: amount
|
|
type: Integer
|
|
*/
|
|
package balance
|