diff --git a/src/app/components/transaction.tsx b/src/app/components/transaction.tsx index cd7b611..992ae6e 100644 --- a/src/app/components/transaction.tsx +++ b/src/app/components/transaction.tsx @@ -28,19 +28,31 @@ export const TransactionButton = () => { const [signature, setsignature] = useState(""); const [isPartOfSigners, setIsPartOfSigners] = useState(false); const [isOneVote, setIsOneVote] = useState(false); - const [hasCertificates, setHasCertificates] = useState(false); + const [hasCertificates, setHasCertificates] = useState(true); const [isSameNetwork, setIsSameNetwork] = useState(false); const [hasICCCredentials, setHasICCCredentials] = useState(false); const [isInOutputPlutusData , setIsInOutputPlutusData] = useState(false); - + const [voteResult, setVoteResult] = useState(); + const [voteID, setVoteID] = useState(); + const [cardanoscan, setCardanoscan] = useState(); + const [metadataAnchorURL, setmetadataAnchorURL] = useState(); + const [metadataAnchorHash, setMetadataAnchorHash] = useState(); const checkTransaction = async () => { if (!connected) { + setIsPartOfSigners(false); + setIsOneVote(false); + setHasCertificates(true); + setIsSameNetwork(false); + setHasICCCredentials(false); + setIsInOutputPlutusData(false); + setVoteResult(""); + setVoteID(""); setMessage("Please connect your wallet first."); return; } - + const network = await wallet.getNetworkId(); console.log("Connected wallet network ID:", network); console.log("isPartOfSigners:", isPartOfSigners); @@ -59,6 +71,7 @@ export const TransactionButton = () => { const transactionBody = unsignedTransaction?.body(); const voting_procedures= transactionBody?.to_js_value().voting_procedures; + try{ if (!transactionBody) { throw new Error("Transaction body is null."); @@ -75,11 +88,16 @@ export const TransactionButton = () => { } //one vote - - const votesNumber = voting_procedures?.[0]?.votes?.length; + const votes=voting_procedures?.[0]?.votes; + const votesNumber = votes?.length; + if(votesNumber === 1){ setIsOneVote(true); - console.log("Transaction has one vote."); + setVoteResult(votes?.[0].voting_procedure.vote); + setVoteID(votes?.[0].action_id.transaction_id); + setmetadataAnchorURL(votes?.[0].voting_procedure.anchor?.anchor_url); + setMetadataAnchorHash(votes?.[0].voting_procedure.anchor?.anchor_data_hash); + console.log("Transaction has one vote set to:",voteResult); }else if (!votesNumber){ throw new Error("Transaction has no votes."); }else{ @@ -91,7 +109,7 @@ export const TransactionButton = () => { console.log("certificates:", certificates); if (!certificates) { console.log("No certificates in the transaction."); - setHasCertificates(true); + setHasCertificates(false); } //Same network @@ -159,6 +177,15 @@ export const TransactionButton = () => { //for future add context of some of the + + //********************************************Voting Details *********************************************************************/ + if (transactionNetworkID === 0) { + setCardanoscan("https://preprod.cardanoscan.io/transaction/"); + } else if (transactionNetworkID === 1) { + setCardanoscan("https://cardanoscan.io/transaction/"); + } + + } catch (error) { console.error("Error validating transaction:", error); @@ -213,7 +240,16 @@ export const TransactionButton = () => { variant="outlined" fullWidth value={unsignedTransactionHex} - onChange={(e) => setUnsignedTransactionHex(e.target.value)} + onChange={(e) => {setUnsignedTransactionHex(e.target.value); + setIsPartOfSigners(false); + setIsOneVote(false); + setHasCertificates(true); + setIsSameNetwork(false); + setHasICCCredentials(false); + setIsInOutputPlutusData(false); + setVoteResult(""); + setVoteID("") + }} />