@@ -12,41 +12,51 @@ type CCMember = {
1212 hash : string ;
1313 newExpirationEpoch ?: number ;
1414} ;
15+ type CCMemberToBeRemoved = {
16+ hash : string ;
17+ hasScript ?: boolean ;
18+ } ;
1519
16- function isArrayOfStrings ( value : unknown ) : value is string [ ] {
17- return (
18- Array . isArray ( value ) && value . every ( ( item ) => typeof item === "string" )
19- ) ;
20- }
20+ const getCip129Identifier = ( hash : string , hasScript ?: boolean ) =>
21+ encodeCIP129Identifier ( {
22+ txID : ( hasScript ? "13" : "02" ) + hash ,
23+ bech32Prefix : "cc_cold" ,
24+ } ) ;
2125
2226export const GovernanceActionNewCommitteeDetailsTabContent = ( {
2327 details,
2428} : Pick < ProposalData , "details" > ) => {
2529 const { t } = useTranslation ( ) ;
2630 const membersToBeAdded = ( ( details ?. members as CCMember [ ] ) || [ ] )
27- . filter ( ( member ) => member . newExpirationEpoch === undefined )
31+ . filter (
32+ ( member ) =>
33+ member ?. expirationEpoch === undefined ||
34+ member ?. expirationEpoch === null ,
35+ )
36+ . filter ( ( member ) => member ?. hash )
2837 . map ( ( member ) => ( {
29- cip129Identifier : encodeCIP129Identifier ( {
30- txID : ( member . hasScript ? "02" : "13" ) + member . hash ,
31- bech32Prefix : member . hasScript ? "cc_hot" : "cc_cold" ,
32- } ) ,
38+ cip129Identifier : getCip129Identifier ( member . hash , member . hasScript ) ,
3339 expirationEpoch : member . expirationEpoch ,
3440 } ) ) ;
3541
3642 const membersToBeUpdated = ( ( details ?. members as CCMember [ ] ) || [ ] )
37- . filter ( ( member ) => member . newExpirationEpoch !== undefined )
43+ . filter (
44+ ( member ) => ! ! member ?. expirationEpoch && ! ! member ?. newExpirationEpoch ,
45+ )
46+ . filter ( ( member ) => member ?. hash )
3847 . map ( ( member ) => ( {
39- cip129Identifier : encodeCIP129Identifier ( {
40- txID : ( member . hasScript ? "02" : "13" ) + member . hash ,
41- bech32Prefix : member . hasScript ? "cc_hot" : "cc_cold" ,
42- } ) ,
48+ cip129Identifier : getCip129Identifier ( member . hash , member . hasScript ) ,
4349 expirationEpoch : member . expirationEpoch ,
4450 newExpirationEpoch : member . newExpirationEpoch ,
4551 } ) ) ;
4652
47- const membersToBeRemoved = isArrayOfStrings ( details ?. membersToBeRemoved )
48- ? details . membersToBeRemoved
49- : [ ] ;
53+ const membersToBeRemoved = (
54+ ( details ?. membersToBeRemoved as CCMemberToBeRemoved [ ] ) || [ ]
55+ )
56+ . filter ( ( member ) => member ?. hash && member . hash . trim ( ) !== "" )
57+ . map ( ( member ) => ( {
58+ cip129Identifier : getCip129Identifier ( member . hash , member . hasScript ) ,
59+ } ) ) ;
5060
5161 return (
5262 < Box >
@@ -63,7 +73,7 @@ export const GovernanceActionNewCommitteeDetailsTabContent = ({
6373 whiteSpace : "nowrap" ,
6474 } }
6575 >
66- { t ( "govActions.membersToBeAdded " ) }
76+ { t ( "govActions.membersToBeAddedToTheCommittee " ) }
6777 </ Typography >
6878 { membersToBeAdded . map ( ( { cip129Identifier } ) => (
6979 < Box display = "flex" flexDirection = "row" >
@@ -101,10 +111,10 @@ export const GovernanceActionNewCommitteeDetailsTabContent = ({
101111 whiteSpace : "nowrap" ,
102112 } }
103113 >
104- { t ( "govActions.membersToBeRemoved " ) }
114+ { t ( "govActions.membersToBeRemovedFromTheCommittee " ) }
105115 </ Typography >
106- { membersToBeRemoved . map ( ( hash ) => (
107- < Box display = "flex" flexDirection = "row" key = { hash } >
116+ { membersToBeRemoved . map ( ( { cip129Identifier } ) => (
117+ < Box display = "flex" flexDirection = "row" key = { cip129Identifier } >
108118 < Typography
109119 sx = { {
110120 fontSize : 16 ,
@@ -114,19 +124,10 @@ export const GovernanceActionNewCommitteeDetailsTabContent = ({
114124 color : "primaryBlue" ,
115125 } }
116126 >
117- { encodeCIP129Identifier ( {
118- txID : hash ,
119- bech32Prefix : "cc_cold" ,
120- } ) }
127+ { cip129Identifier }
121128 </ Typography >
122129 < Box ml = { 1 } >
123- < CopyButton
124- text = { encodeCIP129Identifier ( {
125- txID : hash ,
126- bech32Prefix : "cc_cold" ,
127- } ) }
128- variant = "blueThin"
129- />
130+ < CopyButton text = { cip129Identifier } variant = "blueThin" />
130131 </ Box >
131132 </ Box >
132133 ) ) }
@@ -179,8 +180,8 @@ export const GovernanceActionNewCommitteeDetailsTabContent = ({
179180 } }
180181 >
181182 { t ( "govActions.changeToTermsEpochs" , {
182- epochTo : newExpirationEpoch ,
183- epochFrom : expirationEpoch ,
183+ epochTo : newExpirationEpoch ?? "N/A" ,
184+ epochFrom : expirationEpoch ?? "N/A" ,
184185 } ) }
185186 </ Typography >
186187 </ >
0 commit comments