forked from cerc-io/plugeth
tests: use 'sender' in state tests if present (#28023)
A while back, statetests started coming with sender baked in, which at least evmone makes use of. Let's make use of that too, and save some cycles.
This commit is contained in:
parent
fe24d22a62
commit
b8adb4cb0c
@ -27,6 +27,7 @@ func (s stTransaction) MarshalJSON() ([]byte, error) {
|
||||
GasLimit []math.HexOrDecimal64 `json:"gasLimit"`
|
||||
Value []string `json:"value"`
|
||||
PrivateKey hexutil.Bytes `json:"secretKey"`
|
||||
Sender *common.Address `json:"sender"`
|
||||
BlobVersionedHashes []common.Hash `json:"blobVersionedHashes,omitempty"`
|
||||
BlobGasFeeCap *math.HexOrDecimal256 `json:"maxFeePerBlobGas,omitempty"`
|
||||
}
|
||||
@ -46,6 +47,7 @@ func (s stTransaction) MarshalJSON() ([]byte, error) {
|
||||
}
|
||||
enc.Value = s.Value
|
||||
enc.PrivateKey = s.PrivateKey
|
||||
enc.Sender = s.Sender
|
||||
enc.BlobVersionedHashes = s.BlobVersionedHashes
|
||||
enc.BlobGasFeeCap = (*math.HexOrDecimal256)(s.BlobGasFeeCap)
|
||||
return json.Marshal(&enc)
|
||||
@ -64,6 +66,7 @@ func (s *stTransaction) UnmarshalJSON(input []byte) error {
|
||||
GasLimit []math.HexOrDecimal64 `json:"gasLimit"`
|
||||
Value []string `json:"value"`
|
||||
PrivateKey *hexutil.Bytes `json:"secretKey"`
|
||||
Sender *common.Address `json:"sender"`
|
||||
BlobVersionedHashes []common.Hash `json:"blobVersionedHashes,omitempty"`
|
||||
BlobGasFeeCap *math.HexOrDecimal256 `json:"maxFeePerBlobGas,omitempty"`
|
||||
}
|
||||
@ -104,6 +107,9 @@ func (s *stTransaction) UnmarshalJSON(input []byte) error {
|
||||
if dec.PrivateKey != nil {
|
||||
s.PrivateKey = *dec.PrivateKey
|
||||
}
|
||||
if dec.Sender != nil {
|
||||
s.Sender = dec.Sender
|
||||
}
|
||||
if dec.BlobVersionedHashes != nil {
|
||||
s.BlobVersionedHashes = dec.BlobVersionedHashes
|
||||
}
|
||||
|
@ -115,6 +115,7 @@ type stTransaction struct {
|
||||
GasLimit []uint64 `json:"gasLimit"`
|
||||
Value []string `json:"value"`
|
||||
PrivateKey []byte `json:"secretKey"`
|
||||
Sender *common.Address `json:"sender"`
|
||||
BlobVersionedHashes []common.Hash `json:"blobVersionedHashes,omitempty"`
|
||||
BlobGasFeeCap *big.Int `json:"maxFeePerBlobGas,omitempty"`
|
||||
}
|
||||
@ -359,9 +360,12 @@ func (t *StateTest) genesis(config *params.ChainConfig) *core.Genesis {
|
||||
}
|
||||
|
||||
func (tx *stTransaction) toMessage(ps stPostState, baseFee *big.Int) (*core.Message, error) {
|
||||
// Derive sender from private key if present.
|
||||
var from common.Address
|
||||
if len(tx.PrivateKey) > 0 {
|
||||
// If 'sender' field is present, use that
|
||||
if tx.Sender != nil {
|
||||
from = *tx.Sender
|
||||
} else if len(tx.PrivateKey) > 0 {
|
||||
// Derive sender from private key if needed.
|
||||
key, err := crypto.ToECDSA(tx.PrivateKey)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid private key: %v", err)
|
||||
|
Loading…
Reference in New Issue
Block a user