Skip to content

Commit de245f7

Browse files
committed
spm: local build of beta 6
1 parent ca3b61d commit de245f7

File tree

6 files changed

+66
-40
lines changed

6 files changed

+66
-40
lines changed

BDKSwiftExampleWallet.xcodeproj/project.pbxproj

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 56;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -34,10 +34,12 @@
3434
AE2B8C1D2A9678C900815B2F /* FeeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2B8C1C2A9678C900815B2F /* FeeService.swift */; };
3535
AE2B8C1F2A96797300815B2F /* RecommendedFees.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2B8C1E2A96797300815B2F /* RecommendedFees.swift */; };
3636
AE2F255D2BED0BFB002A9AC6 /* AppError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2F255C2BED0BFB002A9AC6 /* AppError.swift */; };
37+
AE32D7622D0C9146006A8788 /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = AE32D7612D0C9146006A8788 /* BitcoinDevKit */; };
3738
AE34DDAC2B6B31ED00F04AD4 /* WalletRecoveryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE34DDAB2B6B31ED00F04AD4 /* WalletRecoveryView.swift */; };
3839
AE34DDAE2B6B320F00F04AD4 /* WalletRecoveryViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE34DDAD2B6B320F00F04AD4 /* WalletRecoveryViewModel.swift */; };
3940
AE3646262BEDB01200B04E25 /* FileManager+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE3646252BEDB01200B04E25 /* FileManager+Extensions.swift */; };
4041
AE3902A42A3B4CD900BEC318 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE3902A32A3B4CD900BEC318 /* HomeView.swift */; };
42+
AE4135652D0CC1AD00605103 /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = AE4135642D0CC1AD00605103 /* BitcoinDevKit */; };
4143
AE49847C2A1BBBD6009951E2 /* BDKSwiftExampleWalletApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE49847B2A1BBBD6009951E2 /* BDKSwiftExampleWalletApp.swift */; };
4244
AE4984802A1BBBD7009951E2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AE49847F2A1BBBD7009951E2 /* Assets.xcassets */; };
4345
AE4984832A1BBBD7009951E2 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AE4984822A1BBBD7009951E2 /* Preview Assets.xcassets */; };
@@ -74,7 +76,6 @@
7476
AEB735D32B2CC4B900F99DBB /* BitcoinUI in Frameworks */ = {isa = PBXBuildFile; productRef = AEB735D22B2CC4B900F99DBB /* BitcoinUI */; };
7577
AEB905C32A7EEBF000CD0337 /* BackupInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEB905C22A7EEBF000CD0337 /* BackupInfo.swift */; };
7678
AEC2CF5A2ABFBA19008065E4 /* BuildTransactionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEC2CF592ABFBA19008065E4 /* BuildTransactionViewModel.swift */; };
77-
AED02B912C9D0B44006DAAAF /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = AED02B902C9D0B44006DAAAF /* BitcoinDevKit */; };
7879
AED062712A9BB1D6001DC6BD /* BDKSwiftExampleWalletFeeServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED062702A9BB1D6001DC6BD /* BDKSwiftExampleWalletFeeServiceTests.swift */; };
7980
AED062732A9BD698001DC6BD /* BDKSwiftExampleWalletKeyServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED062722A9BD698001DC6BD /* BDKSwiftExampleWalletKeyServiceTests.swift */; };
8081
AED062752A9BD7FA001DC6BD /* BDKSwiftExampleWalletBDKServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED062742A9BD7FA001DC6BD /* BDKSwiftExampleWalletBDKServiceTests.swift */; };
@@ -187,7 +188,8 @@
187188
AE187D782C9BB3B50081D0C3 /* BitcoinDevKit in Frameworks */,
188189
AE29ED0F2BBE2E7100EB9C4F /* BitcoinDevKit in Frameworks */,
189190
AEAF83B62B7BD4D10019B23B /* CodeScanner in Frameworks */,
190-
AED02B912C9D0B44006DAAAF /* BitcoinDevKit in Frameworks */,
191+
AE32D7622D0C9146006A8788 /* BitcoinDevKit in Frameworks */,
192+
AE4135652D0CC1AD00605103 /* BitcoinDevKit in Frameworks */,
191193
AEB735D32B2CC4B900F99DBB /* BitcoinUI in Frameworks */,
192194
AEE83A492C07F54B00834468 /* BitcoinDevKit in Frameworks */,
193195
AE7D5A0E2A7EE62200EAC8CE /* KeychainAccess in Frameworks */,
@@ -542,7 +544,8 @@
542544
AE29ED0E2BBE2E7100EB9C4F /* BitcoinDevKit */,
543545
AEE83A482C07F54B00834468 /* BitcoinDevKit */,
544546
AE187D772C9BB3B50081D0C3 /* BitcoinDevKit */,
545-
AED02B902C9D0B44006DAAAF /* BitcoinDevKit */,
547+
AE32D7612D0C9146006A8788 /* BitcoinDevKit */,
548+
AE4135642D0CC1AD00605103 /* BitcoinDevKit */,
546549
);
547550
productName = BDKSwiftExampleWallet;
548551
productReference = AE4984782A1BBBD6009951E2 /* BDKSwiftExampleWallet.app */;
@@ -599,7 +602,7 @@
599602
AE7D5A0C2A7EE62200EAC8CE /* XCRemoteSwiftPackageReference "KeychainAccess" */,
600603
AEB735D12B2CC4B900F99DBB /* XCRemoteSwiftPackageReference "BitcoinUI" */,
601604
AEAF83B42B7BD4D10019B23B /* XCRemoteSwiftPackageReference "CodeScanner" */,
602-
AED02B8F2C9D0B44006DAAAF /* XCRemoteSwiftPackageReference "bdk-swift" */,
605+
AE4135632D0CC1AD00605103 /* XCLocalSwiftPackageReference "../bdk-ffi/bdk-swift" */,
603606
);
604607
productRefGroup = AE4984792A1BBBD6009951E2 /* Products */;
605608
projectDirPath = "";
@@ -993,6 +996,13 @@
993996
};
994997
/* End XCConfigurationList section */
995998

999+
/* Begin XCLocalSwiftPackageReference section */
1000+
AE4135632D0CC1AD00605103 /* XCLocalSwiftPackageReference "../bdk-ffi/bdk-swift" */ = {
1001+
isa = XCLocalSwiftPackageReference;
1002+
relativePath = "../bdk-ffi/bdk-swift";
1003+
};
1004+
/* End XCLocalSwiftPackageReference section */
1005+
9961006
/* Begin XCRemoteSwiftPackageReference section */
9971007
AE7D5A0C2A7EE62200EAC8CE /* XCRemoteSwiftPackageReference "KeychainAccess" */ = {
9981008
isa = XCRemoteSwiftPackageReference;
@@ -1018,14 +1028,6 @@
10181028
kind = branch;
10191029
};
10201030
};
1021-
AED02B8F2C9D0B44006DAAAF /* XCRemoteSwiftPackageReference "bdk-swift" */ = {
1022-
isa = XCRemoteSwiftPackageReference;
1023-
repositoryURL = "https://github.com/bitcoindevkit/bdk-swift.git";
1024-
requirement = {
1025-
kind = exactVersion;
1026-
version = "1.0.0-beta.5";
1027-
};
1028-
};
10291031
/* End XCRemoteSwiftPackageReference section */
10301032

10311033
/* Begin XCSwiftPackageProductDependency section */
@@ -1037,6 +1039,14 @@
10371039
isa = XCSwiftPackageProductDependency;
10381040
productName = BitcoinDevKit;
10391041
};
1042+
AE32D7612D0C9146006A8788 /* BitcoinDevKit */ = {
1043+
isa = XCSwiftPackageProductDependency;
1044+
productName = BitcoinDevKit;
1045+
};
1046+
AE4135642D0CC1AD00605103 /* BitcoinDevKit */ = {
1047+
isa = XCSwiftPackageProductDependency;
1048+
productName = BitcoinDevKit;
1049+
};
10401050
AE7D5A0D2A7EE62200EAC8CE /* KeychainAccess */ = {
10411051
isa = XCSwiftPackageProductDependency;
10421052
package = AE7D5A0C2A7EE62200EAC8CE /* XCRemoteSwiftPackageReference "KeychainAccess" */;
@@ -1052,11 +1062,6 @@
10521062
package = AEB735D12B2CC4B900F99DBB /* XCRemoteSwiftPackageReference "BitcoinUI" */;
10531063
productName = BitcoinUI;
10541064
};
1055-
AED02B902C9D0B44006DAAAF /* BitcoinDevKit */ = {
1056-
isa = XCSwiftPackageProductDependency;
1057-
package = AED02B8F2C9D0B44006DAAAF /* XCRemoteSwiftPackageReference "bdk-swift" */;
1058-
productName = BitcoinDevKit;
1059-
};
10601065
AEE83A482C07F54B00834468 /* BitcoinDevKit */ = {
10611066
isa = XCSwiftPackageProductDependency;
10621067
productName = BitcoinDevKit;

BDKSwiftExampleWallet/Extensions/BDK+Extensions/CanonicalTx+Extensions.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ extension CanonicalTx {
1919
hash: "hash"
2020
),
2121
confirmationTime: UInt64(21)
22-
)
22+
),
23+
transitively: "c1f9fe0d7f97c6490f8360cf71bbef151f2e73302bd06f1690d640b96fb94457"
2324
)
2425
)
2526
}

BDKSwiftExampleWallet/Extensions/BDK+Extensions/ChainPosition+Extensions.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,16 @@ extension ChainPosition {
1919
return false
2020
case (.unconfirmed(let timestamp1), .unconfirmed(let timestamp2)):
2121
// If both are unconfirmed, compare by timestamp (optional).
22-
return timestamp1 < timestamp2
23-
case (.confirmed(let blockTime1), .confirmed(let blockTime2)):
24-
// If both are confirmed, compare by block height descending.
25-
return blockTime1.blockId.height > blockTime2.blockId.height
22+
return (timestamp1 ?? 0) < (timestamp2 ?? 0)
23+
case (
24+
.confirmed(let blockTime1, let transitively1),
25+
.confirmed(let blockTime2, let transitively2)
26+
):
27+
// Sort by height descending, but note that if transitively is Some,
28+
// this block height might not be the "original" confirmation block
29+
return blockTime1.blockId.height != blockTime2.blockId.height
30+
? blockTime1.blockId.height > blockTime2.blockId.height
31+
: (transitively1 != nil) && (transitively2 == nil)
2632
}
2733
}
2834
}

BDKSwiftExampleWallet/Resources/Localizable.xcstrings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,9 @@
532532
}
533533
}
534534
}
535+
},
536+
"Pending" : {
537+
535538
},
536539
"Please make sure to write it down and store it securely." : {
537540

BDKSwiftExampleWallet/View/Activity/TransactionDetailView.swift

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct TransactionDetailView: View {
5050
.fontWeight(.semibold)
5151

5252
switch canonicalTx.chainPosition {
53-
case .confirmed(let confirmationBlockTime):
53+
case .confirmed(let confirmationBlockTime, _):
5454
Text("Block \(confirmationBlockTime.blockId.height.delimiter)")
5555
.foregroundStyle(.secondary)
5656
case .unconfirmed(_):
@@ -76,20 +76,24 @@ struct TransactionDetailView: View {
7676
.fontDesign(.rounded)
7777
VStack(spacing: 4) {
7878
switch canonicalTx.chainPosition {
79-
case .confirmed(let confirmationBlockTime):
79+
case .confirmed(let confirmationBlockTime, _):
8080
Text(
8181
confirmationBlockTime.confirmationTime.toDate().formatted(
8282
date: .abbreviated,
8383
time: Date.FormatStyle.TimeStyle.shortened
8484
)
8585
)
8686
case .unconfirmed(let timestamp):
87-
Text(
88-
timestamp.toDate().formatted(
89-
date: .abbreviated,
90-
time: Date.FormatStyle.TimeStyle.shortened
87+
if let timestamp {
88+
Text(
89+
timestamp.toDate().formatted(
90+
date: .abbreviated,
91+
time: Date.FormatStyle.TimeStyle.shortened
92+
)
9193
)
92-
)
94+
} else {
95+
Text("Pending")
96+
}
9397
}
9498
if let fee = viewModel.calculateFee {
9599
Text("\(fee.formattedWithSeparator) sats fee")

BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct TransactionItemView: View {
4444
.foregroundStyle(
4545
{
4646
switch canonicalTx.chainPosition {
47-
case .confirmed(_):
47+
case .confirmed(_, _):
4848
Color.bitcoinOrange
4949
case .unconfirmed(_):
5050
Color.gray.opacity(0.5)
@@ -63,7 +63,7 @@ struct TransactionItemView: View {
6363
.font(.title)
6464
.foregroundStyle(.primary)
6565
switch canonicalTx.chainPosition {
66-
case .confirmed(let confirmationBlockTime):
66+
case .confirmed(let confirmationBlockTime, _):
6767
Text(
6868
confirmationBlockTime.confirmationTime.toDate().formatted(
6969
date: .abbreviated,
@@ -74,15 +74,22 @@ struct TransactionItemView: View {
7474
.font(.caption2)
7575
.fontWidth(.condensed)
7676
case .unconfirmed(let timestamp):
77-
Text(
78-
timestamp.toDate().formatted(
79-
date: .abbreviated,
80-
time: .shortened
77+
if let timestamp {
78+
Text(
79+
timestamp.toDate().formatted(
80+
date: .abbreviated,
81+
time: .shortened
82+
)
8183
)
82-
)
83-
.lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1)
84-
.font(.caption2)
85-
.fontWidth(.condensed)
84+
.lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1)
85+
.font(.caption2)
86+
.fontWidth(.condensed)
87+
} else {
88+
Text("Pending")
89+
.lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1)
90+
.font(.caption2)
91+
.fontWidth(.condensed)
92+
}
8693
}
8794
}
8895
.foregroundStyle(.secondary)

0 commit comments

Comments
 (0)