frostfs-contract/frostfsid/doc.go
Dmitrii Stepanov fb9c8e97c2
[#146] frostfsid: Store additional keys out of subject
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-05-05 16:38:11 +03:00

28 lines
2.5 KiB
Go

// Package frostfsid
/*
FrostFSID contract is a contract deployed in FrostFS sidechain.
# Contract notifications
FrostFSID contract does not produce notifications to process.
# Contract storage scheme
| Key | Value | Description |
|------------------------------------------------------------------------------|--------------------------------|-----------------------------------------------|
| `o` + [ owner address ] | []byte{1} | contract owners that can invoke write methods |
| `s` + [ subject address ] | Serialized Subject structure | subject into |
| `a` + [ pk address ] + [ subject address ] | []byte{1} | link extra public keys for subject |
| `n` + [ RIPEMD160 of namespace ] | Serialized Namespace structure | namespace info |
| `N` + [ RIPEMD160 of namespace ] + [ subject address ] | []byte{1} | subject that belongs to the namespace |
| `l` + [ RIPEMD160 of namespace ] + [ RIPEMD160 of subject name ] | Subject public key | subject name to public key index |
| `g` + [ RIPEMD160 of namespace ] + [ 8 byte group id ] | Serialized Group structure | group into |
| `G` + [ RIPEMD160 of namespace ] + [ 8 byte group id ] + [ subject address ] | []byte{1} | subject that belongs to the group |
| `c` | Int | group id counter |
| `m` + [ RIPEMD160 of namespace ] + [ RIPEMD160 of subject name ] | Serialized group id int | group name to group id index |
| `A` + [ subject address ] | bool | means that the wallet has been used |
| `d` + [ subject address ] + [ pk address ] | []byte{1} | link subject to extra public keys |
*/
package frostfsid