mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-26 08:15:19 +00:00
025b7b2cdb
- Validate total fractional amounts in genesis type - Validate against fractional balances such that `(sum(balances) + remainder) % conversionFactor == 0` - Add new utility type `SplitBalance` for splitting up full balances into each
43 lines
1.4 KiB
Protocol Buffer
43 lines
1.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
package kava.precisebank.v1;
|
|
|
|
import "cosmos_proto/cosmos.proto";
|
|
import "gogoproto/gogo.proto";
|
|
|
|
option go_package = "github.com/kava-labs/kava/x/precisebank/types";
|
|
|
|
// GenesisState defines the precisebank module's genesis state.
|
|
message GenesisState {
|
|
// balances is a list of all the balances in the precisebank module.
|
|
repeated FractionalBalance balances = 1 [
|
|
(gogoproto.castrepeated) = "FractionalBalances",
|
|
(gogoproto.nullable) = false
|
|
];
|
|
|
|
// remainder is an internal value of how much extra fractional digits are
|
|
// still backed by the reserve, but not assigned to any account.
|
|
string remainder = 2 [
|
|
(cosmos_proto.scalar) = "cosmos.Int",
|
|
(gogoproto.customtype) = "cosmossdk.io/math.Int",
|
|
(gogoproto.nullable) = false
|
|
];
|
|
}
|
|
|
|
// FractionalBalance defines the fractional portion of an account balance
|
|
message FractionalBalance {
|
|
option (gogoproto.equal) = false;
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
// address is the address of the balance holder.
|
|
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// amount indicates amount of only the fractional balance owned by the
|
|
// address. FractionalBalance currently only supports tracking 1 single asset,
|
|
// e.g. fractional balances of ukava.
|
|
string amount = 2 [
|
|
(cosmos_proto.scalar) = "cosmos.Int",
|
|
(gogoproto.customtype) = "cosmossdk.io/math.Int",
|
|
(gogoproto.nullable) = false
|
|
];
|
|
}
|