@@ -72,11 +72,11 @@ var _ deployment.ChangeSetV2[shared.FiredrillConfig] = FiredrillDeployRegisterCh
7272type FiredrillDeployRegisterChangeSet struct {}
7373
7474func (c FiredrillDeployRegisterChangeSet ) Apply (e deployment.Environment , config shared.FiredrillConfig ) (deployment.ChangesetOutput , error ) {
75- firedrillRef , changesetOutput , err := DeployFiredrillContracts (e , config )
75+ _ , changesetOutput , err := DeployFiredrillContracts (e , config )
7676 if err != nil {
7777 return deployment.ChangesetOutput {}, err
7878 }
79- err = FiredrillRegisterContracts (e .Logger , firedrillRef , e .BlockChains .EVMChains ()[config .ChainSelector ])
79+ err = FiredrillRegisterContracts (e .Logger , changesetOutput . DataStore . Addresses () , e .BlockChains .EVMChains ()[config .ChainSelector ])
8080 if err != nil {
8181 return deployment.ChangesetOutput {}, err
8282 }
@@ -162,41 +162,53 @@ func DeployFiredrillContracts(e deployment.Environment, config shared.FiredrillC
162162 }, nil
163163}
164164
165- func FiredrillRegisterContracts (lggr logger.Logger , firedrillRef datastore.AddressRef , chain cldf_evm.Chain ) error {
166- firedrillEntrypoint , err := firedrill_entrypoint .NewFiredrillEntrypoint (common .HexToAddress (firedrillRef .Address ), chain .Client )
167- if err != nil {
168- return err
169- }
170- entrypointTokenAddr , err1 := firedrillEntrypoint .Token (nil )
171- entrypointOnRampAddr , err2 := firedrillEntrypoint .OnRamp (nil )
172- entrypointOffRampAddr , err3 := firedrillEntrypoint .OffRamp (nil )
173- entrypointReceiverAddr , err4 := firedrillEntrypoint .Receiver (nil )
174- if err := errors .Join (err1 , err2 , err3 , err4 ); err != nil {
175- return err
176- }
177- if (entrypointTokenAddr == common.Address {}) {
178- err = errors .New ("FiredrillToken address from address book does not match FiredrillEntrypoint.Token()" )
179- }
180- if (entrypointOnRampAddr == common.Address {}) {
181- err = errors .Join (err , errors .New ("firedrill onramp on entrypoint can't be 0-address" ))
182- }
183- if (entrypointOffRampAddr == common.Address {}) {
184- err = errors .Join (err , errors .New ("firedrill offramp on entrypoint can't be 0-address" ))
185- }
186- if (entrypointReceiverAddr == common.Address {}) {
187- err = errors .Join (err , errors .New ("firedrill receiver on entrypoint can't be 0-address" ))
188- }
189- if err != nil {
190- return err
191- }
192- tx , err := firedrillEntrypoint .PrepareRegister (chain .DeployerKey )
193- if err != nil {
194- return err
195- }
196- blockNum , err := chain .Confirm (tx )
197- if err != nil {
198- return err
165+ func FiredrillRegisterContracts (lggr logger.Logger , ab datastore.AddressRefStore , chain cldf_evm.Chain ) error {
166+ firedrillRefs := ab .Filter (func (refs []datastore.AddressRef ) []datastore.AddressRef {
167+ res := make ([]datastore.AddressRef , 0 , len (refs ))
168+ for _ , ref := range refs {
169+ if ref .ChainSelector == chain .Selector && ref .Type == datastore .ContractType (shared .FiredrillEntrypointType ) {
170+ res = append (res , ref )
171+ }
172+ }
173+ return res
174+ })
175+ for _ , ref := range firedrillRefs {
176+ firedrillAddress := common .HexToAddress (ref .Address )
177+ firedrillEntrypoint , err := firedrill_entrypoint .NewFiredrillEntrypoint (firedrillAddress , chain .Client )
178+ if err != nil {
179+ return err
180+ }
181+ entrypointTokenAddr , err1 := firedrillEntrypoint .Token (nil )
182+ entrypointOnRampAddr , err2 := firedrillEntrypoint .OnRamp (nil )
183+ entrypointOffRampAddr , err3 := firedrillEntrypoint .OffRamp (nil )
184+ entrypointReceiverAddr , err4 := firedrillEntrypoint .Receiver (nil )
185+ if err := errors .Join (err1 , err2 , err3 , err4 ); err != nil {
186+ return err
187+ }
188+ if (entrypointTokenAddr == common.Address {}) {
189+ err = errors .New ("FiredrillToken address from address book does not match FiredrillEntrypoint.Token()" )
190+ }
191+ if (entrypointOnRampAddr == common.Address {}) {
192+ err = errors .Join (err , errors .New ("firedrill onramp on entrypoint can't be 0-address" ))
193+ }
194+ if (entrypointOffRampAddr == common.Address {}) {
195+ err = errors .Join (err , errors .New ("firedrill offramp on entrypoint can't be 0-address" ))
196+ }
197+ if (entrypointReceiverAddr == common.Address {}) {
198+ err = errors .Join (err , errors .New ("firedrill receiver on entrypoint can't be 0-address" ))
199+ }
200+ if err != nil {
201+ return err
202+ }
203+ tx , err := firedrillEntrypoint .PrepareRegister (chain .DeployerKey )
204+ if err != nil {
205+ return err
206+ }
207+ blockNum , err := chain .Confirm (tx )
208+ if err != nil {
209+ return err
210+ }
211+ lggr .Infof ("FiredrillEntrypoint register events mined. Address: %s, tx: %s, blockNum: %d" , firedrillAddress .Hex (), tx .Hash (), blockNum )
199212 }
200- lggr .Infof ("FiredrillEntrypoint register events mined. Address: %s, tx: %s, blockNum: %d" , firedrillRef .Address , tx .Hash (), blockNum )
201213 return nil
202214}
0 commit comments