diff --git a/apps/browser-extension-wallet/src/lib/translations/en.json b/apps/browser-extension-wallet/src/lib/translations/en.json index a7c4bf2e62..32286c5987 100644 --- a/apps/browser-extension-wallet/src/lib/translations/en.json +++ b/apps/browser-extension-wallet/src/lib/translations/en.json @@ -24,18 +24,26 @@ "outgoing": "Sent", "sending": "Sending", "self": "Self Transaction", + "vote": "Vote Signing", + "HardForkInitiationAction": "Hard Fork Initiation Action", + "NewConstitution": "New Constitution Action", + "NoConfidence": "No Confidence Action", + "ParameterChangeAction": "Parameter Change Action", + "TreasuryWithdrawalsAction": "Treasury Withdrawals Action", + "UpdateCommittee": "Update Committee Action", + "InfoAction": "Info Action", + "UpdateDelegateRepresentativeCertificate": "Update DRep", + "StakeVoteDelegationCertificate": "Stake Vote Delegation Certificate", + "StakeRegistrationDelegationCertificate": "Stake Registration Delegation Certificate", + "VoteRegistrationDelegationCertificate": "Vote Registration Delegation Certificate", + "StakeVoteRegistrationDelegationCertificate": "Stake Vote Registration Delegation Certificate", + "ResignCommitteeColdCertificate": "Resign Committee", + "AuthorizeCommitteeHotCertificate": "Authorise Committee", "RegisterDelegateRepresentativeCertificate": "DRep Registration", "UnregisterDelegateRepresentativeCertificate": "DRep De-Registration", - "UpdateDelegateRepresentativeCertificate": "DRep Update", - "ResignCommitteeColdCertificate": "Resign Committee", - "StakeRegistrationDelegationCertificate": "Stake Key Registration & Delgation", - "StakeVoteDelegationCertificate": "Stake Key Registration & DRep Delegation", - "StakeVoteRegistrationDelegationCertificate": "Stake Key Registration, Delegation, & DRep Delegation", - "VoteRegistrationDelegationCertificate": "Stake Key Registration & DRep Delegation", - "AuthorizeCommitteeHotCertificate": "Authorize Committee", "VoteDelegationCertificate": "Vote Delegation", - "vote": "Vote Signing", - "submitProposal": "Governance Proposal" + + "submitProposal": "Confirm Vote" }, "certificates": { "headings": { diff --git a/apps/browser-extension-wallet/src/stores/slices/activity-detail-slice.ts b/apps/browser-extension-wallet/src/stores/slices/activity-detail-slice.ts index f78de1de4b..7600ed34ee 100644 --- a/apps/browser-extension-wallet/src/stores/slices/activity-detail-slice.ts +++ b/apps/browser-extension-wallet/src/stores/slices/activity-detail-slice.ts @@ -17,7 +17,7 @@ import { inspectTxValues } from '@src/utils/tx-inspection'; import { firstValueFrom } from 'rxjs'; import { getAssetsInformation } from '@src/utils/get-assets-information'; import { MAX_POOLS_COUNT } from '@lace/staking'; -import { ActivityStatus, DelegationTransactionType, TransactionActivityType } from '@lace/core'; +import { ActivityStatus, DelegationActivityType, TransactionActivityType } from '@lace/core'; import type { ActivityType } from '@lace/core'; import { formatDate, formatTime } from '@src/utils/format-date'; import { @@ -65,11 +65,11 @@ const shouldIncludeFee = ( delegationInfo: Wallet.Cardano.StakeDelegationCertificate[] | undefined ) => !( - type === DelegationTransactionType.delegationRegistration || + type === DelegationActivityType.delegationRegistration || // Existence of any (new) delegationInfo means that this "de-registration" // activity is accompanied by a "delegation" activity, which carries the fees. // However, fees should be shown if de-registration activity is standalone. - (type === DelegationTransactionType.delegationDeregistration && !!delegationInfo?.length) + (type === DelegationActivityType.delegationDeregistration && !!delegationInfo?.length) ); const getPoolInfos = async (poolIds: Wallet.Cardano.PoolId[], stakePoolProvider: Wallet.StakePoolProvider) => { @@ -191,14 +191,14 @@ const buildGetActivityDetail = const deposit = // since one tx can be split into two (delegation, registration) actions, // ensure only the registration tx carries the deposit - implicitCoin.deposit && type === DelegationTransactionType.delegationRegistration + implicitCoin.deposit && type === DelegationActivityType.delegationRegistration ? Wallet.util.lovelacesToAdaString(implicitCoin.deposit.toString()) : undefined; const depositReclaimValue = Wallet.util.calculateDepositReclaim(implicitCoin); const depositReclaim = // since one tx can be split into two (delegation, de-registration) actions, // ensure only the de-registration tx carries the reclaimed deposit - depositReclaimValue && type === DelegationTransactionType.delegationDeregistration + depositReclaimValue && type === DelegationActivityType.delegationDeregistration ? Wallet.util.lovelacesToAdaString(depositReclaimValue.toString()) : undefined; const feeInAda = Wallet.util.lovelacesToAdaString(tx.body.fee.toString()); @@ -226,7 +226,7 @@ const buildGetActivityDetail = certificates: certificateTransformer(cardanoCoin, tx.body.certificates) }; - if (type === DelegationTransactionType.delegation && delegationInfo) { + if (type === DelegationActivityType.delegation && delegationInfo) { const pools = await getPoolInfos( delegationInfo.map(({ poolId }) => poolId), stakePoolProvider diff --git a/apps/browser-extension-wallet/src/stores/slices/wallet-activities-slice.ts b/apps/browser-extension-wallet/src/stores/slices/wallet-activities-slice.ts index c0d628b032..ba053a463d 100644 --- a/apps/browser-extension-wallet/src/stores/slices/wallet-activities-slice.ts +++ b/apps/browser-extension-wallet/src/stores/slices/wallet-activities-slice.ts @@ -20,7 +20,7 @@ import { ActivityStatus, AssetActivityItemProps, AssetActivityListProps, - DelegationTransactionType, + DelegationActivityType, TransactionActivityType } from '@lace/core'; import { CurrencyInfo, TxDirections } from '@src/types'; @@ -66,20 +66,20 @@ type MappedActivityListProps = Omit & { export type FetchWalletActivitiesReturn = Observable>; type DelegationActivityItemProps = Omit & { - type: DelegationTransactionType; + type: DelegationActivityType; }; const isDelegationActivity = (activity: ExtendedActivityProps): activity is DelegationActivityItemProps => - activity.type in DelegationTransactionType; + activity.type in DelegationActivityType; const getDelegationAmount = (activity: DelegationActivityItemProps) => { const fee = new BigNumber(Number.parseFloat(activity.fee)); - if (activity.type === DelegationTransactionType.delegationRegistration) { + if (activity.type === DelegationActivityType.delegationRegistration) { return fee.plus(activity.deposit); } - if (activity.type === DelegationTransactionType.delegationDeregistration) { + if (activity.type === DelegationActivityType.delegationDeregistration) { return new BigNumber(activity.depositReclaim).minus(fee); } diff --git a/apps/browser-extension-wallet/src/utils/__tests__/inspectTxType.test.ts b/apps/browser-extension-wallet/src/utils/__tests__/inspectTxType.test.ts index a70605d58d..a62d2bc851 100644 --- a/apps/browser-extension-wallet/src/utils/__tests__/inspectTxType.test.ts +++ b/apps/browser-extension-wallet/src/utils/__tests__/inspectTxType.test.ts @@ -428,7 +428,9 @@ describe('testing tx-inspection utils', () => { rewardAccount: REWARD_ACCOUNT, // eslint-disable-next-line unicorn/no-null anchor: null, - governanceAction: {} as Wallet.Cardano.GovernanceAction, + governanceAction: { + __typename: Wallet.Cardano.GovernanceActionType.parameter_change_action + } as Wallet.Cardano.GovernanceAction, deposit: BigInt(1) } ] @@ -438,7 +440,7 @@ describe('testing tx-inspection utils', () => { { address: ADDRESS_1, rewardAccount: REWARD_ACCOUNT } ] as Wallet.KeyManagement.GroupedAddress[] }); - expect(result).toEqual('submitProposal'); + expect(result).toEqual('ParameterChangeAction'); }); }); }); diff --git a/apps/browser-extension-wallet/src/utils/mocks/certificates.ts b/apps/browser-extension-wallet/src/utils/mocks/certificates.ts index a039f264b8..d5cc7f53ea 100644 --- a/apps/browser-extension-wallet/src/utils/mocks/certificates.ts +++ b/apps/browser-extension-wallet/src/utils/mocks/certificates.ts @@ -30,11 +30,6 @@ export const mockConwayCertificates: Partial< dRepCredential: CREDENTIAL, anchor: null }, - [ConwayEraCertificatesTypes.VoteDelegation]: { - __typename: Wallet.Cardano.CertificateType.VoteDelegation, - dRep: CREDENTIAL, - stakeCredential: CREDENTIAL - }, [ConwayEraCertificatesTypes.StakeVoteDelegation]: { __typename: Wallet.Cardano.CertificateType.StakeVoteDelegation, stakeCredential: CREDENTIAL, diff --git a/apps/browser-extension-wallet/src/utils/mocks/raw-transactions.ts b/apps/browser-extension-wallet/src/utils/mocks/raw-transactions.ts index 31ce46f3fa..7f17269f9f 100644 --- a/apps/browser-extension-wallet/src/utils/mocks/raw-transactions.ts +++ b/apps/browser-extension-wallet/src/utils/mocks/raw-transactions.ts @@ -71,11 +71,3 @@ export const drepRetirementTx: Wallet.Cardano.HydratedTx = { certificates: [mockConwayCertificates[ConwayEraCertificatesTypes.UnregisterDelegateRepresentative]] } }; - -export const voteDelegationTx: Wallet.Cardano.HydratedTx = { - ...tx, - body: { - ...tx.body, - certificates: [mockConwayCertificates[ConwayEraCertificatesTypes.VoteDelegation]] - } -}; diff --git a/apps/browser-extension-wallet/src/utils/tx-inspection.ts b/apps/browser-extension-wallet/src/utils/tx-inspection.ts index be50897cf3..d7e8cbd45f 100644 --- a/apps/browser-extension-wallet/src/utils/tx-inspection.ts +++ b/apps/browser-extension-wallet/src/utils/tx-inspection.ts @@ -12,10 +12,11 @@ import { import { Wallet } from '@lace/cardano'; import { ActivityType, - DelegationTransactionType, + DelegationActivityType, TransactionActivityType, ConwayEraGovernanceActions, - ConwayEraCertificatesTypes + ConwayEraCertificatesTypes, + Cip1694GovernanceActivityType } from '@lace/core'; import { TxDirection, TxDirections } from '@src/types'; @@ -60,8 +61,6 @@ const governanceCertificateInspection = ( return ConwayEraCertificatesTypes.UnregisterDelegateRepresentative; case signedCertificateTypenames.includes(CertificateType.UpdateDelegateRepresentative): return ConwayEraCertificatesTypes.UpdateDelegateRepresentative; - case signedCertificateTypenames.includes(CertificateType.VoteDelegation): - return ConwayEraCertificatesTypes.VoteDelegation; case signedCertificateTypenames.includes(CertificateType.StakeVoteDelegation): return ConwayEraCertificatesTypes.StakeVoteDelegation; case signedCertificateTypenames.includes(CertificateType.StakeRegistrationDelegation): @@ -77,6 +76,28 @@ const governanceCertificateInspection = ( } }; +// Assumes single procedure only +export const cip1694GovernanceActionsInspection = ( + procedure: Wallet.Cardano.ProposalProcedure +): Cip1694GovernanceActivityType => { + switch (procedure.governanceAction.__typename) { + case Wallet.Cardano.GovernanceActionType.parameter_change_action: + return Cip1694GovernanceActivityType.ParameterChangeAction; + case Wallet.Cardano.GovernanceActionType.hard_fork_initiation_action: + return Cip1694GovernanceActivityType.HardForkInitiationAction; + case Wallet.Cardano.GovernanceActionType.treasury_withdrawals_action: + return Cip1694GovernanceActivityType.TreasuryWithdrawalsAction; + case Wallet.Cardano.GovernanceActionType.no_confidence: + return Cip1694GovernanceActivityType.NoConfidence; + case Wallet.Cardano.GovernanceActionType.update_committee: + return Cip1694GovernanceActivityType.UpdateCommittee; + case Wallet.Cardano.GovernanceActionType.new_constitution: + return Cip1694GovernanceActivityType.NewConstitution; + case Wallet.Cardano.GovernanceActionType.info_action: + return Cip1694GovernanceActivityType.InfoAction; + } +}; + const getWalletAccounts = (walletAddresses: Wallet.KeyManagement.GroupedAddress[]) => walletAddresses.reduce( (acc, curr) => ({ @@ -145,17 +166,17 @@ export const inspectTxType = ({ if (inspectionProperties.sent.inputs.length > 0 || withRewardsWithdrawal) { switch (true) { case !!inspectionProperties.delegation[0]?.poolId: - return DelegationTransactionType.delegation; + return DelegationActivityType.delegation; case inspectionProperties.stakeKeyRegistration.length > 0: - return DelegationTransactionType.delegationRegistration; + return DelegationActivityType.delegationRegistration; case inspectionProperties.stakeKeyDeregistration.length > 0: - return DelegationTransactionType.delegationDeregistration; + return DelegationActivityType.delegationDeregistration; // Voting procedures take priority over proposals // TODO: use proper inspector when available on sdk side (LW-9569) case tx.body.votingProcedures?.length > 0: return ConwayEraGovernanceActions.vote; case tx.body.proposalProcedures?.length > 0: - return ConwayEraGovernanceActions.submitProposal; + return cip1694GovernanceActionsInspection(tx.body.proposalProcedures[0]); case inspectionProperties.selfTransaction: return TransactionActivityType.self; default: diff --git a/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/ActivityDetail.tsx b/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/ActivityDetail.tsx index 5fea0d3f65..e899c48de4 100644 --- a/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/ActivityDetail.tsx +++ b/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/ActivityDetail.tsx @@ -11,7 +11,7 @@ import { useTranslate, RewardsDetails, TransactionActivityType, - DelegationTransactionType + DelegationActivityType } from '@lace/core'; import type { ActivityType } from '@lace/core'; import { PriceResult } from '@hooks'; @@ -80,9 +80,8 @@ interface ActivityDetailProps { } const getTypeLabel = (type: ActivityType, t: ReturnType['t']) => { - if (type === DelegationTransactionType.delegationRegistration) return t('package.core.activityDetails.registration'); - if (type === DelegationTransactionType.delegationDeregistration) - return t('package.core.activityDetails.deregistration'); + if (type === DelegationActivityType.delegationRegistration) return t('package.core.activityDetails.registration'); + if (type === DelegationActivityType.delegationDeregistration) return t('package.core.activityDetails.deregistration'); if (type === TransactionActivityType.incoming) return t('package.core.activityDetails.received'); if (type === TransactionActivityType.outgoing) return t('package.core.activityDetails.sent'); return t(`package.core.activityDetails.${type}`); diff --git a/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/TransactionDetailsProxy.tsx b/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/TransactionDetailsProxy.tsx index 5fd4b4d3a6..4b0e63cc82 100644 --- a/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/TransactionDetailsProxy.tsx +++ b/apps/browser-extension-wallet/src/views/browser-view/features/activity/components/TransactionDetailsProxy.tsx @@ -1,5 +1,5 @@ import React, { ReactElement, useMemo } from 'react'; -import { ActivityStatus, DelegationTransactionType, TransactionDetails } from '@lace/core'; +import { ActivityStatus, DelegationActivityType, TransactionDetails } from '@lace/core'; import { AddressListType, getTransactionData } from './ActivityDetail'; import { useWalletStore } from '@src/stores'; import { useAnalyticsContext, useExternalLinkOpener } from '@providers'; @@ -37,7 +37,7 @@ export const TransactionDetailsProxy = withAddressBookContext( return `${CEXPLORER_BASE_URL[environmentName]}/${CEXPLORER_URL_PATHS.Tx}`; }, [CEXPLORER_BASE_URL, CEXPLORER_URL_PATHS.Tx, environmentName]); const getHeaderDescription = () => { - if (activityInfo.type === DelegationTransactionType.delegation) return '1 token'; + if (activityInfo.type === DelegationActivityType.delegation) return '1 token'; return ` (${activityInfo?.assetAmount})`; }; const isIncomingTransaction = direction === TxDirections.Incoming; diff --git a/apps/browser-extension-wallet/src/views/browser-view/features/activity/helpers/common-tx-transformer.ts b/apps/browser-extension-wallet/src/views/browser-view/features/activity/helpers/common-tx-transformer.ts index 8588b74a0c..31a5df30e8 100644 --- a/apps/browser-extension-wallet/src/views/browser-view/features/activity/helpers/common-tx-transformer.ts +++ b/apps/browser-extension-wallet/src/views/browser-view/features/activity/helpers/common-tx-transformer.ts @@ -7,7 +7,7 @@ import { getTransactionTotalAmount } from '@src/utils/get-transaction-total-amou import type { TransformedActivity, TransformedTransactionActivity } from './types'; import { ActivityStatus, - DelegationTransactionType, + DelegationActivityType, TxDetails, TxDetailsCertificateTitles, TxDetailsVotingProceduresTitles, @@ -54,13 +54,13 @@ const splitDelegationTx = (tx: TransformedActivity): TransformedTransactionActiv return [ { ...tx, - type: DelegationTransactionType.delegation, + type: DelegationActivityType.delegation, // Deposit already shown in the delegationRegistration deposit: undefined }, { ...tx, - type: DelegationTransactionType.delegationRegistration, + type: DelegationActivityType.delegationRegistration, // Let registration show just the deposit, // and the other transaction show fee to avoid duplicity fee: '0' @@ -70,13 +70,13 @@ const splitDelegationTx = (tx: TransformedActivity): TransformedTransactionActiv return [ { ...tx, - type: DelegationTransactionType.delegation, + type: DelegationActivityType.delegation, // Reclaimed deposit already shown in the delegationDeregistration depositReclaim: undefined }, { ...tx, - type: DelegationTransactionType.delegationDeregistration, + type: DelegationActivityType.delegationDeregistration, // Let de-registration show just the returned deposit, // and the other transaction show fee to avoid duplicity fee: '0' @@ -87,7 +87,7 @@ const splitDelegationTx = (tx: TransformedActivity): TransformedTransactionActiv return [ { ...tx, - type: DelegationTransactionType.delegation + type: DelegationActivityType.delegation } ]; }; @@ -184,7 +184,7 @@ export const txTransformer = async ({ // SDK Ticket LW-8767 should fix the type of Input in TxInFlight to contain the address const type = inspectTxType({ walletAddresses, tx: tx as unknown as Wallet.Cardano.HydratedTx }); - if (type === DelegationTransactionType.delegation) { + if (type === DelegationActivityType.delegation) { return splitDelegationTx(baseTransformedActivity); } diff --git a/packages/core/src/ui/assets/icons/arrow-diagonal-down-outline.component.svg b/packages/core/src/ui/assets/icons/arrow-diagonal-down-outline.component.svg new file mode 100644 index 0000000000..d0611e4523 --- /dev/null +++ b/packages/core/src/ui/assets/icons/arrow-diagonal-down-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/arrow-diagonal-up-outline.component.svg b/packages/core/src/ui/assets/icons/arrow-diagonal-up-outline.component.svg new file mode 100644 index 0000000000..cf7c2fe17e --- /dev/null +++ b/packages/core/src/ui/assets/icons/arrow-diagonal-up-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/badge-check-outline.component.svg b/packages/core/src/ui/assets/icons/badge-check-outline.component.svg new file mode 100644 index 0000000000..b548d7cc7e --- /dev/null +++ b/packages/core/src/ui/assets/icons/badge-check-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/ban-outline.component.svg b/packages/core/src/ui/assets/icons/ban-outline.component.svg new file mode 100644 index 0000000000..37df0adaee --- /dev/null +++ b/packages/core/src/ui/assets/icons/ban-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/briefcase-back-icon.component.svg b/packages/core/src/ui/assets/icons/briefcase-back-icon.component.svg new file mode 100644 index 0000000000..6223a4a1eb --- /dev/null +++ b/packages/core/src/ui/assets/icons/briefcase-back-icon.component.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/core/src/ui/assets/icons/briefcase-outline.component.svg b/packages/core/src/ui/assets/icons/briefcase-outline.component.svg new file mode 100644 index 0000000000..c998d37659 --- /dev/null +++ b/packages/core/src/ui/assets/icons/briefcase-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/clipboard-check-outline.component.svg b/packages/core/src/ui/assets/icons/clipboard-check-outline.component.svg new file mode 100644 index 0000000000..c26f611c44 --- /dev/null +++ b/packages/core/src/ui/assets/icons/clipboard-check-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/clipboard-copy-outline.component.svg b/packages/core/src/ui/assets/icons/clipboard-copy-outline.component.svg new file mode 100644 index 0000000000..a81655b75e --- /dev/null +++ b/packages/core/src/ui/assets/icons/clipboard-copy-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/clipboard-list-outline.component.svg b/packages/core/src/ui/assets/icons/clipboard-list-outline.component.svg new file mode 100644 index 0000000000..e5c5f1f0be --- /dev/null +++ b/packages/core/src/ui/assets/icons/clipboard-list-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/clipboard-x-outline.component.svg b/packages/core/src/ui/assets/icons/clipboard-x-outline.component.svg new file mode 100644 index 0000000000..b301373908 --- /dev/null +++ b/packages/core/src/ui/assets/icons/clipboard-x-outline.component.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/core/src/ui/assets/icons/delegation.component.svg b/packages/core/src/ui/assets/icons/delegation.component.svg deleted file mode 100644 index 0d0e38c15e..0000000000 --- a/packages/core/src/ui/assets/icons/delegation.component.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/core/src/ui/assets/icons/document-add-outline.component.svg b/packages/core/src/ui/assets/icons/document-add-outline.component.svg new file mode 100644 index 0000000000..a5dc33e574 --- /dev/null +++ b/packages/core/src/ui/assets/icons/document-add-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/document-report-outline.component.svg b/packages/core/src/ui/assets/icons/document-report-outline.component.svg new file mode 100644 index 0000000000..5fc6ced68f --- /dev/null +++ b/packages/core/src/ui/assets/icons/document-report-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/document-text-outline.component.svg b/packages/core/src/ui/assets/icons/document-text-outline.component.svg new file mode 100644 index 0000000000..42dd9ac667 --- /dev/null +++ b/packages/core/src/ui/assets/icons/document-text-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/feather-outline.component.svg b/packages/core/src/ui/assets/icons/feather-outline.component.svg new file mode 100644 index 0000000000..7936549916 --- /dev/null +++ b/packages/core/src/ui/assets/icons/feather-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/gift-outline.component.svg b/packages/core/src/ui/assets/icons/gift-outline.component.svg new file mode 100644 index 0000000000..7c91bda1c9 --- /dev/null +++ b/packages/core/src/ui/assets/icons/gift-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/identification-outline.component.svg b/packages/core/src/ui/assets/icons/identification-outline.component.svg new file mode 100644 index 0000000000..c358c79647 --- /dev/null +++ b/packages/core/src/ui/assets/icons/identification-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/incoming.component.svg b/packages/core/src/ui/assets/icons/incoming.component.svg deleted file mode 100644 index 9b30f162c6..0000000000 --- a/packages/core/src/ui/assets/icons/incoming.component.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/core/src/ui/assets/icons/info-outline.component.svg b/packages/core/src/ui/assets/icons/info-outline.component.svg new file mode 100644 index 0000000000..26f63e2799 --- /dev/null +++ b/packages/core/src/ui/assets/icons/info-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/outgoing.component.svg b/packages/core/src/ui/assets/icons/outgoing.component.svg deleted file mode 100644 index d7a81aab49..0000000000 --- a/packages/core/src/ui/assets/icons/outgoing.component.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/core/src/ui/assets/icons/receipt-right-outline.component.svg b/packages/core/src/ui/assets/icons/receipt-right-outline.component.svg new file mode 100644 index 0000000000..a9a0500e6b --- /dev/null +++ b/packages/core/src/ui/assets/icons/receipt-right-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/refresh-outline.component.svg b/packages/core/src/ui/assets/icons/refresh-outline.component.svg new file mode 100644 index 0000000000..c426d7d57b --- /dev/null +++ b/packages/core/src/ui/assets/icons/refresh-outline.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/self-transaction.component.svg b/packages/core/src/ui/assets/icons/self-transaction.component.svg deleted file mode 100644 index 71df1564fe..0000000000 --- a/packages/core/src/ui/assets/icons/self-transaction.component.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/core/src/ui/assets/icons/terminal-outile.component.svg b/packages/core/src/ui/assets/icons/terminal-outile.component.svg new file mode 100644 index 0000000000..53f81a73b7 --- /dev/null +++ b/packages/core/src/ui/assets/icons/terminal-outile.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/ticket-forward-icon.component.svg b/packages/core/src/ui/assets/icons/ticket-forward-icon.component.svg new file mode 100644 index 0000000000..858186e12e --- /dev/null +++ b/packages/core/src/ui/assets/icons/ticket-forward-icon.component.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/ui/assets/icons/ticket-icon.component.svg b/packages/core/src/ui/assets/icons/ticket-icon.component.svg deleted file mode 100644 index d1bc0535bd..0000000000 --- a/packages/core/src/ui/assets/icons/ticket-icon.component.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/packages/core/src/ui/assets/icons/ticket-outline-icon.component.svg b/packages/core/src/ui/assets/icons/ticket-outline-icon.component.svg new file mode 100644 index 0000000000..5a1413c4dd --- /dev/null +++ b/packages/core/src/ui/assets/icons/ticket-outline-icon.component.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/core/src/ui/components/Activity/AssetActivityItem.tsx b/packages/core/src/ui/components/Activity/AssetActivityItem.tsx index e2f308122f..54bddccf8d 100644 --- a/packages/core/src/ui/components/Activity/AssetActivityItem.tsx +++ b/packages/core/src/ui/components/Activity/AssetActivityItem.tsx @@ -1,3 +1,4 @@ +/* eslint-disable unicorn/consistent-function-scoping */ /* eslint-disable react/no-multi-comp */ import React, { useMemo, useRef, useEffect, useCallback } from 'react'; import debounce from 'lodash/debounce'; @@ -9,12 +10,7 @@ import { ReactComponent as ErrorIcon } from '../../assets/icons/error.component. import pluralize from 'pluralize'; import { txIconSize } from '@src/ui/utils/icon-size'; import { useTranslate } from '@src/ui/hooks'; -import { - DelegationTransactionType, - TransactionActivityType, - ConwayEraGovernanceActions, - ConwayEraCertificatesTypes -} from '../ActivityDetail/types'; +import { DelegationActivityType, TransactionActivityType } from '../ActivityDetail/types'; import type { ActivityType } from '../ActivityDetail/types'; import styles from './AssetActivityItem.module.scss'; import { ActivityTypeIcon } from '../ActivityDetail/ActivityTypeIcon'; @@ -71,7 +67,7 @@ export interface AssetActivityItemProps { const DELEGATION_ASSET_NUMBER = 1; interface ActivityStatusIconProps { - status: string; + status: ActivityStatus; type: ActivityType; } @@ -105,47 +101,12 @@ export const AssetActivityItem = ({ formattedTimestamp }: AssetActivityItemProps): React.ReactElement => { const { t } = useTranslate(); - - const translationTypes: Record = { - [TransactionActivityType.rewards]: 'package.core.assetActivityItem.entry.name.rewards', - [TransactionActivityType.incoming]: 'package.core.assetActivityItem.entry.name.incoming', - [TransactionActivityType.outgoing]: 'package.core.assetActivityItem.entry.name.outgoing', - [TransactionActivityType.self]: 'package.core.assetActivityItem.entry.name.self', - [DelegationTransactionType.delegation]: 'package.core.assetActivityItem.entry.name.delegation', - [DelegationTransactionType.delegationDeregistration]: - 'package.core.assetActivityItem.entry.name.delegationDeregistration', - [DelegationTransactionType.delegationRegistration]: - 'package.core.assetActivityItem.entry.name.delegationRegistration', - [ConwayEraGovernanceActions.vote]: 'package.core.assetActivityItem.entry.name.vote', - [ConwayEraGovernanceActions.submitProposal]: 'package.core.assetActivityItem.entry.name.submitProposal', - [ConwayEraCertificatesTypes.RegisterDelegateRepresentative]: - 'package.core.assetActivityItem.entry.name.RegisterDelegateRepresentativeCertificate', - [ConwayEraCertificatesTypes.UnregisterDelegateRepresentative]: - 'package.core.assetActivityItem.entry.name.UnregisterDelegateRepresentativeCertificate', - [ConwayEraCertificatesTypes.UpdateDelegateRepresentative]: - 'package.core.assetActivityItem.entry.name.UpdateDelegateRepresentativeCertificate', - [ConwayEraCertificatesTypes.StakeVoteDelegation]: - 'package.core.assetActivityItem.entry.name.StakeVoteDelegationCertificate', - [ConwayEraCertificatesTypes.StakeRegistrationDelegation]: - 'package.core.assetActivityItem.entry.name.StakeRegistrationDelegateCertificate', - [ConwayEraCertificatesTypes.StakeVoteRegistrationDelegation]: - 'package.core.assetActivityItem.entry.name.StakeVoteRegistrationDelegateCertificate', - [ConwayEraCertificatesTypes.VoteDelegation]: 'package.core.assetActivityItem.entry.name.VoteDelegationCertificate', - [ConwayEraCertificatesTypes.VoteRegistrationDelegation]: - 'package.core.assetActivityItem.entry.name.VoteRegistrationDelegateCertificate', - [ConwayEraCertificatesTypes.ResignCommitteeCold]: - 'package.core.assetActivityItem.entry.name.ResignCommitteeColdCertificate', - [ConwayEraCertificatesTypes.AuthorizeCommitteeHot]: - 'package.core.assetActivityItem.entry.name.AuthorizeCommitteeHotCertificate' - }; - const ref = useRef(null); const [assetsToShow, setAssetsToShow] = React.useState(0); const getText = useCallback( (items: number): { text: string; suffix: string } => { - if (type in DelegationTransactionType || type === TransactionActivityType.self) - return { text: amount, suffix: '' }; + if (type in DelegationActivityType || type === TransactionActivityType.self) return { text: amount, suffix: '' }; const assetsIdsText = assets ?.slice(0, items) @@ -191,7 +152,7 @@ export const AssetActivityItem = ({ const assetsText = useMemo(() => getText(assetsToShow), [getText, assetsToShow]); const assetAmountContent = - type in DelegationTransactionType ? ( + type in DelegationActivityType ? (

{DELEGATION_ASSET_NUMBER} {t('package.core.assetActivityItem.entry.token')}

@@ -220,9 +181,9 @@ export const AssetActivityItem = ({
- {isPendingTx && type !== TransactionActivityType.self && !(type in DelegationTransactionType) + {isPendingTx && type !== TransactionActivityType.self && !(type in DelegationActivityType) ? t('package.core.assetActivityItem.entry.name.sending') - : t(translationTypes[type])} + : t(`package.core.assetActivityItem.entry.name.${type}`)}
{descriptionContent}
diff --git a/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.module.scss b/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.module.scss index 471316e923..8b94e7a1ad 100644 --- a/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.module.scss +++ b/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.module.scss @@ -1,14 +1,34 @@ +@import '../../../../../common/src/ui/styles/abstracts/typography'; @import '../../styles/theme.scss'; -.governance { + +.iconWrapper { + width: size_unit(6); + height: size_unit(6); + border-radius: 100%; + background: rgba(#2cb67d, 0.1); + &.governance { + background: rgba(#3489f7, 0.1); + } + + @media (max-width: $breakpoint-popup) { + width: size_unit(5); + height: size_unit(5); + } +} + +.icon { + color: var(--data-green, #2cb67d) !important; + font-size: 22px !important; + + @media (max-width: $breakpoint-popup) { + font-size: 16px !important; + } + + &.governance { + color: var(--text-color-blue, #3489f7) !important; + } + svg { - path, - circle, - line, - polyline, - rect, - ellipse { - fill: var(--text-color-blue, #3489f7); - color: var(--text-color-blue, #3489f7); - } + fill: none; } } diff --git a/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.tsx b/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.tsx index 663c6a605f..c1fd79e0be 100644 --- a/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.tsx +++ b/packages/core/src/ui/components/ActivityDetail/ActivityTypeIcon.tsx @@ -3,48 +3,70 @@ import React from 'react'; import cn from 'classnames'; import Icon, { QuestionOutlined } from '@ant-design/icons'; import { txIconSize } from '@src/ui/utils/icon-size'; -import { ReactComponent as OutgoingIcon } from '../../assets/icons/outgoing.component.svg'; -import { ReactComponent as IncomingIcon } from '../../assets/icons/incoming.component.svg'; -import { ReactComponent as SelfIcon } from '../../assets/icons/self-transaction.component.svg'; -import { ReactComponent as DelegationIcon } from '../../assets/icons/delegation.component.svg'; -import { ReactComponent as RegistrationIcon } from '../../assets/icons/registration.component.svg'; -import { ReactComponent as DeregistrationIcon } from '../../assets/icons/deregistration.component.svg'; -import { ReactComponent as RewardsIcon } from '../../assets/icons/rewards.component.svg'; -import { ReactComponent as VoteIcon } from '../../assets/icons/ticket-icon.component.svg'; +import { ReactComponent as OutgoingIcon } from '../../assets/icons/arrow-diagonal-up-outline.component.svg'; +import { ReactComponent as IncomingIcon } from '../../assets/icons/arrow-diagonal-down-outline.component.svg'; +import { ReactComponent as RefreshOutlinedIcon } from '../../assets/icons/refresh-outline.component.svg'; +import { ReactComponent as DelegationIcon } from '../../assets/icons/receipt-right-outline.component.svg'; +import { ReactComponent as ClipboardCheckOutlineIcon } from '../../assets/icons/clipboard-check-outline.component.svg'; +import { ReactComponent as ClipboardXOutlineComponentIcon } from '../../assets/icons/clipboard-x-outline.component.svg'; +import { ReactComponent as RewardsIcon } from '../../assets/icons/gift-outline.component.svg'; +import { ReactComponent as VoteIcon } from '../../assets/icons/ticket-outline-icon.component.svg'; +import { ReactComponent as HardForkInitiationActionIcon } from '../../assets/icons/terminal-outile.component.svg'; +import { ReactComponent as ParameterChangeActionIcon } from '../../assets/icons/clipboard-list-outline.component.svg'; +import { ReactComponent as TreasuryWithdrawalsActionIcon } from '../../assets/icons/clipboard-copy-outline.component.svg'; +import { ReactComponent as UpdateCommitteeIcon } from '../../assets/icons/document-add-outline.component.svg'; +import { ReactComponent as InfoActionIcon } from '../../assets/icons/info-outline.component.svg'; +import { ReactComponent as StakeVoteDelegationIcon } from '../../assets/icons/document-report-outline.component.svg'; +import { ReactComponent as StakeRegistrationDelegationIcon } from '../../assets/icons/badge-check-outline.component.svg'; +import { ReactComponent as VoteRegistrationDelegationIcon } from '../../assets/icons/identification-outline.component.svg'; +import { ReactComponent as StakeVoteRegistrationDelegationIcon } from '../../assets/icons/document-text-outline.component.svg'; +import { ReactComponent as ResignCommitteeColdIcon } from '../../assets/icons/ban-outline.component.svg'; +import { ReactComponent as AuthorizeCommitteeHotIcon } from '../../assets/icons/feather-outline.component.svg'; +import { ReactComponent as RegisterDelegateRepresentativeIcon } from '../../assets/icons/briefcase-outline.component.svg'; +import { ReactComponent as UnregisterDelegateRepresentativeIcon } from '../../assets/icons/briefcase-back-icon.component.svg'; + import { ActivityType, ConwayEraCertificatesTypes, ConwayEraGovernanceActions, - DelegationTransactionType, - TransactionActivityType + DelegationActivityType, + TransactionActivityType, + Cip1694GovernanceActivityType } from './types'; import styles from './ActivityTypeIcon.module.scss'; +import { Flex } from '@lace/ui'; export interface ActivityTypeIconProps { type: ActivityType; } const activityTypeIcon: Record>> = { + [ConwayEraGovernanceActions.vote]: VoteIcon, + [Cip1694GovernanceActivityType.HardForkInitiationAction]: HardForkInitiationActionIcon, + [Cip1694GovernanceActivityType.NewConstitution]: ClipboardCheckOutlineIcon, + [Cip1694GovernanceActivityType.NoConfidence]: ClipboardXOutlineComponentIcon, + [Cip1694GovernanceActivityType.ParameterChangeAction]: ParameterChangeActionIcon, + [Cip1694GovernanceActivityType.TreasuryWithdrawalsAction]: TreasuryWithdrawalsActionIcon, + [Cip1694GovernanceActivityType.UpdateCommittee]: UpdateCommitteeIcon, + [Cip1694GovernanceActivityType.InfoAction]: InfoActionIcon, + [ConwayEraCertificatesTypes.UpdateDelegateRepresentative]: RefreshOutlinedIcon, + [ConwayEraCertificatesTypes.StakeVoteDelegation]: StakeVoteDelegationIcon, + [ConwayEraCertificatesTypes.StakeRegistrationDelegation]: StakeRegistrationDelegationIcon, + [ConwayEraCertificatesTypes.VoteRegistrationDelegation]: VoteRegistrationDelegationIcon, + [ConwayEraCertificatesTypes.StakeVoteRegistrationDelegation]: StakeVoteRegistrationDelegationIcon, + [ConwayEraCertificatesTypes.ResignCommitteeCold]: ResignCommitteeColdIcon, + [ConwayEraCertificatesTypes.AuthorizeCommitteeHot]: AuthorizeCommitteeHotIcon, + [ConwayEraCertificatesTypes.RegisterDelegateRepresentative]: RegisterDelegateRepresentativeIcon, + [ConwayEraCertificatesTypes.UnregisterDelegateRepresentative]: UnregisterDelegateRepresentativeIcon, + [TransactionActivityType.rewards]: RewardsIcon, [TransactionActivityType.incoming]: IncomingIcon, [TransactionActivityType.outgoing]: OutgoingIcon, - [TransactionActivityType.self]: SelfIcon, - [DelegationTransactionType.delegation]: DelegationIcon, - [ConwayEraGovernanceActions.vote]: VoteIcon, - [ConwayEraGovernanceActions.submitProposal]: DelegationIcon, - [DelegationTransactionType.delegationDeregistration]: DeregistrationIcon, - [DelegationTransactionType.delegationRegistration]: RegistrationIcon, - [ConwayEraCertificatesTypes.RegisterDelegateRepresentative]: RegistrationIcon, - [ConwayEraCertificatesTypes.UnregisterDelegateRepresentative]: DeregistrationIcon, - [ConwayEraCertificatesTypes.StakeRegistrationDelegation]: RegistrationIcon, - [ConwayEraCertificatesTypes.StakeVoteRegistrationDelegation]: DelegationIcon, - [ConwayEraCertificatesTypes.VoteRegistrationDelegation]: DelegationIcon, - [ConwayEraCertificatesTypes.UpdateDelegateRepresentative]: RegistrationIcon, - [ConwayEraCertificatesTypes.StakeVoteDelegation]: DelegationIcon, - [ConwayEraCertificatesTypes.VoteDelegation]: DelegationIcon, - [ConwayEraCertificatesTypes.ResignCommitteeCold]: DelegationIcon, - [ConwayEraCertificatesTypes.AuthorizeCommitteeHot]: DelegationIcon + [TransactionActivityType.self]: RefreshOutlinedIcon, + [DelegationActivityType.delegation]: DelegationIcon, + [DelegationActivityType.delegationDeregistration]: ClipboardXOutlineComponentIcon, + [DelegationActivityType.delegationRegistration]: ClipboardCheckOutlineIcon }; export const ActivityTypeIcon = ({ type }: ActivityTypeIconProps): React.ReactElement => { @@ -55,17 +77,23 @@ export const ActivityTypeIcon = ({ type }: ActivityTypeIconProps): React.ReactEl Object.values(ConwayEraCertificatesTypes).includes(type as unknown as ConwayEraCertificatesTypes) || type in ConwayEraGovernanceActions; - // TODO: set fill color for every icon using currentColor, replace icon not to contain surrounding circle (LW-9566) - return icon ? ( - - ) : ( - + return ( + + {icon ? ( + + ) : ( + + )} + ); }; diff --git a/packages/core/src/ui/components/ActivityDetail/types.ts b/packages/core/src/ui/components/ActivityDetail/types.ts index 0ef6be2419..96a1685b03 100644 --- a/packages/core/src/ui/components/ActivityDetail/types.ts +++ b/packages/core/src/ui/components/ActivityDetail/types.ts @@ -1,12 +1,11 @@ import { Wallet } from '@lace/cardano'; -// TODO: use Cip30TxType instead? +// supported certificates actions export enum ConwayEraCertificatesTypes { 'AuthorizeCommitteeHot' = Wallet.Cardano.CertificateType.AuthorizeCommitteeHot, 'RegisterDelegateRepresentative' = Wallet.Cardano.CertificateType.RegisterDelegateRepresentative, 'ResignCommitteeCold' = Wallet.Cardano.CertificateType.ResignCommitteeCold, 'VoteRegistrationDelegation' = Wallet.Cardano.CertificateType.VoteRegistrationDelegation, - 'VoteDelegation' = Wallet.Cardano.CertificateType.VoteDelegation, 'UpdateDelegateRepresentative' = Wallet.Cardano.CertificateType.UpdateDelegateRepresentative, 'UnregisterDelegateRepresentative' = Wallet.Cardano.CertificateType.UnregisterDelegateRepresentative, 'StakeVoteRegistrationDelegation' = Wallet.Cardano.CertificateType.StakeVoteRegistrationDelegation, @@ -14,12 +13,22 @@ export enum ConwayEraCertificatesTypes { 'StakeRegistrationDelegation' = Wallet.Cardano.CertificateType.StakeRegistrationDelegation } +// cip 1694 governance actions +export enum Cip1694GovernanceActivityType { + ParameterChangeAction = 'ParameterChangeAction', + HardForkInitiationAction = 'HardForkInitiationAction', + TreasuryWithdrawalsAction = 'TreasuryWithdrawalsAction', + NoConfidence = 'NoConfidence', + UpdateCommittee = 'UpdateCommittee', + NewConstitution = 'NewConstitution', + InfoAction = 'InfoAction' +} + export enum ConwayEraGovernanceActions { - 'vote' = 'vote', - 'submitProposal' = 'submitProposal' + 'vote' = 'vote' } -export enum DelegationTransactionType { +export enum DelegationActivityType { 'delegation' = 'delegation', 'delegationRegistration' = 'delegationRegistration', 'delegationDeregistration' = 'delegationDeregistration' @@ -69,5 +78,8 @@ export type TxDetail = { export type TxDetails = TxDetail[]; -export type GovernanceTransactionTypes = ConwayEraCertificatesTypes | ConwayEraGovernanceActions; -export type ActivityType = DelegationTransactionType | TransactionActivityType | GovernanceTransactionTypes; +export type GovernanceTransactionTypes = + | ConwayEraCertificatesTypes + | ConwayEraGovernanceActions + | Cip1694GovernanceActivityType; +export type ActivityType = DelegationActivityType | TransactionActivityType | GovernanceTransactionTypes; diff --git a/packages/core/src/ui/lib/translations/en.json b/packages/core/src/ui/lib/translations/en.json index b8773ec10e..73ec7b664c 100644 --- a/packages/core/src/ui/lib/translations/en.json +++ b/packages/core/src/ui/lib/translations/en.json @@ -18,18 +18,24 @@ "outgoing": "Sent", "sending": "Sending", "self": "Self Transaction", + "vote": "Vote Signing", + "HardForkInitiationAction": "Hard Fork Initiation Action", + "NewConstitution": "New Constitution Action", + "NoConfidence": "No Confidence Action", + "ParameterChangeAction": "Parameter Change Action", + "TreasuryWithdrawalsAction": "Treasury Withdrawals Action", + "UpdateCommittee": "Update Committee Action", + "InfoAction": "Info Action", + "UpdateDelegateRepresentativeCertificate": "Update DRep", + "StakeVoteDelegationCertificate": "Stake Vote Delegation Certificate", + "StakeRegistrationDelegationCertificate": "Stake Registration Delegation Certificate", + "VoteRegistrationDelegationCertificate": "Vote Registration Delegation Certificate", + "StakeVoteRegistrationDelegationCertificate": "Stake Vote Registration Delegation Certificate", + "ResignCommitteeColdCertificate": "Resign Committee", + "AuthorizeCommitteeHotCertificate": "Authorise Committee", "RegisterDelegateRepresentativeCertificate": "DRep Registration", "UnregisterDelegateRepresentativeCertificate": "DRep De-Registration", - "UpdateDelegateRepresentativeCertificate": "DRep Update", - "ResignCommitteeColdCertificate": "Resign Committee", - "StakeRegistrationDelegationCertificate": "Stake Key Registration & Delgation", - "StakeVoteDelegationCertificate": "Stake Key Registration & DRep Delegation", - "StakeVoteRegistrationDelegationCertificate": "Stake Key Registration, Delegation, & DRep Delegation", - "VoteRegistrationDelegationCertificate": "Stake Key Registration & DRep Delegation", - "AuthorizeCommitteeHotCertificate": "Authorize Committee", - "VoteDelegationCertificate": "Vote Delegation", - "vote": "Vote Signing", - "submitProposal": "Governance Proposal" + "VoteDelegationCertificate": "Vote Delegation" }, "certificates": { "headings": { diff --git a/packages/staking/src/features/overview/helpers/hasPendingDelegationTransaction.ts b/packages/staking/src/features/overview/helpers/hasPendingDelegationTransaction.ts index b87f950438..540e3cca6c 100644 --- a/packages/staking/src/features/overview/helpers/hasPendingDelegationTransaction.ts +++ b/packages/staking/src/features/overview/helpers/hasPendingDelegationTransaction.ts @@ -1,7 +1,7 @@ -import { ActivityStatus, AssetActivityListProps, DelegationTransactionType } from '@lace/core'; +import { ActivityStatus, AssetActivityListProps, DelegationActivityType } from '@lace/core'; import flatMap from 'lodash/flatMap'; export const hasPendingDelegationTransaction = (walletActivities: AssetActivityListProps[]) => flatMap(walletActivities, ({ items }) => items).some( - ({ type, status }) => type && type in DelegationTransactionType && status === ActivityStatus.PENDING + ({ type, status }) => type && type in DelegationActivityType && status === ActivityStatus.PENDING );