Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,27 @@ called out explicitly even when nothing else did.
release notes, so a version with no entry here does not release. Write the entry in the same PR that
syncs the contract, while the diff is still in front of you.

## 0.4.0

Synced to [`flipcash2-protobuf-api@0b56e3cd`](https://github.com/code-payments/flipcash2-protobuf-api/commit/0b56e3cd9a9f380f86a09664f09695a2254d7b0a).

### Added

- `message_edit_window` and `message_delete_window` on `account.v1.UserFlags`, both
`google.protobuf.Duration`, on fields 17 and 18. Each is the window after a message is created
during which that message can still be edited or deleted.

They are message-typed, so they carry explicit presence and an unset value is not a zero duration.
Check `hasMessageEditWindow` / `hasMessageDeleteWindow` in Swift, or `hasMessageEditWindow()` in
Kotlin, before reading either one. A server that has not set them leaves them absent, and reading
the field directly would report a zero-length window rather than no configured window.

### Unchanged

Nothing existing changed. No services, RPCs, messages, or fields were removed or reshaped, no result
enum gained or reordered a case, and nothing was renumbered: `username_min_balance` keeps field 16,
and every field before it keeps its number. The upgrade from `0.3.0` is free for both languages.

## 0.3.0

No contract change. `flipcash2.lock` points at the same upstream commit as `0.2.0`, and the generated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,26 @@ public struct Flipcash_Account_V1_UserFlags: @unchecked Sendable {
set {_uniqueStorage()._usernameMinBalance = newValue}
}

/// Duration after message creation when a message can be edited
public var messageEditWindow: SwiftProtobuf.Google_Protobuf_Duration {
get {return _storage._messageEditWindow ?? SwiftProtobuf.Google_Protobuf_Duration()}
set {_uniqueStorage()._messageEditWindow = newValue}
}
/// Returns true if `messageEditWindow` has been explicitly set.
public var hasMessageEditWindow: Bool {return _storage._messageEditWindow != nil}
/// Clears the value of `messageEditWindow`. Subsequent reads from it will return its default value.
public mutating func clearMessageEditWindow() {_uniqueStorage()._messageEditWindow = nil}

/// Duration after message creation when a message can be deleted
public var messageDeleteWindow: SwiftProtobuf.Google_Protobuf_Duration {
get {return _storage._messageDeleteWindow ?? SwiftProtobuf.Google_Protobuf_Duration()}
set {_uniqueStorage()._messageDeleteWindow = newValue}
}
/// Returns true if `messageDeleteWindow` has been explicitly set.
public var hasMessageDeleteWindow: Bool {return _storage._messageDeleteWindow != nil}
/// Clears the value of `messageDeleteWindow`. Subsequent reads from it will return its default value.
public mutating func clearMessageDeleteWindow() {_uniqueStorage()._messageDeleteWindow = nil}

public var unknownFields = SwiftProtobuf.UnknownStorage()

public enum OnRampProvider: SwiftProtobuf.Enum, Swift.CaseIterable {
Expand Down Expand Up @@ -976,7 +996,7 @@ extension Flipcash_Account_V1_GetUnauthenticatedUserFlagsResponse.Result: SwiftP

extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
public static let protoMessageName: String = _protobuf_package + ".UserFlags"
public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}is_registered_account\0\u{3}is_staff\0\u{3}requires_iap_for_registration\0\u{3}supported_on_ramp_providers\0\u{3}preferred_on_ramp_provider\0\u{3}min_build_number\0\u{3}bill_exchange_data_timeout\0\u{3}new_currency_purchase_amount\0\u{3}new_currency_fee_amount\0\u{3}withdrawal_fee_amount\0\u{3}preferred_on_ramp_usdc_liquidity_pool\0\u{3}enable_phone_number_send\0\u{3}minimum_holder_value\0\u{3}require_coinbase_email_verification\0\u{3}tip_presets\0\u{3}username_min_balance\0")
public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}is_registered_account\0\u{3}is_staff\0\u{3}requires_iap_for_registration\0\u{3}supported_on_ramp_providers\0\u{3}preferred_on_ramp_provider\0\u{3}min_build_number\0\u{3}bill_exchange_data_timeout\0\u{3}new_currency_purchase_amount\0\u{3}new_currency_fee_amount\0\u{3}withdrawal_fee_amount\0\u{3}preferred_on_ramp_usdc_liquidity_pool\0\u{3}enable_phone_number_send\0\u{3}minimum_holder_value\0\u{3}require_coinbase_email_verification\0\u{3}tip_presets\0\u{3}username_min_balance\0\u{3}message_edit_window\0\u{3}message_delete_window\0")

fileprivate class _StorageClass {
var _isRegisteredAccount: Bool = false
Expand All @@ -995,6 +1015,8 @@ extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._M
var _requireCoinbaseEmailVerification: Bool = false
var _tipPresets: [Flipcash_Account_V1_TipPresets] = []
var _usernameMinBalance: UInt64 = 0
var _messageEditWindow: SwiftProtobuf.Google_Protobuf_Duration? = nil
var _messageDeleteWindow: SwiftProtobuf.Google_Protobuf_Duration? = nil

// This property is used as the initial default value for new instances of the type.
// The type itself is protecting the reference to its storage via CoW semantics.
Expand All @@ -1021,6 +1043,8 @@ extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._M
_requireCoinbaseEmailVerification = source._requireCoinbaseEmailVerification
_tipPresets = source._tipPresets
_usernameMinBalance = source._usernameMinBalance
_messageEditWindow = source._messageEditWindow
_messageDeleteWindow = source._messageDeleteWindow
}
}

Expand Down Expand Up @@ -1055,6 +1079,8 @@ extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._M
case 14: try { try decoder.decodeSingularBoolField(value: &_storage._requireCoinbaseEmailVerification) }()
case 15: try { try decoder.decodeRepeatedMessageField(value: &_storage._tipPresets) }()
case 16: try { try decoder.decodeSingularUInt64Field(value: &_storage._usernameMinBalance) }()
case 17: try { try decoder.decodeSingularMessageField(value: &_storage._messageEditWindow) }()
case 18: try { try decoder.decodeSingularMessageField(value: &_storage._messageDeleteWindow) }()
default: break
}
}
Expand Down Expand Up @@ -1115,6 +1141,12 @@ extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._M
if _storage._usernameMinBalance != 0 {
try visitor.visitSingularUInt64Field(value: _storage._usernameMinBalance, fieldNumber: 16)
}
try { if let v = _storage._messageEditWindow {
try visitor.visitSingularMessageField(value: v, fieldNumber: 17)
} }()
try { if let v = _storage._messageDeleteWindow {
try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
} }()
}
try unknownFields.traverse(visitor: &visitor)
}
Expand All @@ -1140,6 +1172,8 @@ extension Flipcash_Account_V1_UserFlags: SwiftProtobuf.Message, SwiftProtobuf._M
if _storage._requireCoinbaseEmailVerification != rhs_storage._requireCoinbaseEmailVerification {return false}
if _storage._tipPresets != rhs_storage._tipPresets {return false}
if _storage._usernameMinBalance != rhs_storage._usernameMinBalance {return false}
if _storage._messageEditWindow != rhs_storage._messageEditWindow {return false}
if _storage._messageDeleteWindow != rhs_storage._messageDeleteWindow {return false}
return true
}
if !storagesAreEqual {return false}
Expand Down
4 changes: 2 additions & 2 deletions flipcash2.lock
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pinned upstream contract. Regenerate with scripts/sync-protos.sh <sha>.
upstream: code-payments/flipcash2-protobuf-api
commit: 0300d252f35f3524e067aeef22382012c754902a
subject: Add the ability to set a minimum DM initialization fee (#88)
commit: 0b56e3cd9a9f380f86a09664f09695a2254d7b0a
subject: Add message_{edit,delete}_window to UserFlags (#89)
6 changes: 6 additions & 0 deletions proto/account/v1/flipcash_account_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,12 @@ message UserFlags {

// USDF amount, in quarks, that must be held across all currencies in order to set a username
uint64 username_min_balance = 16;

// Duration after message creation when a message can be edited
google.protobuf.Duration message_edit_window = 17;

// Duration after message creation when a message can be deleted
google.protobuf.Duration message_delete_window = 18;
}

message TipPresets {
Expand Down
Loading