-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Support for returnData in simulate transaction #26499
Conversation
if (mockServer) { | ||
it('returnData on simulateTransaction', async () => { | ||
const tx = new Transaction(); | ||
tx.feePayer = Keypair.generate().publicKey; |
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.
@joncinque It's worth noting that this will only work with a funded feePayer, which makes simulation somewhat problematic for second-order return-data apis. That doesn't need to hold up anything here, but just something to think about for usage and documentation purposes.
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.
Yeah true, I was thinking we could at least support it in its current state and improve on it later. Just to be totally clear, when you say "that doesn't need to hold up anything here", do you mean that you're ok with the approach?
Also, did we ever come up with a model for simulating transactions without a funded fee payer?
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.
Yep, I’m fine with this approach.
No, we haven’t designed implemented a way to bypass fee-payer check in simulation
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.
Great job -- looks really close! Mainly some small things to clean up, then we can merge this
Codecov Report
@@ Coverage Diff @@
## master #26499 +/- ##
===========================================
- Coverage 81.9% 77.4% -4.5%
===========================================
Files 631 40 -591
Lines 174252 2370 -171882
Branches 0 343 +343
===========================================
- Hits 142728 1836 -140892
+ Misses 31524 406 -31118
- Partials 0 128 +128 |
a283c34
to
b0af607
Compare
b0af607
to
156affc
Compare
nullable( | ||
pick({ | ||
programId: string(), | ||
data: tuple([string(), literal('base64')]), |
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.
need to hard code base64
here since TransactionReturnDataEncoding
is a type and was giving error, don't know if there is any way to avoid this.
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 can eventually use some other type, but no problem with doing that here
Looks great, thanks for the contribution! |
feat(web3.js): add Support for returnData in simulate transaction
The PR adds --
1). support for
returnData
toSimulatedTransactionResponse
with a unit test.2). return test data in
noop program
to read the data back from thereturnData
field in the response.3). live test with test-validator, simulating transaction on
noop program
to read thereturnData
.cc: @joncinque