@@ -50,7 +50,7 @@ type evmUSDCMessageReader struct {
5050 lggr logger.Logger
5151 contractReader contractreader.ContractReaderFacade
5252 cctpDestDomain map [uint64 ]uint32
53- boundContracts map [cciptypes. ChainSelector ] types.BoundContract
53+ boundContract types.BoundContract
5454}
5555
5656type eventID [32 ]byte
@@ -81,8 +81,8 @@ func NewUSDCMessageReader(
8181 contractReaders map [cciptypes.ChainSelector ]contractreader.ContractReaderFacade ,
8282 addrCodec cciptypes.AddressCodec ,
8383) (USDCMessageReader , error ) {
84- boundContracts := make (map [cciptypes.ChainSelector ]types.BoundContract )
8584 readers := make (map [cciptypes.ChainSelector ]USDCMessageReader )
85+ domains := AllAvailableDomains ()
8686 for chainSelector , token := range tokensConfig {
8787 family , err := sel .GetSelectorFamily (uint64 (chainSelector ))
8888 if err != nil {
@@ -107,13 +107,11 @@ func NewUSDCMessageReader(
107107 if err != nil {
108108 return nil , err
109109 }
110- boundContracts [chainSelector ] = contract
111110 readers [chainSelector ] = evmUSDCMessageReader {
112111 lggr : lggr ,
113112 contractReader : contractReaders [chainSelector ],
114- // TODO: set domain/bound correctly.
115- cctpDestDomain : CCTPDestDomains ,
116- boundContracts : boundContracts ,
113+ cctpDestDomain : domains ,
114+ boundContract : contract ,
117115 }
118116 case sel .FamilySolana :
119117 // TODO: Implement Solana USDC message reader
@@ -124,19 +122,15 @@ func NewUSDCMessageReader(
124122 }
125123
126124 return compositeFamilyUSDCMessageReader {
127- lggr : lggr ,
128- readers : readers ,
129- cctpDestDomain : AllAvailableDomains (),
130- boundContracts : boundContracts ,
125+ lggr : lggr ,
126+ readers : readers ,
131127 }, nil
132128}
133129
134130// compositeFamilyUSDCMessageReader is a USDCMessageReader that can handle different chain families.
135131type compositeFamilyUSDCMessageReader struct {
136- lggr logger.Logger
137- readers map [cciptypes.ChainSelector ]USDCMessageReader
138- cctpDestDomain map [uint64 ]uint32
139- boundContracts map [cciptypes.ChainSelector ]types.BoundContract
132+ lggr logger.Logger
133+ readers map [cciptypes.ChainSelector ]USDCMessageReader
140134}
141135
142136func (m compositeFamilyUSDCMessageReader ) MessagesByTokenID (
@@ -145,7 +139,7 @@ func (m compositeFamilyUSDCMessageReader) MessagesByTokenID(
145139 tokens map [MessageTokenID ]cciptypes.RampTokenAmount ,
146140) (map [MessageTokenID ]cciptypes.Bytes , error ) {
147141 if _ , ok := m .readers [source ]; ! ok {
148- return nil , fmt .Errorf ("no reader bound for chain %d" , source )
142+ return nil , fmt .Errorf ("no reader for chain %d" , source )
149143 }
150144 return m .readers [source ].MessagesByTokenID (ctx , source , dest , tokens )
151145}
@@ -190,11 +184,6 @@ func (u evmUSDCMessageReader) MessagesByTokenID(
190184
191185 // 2. Query the MessageTransmitter contract for the MessageSent events based on the 3rd words.
192186 // We need entire MessageSent payload to use that with the Attestation API
193- cr , ok := u .boundContracts [source ]
194- if ! ok {
195- return nil , fmt .Errorf ("no contract bound for chain %d" , source )
196- }
197-
198187 expressions := []query.Expression {query .Confidence (primitives .Finalized )}
199188 if len (eventIDsByMsgTokenID ) > 0 {
200189 eventIDs := make ([]eventID , 0 , len (eventIDsByMsgTokenID ))
@@ -220,7 +209,7 @@ func (u evmUSDCMessageReader) MessagesByTokenID(
220209
221210 iter , err := u .contractReader .QueryKey (
222211 ctx ,
223- cr ,
212+ u . boundContract ,
224213 keyFilter ,
225214 query .NewLimitAndSort (
226215 query.Limit {Count : uint64 (len (eventIDsByMsgTokenID ))},
0 commit comments