diff --git a/deployment/ccip/view/v1_5/rmn.go b/deployment/ccip/view/v1_5/rmn.go index 1c1168d9761..3b2d7a85979 100644 --- a/deployment/ccip/view/v1_5/rmn.go +++ b/deployment/ccip/view/v1_5/rmn.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" + "github.com/ethereum/go-ethereum/common" commoncldchangesets "github.com/smartcontractkit/cld-changesets/pkg/common" "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_0/rmn_contract" @@ -11,7 +12,8 @@ import ( type RMNView struct { commoncldchangesets.ContractMetaData - ConfigDetails rmn_contract.GetConfigDetails `json:"configDetails"` + ConfigDetails rmn_contract.GetConfigDetails `json:"configDetails"` + PermaBlessedCommitStores []common.Address `json:"permaBlessedCommitStores"` } func GenerateRMNView(r *rmn_contract.RMNContract) (RMNView, error) { @@ -26,8 +28,13 @@ func GenerateRMNView(r *rmn_contract.RMNContract) (RMNView, error) { if err != nil { return RMNView{}, fmt.Errorf("failed to get config details for RMN: %w", err) } + cs, err := r.GetPermaBlessedCommitStores(nil) + if err != nil { + return RMNView{}, err + } return RMNView{ - ContractMetaData: meta, - ConfigDetails: config, + ContractMetaData: meta, + ConfigDetails: config, + PermaBlessedCommitStores: cs, }, nil } diff --git a/deployment/ccip/view/v1_5/rmn_test.go b/deployment/ccip/view/v1_5/rmn_test.go index a87ef1c56d3..dda53ba5970 100644 --- a/deployment/ccip/view/v1_5/rmn_test.go +++ b/deployment/ccip/view/v1_5/rmn_test.go @@ -4,15 +4,16 @@ import ( "encoding/json" "testing" - "github.com/ethereum/go-ethereum/common" - chainsel "github.com/smartcontractkit/chain-selectors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/ethereum/go-ethereum/common" + chainsel "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink-ccip/chains/evm/gobindings/generated/v1_5_0/rmn_contract" "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink-deployments-framework/engine/test/environment" + "github.com/smartcontractkit/chainlink-evm/pkg/utils" ) func TestGenerateRMNView(t *testing.T) { @@ -45,17 +46,23 @@ func TestGenerateRMNView(t *testing.T) { BlessWeightThreshold: uint16(2), CurseWeightThreshold: uint16(1), } + permablessedStore := utils.RandomAddress() _, tx, c, err := rmn_contract.DeployRMNContract( chain.DeployerKey, chain.Client, cfg) require.NoError(t, err) _, err = chain.Confirm(tx) require.NoError(t, err) + tx, err = c.OwnerRemoveThenAddPermaBlessedCommitStores(chain.DeployerKey, []common.Address{}, []common.Address{permablessedStore}) + require.NoError(t, err) + _, err = chain.Confirm(tx) + require.NoError(t, err) v, err := GenerateRMNView(c) require.NoError(t, err) assert.Equal(t, v.Owner, chain.DeployerKey.From) assert.Equal(t, "RMN 1.5.0", v.TypeAndVersion) assert.Equal(t, uint32(1), v.ConfigDetails.Version) - assert.Equal(t, v.ConfigDetails.Config, cfg) + assert.Equal(t, cfg, v.ConfigDetails.Config) + assert.Equal(t, []common.Address{permablessedStore}, v.PermaBlessedCommitStores) _, err = json.MarshalIndent(v, "", " ") require.NoError(t, err) }