-
Notifications
You must be signed in to change notification settings - Fork 131
Add ArbitrumRetryTx type #12
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
Conversation
I think we need a couple associated changes:
|
re: serialization/deserialization, any transaction in a block needs to be (de)serialized, as geth needs to store the block. We also only need transaction types for things that actually make it into blocks and change state. |
case ArbitrumRetryTxType: | ||
return tx.inner.(*ArbitrumRetryTx).From, nil | ||
case ArbitrumSubmitRetryableTxType: | ||
return tx.inner.(*ArbitrumSubmitRetryableTx).From, 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.
I believe these cases should happen in the ArbitrumSigner, which we always instantiate on Arbitrum chains
} else if tx.Type() == ArbitrumSubmitRetryableTxType { | ||
h = tx.inner.(*ArbitrumSubmitRetryableTx).RequestId | ||
} else if tx.Type() == ArbitrumRetryTxType { | ||
h = tx.inner.(*ArbitrumRetryTx).RequestId |
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.
These seem a bit dangerous to override if we could avoid it, but I'm guessing using the request id as the hash really simplifies things?
@@ -170,7 +172,7 @@ func (tx *Transaction) UnmarshalBinary(b []byte) error { | |||
return nil | |||
} | |||
// It's an EIP2718 typed transaction envelope. | |||
inner, err := tx.decodeTyped(b, false) | |||
inner, err := tx.decodeTyped(b, true) |
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 think we want arb parsing here, as this function is called for external input, e.g. sendRawTransaction. We only want to accept normal transaction types there.
ChainId: new(big.Int), | ||
RequestId: tx.RequestId, | ||
DepositValue: tx.DepositValue, | ||
GasPrice: tx.GasPrice, |
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 believe all the big ints here should be new(big.Int)
like ChainId. As-is, I don't think it does a deep copy.
Closing this. It was superseded by other changes. |
Configures the genesis and network parameters of the protodanksharding devnet.
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
migrate override and gas changes (OffchainLabs#1) migrate memory compression (OffchainLabs#2) add more information for root trace (OffchainLabs#3) correct handle call with value (OffchainLabs#4) * correct handle call with value * set transfer value to zero if can't transfer Add Mapping keys to post account (OffchainLabs#5) fix when tracer failed before start (OffchainLabs#6) unlimited gas for debug_traceCallMany (OffchainLabs#7) support multiple txs in tracecallmany rpc client should keep result while return error be able to return partial results migrate tracer changes (OffchainLabs#8) export meq field (OffchainLabs#9) ignore init code size limit (OffchainLabs#10) code address field (OffchainLabs#11) minor fix (OffchainLabs#12) fix type compat (OffchainLabs#13) fix compability with arb fix storagerangeat emit output for revert (OffchainLabs#14)
Add Arbitrum tx types needed for retryables.