Skip to content

Commit b83080b

Browse files
committed
feat: added extension for Bip177 and tests
1 parent dc057ad commit b83080b

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

BDKSwiftExampleWallet/Extensions/Int+Extensions.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,22 @@ extension UInt64 {
5858
return formattedBalance
5959
}
6060
}
61+
62+
func formattedBip177() -> String {
63+
if self >= 1_000_000 && self % 1_000_000 == .zero {
64+
return "\(self / 1_000_000)M"
65+
} else if self % 1_000 == 0 {
66+
return "\(self / 1_000)K"
67+
}
68+
69+
let numberFormatter = NumberFormatter()
70+
numberFormatter.numberStyle = .decimal
71+
numberFormatter.usesGroupingSeparator = true
72+
numberFormatter.groupingSeparator = ","
73+
numberFormatter.generatesDecimalNumbers = false
74+
75+
return numberFormatter.string(from: NSNumber(value: self)) ?? "0"
76+
}
6177
}
6278

6379
extension Int {

BDKSwiftExampleWalletTests/Extensions/BDKSwiftExampleWalletInt+Extensions.swift

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,49 @@ final class BDKSwiftExampleWalletInt_Extensions: XCTestCase {
3131
XCTAssertEqual(tenBTC, "10.00 000 001")
3232
}
3333

34+
func testBip177() {
35+
let oneHundred = UInt64(100).formattedBip177()
36+
print(oneHundred)
37+
XCTAssertEqual(oneHundred, "100")
38+
39+
let oneThousand = UInt64(1000).formattedBip177()
40+
print(oneThousand)
41+
XCTAssertEqual(oneThousand, "1K")
42+
43+
let oneThousandOne = UInt64(1001).formattedBip177()
44+
print(oneThousandOne)
45+
XCTAssertEqual(oneThousandOne, "1,001")
46+
47+
let tenThousand = UInt64(10000).formattedBip177()
48+
print(tenThousand)
49+
XCTAssertEqual(tenThousand, "10K")
50+
51+
let tenThousandOne = UInt64(10001).formattedBip177()
52+
print(tenThousandOne)
53+
XCTAssertEqual(tenThousandOne, "10,001")
54+
55+
let oneHundredThousand = UInt64(100000).formattedBip177()
56+
print(oneHundredThousand)
57+
XCTAssertEqual(oneHundredThousand, "100K")
58+
59+
let oneHundredThousandOne = UInt64(100001).formattedBip177()
60+
print(oneHundredThousandOne)
61+
XCTAssertEqual(oneHundredThousandOne, "100,001")
62+
63+
let oneMillion = UInt64(1000000).formattedBip177()
64+
print(oneMillion)
65+
XCTAssertEqual(oneMillion, "1M")
66+
67+
let oneMillionOne = UInt64(1000001).formattedBip177()
68+
print(oneMillionOne)
69+
XCTAssertEqual(oneMillionOne, "1,000,001")
70+
71+
let treeMillions = UInt64(325_000_000).formattedBip177()
72+
print(treeMillions)
73+
XCTAssertEqual(treeMillions, "325M")
74+
75+
let treeMillionsOne = UInt64(325_000_001).formattedBip177()
76+
print(treeMillionsOne)
77+
XCTAssertEqual(treeMillionsOne, "325,000,001")
78+
}
3479
}

0 commit comments

Comments
 (0)