Segment tx userdata types, add internals docs

This commit is contained in:
lash 2024-12-11 19:13:13 +00:00
parent 604c16ec90
commit c820e89cb7
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
2 changed files with 33 additions and 10 deletions

View File

@ -19,20 +19,12 @@ import (
type DataTyp uint16
const (
// TODO: Seems unused
DATA_ACCOUNT DataTyp = iota
// TODO: Seems unused, only read not written
DATA_ACCOUNT_CREATED
// API Tracking id to follow status of account creation
DATA_TRACKING_ID
DATA_TRACKING_ID = iota
// EVM address returned from API on account creation
DATA_PUBLIC_KEY
// TODO: Seems unused
DATA_CUSTODIAL_ID
// Currently active PIN used to authenticate ussd state change requests
DATA_ACCOUNT_PIN
// TODO: Seems unused
DATA_ACCOUNT_STATUS
// The first name of the user
DATA_FIRST_NAME
// The last name of the user
@ -75,7 +67,10 @@ const (
// List of voucher EVM addresses for vouchers valid in the user context.
DATA_VOUCHER_ADDRESSES
// List of senders for valid transactions in the user context.
DATA_TX_SENDERS
)
const (
DATA_TX_SENDERS = 512 + iota
// List of recipients for valid transactions in the user context.
DATA_TX_RECIPIENTS
// List of voucher values for valid transactions in the user context.

28
doc/data.md Normal file
View File

@ -0,0 +1,28 @@
# Internals
## Version
This document describes component versions:
* `urdt-ussd` `v0.5.0-beta`
* `go-vise` `v0.2.2`
## User profile data
All user profile items are stored under keys matching the user's session id, prefixed with the 8-bit value `git.defalsify.org/vise.git/db.DATATYPE_USERDATA` (32), and followed with a 16-big big-endian value subprefix.
For example, given the sessionId `+254123` and the key `git.grassecon.net/urdt-ussd/common.DATA_PUBLIC_KEY` (2) will be stored under the key:
```
0x322b3235343132330002
prefix sessionid subprefix
32 2b323534313233 0002
```
### Sub-prefixes
All sub-prefixes are defined as constants in the `git.grassecon.net/urdt-ussd/common` package. The constant names have the prefix `DATA_`
Please refer to inline godoc documentation for the `git.grassecon.net/urdt-ussd/common` package for details on each data item.