-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Change default transaction encoding to be RLP in order to support value field #496
Description
Is your feature request related to a problem? Please describe.
We currently do not have the ability to send a value with our transactions. This was due to a custom encoding format which we implemented which didn't have a value field -- that's dumb! Additionally, supporting a custom tx format is annoying for staying 1:1 with eth1.x, especially with the introduction of transaction envelopes.
Once we've added support for RLP transactions we will be in a much better place with our transaction ingestion logic.
Describe the solution you'd like
Pretty much blocked by #495
TODO
- Update
SequencerEntrypointto decode RLP transactions instead of custom encoding. - Update batch submitter to operate on raw transactions
- Change
core-utils(maybedata-transport-layeras well) to use the new RLP encoding format - Update
l2gethto encode using RLP, not our custom format.
In Depth
Contracts
Implementation: https://github.com/ethereum-optimism/contracts/pull/300/files
Finish and merge this PR.
Batch Submitter
Implementation: ethereum-optimism/batch-submitter#56
Finish and merge this PR.
core-utils
Update the encoding which we use here: https://github.com/ethereum-optimism/optimism/blob/master/packages/core-utils/src/coders/ecdsa-coder.ts#L54
Rename this encoding to EIP155Transaction because right now it's a weird name "ECDSA transaction" which is not descriptive.
data transport layer
Re-integrate: https://github.com/ethereum-optimism/data-transport-layer/pull/72
All contain references to old types. We've got to update these.
l2geth
Remove:
optimism/l2geth/internal/ethapi/api.go
Line 1747 in 41cfbd1
func (s *PublicTransactionPoolAPI) SendRawEthSignTransaction(ctx context.Context, encodedTx hexutil.Bytes) (common.Hash, error) {
Update:
optimism/l2geth/rollup/sync_service.go
Line 711 in 41cfbd1
func getRawTransaction(tx *types.Transaction) ([]byte, error) { optimism/l2geth/rollup/client.go
Line 105 in 7e9ca1e
type decoded struct {