-
Notifications
You must be signed in to change notification settings - Fork 20k
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
eth/tracers/js: add coinbase addr to ctx #30231
Conversation
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
@lightclient what is required for this PR to be merged? |
Since it is a change to tracing, I would prefer to get an approval from @s1na before merging. |
@s1na would you be able to review this before merging? |
@@ -154,6 +154,9 @@ func TestTracer(t *testing.T) { | |||
want: "", | |||
fail: "reached limit for padding memory slice: 1049568 at step (<eval>:1:83(20)) in server-side tracer function 'step'", | |||
contract: []byte{byte(vm.PUSH1), byte(0xff), byte(vm.PUSH1), byte(0x00), byte(vm.MSTORE8), byte(vm.STOP)}, | |||
}, { // tests ctx.coinbase | |||
code: "{lengths: [], step: function(log) { }, fault: function() {}, result: function(ctx) { var coinbase = ctx.coinbase; return toAddress(coinbase); }}", | |||
want: `{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0}`, |
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 don't get it. What is this mapping? How does this correspond to return toAddress(coinbase);
?
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 mapping seems to be "string index" -> decimal value of byte at index. It's weird. But that's how the other tracer tests work.
It maps to the default coinbase of 0x0
. We could change it to a non-zero value, but I don't see much benefit. If this PR isn't working correctly, it will return nothing (bc no ctx value for coinbase).
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
Add coinbase address to javascript tracer context.
This PR adds the
coinbase
address tojsTracer.ctx
, allowing access to the coinbase address (fee receipient) in custom JavaScript tracers.Example usage:
This change enables custom tracers to access coinbase address, previously unavailable, enhancing their capabilities to match built-in tracers.