Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
davidcauchi committed Jan 30, 2025
1 parent 680151e commit 8f74051
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 146 deletions.
232 changes: 90 additions & 142 deletions integration-tests/ccip-tests/actions/ccip_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -3480,38 +3480,7 @@ func (lane *CCIPLane) StartEventWatchers() error {
for {
select {
case e := <-sendReqEventLatest:
lane.Logger.Info().Msgf("CCIPSendRequested event received for seq number %d", e.Message.SequenceNumber)
eventsForTx, ok := lane.Source.CCIPSendRequestedWatcher.Load(e.Raw.TxHash.Hex())
if ok {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), append(eventsForTx.([]*contracts.SendReqEventData),
&contracts.SendReqEventData{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
}))
} else {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), []*contracts.SendReqEventData{
{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
},
})
}

lane.Source.CCIPSendRequestedWatcher = testutils.DeleteNilEntriesFromMap(lane.Source.CCIPSendRequestedWatcher)
processSendRequestedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand All @@ -3534,19 +3503,7 @@ func (lane *CCIPLane) StartEventWatchers() error {
for {
select {
case e := <-reportAcceptedEvent:
lane.Logger.Info().Interface("Interval", e.Report.Interval).Msgf("ReportAccepted event received")
for i := e.Report.Interval.Min; i <= e.Report.Interval.Max; i++ {
lane.Dest.ReportAcceptedWatcher.Store(i, &contracts.CommitStoreReportAccepted{
Min: e.Report.Interval.Min,
Max: e.Report.Interval.Max,
MerkleRoot: e.Report.MerkleRoot,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})
}
lane.Dest.ReportAcceptedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportAcceptedWatcher)
processReportAcceptedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand All @@ -3570,14 +3527,7 @@ func (lane *CCIPLane) StartEventWatchers() error {
for {
select {
case e := <-reportBlessedEvent:
lane.Logger.Info().Msgf("TaggedRootBlessed event received for root %x", e.TaggedRoot.Root)
if e.TaggedRoot.CommitStore == lane.Dest.CommitStore.EthAddress {
lane.Dest.ReportBlessedWatcher.Store(e.TaggedRoot.Root, &contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
})
}
lane.Dest.ReportBlessedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportBlessedWatcher)
processTaggedRootBlessedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand All @@ -3601,18 +3551,7 @@ func (lane *CCIPLane) StartEventWatchers() error {
for {
select {
case e := <-execStateChangedEventLatest:
lane.Logger.Info().Msgf("Execution state changed event received for seq number %d", e.SequenceNumber)
lane.Dest.ExecStateChangedWatcher.Store(e.SequenceNumber, &contracts.EVM2EVMOffRampExecutionStateChanged{
SequenceNumber: e.SequenceNumber,
MessageId: e.MessageId,
State: e.State,
ReturnData: e.ReturnData,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})
lane.Dest.ExecStateChangedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ExecStateChangedWatcher)
processExecutionStateChangedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand All @@ -3621,6 +3560,88 @@ func (lane *CCIPLane) StartEventWatchers() error {
return nil
}

func processSendRequestedEvent(lane *CCIPLane, e *evm_2_evm_onramp.EVM2EVMOnRampCCIPSendRequested) {
lane.Logger.Info().Msgf("CCIPSendRequested event received for seq number %d", e.Message.SequenceNumber)
eventsForTx, ok := lane.Source.CCIPSendRequestedWatcher.Load(e.Raw.TxHash.Hex())
if ok {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), append(eventsForTx.([]*contracts.SendReqEventData),
&contracts.SendReqEventData{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
}))
} else {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), []*contracts.SendReqEventData{
{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
},
})
}

lane.Source.CCIPSendRequestedWatcher = testutils.DeleteNilEntriesFromMap(lane.Source.CCIPSendRequestedWatcher)
}

func processReportAcceptedEvent(lane *CCIPLane, e *commit_store.CommitStoreReportAccepted) {
lane.Logger.Info().Interface("Interval", e.Report.Interval).Msgf("ReportAccepted event received")
for i := e.Report.Interval.Min; i <= e.Report.Interval.Max; i++ {
lane.Dest.ReportAcceptedWatcher.Store(i, &contracts.CommitStoreReportAccepted{
Min: e.Report.Interval.Min,
Max: e.Report.Interval.Max,
MerkleRoot: e.Report.MerkleRoot,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})
}

// Clean up nil entries
lane.Dest.ReportAcceptedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportAcceptedWatcher)
}

func processTaggedRootBlessedEvent(lane *CCIPLane, e *rmn_contract.RMNContractTaggedRootBlessed) {
// Process the event
lane.Logger.Info().Msgf("TaggedRootBlessed event received for root %x", e.TaggedRoot.Root)
if e.TaggedRoot.CommitStore == lane.Dest.CommitStore.EthAddress {
lane.Dest.ReportBlessedWatcher.Store(e.TaggedRoot.Root, &contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
})
}

// Clean up nil entries
lane.Dest.ReportBlessedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportBlessedWatcher)
}

func processExecutionStateChangedEvent(lane *CCIPLane, e *evm_2_evm_offramp.EVM2EVMOffRampExecutionStateChanged) {
lane.Logger.Info().Msgf("Execution state changed event received for seq number %d", e.SequenceNumber)
lane.Dest.ExecStateChangedWatcher.Store(e.SequenceNumber, &contracts.EVM2EVMOffRampExecutionStateChanged{
SequenceNumber: e.SequenceNumber,
MessageId: e.MessageId,
State: e.State,
ReturnData: e.ReturnData,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})
lane.Dest.ExecStateChangedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ExecStateChangedWatcher)
}

func (lane *CCIPLane) StartEventWatchersPolling(sc *sentinel.SentinelCoordinator) error {
lane.Logger.Info().Msg("Starting event watchers, Polling")
if lane.Source.Common.ChainClient.GetNetworkConfig().FinalityDepth == 0 {
Expand Down Expand Up @@ -3652,38 +3673,7 @@ func (lane *CCIPLane) StartEventWatchersPolling(sc *sentinel.SentinelCoordinator
}
typesLog, _ := sentinel.ConvertAPILogToTypesLog(event)
e, _ := lane.Source.OnRamp.Instance.Latest.EVM2EVMOnRampFilterer.ParseCCIPSendRequested(*typesLog)
lane.Logger.Info().Msgf("CCIPSendRequested event received for seq number %d", e.Message.SequenceNumber)
eventsForTx, ok := lane.Source.CCIPSendRequestedWatcher.Load(e.Raw.TxHash.Hex())
if ok {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), append(eventsForTx.([]*contracts.SendReqEventData),
&contracts.SendReqEventData{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
}))
} else {
lane.Source.CCIPSendRequestedWatcher.Store(e.Raw.TxHash.Hex(), []*contracts.SendReqEventData{
{
MessageId: e.Message.MessageId,
SequenceNumber: e.Message.SequenceNumber,
DataLength: len(e.Message.Data),
NoOfTokens: len(e.Message.TokenAmounts),
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
Fee: e.Message.FeeTokenAmount,
},
})
}

lane.Source.CCIPSendRequestedWatcher = testutils.DeleteNilEntriesFromMap(lane.Source.CCIPSendRequestedWatcher)
processSendRequestedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand Down Expand Up @@ -3722,23 +3712,7 @@ func (lane *CCIPLane) StartEventWatchersPolling(sc *sentinel.SentinelCoordinator
lane.Logger.Error().Err(err).Msg("error parsing ReportAccepted event")
continue
}

// Log and store the event
lane.Logger.Info().Interface("Interval", e.Report.Interval).Msgf("ReportAccepted event received")
for i := e.Report.Interval.Min; i <= e.Report.Interval.Max; i++ {
lane.Dest.ReportAcceptedWatcher.Store(i, &contracts.CommitStoreReportAccepted{
Min: e.Report.Interval.Min,
Max: e.Report.Interval.Max,
MerkleRoot: e.Report.MerkleRoot,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})
}

// Clean up nil entries
lane.Dest.ReportAcceptedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportAcceptedWatcher)
processReportAcceptedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand Down Expand Up @@ -3780,18 +3754,7 @@ func (lane *CCIPLane) StartEventWatchersPolling(sc *sentinel.SentinelCoordinator
lane.Logger.Error().Err(err).Msg("error parsing TaggedRootBlessed event")
continue
}

// Process the event
lane.Logger.Info().Msgf("TaggedRootBlessed event received for root %x", e.TaggedRoot.Root)
if e.TaggedRoot.CommitStore == lane.Dest.CommitStore.EthAddress {
lane.Dest.ReportBlessedWatcher.Store(e.TaggedRoot.Root, &contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
})
}

// Clean up nil entries
lane.Dest.ReportBlessedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ReportBlessedWatcher)
processTaggedRootBlessedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand Down Expand Up @@ -3832,22 +3795,7 @@ func (lane *CCIPLane) StartEventWatchersPolling(sc *sentinel.SentinelCoordinator
lane.Logger.Error().Err(err).Msg("error parsing ExecutionStateChanged event")
continue
}

// Process the event
lane.Logger.Info().Msgf("Execution state changed event received for seq number %d", e.SequenceNumber)
lane.Dest.ExecStateChangedWatcher.Store(e.SequenceNumber, &contracts.EVM2EVMOffRampExecutionStateChanged{
SequenceNumber: e.SequenceNumber,
MessageId: e.MessageId,
State: e.State,
ReturnData: e.ReturnData,
LogInfo: contracts.LogInfo{
BlockNumber: e.Raw.BlockNumber,
TxHash: e.Raw.TxHash,
},
})

// Clean up nil entries
lane.Dest.ExecStateChangedWatcher = testutils.DeleteNilEntriesFromMap(lane.Dest.ExecStateChangedWatcher)
processExecutionStateChangedEvent(lane, e)
case <-lane.Context.Done():
return
}
Expand Down
14 changes: 14 additions & 0 deletions integration-tests/ccip-tests/contracts/contract_models.go
Original file line number Diff line number Diff line change
Expand Up @@ -1442,6 +1442,20 @@ func (r *Router) SetOnRamp(chainSelector uint64, onRamp common.Address) error {

func (r *Router) CCIPSend(destChainSelector uint64, msg router.ClientEVM2AnyMessage, valueForNative *big.Int) (*types.Transaction, error) {
opts, err := r.client.TransactionOpts(r.client.GetDefaultWallet())
//print out opts
r.logger.Info().
Str("from", opts.From.Hex()).
Str("nonce", fmt.Sprintf("%v", opts.Nonce)).
Str("value", fmt.Sprintf("%v", opts.Value)).
Str("gasPrice", fmt.Sprintf("%v", opts.GasPrice)).
Str("gasFeeCap", fmt.Sprintf("%v", opts.GasFeeCap)).
Str("gasTipCap", fmt.Sprintf("%v", opts.GasTipCap)).
Uint64("gasLimit", opts.GasLimit).
Str("accessList", fmt.Sprintf("%v", opts.AccessList)).
Str("context", fmt.Sprintf("%v", opts.Context)).
Bool("noSend", opts.NoSend).
Msg("TransactOpts")

if err != nil {
return nil, fmt.Errorf("error getting transaction opts: %w", err)
}
Expand Down
9 changes: 9 additions & 0 deletions integration-tests/ccip-tests/testconfig/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,15 @@ Example usage:

```toml
[CCIP.Env.Logging]
test_log_collect = false # if set to true will save logs even if test did not fail

[CCIP.Env.Logging.LogStream]
# supported targets: file, loki, in-memory. if empty no logs will be persistet
log_targets = ["file"]
# context timeout for starting log producer and also time-frame for requesting logs
log_producer_timeout = "10s"
# number of retries before log producer gives up and stops listening to logs
log_producer_retry_limit = 10

[CCIP.Env.Logging.Loki]
tenant_id = "..."
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/ccip-tests/testsetups/ccip.go
Original file line number Diff line number Diff line change
Expand Up @@ -1281,7 +1281,7 @@ func (o *CCIPTestSetUpOutputs) addChains() {
for _, lane := range o.ReadLanes() {
// Add both forward and reverse lanes
o.addChainToSentinel(lane.ForwardLane.SourceChain)
o.addChainToSentinel(lane.ReverseLane.SourceChain)
o.addChainToSentinel(lane.ForwardLane.DestChain)
}
}

Expand Down
3 changes: 2 additions & 1 deletion integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,9 @@ require (
github.com/smartcontractkit/chainlink-protos/job-distributor v0.6.0
github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7
github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.21
github.com/smartcontractkit/chainlink-testing-framework/lib v1.51.0
github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0
github.com/smartcontractkit/chainlink-testing-framework/sentinel v0.1.2
github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.10
github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2
github.com/smartcontractkit/libocr v0.0.0-20241223215956-e5b78d8e3919
Expand Down
6 changes: 4 additions & 2 deletions integration-tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1452,10 +1452,12 @@ github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7 h1:E7k5
github.com/smartcontractkit/chainlink-testing-framework/framework v0.4.7/go.mod h1:WYxCxAWpeXEHfhB0GaiV2sj21Ooh9r/Nf7tzmJgAibs=
github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE=
github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2/go.mod h1:DsT43c1oTBmp3iQkMcoZOoKThwZvt8X3Pz6UmznJ4GY=
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.21 h1:1UYLu0QApJc4EvFDiLy5goCim6RIB2/xvJRFF1qFwLk=
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.21/go.mod h1:y6pVvAT/R+YGocAqoQIat+AEaZz2Jdmj/0uUBmwvLCU=
github.com/smartcontractkit/chainlink-testing-framework/lib v1.51.0 h1:z7t2OhfE32KK4r5Nt3U0hOnbRwOwIbJs8i7kqKvjAA0=
github.com/smartcontractkit/chainlink-testing-framework/lib v1.51.0/go.mod h1:y6pVvAT/R+YGocAqoQIat+AEaZz2Jdmj/0uUBmwvLCU=
github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 h1:VIxK8u0Jd0Q/VuhmsNm6Bls6Tb31H/sA3A/rbc5hnhg=
github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0/go.mod h1:lyAu+oMXdNUzEDScj2DXB2IueY+SDXPPfyl/kb63tMM=
github.com/smartcontractkit/chainlink-testing-framework/sentinel v0.1.2 h1:ihRlWrii5nr4RUuMu1hStTbwFvVuHUDoQQwXmCU5IdQ=
github.com/smartcontractkit/chainlink-testing-framework/sentinel v0.1.2/go.mod h1:J1Za5EuI/vWDsQSIh6qbPXlVvuEhmHmnvLQBN0XVxqA=
github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.10 h1:Yf+n3T/fnUWcYyfe7bsygV4sWAkNo0QhN58APJFIKIc=
github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.10/go.mod h1:05duR85P8YHuIfIkA7sn2bvrhKo/pDpFKV2rliYHNOo=
github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 h1:7bCdbTUWzyczQg+kwHCxlx6y07zE8HNB8+ntTne6qd8=
Expand Down

0 comments on commit 8f74051

Please sign in to comment.