forked from cerc-io/plugeth
signer/core/apitypes: remove dependency on internal/ethapi (#23362)
This commit is contained in:
parent
d02c605367
commit
bb1f7ebf20
@ -19,12 +19,12 @@ package apitypes
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/big"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/internal/ethapi"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ValidationInfo struct {
|
type ValidationInfo struct {
|
||||||
@ -97,23 +97,60 @@ func (args SendTxArgs) String() string {
|
|||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ToTransaction converts the arguments to a transaction.
|
||||||
func (args *SendTxArgs) ToTransaction() *types.Transaction {
|
func (args *SendTxArgs) ToTransaction() *types.Transaction {
|
||||||
txArgs := ethapi.TransactionArgs{
|
|
||||||
Gas: &args.Gas,
|
|
||||||
GasPrice: args.GasPrice,
|
|
||||||
MaxFeePerGas: args.MaxFeePerGas,
|
|
||||||
MaxPriorityFeePerGas: args.MaxPriorityFeePerGas,
|
|
||||||
Value: &args.Value,
|
|
||||||
Nonce: &args.Nonce,
|
|
||||||
Data: args.Data,
|
|
||||||
Input: args.Input,
|
|
||||||
AccessList: args.AccessList,
|
|
||||||
ChainID: args.ChainID,
|
|
||||||
}
|
|
||||||
// Add the To-field, if specified
|
// Add the To-field, if specified
|
||||||
|
var to *common.Address
|
||||||
if args.To != nil {
|
if args.To != nil {
|
||||||
to := args.To.Address()
|
dstAddr := args.To.Address()
|
||||||
txArgs.To = &to
|
to = &dstAddr
|
||||||
}
|
}
|
||||||
return txArgs.ToTransaction()
|
|
||||||
|
var input []byte
|
||||||
|
if args.Input != nil {
|
||||||
|
input = *args.Input
|
||||||
|
} else if args.Data != nil {
|
||||||
|
input = *args.Data
|
||||||
|
}
|
||||||
|
|
||||||
|
var data types.TxData
|
||||||
|
switch {
|
||||||
|
case args.MaxFeePerGas != nil:
|
||||||
|
al := types.AccessList{}
|
||||||
|
if args.AccessList != nil {
|
||||||
|
al = *args.AccessList
|
||||||
|
}
|
||||||
|
data = &types.DynamicFeeTx{
|
||||||
|
To: to,
|
||||||
|
ChainID: (*big.Int)(args.ChainID),
|
||||||
|
Nonce: uint64(args.Nonce),
|
||||||
|
Gas: uint64(args.Gas),
|
||||||
|
GasFeeCap: (*big.Int)(args.MaxFeePerGas),
|
||||||
|
GasTipCap: (*big.Int)(args.MaxPriorityFeePerGas),
|
||||||
|
Value: (*big.Int)(&args.Value),
|
||||||
|
Data: input,
|
||||||
|
AccessList: al,
|
||||||
|
}
|
||||||
|
case args.AccessList != nil:
|
||||||
|
data = &types.AccessListTx{
|
||||||
|
To: to,
|
||||||
|
ChainID: (*big.Int)(args.ChainID),
|
||||||
|
Nonce: uint64(args.Nonce),
|
||||||
|
Gas: uint64(args.Gas),
|
||||||
|
GasPrice: (*big.Int)(args.GasPrice),
|
||||||
|
Value: (*big.Int)(&args.Value),
|
||||||
|
Data: input,
|
||||||
|
AccessList: *args.AccessList,
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
data = &types.LegacyTx{
|
||||||
|
To: to,
|
||||||
|
Nonce: uint64(args.Nonce),
|
||||||
|
Gas: uint64(args.Gas),
|
||||||
|
GasPrice: (*big.Int)(args.GasPrice),
|
||||||
|
Value: (*big.Int)(&args.Value),
|
||||||
|
Data: input,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return types.NewTx(data)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user