From 2d325ec242c30632b0ee287446c34a1fb77f3cb3 Mon Sep 17 00:00:00 2001 From: Noah Litvin <335975+noahlitvin@users.noreply.github.com> Date: Tue, 16 Apr 2024 12:45:06 -0400 Subject: [PATCH] fix(website): cannonfile diff (#911) --- .../Deploy/TransactionDetailsPage.tsx | 26 +++++++++++-------- .../features/Deploy/TransactionDisplay.tsx | 24 ++++++++++------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/website/src/features/Deploy/TransactionDetailsPage.tsx b/packages/website/src/features/Deploy/TransactionDetailsPage.tsx index bde00c0b9..2b203b1bd 100644 --- a/packages/website/src/features/Deploy/TransactionDetailsPage.tsx +++ b/packages/website/src/features/Deploy/TransactionDetailsPage.tsx @@ -83,7 +83,7 @@ const TransactionDetailsPage: FC<{ const { nonce: safeNonce, staged, stagedQuery } = useSafeTransactions(safe); - const verify = parsedNonce >= safeNonce; + const isTransactionExecuted = parsedNonce < safeNonce; const history = useExecutedTransactions(safe); @@ -111,7 +111,7 @@ const TransactionDetailsPage: FC<{ const hintData = parseHintedMulticall(safeTxn?.data as any); - const allowPublishing = hintData?.type == 'deploy'; + const queuedWithGitOps = hintData?.type == 'deploy'; const cannonPackage = useCannonPackage( hintData?.cannonPackage @@ -141,7 +141,7 @@ const TransactionDetailsPage: FC<{ ); let prevDeployGitHash: string; - if (allowPublishing) { + if (queuedWithGitOps) { prevDeployGitHash = (hintData?.prevGitRepoHash || hintData?.gitRepoHash) ?? ''; } else { @@ -181,7 +181,10 @@ const TransactionDetailsPage: FC<{ useEffect( () => buildInfo.doBuild(), - [verify && (!prevDeployGitHash || prevCannonDeployInfo.ipfsQuery.isFetched)] + [ + !isTransactionExecuted && + (!prevDeployGitHash || prevCannonDeployInfo.ipfsQuery.isFetched), + ] ); // compare proposed build info with expected transaction batch @@ -251,7 +254,7 @@ const TransactionDetailsPage: FC<{ cannonPackage={cannonPackage} safeTxn={safeTxn} published={existingRegistryUrl == hintData?.cannonPackage} - publishable={allowPublishing} + publishable={queuedWithGitOps} signers={signers} threshold={threshold} /> @@ -268,8 +271,9 @@ const TransactionDetailsPage: FC<{ @@ -324,7 +328,7 @@ const TransactionDetailsPage: FC<{ ))} - {verify && remainingSignatures > 0 && ( + {!isTransactionExecuted && remainingSignatures > 0 && ( {remainingSignatures} additional{' '} {remainingSignatures === 1 ? 'signature' : 'signatures'}{' '} @@ -332,12 +336,12 @@ const TransactionDetailsPage: FC<{ )} - {verify && stager.alreadySigned && ( + {!isTransactionExecuted && stager.alreadySigned && ( Transaction signed )} - {verify && !stager.alreadySigned && ( + {!isTransactionExecuted && !stager.alreadySigned && ( {account.isConnected && walletChainId === safe.chainId ? ( @@ -400,7 +404,7 @@ const TransactionDetailsPage: FC<{ )} - {verify && allowPublishing && ( + {!isTransactionExecuted && queuedWithGitOps && ( )} - {allowPublishing && ( + {queuedWithGitOps && ( { export function TransactionDisplay(props: { safeTxn: SafeTransaction; safe: SafeDefinition; - allowPublishing?: boolean; + queuedWithGitOps?: boolean; showQueueSource?: boolean; + isTransactionExecuted?: boolean; }) { const { isOpen, onOpen, onClose } = useDisclosure(); const hintData = parseHintedMulticall(props.safeTxn?.data); @@ -66,11 +67,12 @@ export function TransactionDisplay(props: { hintData?.gitRepoUrl ?? '' ); - let prevDeployGitHash: string = - (hintData?.prevGitRepoHash || hintData?.gitRepoHash) ?? ''; + // Determine whether we should use the hint data or the previous git info query + let prevDeployGitHash: string = hintData?.prevGitRepoHash ?? ''; if ( - !props.allowPublishing && - prevDeployHashQuery.data && + props.queuedWithGitOps && + !props.isTransactionExecuted && + prevDeployHashQuery.data?.length && prevDeployHashQuery.data[0].result && ((prevDeployHashQuery.data[0].result as any).length as number) > 2 ) { @@ -117,7 +119,7 @@ export function TransactionDisplay(props: { return ( {props.showQueueSource && - (props.allowPublishing ? ( + (props.queuedWithGitOps ? ( <> These transactions were generated by{' '} - - modifying {diffFiles?.length} cannonfiles - {' '} + {diffFiles?.length ? ( + + modifying {diffFiles?.length} cannonfiles + + ) : ( + 'modifying cannonfiles' + )}{' '} in{' '} this repository