From 74da593fe36fb6698f72a8a365481ea551f12e61 Mon Sep 17 00:00:00 2001 From: Silas Lenihan Date: Tue, 25 Feb 2025 15:34:46 -0500 Subject: [PATCH] refactored argstransforms --- pkg/solana/chainwriter/transform_registry.go | 12 +++++++----- pkg/solana/chainwriter/transform_registry_test.go | 14 +++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/pkg/solana/chainwriter/transform_registry.go b/pkg/solana/chainwriter/transform_registry.go index 3b13e37a7..bb32e9740 100644 --- a/pkg/solana/chainwriter/transform_registry.go +++ b/pkg/solana/chainwriter/transform_registry.go @@ -7,8 +7,10 @@ import ( "github.com/gagliardetto/solana-go" "github.com/mitchellh/mapstructure" - "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + txmutils "github.com/smartcontractkit/chainlink-solana/pkg/solana/txm/utils" + + "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" ) type ReportPostTransform struct { @@ -24,9 +26,9 @@ const staticCuOverhead = 1000 func FindTransform(id string) (func(context.Context, any, solana.AccountMetaSlice, map[string]map[string][]*solana.AccountMeta) (any, solana.AccountMetaSlice, []txmutils.SetTxConfig, error), error) { switch id { case "CCIPExecute": - return CCIPExecuteArgsTransform, nil + return CCIPExecuteTransform, nil case "CCIPCommit": - return CCIPCommitAccountTransform, nil + return CCIPCommitTransform, nil default: return nil, fmt.Errorf("transform not found") } @@ -34,7 +36,7 @@ func FindTransform(id string) (func(context.Context, any, solana.AccountMetaSlic // This Transform function looks up the token pool addresses in the accounts slice and augments the args // with the indexes of the token pool addresses in the accounts slice. -func CCIPExecuteArgsTransform(ctx context.Context, args any, accounts solana.AccountMetaSlice, tableMap map[string]map[string][]*solana.AccountMeta) (any, solana.AccountMetaSlice, []txmutils.SetTxConfig, error) { +func CCIPExecuteTransform(ctx context.Context, args any, accounts solana.AccountMetaSlice, tableMap map[string]map[string][]*solana.AccountMeta) (any, solana.AccountMetaSlice, []txmutils.SetTxConfig, error) { var argsTransformed ReportPostTransform err := mapstructure.Decode(args, &argsTransformed) if err != nil { @@ -99,7 +101,7 @@ func CCIPExecuteArgsTransform(ctx context.Context, args any, accounts solana.Acc } // This Transform function trims off the GlobalState account from commit transactions if there are no token or gas price updates -func CCIPCommitAccountTransform(ctx context.Context, args any, accounts solana.AccountMetaSlice, _ map[string]map[string][]*solana.AccountMeta) (any, solana.AccountMetaSlice, []txmutils.SetTxConfig, error) { +func CCIPCommitTransform(ctx context.Context, args any, accounts solana.AccountMetaSlice, _ map[string]map[string][]*solana.AccountMeta) (any, solana.AccountMetaSlice, []txmutils.SetTxConfig, error) { var tokenPriceVals, gasPriceVals [][]byte var err error tokenPriceVals, err = GetValuesAtLocation(args, "Info.TokenPrices.TokenID") diff --git a/pkg/solana/chainwriter/transform_registry_test.go b/pkg/solana/chainwriter/transform_registry_test.go index 25e2c0d06..9d9eac733 100644 --- a/pkg/solana/chainwriter/transform_registry_test.go +++ b/pkg/solana/chainwriter/transform_registry_test.go @@ -56,7 +56,7 @@ func Test_CCIPExecuteArgsTransform(t *testing.T) { } tableMap["PoolLookupTable"][lookupTablePubkey.String()] = poolKeysMeta - transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteArgsTransform(ctx, args, accounts, tableMap) + transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteTransform(ctx, args, accounts, tableMap) require.NoError(t, err) verifyTxOpts(t, options, true) @@ -70,7 +70,7 @@ func Test_CCIPExecuteArgsTransform(t *testing.T) { }) t.Run("CCIPExecute ArgsTransform includes empty token indexes if lookup table not found", func(t *testing.T) { - transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteArgsTransform(ctx, args, accounts, nil) + transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteTransform(ctx, args, accounts, nil) require.NoError(t, err) verifyTxOpts(t, options, true) @@ -105,7 +105,7 @@ func Test_CCIPExecuteArgsTransform(t *testing.T) { }}, }, } - transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteArgsTransform(ctx, args, accounts, nil) + transformedArgs, newAccounts, options, err := chainwriter.CCIPExecuteTransform(ctx, args, accounts, nil) require.NoError(t, err) verifyTxOpts(t, options, true) @@ -124,7 +124,7 @@ func Test_CCIPExecuteArgsTransform(t *testing.T) { Report: []uint8{}, Info: ccipocr3.ExecuteReportInfo{}, } - _, _, _, err := chainwriter.CCIPExecuteArgsTransform(ctx, args, accounts, nil) + _, _, _, err := chainwriter.CCIPExecuteTransform(ctx, args, accounts, nil) require.Contains(t, err.Error(), "Expected 1 report with 1 message") }) @@ -140,7 +140,7 @@ func Test_CCIPExecuteArgsTransform(t *testing.T) { AbstractReports: []ccipocr3.ExecutePluginReportSingleChain{{}, {}}, }, } - _, _, _, err := chainwriter.CCIPExecuteArgsTransform(ctx, args, accounts, nil) + _, _, _, err := chainwriter.CCIPExecuteTransform(ctx, args, accounts, nil) require.Contains(t, err.Error(), "Expected 1 report with 1 message") }) } @@ -158,7 +158,7 @@ func Test_CCIPCommitAccountTransform(t *testing.T) { }, } accounts := []*solana.AccountMeta{{PublicKey: key1}, {PublicKey: key2}} - _, newAccounts, options, err := chainwriter.CCIPCommitAccountTransform(ctx, args, accounts, nil) + _, newAccounts, options, err := chainwriter.CCIPCommitTransform(ctx, args, accounts, nil) verifyTxOpts(t, options, false) require.NoError(t, err) require.Len(t, newAccounts, 2) @@ -170,7 +170,7 @@ func Test_CCIPCommitAccountTransform(t *testing.T) { Info: ccipocr3.CommitReportInfo{}, } accounts := []*solana.AccountMeta{{PublicKey: key1}, {PublicKey: key2}} - _, newAccounts, options, err := chainwriter.CCIPCommitAccountTransform(ctx, args, accounts, nil) + _, newAccounts, options, err := chainwriter.CCIPCommitTransform(ctx, args, accounts, nil) verifyTxOpts(t, options, false) require.NoError(t, err)