Skip to content

Commit 2368575

Browse files
committed
fix
1 parent f79760d commit 2368575

File tree

2 files changed

+51
-39
lines changed

2 files changed

+51
-39
lines changed

deployment/evm/deploy_contracts.go

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ var _ deployment.ChangeSetV2[shared.FiredrillConfig] = FiredrillDeployRegisterCh
7272
type FiredrillDeployRegisterChangeSet struct{}
7373

7474
func (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
}

deployment/evm/deploy_contracts_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func TestRegisterFiredrill(t *testing.T) {
6464
require.Len(t, chainSels, 2)
6565
chainSel := chainSels[0]
6666
sourceChainSel := chainSels[1]
67-
firedrillRef, _, err := DeployFiredrillContracts(*env, shared.FiredrillConfig{
67+
firedrillRef, output, err := DeployFiredrillContracts(*env, shared.FiredrillConfig{
6868
Version: deploy.Version1_5_0,
6969
ChainSelector: chainSel,
7070
SourceChainSelector: sourceChainSel,
@@ -83,7 +83,7 @@ func TestRegisterFiredrill(t *testing.T) {
8383
subscription, err := firedrillOffRamp.WatchConfigSet(nil, offRampSetSink)
8484
require.NoError(t, err)
8585
defer subscription.Unsubscribe()
86-
err = FiredrillRegisterContracts(env.Logger, firedrillRef, env.BlockChains.EVMChains()[chainSel])
86+
err = FiredrillRegisterContracts(env.Logger, output.DataStore.Addresses(), env.BlockChains.EVMChains()[chainSel])
8787
require.NoError(t, err)
8888
timer := time.NewTimer(1 * time.Second)
8989
for {

0 commit comments

Comments
 (0)