-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
integration-tests/smoke: add batching test #15292
Conversation
I see you updated files related to |
deployment/ccip/deploy.go
Outdated
} else { | ||
e.Logger.Infow("router already deployed", "addr", chainState.Router.Address) | ||
} | ||
if mc3 == nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to deploy mc3 always? Or should it have some conditional input?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the best way to condition it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use DeployCCIPContractConfig
to tell the deployer whether to deploy or not USDC-related contracts.
chainlink/deployment/ccip/deploy.go
Line 339 in 43f0ff1
if c.USDCConfig.Enabled { |
Not sure if it fits your case. Another way would be to deploy multicall explicitly on demand (using a separate function)
ccdeploy.DeployMultiCall(chainId)
bring down the numMessages to 5 again because exec is exceeding the max observation size
|
||
i = 0 | ||
var execStates []map[uint64]int | ||
outer3: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for i < len(sourceChains) {
select {
case outputErr := <-execErrs:
require.NoError(t, outputErr.err)
execStates = append(execStates, outputErr.output)
i++
case <-ctx.Done():
require.FailNow(t, "didn't get all exec reports before test context was done")
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That doesn't work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually that does work, just weirder :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested it before writing it :D. I know it works but why is it weirder? I think it's much clearer that way.
wg.Wait() | ||
|
||
var i int | ||
outer: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is duplicated 3 times, please add a function that takes the channel as an input
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think having the function here is not as good, there's a ton of vars to take in. Will have to think about how to refactor this to be prettier later
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's 3 variables
- testing.T
- errs channel
- sourceChains length
Much better IMO than current.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The chan types are all different unfortunately, there is chan error
, chan outputErr[CommitReport]
and chan outputErr[map[...]]
deployment/ccip/changeset/deploy.go
Outdated
} else { | ||
e.Logger.Infow("router already deployed", "addr", chainState.Router.Address) | ||
} | ||
if mc3 == nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO need to update this based on deployOpts here https://github.com/smartcontractkit/chainlink/pull/15349/files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. do you want to wait for the deployOpts ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving only the Solidity / gethwrapper part of this PR
Ticket: https://smartcontract-it.atlassian.net/browse/CCIP-4166
Context for CCIP onchain reviewers: We add the Multicall3 contract in tests/helpers so that we can use it to trigger multiple CCIP messages in a single tx in the test. Repo here: https://github.com/mds1/multicall
Requires
N/A
Supports
N/A