From b1c05310e980bdfb6376ad82c7485882d5140fee Mon Sep 17 00:00:00 2001 From: kugel3 Date: Fri, 1 Mar 2024 13:01:16 +0100 Subject: [PATCH] wip --- .../TransactionHistoryClient+Live.swift | 4 ++-- .../ResourceBalance/ResourceBalance.swift | 17 ++++++------- .../ResourceBalance/ResourceBalanceView.swift | 2 +- .../TransactionReviewAccount+View.swift | 24 ++++++++++++++++++- 4 files changed, 35 insertions(+), 12 deletions(-) diff --git a/RadixWallet/Clients/TransactionHistoryClient/TransactionHistoryClient+Live.swift b/RadixWallet/Clients/TransactionHistoryClient/TransactionHistoryClient+Live.swift index 6415a9bc09..523c8253af 100644 --- a/RadixWallet/Clients/TransactionHistoryClient/TransactionHistoryClient+Live.swift +++ b/RadixWallet/Clients/TransactionHistoryClient/TransactionHistoryClient+Live.swift @@ -10,9 +10,9 @@ extension TransactionHistoryClient { @Sendable func getTransactionHistory(account: AccountAddress, period: Range, cursor: String?) async throws -> TransactionHistoryResponse { // FIXME: GK REMOVE THIS -// let account = try AccountAddress(validatingAddress: "account_rdx128z7rwu87lckvjd43rnw0jh3uczefahtmfuu5y9syqrwsjpxz8hz3l") + let account = try AccountAddress(validatingAddress: "account_rdx128z7rwu87lckvjd43rnw0jh3uczefahtmfuu5y9syqrwsjpxz8hz3l") - let account = try AccountAddress(validatingAddress: "account_rdx16x9gfj2dt82e3qvp0j775fnc06clllvf9gj86us497hyxrye656530") +// let account = try AccountAddress(validatingAddress: "account_rdx16x9gfj2dt82e3qvp0j775fnc06clllvf9gj86us497hyxrye656530") let request = GatewayAPI.StreamTransactionsRequest( atLedgerState: .init(timestamp: period.upperBound), diff --git a/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalance.swift b/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalance.swift index 88cf062742..9f46c423eb 100644 --- a/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalance.swift +++ b/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalance.swift @@ -103,19 +103,19 @@ public struct ResourceBalance: Sendable, Hashable, Identifiable { } } -extension ResourceBalance.ViewState { - init(transfer: ResourceBalance) { - switch transfer.details { +extension ResourceBalance { + var viewState: ViewState { + switch details { case let .fungible(details): - self = .fungible(.init(resource: transfer.resource, details: details)) + .fungible(.init(resource: resource, details: details)) case let .nonFungible(details): - self = .nonFungible(.init(resource: transfer.resource, details: details)) + .nonFungible(.init(resource: resource, details: details)) case let .liquidStakeUnit(details): - self = .lsu(.init(resource: transfer.resource, details: details)) + .lsu(.init(resource: resource, details: details)) case let .poolUnit(details): - self = .poolUnit(.init(resource: transfer.resource, details: details)) + .poolUnit(.init(resource: resource, details: details)) case let .stakeClaimNFT(details): - self = .stakeClaimNFT(details) + .stakeClaimNFT(details) } } } @@ -165,6 +165,7 @@ private extension ResourceBalance.ViewState.PoolUnit { amount: .init(details.details.poolUnitResource.amount, guaranteed: details.guarantee?.amount), dAppName: .success(details.details.dAppName), resources: .success(.init(resources: details.details)) +// resources: .success() ) } } diff --git a/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalanceView.swift b/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalanceView.swift index dbe20d07bb..52220e17b6 100644 --- a/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalanceView.swift +++ b/RadixWallet/Features/AssetsFeature/Components/HelperViews/ResourceBalance/ResourceBalanceView.swift @@ -87,7 +87,7 @@ public struct ResourceBalanceView: View { case let .poolUnit(viewState): PoolUnit(viewState: viewState, isSelected: isSelected) case let .stakeClaimNFT(viewState): - fatalError() // FIXME: GK + StakeClaimNFT(viewState: viewState, background: .blue.opacity(0.2), onTap: { _ in }) } if !delegateSelection, let isSelected { diff --git a/RadixWallet/Features/TransactionReviewFeature/TransactionReviewAccount/TransactionReviewAccount+View.swift b/RadixWallet/Features/TransactionReviewFeature/TransactionReviewAccount/TransactionReviewAccount+View.swift index 5af1271e82..f17f43499e 100644 --- a/RadixWallet/Features/TransactionReviewFeature/TransactionReviewAccount/TransactionReviewAccount+View.swift +++ b/RadixWallet/Features/TransactionReviewFeature/TransactionReviewAccount/TransactionReviewAccount+View.swift @@ -99,7 +99,7 @@ struct TransactionReviewResourceView: View { var body: some View { switch transfer.details { case .fungible, .nonFungible, .liquidStakeUnit, .poolUnit: - ResourceBalanceButton(.init(transfer: transfer), appearance: .transactionReview) { + ResourceBalanceButton(transfer.viewState, appearance: .transactionReview) { onTap(nil) } case let .stakeClaimNFT(details): @@ -133,6 +133,28 @@ extension ResourceBalance.ViewState.Fungible { // FIXME: GK use full } } +extension [ResourceBalance.Fungible] { + init(resources: OnLedgerEntitiesClient.OwnedResourcePoolDetails) { + let xrdResource = resources.xrdResource.map { + Element(resourceWithRedemptionValue: $0, isXRD: true) + } + let nonXrdResources = resources.nonXrdResources.map { + Element(resourceWithRedemptionValue: $0, isXRD: false) + } + self = (xrdResource.map { [$0] } ?? []) + nonXrdResources + } +} + +extension ResourceBalance.Fungible { + init(resourceWithRedemptionValue resource: OnLedgerEntitiesClient.OwnedResourcePoolDetails.ResourceWithRedemptionValue, isXRD: Bool) { + self.init( + isXRD: isXRD, + amount: resource.redemptionValue ?? { fatalError() }(), + guarantee: nil + ) + } +} + extension SmallAccountCard where Accessory == EmptyView { public init(account: TransactionReview.Account) { switch account {