fix signature validation logic.
This commit is contained in:
parent
64afdfc642
commit
9017e5de52
@ -58,10 +58,12 @@ type EthTxArgs struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewEthTxArgsFromMessage(msg *types.Message) (EthTxArgs, error) {
|
func NewEthTxArgsFromMessage(msg *types.Message) (EthTxArgs, error) {
|
||||||
var to *EthAddress
|
var (
|
||||||
var decodedParams []byte
|
to *EthAddress
|
||||||
var isCreate bool
|
decodedParams []byte
|
||||||
paramsReader := bytes.NewReader(msg.Params)
|
paramsReader = bytes.NewReader(msg.Params)
|
||||||
|
)
|
||||||
|
|
||||||
if msg.To == builtintypes.EthereumAddressManagerActorAddr {
|
if msg.To == builtintypes.EthereumAddressManagerActorAddr {
|
||||||
switch msg.Method {
|
switch msg.Method {
|
||||||
case builtintypes.MethodsEAM.Create:
|
case builtintypes.MethodsEAM.Create:
|
||||||
@ -70,28 +72,30 @@ func NewEthTxArgsFromMessage(msg *types.Message) (EthTxArgs, error) {
|
|||||||
return EthTxArgs{}, err
|
return EthTxArgs{}, err
|
||||||
}
|
}
|
||||||
decodedParams = create.Initcode
|
decodedParams = create.Initcode
|
||||||
isCreate = true
|
|
||||||
case builtintypes.MethodsEAM.Create2:
|
case builtintypes.MethodsEAM.Create2:
|
||||||
var create2 eam.Create2Params
|
var create2 eam.Create2Params
|
||||||
if err := create2.UnmarshalCBOR(paramsReader); err != nil {
|
if err := create2.UnmarshalCBOR(paramsReader); err != nil {
|
||||||
return EthTxArgs{}, err
|
return EthTxArgs{}, err
|
||||||
}
|
}
|
||||||
decodedParams = create2.Initcode
|
decodedParams = create2.Initcode
|
||||||
isCreate = true
|
default:
|
||||||
|
return EthTxArgs{}, fmt.Errorf("unsupported EAM method")
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
if isCreate {
|
|
||||||
addr, err := EthAddressFromFilecoinAddress(msg.To)
|
addr, err := EthAddressFromFilecoinAddress(msg.To)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return EthTxArgs{}, nil
|
return EthTxArgs{}, err
|
||||||
}
|
}
|
||||||
to = &addr
|
to = &addr
|
||||||
|
|
||||||
|
if len(msg.Params) > 0 {
|
||||||
params, err := cbg.ReadByteArray(paramsReader, uint64(len(msg.Params)))
|
params, err := cbg.ReadByteArray(paramsReader, uint64(len(msg.Params)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return EthTxArgs{}, err
|
return EthTxArgs{}, err
|
||||||
}
|
}
|
||||||
decodedParams = params
|
decodedParams = params
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return EthTxArgs{
|
return EthTxArgs{
|
||||||
ChainID: build.Eip155ChainId,
|
ChainID: build.Eip155ChainId,
|
||||||
|
Loading…
Reference in New Issue
Block a user