Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump owner dep #14531

Merged
merged 4 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 20 additions & 13 deletions integration-tests/deployment/ccip/add_chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package ccipdeployment
import (
"math/big"

"github.com/ethereum/go-ethereum/common"
"github.com/smartcontractkit/ccip-owner-contracts/tools/proposal/mcms"
"github.com/smartcontractkit/ccip-owner-contracts/tools/proposal/timelock"

Expand Down Expand Up @@ -33,7 +34,8 @@ func NewChainInboundProposal(
) (*timelock.MCMSWithTimelockProposal, error) {
// Generate proposal which enables new destination (from test router) on all source chains.
var batches []timelock.BatchChainOperation
metaDataPerChain := make(map[mcms.ChainIdentifier]timelock.MCMSWithTimelockChainMetadata)
metaDataPerChain := make(map[mcms.ChainIdentifier]mcms.ChainMetadata)
timelockAddresses := make(map[mcms.ChainIdentifier]common.Address)
for _, source := range sources {
chain, _ := chainsel.ChainBySelector(source)
enableOnRampDest, err := state.Chains[source].OnRamp.ApplyDestChainConfigUpdates(SimTransactOpts(), []onramp.OnRampDestChainConfigArgs{
Expand Down Expand Up @@ -92,13 +94,15 @@ func NewChainInboundProposal(
},
},
})
metaDataPerChain[mcms.ChainIdentifier(chain.Selector)] = timelock.MCMSWithTimelockChainMetadata{
ChainMetadata: mcms.ChainMetadata{
NonceOffset: 0,
MCMAddress: state.Chains[source].Mcm.Address(),
},
TimelockAddress: state.Chains[source].Timelock.Address(),
opCount, err := state.Chains[source].Mcm.GetOpCount(nil)
if err != nil {
return nil, err
}
metaDataPerChain[mcms.ChainIdentifier(chain.Selector)] = mcms.ChainMetadata{
StartingOpCount: opCount.Uint64(),
MCMAddress: state.Chains[source].Mcm.Address(),
}
timelockAddresses[mcms.ChainIdentifier(chain.Selector)] = state.Chains[source].Timelock.Address()
}

// Home chain new don.
Expand Down Expand Up @@ -146,13 +150,15 @@ func NewChainInboundProposal(
return nil, err
}
homeChain, _ := chainsel.ChainBySelector(homeChainSel)
metaDataPerChain[mcms.ChainIdentifier(homeChain.Selector)] = timelock.MCMSWithTimelockChainMetadata{
ChainMetadata: mcms.ChainMetadata{
NonceOffset: 0,
MCMAddress: state.Chains[homeChainSel].Mcm.Address(),
},
TimelockAddress: state.Chains[homeChainSel].Timelock.Address(),
opCount, err := state.Chains[homeChainSel].Mcm.GetOpCount(nil)
if err != nil {
return nil, err
}
metaDataPerChain[mcms.ChainIdentifier(homeChain.Selector)] = mcms.ChainMetadata{
StartingOpCount: opCount.Uint64(),
MCMAddress: state.Chains[homeChainSel].Mcm.Address(),
}
timelockAddresses[mcms.ChainIdentifier(homeChain.Selector)] = state.Chains[homeChainSel].Timelock.Address()
batches = append(batches, timelock.BatchChainOperation{
ChainIdentifier: mcms.ChainIdentifier(homeChain.Selector),
Batch: []mcms.Operation{
Expand All @@ -175,6 +181,7 @@ func NewChainInboundProposal(
[]mcms.Signature{},
false,
metaDataPerChain,
timelockAddresses,
"blah", // TODO
batches,
timelock.Schedule,
Expand Down
44 changes: 25 additions & 19 deletions integration-tests/deployment/ccip/propose.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@ func SignProposal(t *testing.T, env deployment.Environment, proposal *timelock.M
chainSel := mcms.ChainIdentifier(chainselc.Selector)
executorClients[chainSel] = chain.Client
}
realProposal, err := proposal.ToMCMSOnlyProposal()
require.NoError(t, err)
executor, err := realProposal.ToExecutor(executorClients)
executor, err := proposal.ToExecutor(true)
require.NoError(t, err)
payload, err := executor.SigningHash()
require.NoError(t, err)
Expand All @@ -45,15 +43,15 @@ func SignProposal(t *testing.T, env deployment.Environment, proposal *timelock.M
require.NoError(t, err)
mcmSig, err := mcms.NewSignatureFromBytes(sig)
require.NoError(t, err)
executor.Proposal.Signatures = append(executor.Proposal.Signatures, mcmSig)
executor.Proposal.AddSignature(mcmSig)
require.NoError(t, executor.Proposal.Validate())
return executor
}

func ExecuteProposal(t *testing.T, env deployment.Environment, executor *mcms.Executor,
state CCIPOnChainState, sel uint64) {
// Set the root.
tx, err2 := executor.SetRootOnChain(env.Chains[sel].DeployerKey, mcms.ChainIdentifier(sel))
tx, err2 := executor.SetRootOnChain(env.Chains[sel].Client, env.Chains[sel].DeployerKey, mcms.ChainIdentifier(sel))
require.NoError(t, err2)
_, err2 = env.Chains[sel].Confirm(tx)
require.NoError(t, err2)
Expand All @@ -63,7 +61,7 @@ func ExecuteProposal(t *testing.T, env deployment.Environment, executor *mcms.Ex
for _, chainOp := range executor.Operations[mcms.ChainIdentifier(sel)] {
for idx, op := range executor.ChainAgnosticOps {
if bytes.Equal(op.Data, chainOp.Data) && op.To == chainOp.To {
opTx, err3 := executor.ExecuteOnChain(env.Chains[sel].DeployerKey, idx)
opTx, err3 := executor.ExecuteOnChain(env.Chains[sel].Client, env.Chains[sel].DeployerKey, idx)
require.NoError(t, err3)
block, err3 := env.Chains[sel].Confirm(opTx)
require.NoError(t, err3)
Expand Down Expand Up @@ -104,7 +102,8 @@ func GenerateAcceptOwnershipProposal(
) (*timelock.MCMSWithTimelockProposal, error) {
// TODO: Accept rest of contracts
var batches []timelock.BatchChainOperation
metaDataPerChain := make(map[mcms.ChainIdentifier]timelock.MCMSWithTimelockChainMetadata)
metaDataPerChain := make(map[mcms.ChainIdentifier]mcms.ChainMetadata)
timelockAddresses := make(map[mcms.ChainIdentifier]common.Address)
for _, sel := range chains {
chain, _ := chainsel.ChainBySelector(sel)
acceptOnRamp, err := state.Chains[sel].OnRamp.AcceptOwnership(SimTransactOpts())
Expand All @@ -116,13 +115,15 @@ func GenerateAcceptOwnershipProposal(
return nil, err
}
chainSel := mcms.ChainIdentifier(chain.Selector)
metaDataPerChain[chainSel] = timelock.MCMSWithTimelockChainMetadata{
ChainMetadata: mcms.ChainMetadata{
NonceOffset: 0,
MCMAddress: state.Chains[sel].Mcm.Address(),
},
TimelockAddress: state.Chains[sel].Timelock.Address(),
opCount, err := state.Chains[sel].Mcm.GetOpCount(nil)
if err != nil {
return nil, err
}
metaDataPerChain[chainSel] = mcms.ChainMetadata{
MCMAddress: state.Chains[sel].Mcm.Address(),
StartingOpCount: opCount.Uint64(),
}
timelockAddresses[chainSel] = state.Chains[sel].Timelock.Address()
batches = append(batches, timelock.BatchChainOperation{
ChainIdentifier: chainSel,
Batch: []mcms.Operation{
Expand All @@ -139,6 +140,7 @@ func GenerateAcceptOwnershipProposal(
},
})
}

acceptCR, err := state.Chains[homeChain].CapabilityRegistry.AcceptOwnership(SimTransactOpts())
if err != nil {
return nil, err
Expand All @@ -148,13 +150,15 @@ func GenerateAcceptOwnershipProposal(
return nil, err
}
homeChainID := mcms.ChainIdentifier(homeChain)
metaDataPerChain[homeChainID] = timelock.MCMSWithTimelockChainMetadata{
ChainMetadata: mcms.ChainMetadata{
NonceOffset: 0,
MCMAddress: state.Chains[homeChain].Mcm.Address(),
},
TimelockAddress: state.Chains[homeChain].Timelock.Address(),
opCount, err := state.Chains[homeChain].Mcm.GetOpCount(nil)
if err != nil {
return nil, err
}
metaDataPerChain[homeChainID] = mcms.ChainMetadata{
StartingOpCount: opCount.Uint64(),
MCMAddress: state.Chains[homeChain].Mcm.Address(),
}
timelockAddresses[homeChainID] = state.Chains[homeChain].Timelock.Address()
batches = append(batches, timelock.BatchChainOperation{
ChainIdentifier: homeChainID,
Batch: []mcms.Operation{
Expand All @@ -170,12 +174,14 @@ func GenerateAcceptOwnershipProposal(
},
},
})

return timelock.NewMCMSWithTimelockProposal(
"1",
2004259681, // TODO
[]mcms.Signature{},
false,
metaDataPerChain,
timelockAddresses,
"blah", // TODO
batches,
timelock.Schedule, "0s")
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
github.com/sethvargo/go-retry v0.2.4
github.com/shopspring/decimal v1.4.0
github.com/slack-go/slack v0.12.2
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240910151738-3f318badcfb5
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240919155713-f4bf4ae0b9c6

Check failure on line 39 in integration-tests/go.mod

View workflow job for this annotation

GitHub Actions / Validate go.mod dependencies

[./integration-tests/go.mod] dependency github.com/smartcontractkit/ccip-owner-contracts@v0.0.0-20240919155713-f4bf4ae0b9c6 not on default branch (main). Version(commit): f4bf4ae0b9c6 Tree: https://github.com/smartcontractkit/ccip-owner-contracts/tree/f4bf4ae0b9c6 Commit: https://github.com/smartcontractkit/ccip-owner-contracts/commit/f4bf4ae0b9c6
github.com/smartcontractkit/chain-selectors v1.0.23
github.com/smartcontractkit/chainlink-automation v1.0.4
github.com/smartcontractkit/chainlink-ccip v0.0.0-20240920150748-cf2125c094fe
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1417,8 +1417,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ=
github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240910151738-3f318badcfb5 h1:m0HuGuVdRHqBBkHJpSR/QBV7gtLB+hFkXZQ9tEkjdzo=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240910151738-3f318badcfb5/go.mod h1:N60/wwocvZ5A3RGmYaMWo0fPFa5tTMlhI9lJ22DRktM=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240919155713-f4bf4ae0b9c6 h1:e4lR/xTK7iOeCniSwH6hdaNZZ/sJs1eYWpnJoz3CXxI=
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240919155713-f4bf4ae0b9c6/go.mod h1:nlRI0m23HFMAHf7cKYdE58mPbXsTyY1y3ZLJxnuuoCM=
github.com/smartcontractkit/chain-selectors v1.0.23 h1:D2Eaex4Cw/O7Lg3tX6WklOqnjjIQAEBnutCtksPzVDY=
github.com/smartcontractkit/chain-selectors v1.0.23/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE=
github.com/smartcontractkit/chainlink-automation v1.0.4 h1:iyW181JjKHLNMnDleI8umfIfVVlwC7+n5izbLSFgjw8=
Expand Down
Loading