Skip to content

Commit 279dae9

Browse files
authored
do not break executor interface (#663)
1 parent f3650e8 commit 279dae9

File tree

9 files changed

+35
-21
lines changed

9 files changed

+35
-21
lines changed

.changeset/tall-berries-rhyme.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@smartcontractkit/mcms": patch
3+
---
4+
5+
make executor interface backwards compatible

chainwrappers/inspectors.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func BuildInspector(
8080
}
8181
}
8282

83-
return aptos.NewInspector(client, role, afm.MCMSType), nil
83+
return aptos.NewInspectorWithMCMSType(client, role, afm.MCMSType), nil
8484
case chainsel.FamilySui:
8585
client, signer, ok := chains.SuiClient(rawSelector)
8686
if !ok {

e2e/tests/aptos/set_config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,21 +157,21 @@ func (a *TestSuite) TestSetConfig() {
157157

158158
// Assert that config has been set
159159
{
160-
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleBypasser, aptossdk.MCMSTypeRegular)
160+
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleBypasser)
161161
gotConfig, err := inspector.GetConfig(a.T().Context(), mcmsAddress.StringLong())
162162
a.Require().NoError(err)
163163
a.Require().NotNil(gotConfig)
164164
a.Require().Equal(bypasserConfig, gotConfig)
165165
}
166166
{
167-
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleCanceller, aptossdk.MCMSTypeRegular)
167+
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleCanceller)
168168
gotConfig, err := inspector.GetConfig(a.T().Context(), mcmsAddress.StringLong())
169169
a.Require().NoError(err)
170170
a.Require().NotNil(gotConfig)
171171
a.Require().Equal(cancellerConfig, gotConfig)
172172
}
173173
{
174-
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer, aptossdk.MCMSTypeRegular)
174+
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer)
175175
gotConfig, err := inspector.GetConfig(a.T().Context(), mcmsAddress.StringLong())
176176
a.Require().NoError(err)
177177
a.Require().NotNil(gotConfig)

e2e/tests/aptos/timelock_cancel.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (a *TestSuite) TestTimelock_Cancel() {
136136
acceptOwnershipProposal, _, err := acceptOwnershipTimelockProposal.Convert(a.T().Context(), convertersMap)
137137
a.Require().NoError(err)
138138

139-
proposerInspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer, aptossdk.MCMSTypeRegular)
139+
proposerInspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer)
140140
proposerInspectorsMap := map[types.ChainSelector]sdk.Inspector{
141141
a.ChainSelector: proposerInspector,
142142
}
@@ -159,7 +159,7 @@ func (a *TestSuite) TestTimelock_Cancel() {
159159
a.Require().NoError(err)
160160
aptosEncoder := encoders[a.ChainSelector].(*aptossdk.Encoder)
161161
proposerExecutors := map[types.ChainSelector]sdk.Executor{
162-
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleProposer, aptossdk.MCMSTypeRegular),
162+
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleProposer),
163163
}
164164
proposerExecutable, err := mcms.NewExecutable(&acceptOwnershipProposal, proposerExecutors)
165165
a.Require().NoError(err, "Error creating executable")
@@ -226,7 +226,7 @@ func (a *TestSuite) TestTimelock_Cancel() {
226226
cancelProposal, _, err := cancelTimelockProposal.Convert(a.T().Context(), convertersMap)
227227
a.Require().NoError(err)
228228

229-
cancellerInspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleCanceller, aptossdk.MCMSTypeRegular)
229+
cancellerInspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleCanceller)
230230
cancellerInspectorMap := map[types.ChainSelector]sdk.Inspector{
231231
a.ChainSelector: cancellerInspector,
232232
}
@@ -244,7 +244,7 @@ func (a *TestSuite) TestTimelock_Cancel() {
244244

245245
// Set Root
246246
cancellerExecutors := map[types.ChainSelector]sdk.Executor{
247-
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleCanceller, aptossdk.MCMSTypeRegular),
247+
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleCanceller),
248248
}
249249
cancelExecutable, err := mcms.NewExecutable(&cancelProposal, cancellerExecutors)
250250
a.Require().NoError(err)

e2e/tests/aptos/timelock_proposal.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ func (a *TestSuite) TestTimelockProposal() {
160160
acceptOwnershipProposal, _, err = acceptOwnershipTimelockProposal.Convert(a.T().Context(), convertersMap)
161161
a.Require().NoError(err)
162162

163-
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer, aptossdk.MCMSTypeRegular)
163+
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleProposer)
164164
inspectorsMap := map[types.ChainSelector]sdk.Inspector{
165165
a.ChainSelector: inspector,
166166
}
@@ -186,7 +186,7 @@ func (a *TestSuite) TestTimelockProposal() {
186186
a.Require().NoError(err)
187187
aptosEncoder := encoders[a.ChainSelector].(*aptossdk.Encoder)
188188
executors := map[types.ChainSelector]sdk.Executor{
189-
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleProposer, aptossdk.MCMSTypeRegular),
189+
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleProposer),
190190
}
191191
var executable *mcms.Executable
192192
executable, err = mcms.NewExecutable(&acceptOwnershipProposal, executors)
@@ -283,7 +283,7 @@ func (a *TestSuite) TestTimelockProposal() {
283283
arg4 := big.NewInt(42)
284284

285285
{
286-
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleBypasser, aptossdk.MCMSTypeRegular)
286+
inspector := aptossdk.NewInspector(a.AptosRPCClient, aptossdk.TimelockRoleBypasser)
287287
inspectorsMaps := map[types.ChainSelector]sdk.Inspector{
288288
a.ChainSelector: inspector,
289289
}
@@ -365,7 +365,7 @@ func (a *TestSuite) TestTimelockProposal() {
365365
a.Require().NoError(errr)
366366
aptosEncoder := encoders[a.ChainSelector].(*aptossdk.Encoder)
367367
executors := map[types.ChainSelector]sdk.Executor{
368-
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleBypasser, aptossdk.MCMSTypeRegular),
368+
a.ChainSelector: aptossdk.NewExecutor(a.AptosRPCClient, a.deployerAccount, aptosEncoder, aptossdk.TimelockRoleBypasser),
369369
}
370370
executable, errr := mcms.NewExecutable(&mcmsTestProposal, executors)
371371
a.Require().NoError(errr)

sdk/aptos/executor.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,14 @@ type Executor struct {
4141
curseMcmsBindFn func(address aptos.AccountAddress, client aptos.AptosRpcClient) curse_mcms_pkg.CurseMCMS
4242
}
4343

44-
func NewExecutor(client aptos.AptosRpcClient, auth aptos.TransactionSigner, encoder *Encoder, role TimelockRole, mcmsType MCMSType) *Executor {
44+
func NewExecutor(client aptos.AptosRpcClient, auth aptos.TransactionSigner, encoder *Encoder, role TimelockRole) *Executor {
45+
return NewExecutorWithMCMSType(client, auth, encoder, role, MCMSTypeRegular)
46+
}
47+
48+
func NewExecutorWithMCMSType(client aptos.AptosRpcClient, auth aptos.TransactionSigner, encoder *Encoder, role TimelockRole, mcmsType MCMSType) *Executor {
4549
return &Executor{
4650
Encoder: encoder,
47-
Inspector: NewInspector(client, role, mcmsType),
51+
Inspector: NewInspectorWithMCMSType(client, role, mcmsType),
4852
client: client,
4953
auth: auth,
5054
mcmsType: mcmsType,

sdk/aptos/executor_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestNewExecutor(t *testing.T) {
3232
encoder := NewEncoder(chaintest.Chain5Selector, 1, true)
3333
mockClient := mock_aptossdk.NewAptosRpcClient(t)
3434
mockSigner := mock_aptossdk.NewTransactionSigner(t)
35-
executor := NewExecutor(mockClient, mockSigner, encoder, TimelockRoleProposer, MCMSTypeRegular)
35+
executor := NewExecutor(mockClient, mockSigner, encoder, TimelockRoleProposer)
3636
assert.Equal(t, mockClient, executor.client)
3737
assert.Equal(t, mockSigner, executor.auth)
3838
assert.Equal(t, encoder, executor.Encoder)

sdk/aptos/inspector.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,15 @@ type Inspector struct {
8686
viewerFn func(address aptos.AccountAddress, client aptos.AptosRpcClient) mcmsViewer
8787
}
8888

89-
// NewInspector creates an Inspector that talks to either a standard MCMS or
90-
// CurseMCMS contract depending on mcmsType. Unrecognized values default to
91-
// standard MCMS.
92-
func NewInspector(client aptos.AptosRpcClient, role TimelockRole, mcmsType MCMSType) *Inspector {
89+
// NewInspector creates an Inspector that talks to a standard MCMS contract.
90+
func NewInspector(client aptos.AptosRpcClient, role TimelockRole) *Inspector {
91+
return NewInspectorWithMCMSType(client, role, MCMSTypeRegular)
92+
}
93+
94+
// NewInspectorWithMCMSType creates an Inspector that talks to either a
95+
// standard MCMS or CurseMCMS contract depending on mcmsType. Unrecognized
96+
// values default to standard MCMS.
97+
func NewInspectorWithMCMSType(client aptos.AptosRpcClient, role TimelockRole, mcmsType MCMSType) *Inspector {
9398
var vfn func(aptos.AccountAddress, aptos.AptosRpcClient) mcmsViewer
9499
switch mcmsType {
95100
case MCMSTypeCurse:

sdk/aptos/inspector_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestNewInspector(t *testing.T) {
2323
t.Parallel()
2424
mockClient := mock_aptossdk.NewAptosRpcClient(t)
2525

26-
inspector := NewInspector(mockClient, TimelockRoleProposer, MCMSTypeRegular)
26+
inspector := NewInspector(mockClient, TimelockRoleProposer)
2727
assert.NotNil(t, inspector)
2828
assert.Equal(t, mockClient, inspector.client)
2929
assert.Equal(t, TimelockRoleProposer, inspector.role)
@@ -34,7 +34,7 @@ func TestNewInspector_CurseMCMS(t *testing.T) {
3434
t.Parallel()
3535
mockClient := mock_aptossdk.NewAptosRpcClient(t)
3636

37-
inspector := NewInspector(mockClient, TimelockRoleProposer, MCMSTypeCurse)
37+
inspector := NewInspectorWithMCMSType(mockClient, TimelockRoleProposer, MCMSTypeCurse)
3838
assert.NotNil(t, inspector)
3939
assert.Equal(t, mockClient, inspector.client)
4040
assert.Equal(t, TimelockRoleProposer, inspector.role)

0 commit comments

Comments
 (0)