From 08f4a4a0c9c853956b81334d64d2690c4c5d4f69 Mon Sep 17 00:00:00 2001 From: Joe Huang Date: Tue, 28 Jan 2025 11:00:53 -0600 Subject: [PATCH] destexecdata decoder support + refactor (#15978) * destexecdata decoder support + refactor * update * downgrade version * update go mod * fix * update * update * mod * mod tidy * update * refactor * mod tidy * update * tidy * goimport * revert go mod * update * Revert "update" This reverts commit 6e3b4b7d0521fd8b40f283ad0ccfe45487af69f9. * revert * revert * revert * keep old func * fix --- .changeset/large-mice-drop.md | 5 ++++ .../ccip/ccipevm/extraargscodec.go | 16 ------------ .../ccip/common/extradatacodec.go | 26 +++++++++++++++++++ .../capabilities/ccip/oraclecreator/plugin.go | 5 ++-- .../smoke/ccip/ccip_reader_test.go | 9 ++++--- 5 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 .changeset/large-mice-drop.md delete mode 100644 core/capabilities/ccip/ccipevm/extraargscodec.go create mode 100644 core/capabilities/ccip/common/extradatacodec.go diff --git a/.changeset/large-mice-drop.md b/.changeset/large-mice-drop.md new file mode 100644 index 00000000000..9a371ab2349 --- /dev/null +++ b/.changeset/large-mice-drop.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +modify extradatacodec interface to support chain agnostic destExecdata map in ORC report message #added diff --git a/core/capabilities/ccip/ccipevm/extraargscodec.go b/core/capabilities/ccip/ccipevm/extraargscodec.go deleted file mode 100644 index 8cd8bda48f7..00000000000 --- a/core/capabilities/ccip/ccipevm/extraargscodec.go +++ /dev/null @@ -1,16 +0,0 @@ -package ccipevm - -import ( - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" -) - -type ExtraArgsCodec struct{} - -func NewExtraArgsCodec() ExtraArgsCodec { - return ExtraArgsCodec{} -} - -func (ExtraArgsCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { - // Not implemented and not return error - return nil, nil -} diff --git a/core/capabilities/ccip/common/extradatacodec.go b/core/capabilities/ccip/common/extradatacodec.go new file mode 100644 index 00000000000..58236b5b2b7 --- /dev/null +++ b/core/capabilities/ccip/common/extradatacodec.go @@ -0,0 +1,26 @@ +package common + +import ( + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" +) + +type ExtraDataCodec struct{} + +func NewExtraDataCodec() ExtraDataCodec { + return ExtraDataCodec{} +} + +func (c ExtraDataCodec) DecodeExtraData(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + // Not implemented and not return error + return nil, nil +} + +func (c ExtraDataCodec) DecodeExtraArgs(extraArgs cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + // Not implemented and not return error + return nil, nil +} + +func (c ExtraDataCodec) DecodeTokenAmountDestExecData(destExecData cciptypes.Bytes, sourceChainSelector cciptypes.ChainSelector) (map[string]any, error) { + // Not implemented and not return error + return nil, nil +} diff --git a/core/capabilities/ccip/oraclecreator/plugin.go b/core/capabilities/ccip/oraclecreator/plugin.go index a56ccf856f5..e19f07b3501 100644 --- a/core/capabilities/ccip/oraclecreator/plugin.go +++ b/core/capabilities/ccip/oraclecreator/plugin.go @@ -11,6 +11,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/google/uuid" "github.com/prometheus/client_golang/prometheus" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" chainsel "github.com/smartcontractkit/chain-selectors" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3confighelper" @@ -227,7 +228,7 @@ var plugins = map[string]plugin{ chainsel.FamilyEVM: { CommitPluginCodec: ccipevm.NewCommitPluginCodecV1(), ExecutePluginCodec: ccipevm.NewExecutePluginCodecV1(), - ExtraArgsCodec: ccipevm.ExtraArgsCodec{}, + ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return ccipevm.NewMessageHasherV1(lggr) }, TokenDataEncoder: ccipevm.NewEVMTokenDataEncoder(), GasEstimateProvider: ccipevm.NewGasEstimateProvider(), @@ -236,7 +237,7 @@ var plugins = map[string]plugin{ chainsel.FamilySolana: { CommitPluginCodec: nil, ExecutePluginCodec: nil, - ExtraArgsCodec: nil, + ExtraArgsCodec: ccipcommon.NewExtraDataCodec(), MessageHasher: func(lggr logger.Logger) cciptypes.MessageHasher { return nil }, TokenDataEncoder: nil, GasEstimateProvider: nil, diff --git a/integration-tests/smoke/ccip/ccip_reader_test.go b/integration-tests/smoke/ccip/ccip_reader_test.go index 10ead5d2e8a..9d1219a4a33 100644 --- a/integration-tests/smoke/ccip/ccip_reader_test.go +++ b/integration-tests/smoke/ccip/ccip_reader_test.go @@ -18,6 +18,8 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/zap/zapcore" + ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common" + "github.com/smartcontractkit/chainlink/deployment/ccip/changeset" "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers" "github.com/smartcontractkit/chainlink/deployment/environment/memory" @@ -33,7 +35,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" evmconfig "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/configs/evm" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/headtracker" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller" @@ -285,7 +286,7 @@ func TestCCIPReader_GetOffRampConfigDigest(t *testing.T) { nil, chainD, addr.Bytes(), - ccipevm.NewExtraArgsCodec(), + ccipcommon.NewExtraDataCodec(), ) ccipReaderCommitDigest, err := reader.GetOffRampConfigDigest(ctx, consts.PluginTypeCommit) @@ -1405,7 +1406,7 @@ func testSetupRealContracts( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := ccipcommon.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, cciptypes.ChainSelector(destChain), nil, edc) return reader @@ -1521,7 +1522,7 @@ func testSetup( contractReaders[chain] = cr } contractWriters := make(map[cciptypes.ChainSelector]types.ContractWriter) - edc := ccipevm.NewExtraArgsCodec() + edc := ccipcommon.NewExtraDataCodec() reader := ccipreaderpkg.NewCCIPReaderWithExtendedContractReaders(ctx, lggr, contractReaders, contractWriters, params.DestChain, nil, edc) t.Cleanup(func() {