Skip to content

Commit 9ded197

Browse files
committed
chore: update protos; add fee amount to userflags
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent a05fb0d commit 9ded197

28 files changed

Lines changed: 188 additions & 25 deletions

File tree

apps/flipcash/features/userflags/src/main/kotlin/com/flipcash/app/userflags/internal/UserFlagsViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,5 @@ private fun ResolvedUserFlags.editableEntries(): List<EditableEntry<*>> = listOf
134134
EditableEntry(Field.MinimumVersion, minimumVersion),
135135
EditableEntry(Field.BillExchangeDataTimeout, billExchangeDataTimeout),
136136
EditableEntry(Field.NewCurrencyPurchaseAmount, newCurrencyPurchaseAmount),
137+
EditableEntry(Field.NewCurrencyFeeAmount, newCurrencyFeeAmount),
137138
)

apps/flipcash/shared/userflags/src/main/kotlin/com/flipcash/app/userflags/Field.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,25 @@ sealed class Field<Stored, Domain>(
120120
}
121121
},
122122
)
123+
124+
data object NewCurrencyFeeAmount : Field<Long, Fiat>(
125+
longPreferencesKey("override_new_fee_amount"),
126+
encode = { it.quarks },
127+
decode = { Fiat(quarks = it) },
128+
label = R.string.label_flag_newCurrencyFeeAmount,
129+
hint = R.string.hint_flag_newCurrencyFeeAmount,
130+
format = { it.formatted(rule = Fiat.FormattingRule.Truncated) },
131+
editFormat = { it.formatted(showPrefix = false, rule = Fiat.FormattingRule.Truncated) },
132+
editor = FieldEditor.TextInput(
133+
keyboard = KeyboardType.Decimal,
134+
parse = { it.toDoubleOrNull()?.let { d -> Fiat(fiat = d) } },
135+
),
136+
outputTransformation = OutputTransformation {
137+
if (length > 0) {
138+
insert(0, "$")
139+
}
140+
},
141+
)
123142
}
124143

125144
internal fun OnRampProvider.Defined.encode(): String = when (this) {

apps/flipcash/shared/userflags/src/main/kotlin/com/flipcash/app/userflags/ResolvedUserFlags.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ data class ResolvedUserFlags(
2727
val minimumVersion: ResolvedFlag<Int?>,
2828
val billExchangeDataTimeout: ResolvedFlag<Duration?>,
2929
val newCurrencyPurchaseAmount: ResolvedFlag<Fiat>,
30+
val newCurrencyFeeAmount: ResolvedFlag<Fiat>,
3031
)
3132

3233
internal fun UserFlags.resolve(overrides: Overrides): ResolvedUserFlags = ResolvedUserFlags(
@@ -38,4 +39,5 @@ internal fun UserFlags.resolve(overrides: Overrides): ResolvedUserFlags = Resolv
3839
minimumVersion = ResolvedFlag(minimumVersion, overrides.minimumVersion),
3940
billExchangeDataTimeout = ResolvedFlag(billExchangeDataTimeout, overrides.billExchangeDataTimeout),
4041
newCurrencyPurchaseAmount = ResolvedFlag(newCurrencyPurchaseAmount, overrides.newCurrencyPurchaseAmount),
42+
newCurrencyFeeAmount = ResolvedFlag(newCurrencyFeeAmount, overrides.newCurrencyPurchaseAmount)
4143
)

apps/flipcash/shared/userflags/src/main/kotlin/com/flipcash/app/userflags/UserFlagsCoordinator.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class UserFlagsCoordinator @Inject constructor(
3737
val minimumVersion: FieldOverride<Int?>,
3838
val billExchangeDataTimeout: FieldOverride<Duration?>,
3939
val newCurrencyPurchaseAmount: FieldOverride<Fiat>,
40+
val newCurrencyFeeAmount: FieldOverride<Fiat>,
4041
) {
4142
companion object {
4243
val None = Overrides(
@@ -45,6 +46,7 @@ class UserFlagsCoordinator @Inject constructor(
4546
minimumVersion = FieldOverride.None,
4647
billExchangeDataTimeout = FieldOverride.None,
4748
newCurrencyPurchaseAmount = FieldOverride.None,
49+
newCurrencyFeeAmount = FieldOverride.None,
4850
)
4951
}
5052
}
@@ -65,6 +67,7 @@ class UserFlagsCoordinator @Inject constructor(
6567
minimumVersion = prefs.readOverride(Field.MinimumVersion),
6668
billExchangeDataTimeout = prefs.readOverride(Field.BillExchangeDataTimeout),
6769
newCurrencyPurchaseAmount = prefs.readOverride(Field.NewCurrencyPurchaseAmount),
70+
newCurrencyFeeAmount = prefs.readOverride(Field.NewCurrencyFeeAmount)
6871
)
6972
}.stateIn(scope, SharingStarted.Eagerly, Overrides.None)
7073

apps/flipcash/shared/userflags/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
<string name="hint_flag_billExchangeDataTimeout">Enter time in seconds</string>
1313
<string name="label_flag_newCurrencyPurchaseAmount">New Currency Purchase Amount</string>
1414
<string name="hint_flag_newCurrencyPurchaseAmount">Enter amount</string>
15-
15+
<string name="label_flag_newCurrencyFeeAmount">New Currency Fee Amount</string>
16+
<string name="hint_flag_newCurrencyFeeAmount">Enter amount</string>
1617
</resources>

definitions/flipcash/protos/src/main/proto/account/v1/flipcash_account_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,6 @@ message UserFlags {
110110
google.protobuf.Duration bill_exchange_data_timeout = 7;
111111
// USDF amount, in quarks, that must be purchased when launching a new currency
112112
uint64 new_currency_purchase_amount = 8;
113+
// USDF amount, in quarks, that must be paid in a fee when launching a new currency
114+
uint64 new_currency_fee_amount = 9;
113115
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
syntax = "proto3";
2+
package flipcash.event.v1;
3+
option go_package = "github.com/code-payments/flipcash2-protobuf-api/generated/go/event/v1;eventpb";
4+
option java_package = "com.codeinc.flipcash.gen.events.v1";
5+
option objc_class_prefix = "FPBEventV1";
6+
import "event/v1/model.proto";
7+
import "common/v1/common.proto";
8+
import "google/protobuf/timestamp.proto";
9+
10+
service EventStreaming {
11+
// StreamEvents streams events for the requesting user.
12+
rpc StreamEvents(stream StreamEventsRequest) returns (stream StreamEventsResponse);
13+
// ForwardEvents is an internal RPC for forwarding events to another server.
14+
rpc ForwardEvents(ForwardEventsRequest) returns (ForwardEventsResponse);
15+
}
16+
message StreamEventsRequest {
17+
oneof type {
18+
Params params = 1;
19+
ClientPong pong = 2;
20+
}
21+
message Params {
22+
common.v1.Auth auth = 1;
23+
// ts contains the time for stream open.
24+
//
25+
// It is used primarily as a nonce for auth. Server may reject
26+
// timestamps that are too far in the future or past.
27+
google.protobuf.Timestamp ts = 2;
28+
}
29+
}
30+
message StreamEventsResponse {
31+
oneof type {
32+
ServerPing ping = 1;
33+
StreamError error = 2;
34+
EventBatch events = 3;
35+
}
36+
message StreamError {
37+
Code code = 1;
38+
enum Code {
39+
DENIED = 0;
40+
INVALID_TIMESTAMP = 1;
41+
}
42+
}
43+
}
44+
message ForwardEventsRequest {
45+
UserEventBatch user_events = 1;
46+
}
47+
message ForwardEventsResponse {
48+
Result result = 1;
49+
enum Result {
50+
OK = 0;
51+
DENIED = 1;
52+
}
53+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
syntax = "proto3";
2+
package flipcash.event.v1;
3+
option go_package = "github.com/code-payments/flipcash2-protobuf-api/generated/go/event/v1;eventpb";
4+
option java_package = "com.codeinc.flipcash.gen.events.v1";
5+
option objc_class_prefix = "FPBEventV1";
6+
import "common/v1/common.proto";
7+
import "google/protobuf/duration.proto";
8+
import "google/protobuf/timestamp.proto";
9+
10+
message EventId {
11+
bytes id = 1 ;
12+
}
13+
// todo: define additional events
14+
message Event {
15+
EventId id = 1;
16+
google.protobuf.Timestamp ts = 2;
17+
oneof type {
18+
TestEvent test = 3;
19+
}
20+
}
21+
message EventBatch {
22+
repeated Event events = 1 ;
23+
}
24+
message UserEvent {
25+
common.v1.UserId user_id = 1;
26+
Event event = 2;
27+
}
28+
message UserEventBatch {
29+
repeated UserEvent events = 1 ;
30+
}
31+
message TestEvent {
32+
repeated string hops = 1;
33+
uint64 nonce = 2;
34+
}
35+
message ServerPing {
36+
// Timestamp the ping was sent on the stream, for client to get a sense
37+
// of potential network latency
38+
google.protobuf.Timestamp timestamp = 1;
39+
// The delay server will apply before sending the next ping
40+
google.protobuf.Duration ping_delay = 2;
41+
}
42+
message ClientPong {
43+
// Timestamp the Pong was sent on the stream, for server to get a sense
44+
// of potential network latency
45+
google.protobuf.Timestamp timestamp = 1;
46+
}

definitions/flipcash/protos/src/main/proto/moderation/v1/moderation_service.proto

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ message ModerateTextRequest {
2020
message ModerateTextResponse {
2121
Result result = 1;
2222
enum Result {
23-
OK = 0;
24-
DENIED = 1;
23+
OK = 0;
24+
DENIED = 1;
25+
UNSUPPORTED_LANGUAGE = 2;
2526
}
2627
// Whether the text content is allowed
2728
bool is_allowed = 2;

definitions/opencode/protos/src/main/proto/currency/v1/currency_service.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,8 @@ message DiscoverResponse {
343343
message CheckAvailabilityRequest {
344344
// The currency name to check availability for
345345
string name = 1;
346+
347+
346348
}
347349
message CheckAvailabilityResponse {
348350
Result result = 1;

0 commit comments

Comments
 (0)