Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀[Release v3.12.1-2400214] Merge into Develop #232

Merged
merged 76 commits into from
Feb 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
2b57e2a
Develop (#111)
kcw-grunt Aug 22, 2020
f3b386d
[Merge to Master] Develop with tech debt improvements (#123)
kcw-grunt Oct 14, 2020
45bd44d
Release/v2.8.0 (#131)
kcw-grunt Oct 30, 2020
ef9e6e9
[Release v2.8.2] Merge into Master (#153)
kcw-grunt Nov 21, 2020
6883f6b
[Release v2.8.3] Merge into Master (#167)
kcw-grunt Dec 5, 2020
b90e231
[Merge v2.9.0] into Master (#170)
kcw-grunt Dec 21, 2020
a030aab
[Merge v3.0.0] into Master (#183)
kcw-grunt Jan 10, 2021
c47a810
[HOTFIX] Hide Card Tab (#191)
kcw-grunt Jan 11, 2021
6a70cc0
[Merge into Master] v3.1.1 (#194)
kcw-grunt Jan 15, 2021
ceae007
[Release v3.2.0] Merge into Main (#216)
kcw-grunt Jan 27, 2021
692cebe
[Release v3.3.0] Merge into Main (#236)
kcw-grunt Mar 11, 2021
0db91de
🚀[Release v3.4.0] Merge into Main (#263)
kcw-grunt Apr 18, 2021
43f30a8
Create GitHub Action: push-to-release-email (#56)
kcw-grunt Jun 6, 2021
6b3c6c4
🚀[Release v3.5.0] Merge into Main (#55)
kcw-grunt Jun 8, 2021
5da45ce
🔥🛠[Hotfix] Buy tab crashes (#64)
kcw-grunt Jun 12, 2021
864bc49
🚀[Release v3.6.0] Merge into Main (#91)
kcw-grunt Sep 25, 2021
1eecd9c
🦺[Tech Debt] Update to match the v3.6.0 Binary (#93)
kcw-grunt Sep 25, 2021
7c1cde6
Revert "🦺[Tech Debt] Update to match the v3.6.0 Binary (#93)"
kcw-grunt Sep 25, 2021
fe76680
🦺[Tech Debt] Update to match the v3.6.0 Binary part deux (#94)
kcw-grunt Sep 25, 2021
3006eb2
🚀[Release v3.6.1] Merge into Main (#98)
kcw-grunt Oct 11, 2021
29f3135
🚀[Release v3.7.1] Merge into Main (#112)
kcw-grunt Apr 10, 2022
c8139ff
Add files via upload
kcw-grunt Apr 15, 2022
de2933b
Update README.md
kcw-grunt Apr 15, 2022
ade526f
🚀[Release v3.9.0] Merge into Main (#123)
kcw-grunt Sep 18, 2022
de424b4
Release/v3.9.0 (#128)
kcw-grunt Oct 16, 2022
7432e9b
🚀[Release v3.10.0] Merge into Main (#136)
kcw-grunt Oct 28, 2022
c0eec99
Create FUNDING.yml
kcw-grunt Nov 20, 2022
deebdbe
🚀[Release v3.10.1] Merge into Main (#160)
kcw-grunt Nov 27, 2022
ac218dd
🚀[Release v3.11.0] Merge into Main (#187)
kcw-grunt Jan 26, 2023
f0d12e7
bump build to date based number
kcw-grunt Nov 5, 2023
7acee86
Removed Ternio Card code
kcw-grunt Nov 16, 2023
f442129
Polished the version tag in the lock screen
kcw-grunt Nov 16, 2023
2d76e65
Build bump
kcw-grunt Nov 16, 2023
f16e38d
Removed TabBarVC
kcw-grunt Nov 16, 2023
d07b567
Updated the Infura and partner IPFS access
kcw-grunt Nov 16, 2023
2e61be2
Added commit to partner keys
kcw-grunt Nov 17, 2023
18ff96f
🚀[Release v3.11.1] Merge into Main (#212)
kcw-grunt Nov 24, 2023
93682fa
Release/v3.9.0 (#128)
kcw-grunt Oct 16, 2022
a6e1c0c
🦺[Techdebt] fix firebase (#115)
kcw-grunt Oct 28, 2022
36d0a9d
🥳[Techdebt] relayout address view controller (#120)
kcw-grunt Aug 29, 2022
1939674
buiid bump (#125)
kcw-grunt Oct 28, 2022
c019b89
reemvoed conflict tags
kcw-grunt Nov 6, 2022
05ee2c7
🚀[Release v3.10.1] Merge into Develop (#162)
kcw-grunt Nov 28, 2022
72ab318
Add SwiftFormat to the codebase (#159)
Iferencak Dec 5, 2022
775d5c3
🤬[Techdebt] #167 add custom user agent++ (#168)
kcw-grunt Dec 14, 2022
6f18ee6
bump to match current prod build number
kcw-grunt Jan 26, 2023
a78ef40
nit…format (#203)
kcw-grunt Mar 16, 2023
51f06d6
Update the loafwallet-core submodule
kcw-grunt Apr 9, 2023
36e4b1a
#207 resolve core update issue missing labels (#211)
kcw-grunt Nov 4, 2023
fb7bc8f
🚀[Release v3.11.1] Merge into Develop (#214)
kcw-grunt Nov 24, 2023
cb69ee5
Removed all ArticleIds (#216)
kcw-grunt Dec 1, 2023
d43a615
updated the gitignore
kcw-grunt Jan 4, 2024
2f8a2c1
😍[Feature] Exploration/update create restore wallet (#219)
kcw-grunt Jan 18, 2024
7817e43
updated filesystem
kcw-grunt Jan 19, 2024
f28c55f
🚀[Release v3.12.0] Merge into Main (#222)
kcw-grunt Jan 21, 2024
979e11b
temp commit
kcw-grunt Feb 4, 2024
9cda1b9
renamed project
kcw-grunt Feb 10, 2024
0609aa8
rename loafwalletTests to litewalletTests
kcw-grunt Feb 10, 2024
f6723b5
renamed in to Litewallet TabView
kcw-grunt Feb 10, 2024
5b30fba
Merge branch 'release/v3.11.1' into release/v3.12.1
kcw-grunt Feb 10, 2024
2518e06
updated gitignore
kcw-grunt Feb 10, 2024
44f8a40
added new strings
kcw-grunt Feb 10, 2024
5d517f7
WIP
kcw-grunt Feb 10, 2024
2784115
WIP tryingt p make it compile
kcw-grunt Feb 10, 2024
06b5598
Merge branch 'release/v3.12.0' into release/v3.12.1
kcw-grunt Feb 11, 2024
36508a8
updated gitignore
kcw-grunt Feb 11, 2024
7746049
updated the string fee
kcw-grunt Feb 11, 2024
eac5d79
refactored the scheme and sounds
kcw-grunt Feb 11, 2024
f642cbb
moved file locations
kcw-grunt Feb 11, 2024
e8f5cbe
set for litecoin label rather than Bitcoin
kcw-grunt Feb 11, 2024
316108d
🪲[Techdebt] polish layout fees (#229)
kcw-grunt Feb 14, 2024
38117c1
⚙️[Tech Debt] Refactored strings old code (#230)
kcw-grunt Feb 15, 2024
2a68e62
Merge remote-tracking branch 'origin/develop' into release/v3.12.1-24…
kcw-grunt Feb 15, 2024
8e8481b
Resolve conflicts
kcw-grunt Feb 15, 2024
f8a50c3
Merge branch 'main' into release/v3.12.1-2400214
kcw-grunt Feb 16, 2024
9c6ea5c
resolved conflicts
kcw-grunt Feb 17, 2024
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
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
## Litewallet related

litewallet/partner-keys.plist
litewallet/GoogleService-Info.plist

Expand Down
2 changes: 1 addition & 1 deletion litewallet/Assets.xcassets/TabBar/Contents.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
"version" : 1,
"author" : "xcode"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "LW_RecieveV2.png",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is idiom?

"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 0 additions & 6 deletions litewallet/BRAPIClient+Features.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,4 @@ extension BRAPIClient {
}
}.resume()
}

static func featureEnabled(_ flag: BRFeatureFlags) -> Bool {
if E.isDebug || E.isTestFlight { return true }
let defaults = UserDefaults.standard
return defaults.bool(forKey: BRAPIClient.defaultsKeyForFeatureFlag(flag.description))
}
}
3 changes: 0 additions & 3 deletions litewallet/BRCore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ import Foundation
typealias BRTxRef = UnsafeMutablePointer<BRTransaction>
typealias BRBlockRef = UnsafeMutablePointer<BRMerkleBlock>

// Used for convert byte array to LTC Address
let characterLengthConstant = 75

/// BRPeerManagerError: Error
enum BRPeerManagerError: Error {
case posixError(errorCode: Int32, description: String)
Expand Down
18 changes: 3 additions & 15 deletions litewallet/Constants/Constants+Events.swift
Original file line number Diff line number Diff line change
Expand Up @@ -206,21 +206,6 @@ enum CustomEvent: String {
/// User tapped balance
case _20200207_DTHB = "did_tap_header_balance"

/// Ternio API Wallet details failure
case _20210405_TAWDF = "ternio_api_wallet_details_failure"

/// Ternio API Authenticate Enable 2FA change
case _20210804_TAA2FAC = "ternio_API_auth_2FA_change"

/// Ternio API Wallet details success
case _20210804_TAWDS = "ternio_API_wallet_details_success"

/// Ternio API Login
case _20210804_TAULI = "ternio_API_user_log_in"

/// Ternio API Logout
case _20210804_TAULO = "ternio_API_user_log_out"

/// Heartbeat check If event even happens
case _20210427_HCIEEH = "heartbeat_check_if_event_even_happens"

Expand All @@ -235,4 +220,7 @@ enum CustomEvent: String {

/// User signup
case _20240101_US = "user_signup"

/// Transactions info
case _20240214_TI = "transactions_info"
}
24 changes: 8 additions & 16 deletions litewallet/Constants/Functions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,16 @@ func strongify<Context: AnyObject, Arguments>(_ context: Context?, closure: @esc
}
}

/// Description: 1701029422
/// Description: 1707828867
func tieredOpsFee(amount: UInt64) -> UInt64 {
switch amount {
case 0 ..< 1_398_000:
return 69900
case 1_398_000 ..< 6_991_000:
return 111_910
case 6_991_000 ..< 27_965_000:
return 279_700
case 27_965_000 ..< 139_820_000:
return 699_540
case 139_820_000 ..< 279_653_600:
return 1_049_300
case 279_653_600 ..< 699_220_000:
return 1_398_800
case 699_220_000 ..< 1_398_440_000:
return 2_797_600
case 0 ..< 250_000_000:
return 350_000
case 250_000_000 ..< 1_000_000_000:
return 1_500_000
case _ where amount > 1_000_000_000:
return 3_500_000
default:
return 2_797_600
return 3_500_000
}
}
9 changes: 3 additions & 6 deletions litewallet/Constants/Strings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ enum S {
}
}

enum Conjuction {
static let asOf = Localization(key: "Conjunction.asOf", value: "as of", comment: "as of a time or date")
}

// MARK: - Generic Button labels

enum Button {
Expand Down Expand Up @@ -115,7 +111,8 @@ enum S {
static let cameraUnavailableTitle = Localization(key: "Send.cameraUnavailableTitle", value: "Litewallet is not allowed to access the camera", comment: "Camera not allowed alert title")
static let cameraUnavailableMessage = Localization(key: "Send.cameraunavailableMessage", value: "Go to Settings to allow camera access.", comment: "Camera not allowed message")
static let balance = Localization(key: "Send.balance", value: "Balance: %1$@", comment: "Balance: $4.00")
static let fee = Localization(key: "Send.fees", value: "Fees: %1$@", comment: "Fees: $0.10")
static let networkFee = Localization(key: "Send.networkFee", value: "Network", comment: "Network")
static let serviceFee = Localization(key: "Send.serviceFee", value: "Service", comment: "Service")
static let feeBlank = Localization(key: "Send.feeBlank", value: "Fees:", comment: "Fees: ")
static let bareFee = Localization(key: "Send.fee", value: "Fee: %1$@", comment: "Fee: $0.01")
static let containsAddress = Localization(key: "Send.containsAddress", value: "The destination is your own address. You cannot send to yourself.", comment: "Warning when sending to self.")
Expand Down Expand Up @@ -207,7 +204,7 @@ enum S {
static let complete = Localization(key: "Transaction.complete", value: "Complete", comment: "Transaction complete label")
static let waiting = Localization(key: "Transaction.waiting", value: "Waiting to be confirmed. Some merchants require confirmation to complete a transaction. Estimated time: 1-2 hours.", comment: "Waiting to be confirmed string")
static let starting = Localization(key: "Transaction.starting", value: "Starting balance: %1$@", comment: "eg. Starting balance: $50.00")
static let fee = Localization(key: "Transaction.fee", value: "(%1$@ fee)", comment: "(b600 fee)")
static let fee = Localization(key: "Transaction.fee", value: "(%1$@ total fees)", comment: "(b600 fee)")
static let ending = Localization(key: "Transaction.ending", value: "Ending balance: %1$@", comment: "eg. Ending balance: $50.00")
static let exchangeOnDaySent = Localization(key: "Transaction.exchangeOnDaySent", value: "Exchange rate when sent:", comment: "Exchange rate on date header")
static let exchangeOnDayReceived = Localization(key: "Transaction.exchangeOnDayReceived", value: "Exchange rate when received:", comment: "Exchange rate on date header")
Expand Down
12 changes: 0 additions & 12 deletions litewallet/Environment.swift
Original file line number Diff line number Diff line change
Expand Up @@ -137,18 +137,6 @@ struct E {
return (UIScreen.main.bounds.size.height == 812.0)
}

static var isIPhone8Plus: Bool {
return (UIScreen.main.bounds.size.height == 736.0)
}

static var isIPhoneXsMax: Bool {
return (UIScreen.main.bounds.size.height == 812.0)
}

static var isIPad: Bool {
return (UIDevice.current.userInterfaceIdiom == .pad)
}

static let is32Bit: Bool = {
MemoryLayout<Int>.size == MemoryLayout<UInt32>.size
}()
Expand Down
3 changes: 0 additions & 3 deletions litewallet/Extensions/SafariServices+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,10 @@ struct WebView: UIViewRepresentable {
}

func updateUIView(_ webview: WKWebView, context _: Context) {
print("::: webview \(webview.frame.size)")

webview.endEditing(true)

if scrollToSignup {
let point = CGPoint(x: 0, y: webview.scrollView.contentSize.height - webview.frame.size.height / 2)
print("::: point \(point)")

webview.scrollView.setContentOffset(point, animated: true)
DispatchQueue.main.async {
Expand Down
5 changes: 0 additions & 5 deletions litewallet/Platform/BRAPIClient.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@ let BRAPIClientErrorDomain = "BRApiClientErrorDomain"
}
}

public enum BRAPIClientError: Error {
case malformedDataError
case unknownError
}

public typealias URLSessionTaskHandler = (Data?, HTTPURLResponse?, NSError?) -> Void
public typealias URLSessionChallengeHandler = (URLSession.AuthChallengeDisposition, URLCredential?) -> Void

Expand Down
8 changes: 1 addition & 7 deletions litewallet/Platform/BRWebViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,14 @@ import WebKit
var wkProcessPool: WKProcessPool
var webView: WKWebView?
var server = BRHTTPServer()
var debugEndpoint: String?
var mountPoint: String
var walletManager: WalletManager
let store: Store
let noAuthApiClient: BRAPIClient?
let partner: String?
let activityIndicator: UIActivityIndicatorView
var didLoad = false
var didAppear = false
var didLoadTimeout = 2500
var waitTimeout = 90
// we are also a socket server which sends didview/didload events to the listening client(s)
var didAppear = false // we are also a socket server which sends didview/didload events to the listening client(s)
var sockets = [String: BRWebSocket]()

// this is the data that occasionally gets sent to the above connected sockets
Expand All @@ -34,8 +30,6 @@ import WebKit
return URL(string: "http://127.0.0.1:\(server.port)\(mountPoint)")!
}

private let messageUIPresenter = MessageUIPresenter()

init(partner: String?, mountPoint: String = "/", walletManager: WalletManager, store: Store, noAuthApiClient: BRAPIClient? = nil)
{
wkProcessPool = WKProcessPool()
Expand Down
23 changes: 13 additions & 10 deletions litewallet/StartView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,17 @@ struct StartView: View {
.alertMessage[startViewModel.currentLanguage.rawValue],
isPresented: $delayedSelect) {
HStack {
Button(S.Button.yes.localize(), role: .cancel) {
startViewModel.setLanguage(code: startViewModel.currentLanguage.code)
selectedLang = false
}
Button(S.Button.cancel.localize(), role: .destructive) {
// Dismisses
selectedLang = false
}
Button(startViewModel
.yesLabel[startViewModel.currentLanguage.rawValue], role: .cancel) {
// Changes and Dismisses
startViewModel.setLanguage(code: startViewModel.currentLanguage.code)
selectedLang = false
}
Button(startViewModel
.cancelLabel[startViewModel.currentLanguage.rawValue], role: .destructive) {
// Dismisses
selectedLang = false
}
}
}
Spacer()
Expand All @@ -137,7 +140,7 @@ struct StartView: View {
language: startViewModel.currentLanguage,
didTapContinue: $didContinue)
.environmentObject(startViewModel)
.navigationBarBackButtonHidden(true)
.navigationBarBackButtonHidden(false)
) {
ZStack {
RoundedRectangle(cornerRadius: bigButtonCornerRadius)
Expand All @@ -163,7 +166,7 @@ struct StartView: View {
language: startViewModel.currentLanguage,
didTapContinue: $didContinue)
.environmentObject(startViewModel)
.navigationBarBackButtonHidden(true)
.navigationBarBackButtonHidden(false)
) {
ZStack {
RoundedRectangle(cornerRadius: bigButtonCornerRadius)
Expand Down
37 changes: 36 additions & 1 deletion litewallet/StartViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class StartViewModel: ObservableObject {
// MARK: - Lengthy elements

/// Set these to the bottom to make the others more readable

/// These are semi-hardcoded because the state is in flux
let taglines: [String] = [
"The most secure and easiest way to use Litecoin.",
"使用莱特币最安全、最简单的方式。",
Expand Down Expand Up @@ -168,6 +168,41 @@ class StartViewModel: ObservableObject {
"Dili Türkçe olarak değiştirmek istediğinizden emin misiniz?",
"Ви впевнені, що хочете змінити мову на українську?",
]

let yesLabel: [String] = [
"Yes",
"是的",
"是的",
"Oui",
"Ja",
"Ya",
"SÌ",
"はい",
"예",
"Sim",
"Да",
"Sí",
"Evet",
"Так",
]

let cancelLabel: [String] = [
"Cancel",
"取消",
"取消",
"Annuler",
"Stornieren",
"Membatalkan",
"Annulla",
"キャンセル",
"취소",
"Cancelar",
"Отмена",
"Cancelar",
"İptal etmek",
"Скасувати",
]

func stringToCurrentLanguage(languageString: String) -> LanguageSelection {
switch languageString {
case "English":
Expand Down
42 changes: 24 additions & 18 deletions litewallet/Strings/Base.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -460,21 +460,6 @@
/* Upgrade PIN prompt title. */
"Prompts.SetPin.title" = "Set PIN";

/* Push notifications settings view body */
"Notifications.body" = "Turn on notifications to receive special messages from Litewallet in the future.";

/* Push notifications toggle switch label */
"Notifications.label" = "Push Notifications";

/* Push notifications are off label */
"Notifications.off" = "Off";

/* Push notifications are on label */
"Notifications.on" = "On";

/* Push notifications settings view title label */
"Notifications.title" = "Notifications";

/* Address copied message. */
"Receive.copied" = "Copied to clipboard.";

Expand Down Expand Up @@ -1075,9 +1060,6 @@
/* 1 of 3 */
"WritePaperPhrase.step" = "%1$d of %2$d";

/* as of a time or date */
"Conjunction.asOf" = "as of";

/* No comment provided by engineer. */
"Copy" = "Copy";

Expand Down Expand Up @@ -1470,3 +1452,27 @@

/* Fees Blank: */
"Send.feeBlank" = "Fees:";

/* Network */
"Send.networkFee" = "Network";

/* Service */
"Send.serviceFee" = "Service";

/* Signup cancel */
"Notifications.signupCancel" = "No, thanks";

/* "Email title" */
"Notifications.emailTitle" = "Don't a miss a thing!";

/* "Pitch to get user to sign up" */
"Notifications.pitchMessage" = "Sign up to hear about updates & contests.";

/* "Email address label" */
"Notifications.emailLabel" = "Email address";

/* "Email address placeholder" */
"Notifications.emailPlaceholder" = "Enter here";

/* "Language preference label" */
"Notifications.languagePreference" = "Preferred language:";
Loading