Skip to content

Commit

Permalink
Merge pull request #17 from Zondax/fix/wrong-cbor-unmarshalling
Browse files Browse the repository at this point in the history
fix: some methods parsing
  • Loading branch information
JulianToledano authored Mar 22, 2023
2 parents c5d4478 + 3a2728a commit 5b2415f
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 5 deletions.
4 changes: 3 additions & 1 deletion parser/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ const (
MethodSubmitPoRepForBulkVerify = "SubmitPoRepForBulkVerify" // MethodsPower
MethodCurrentTotalPower = "CurrentTotalPower" // MethodsPower
MethodUpdatePledgeTotal = "UpdatePledgeTotal" // MethodsPower
MethodDeprecated1 = "Deprecated1" // MethodsPower
MethodPowerDeprecated1 = "Deprecated1" // MethodsPower - OnConsensusFault
MethodOnDeferredCronEvent = "OnDeferredCronEvent" // MethodsMiner
MethodPreCommitSector = "PreCommitSector" // MethodsMiner
MethodProveCommitSector = "ProveCommitSector" // MethodsMiner
Expand Down Expand Up @@ -91,6 +91,8 @@ const (
MethodRestoreBytes = "RestoreBytes" // MethodsVerifiedRegistry
MethodRemoveExpiredAllocations = "RemoveExpiredAllocations" // MethodsVerifiedRegistry
MethodRemoveVerifiedClientDataCap = "RemoveVerifiedClientDataCap" // MethodsVerifiedRegistry
MethodVerifiedDeprecated1 = "Deprecated1" // MethodsVerifiedRegistry - UseBytes
MethodVerifiedDeprecated2 = "Deprecated2" // MethodsVerifiedRegistry - RestoreBytes
MethodInvokeContract = "InvokeContract" // MethodsEVM
MethodGetBytecode = "GetBytecode" // MethodsEVM
MethodGetStorageAt = "GetStorageAt" // MethodsEVM
Expand Down
18 changes: 16 additions & 2 deletions parser/power.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package parser

import (
"bytes"
"github.com/filecoin-project/go-state-types/abi"

filTypes "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/specs-actors/actors/builtin/power"
Expand All @@ -22,8 +23,9 @@ func (p *Parser) parseStoragepower(txType string, msg *filTypes.Message, msgRct
case MethodEnrollCronEvent:
return p.enrollCronEvent(msg.Params)
case MethodCronTick:
case MethodUpdatePledgeTotal: // TODO
case MethodDeprecated1:
case MethodUpdatePledgeTotal:
return p.updatePledgeTotal(msg.Params)
case MethodPowerDeprecated1: // OnConsensusFault
case MethodSubmitPoRepForBulkVerify:
return p.submitPoRepForBulkVerify(msg.Params)
case MethodCurrentTotalPower:
Expand Down Expand Up @@ -113,3 +115,15 @@ func (p *Parser) updateClaimedPower(raw []byte) (map[string]interface{}, error)
metadata[ParamsKey] = params
return metadata, nil
}

func (p *Parser) updatePledgeTotal(raw []byte) (map[string]interface{}, error) {
metadata := make(map[string]interface{})
reader := bytes.NewReader(raw)
var params abi.TokenAmount
err := params.UnmarshalCBOR(reader)
if err != nil {
return metadata, err
}
metadata[ParamsKey] = params
return metadata, nil
}
3 changes: 2 additions & 1 deletion parser/reward.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package parser
import (
"bytes"

"github.com/filecoin-project/go-state-types/abi"
filTypes "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/specs-actors/actors/builtin/reward"
)
Expand Down Expand Up @@ -38,7 +39,7 @@ func (p *Parser) awardBlockReward(raw []byte) (map[string]interface{}, error) {
func (p *Parser) updateNerworkKpi(raw []byte) (map[string]interface{}, error) {
metadata := make(map[string]interface{})
reader := bytes.NewReader(raw)
var blockRewards reward.State
var blockRewards abi.StoragePower
err := blockRewards.UnmarshalCBOR(reader)
if err != nil {
return metadata, err
Expand Down
29 changes: 28 additions & 1 deletion parser/verifiedRegistry.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package parser

import (
"bytes"

"github.com/filecoin-project/go-state-types/builtin/v10/verifreg"
filTypes "github.com/filecoin-project/lotus/chain/types"
)
Expand All @@ -26,6 +25,10 @@ func (p *Parser) parseVerifiedRegistry(txType string, msg *filTypes.Message, msg
return p.removeVerifiedClientDataCap(msg.Params)
case MethodRemoveExpiredAllocations:
return p.removeExpiredAllocations(msg.Params, msgRct.Return)
case MethodVerifiedDeprecated1: // UseBytes
return p.deprecated1(msg.Params)
case MethodVerifiedDeprecated2: // RestoreBytes
return p.deprecated2(msg.Params)
case UnknownStr:
return p.unknownMetadata(msg.Params, msgRct.Return)
}
Expand Down Expand Up @@ -111,3 +114,27 @@ func (p *Parser) removeExpiredAllocations(raw, rawReturn []byte) (map[string]int
metadata[ReturnKey] = expiredReturn
return metadata, nil
}

func (p *Parser) deprecated1(raw []byte) (map[string]interface{}, error) {
metadata := make(map[string]interface{})
reader := bytes.NewReader(raw)
var params verifreg.RestoreBytesParams
err := params.UnmarshalCBOR(reader)
if err != nil {
return metadata, err
}
metadata[ParamsKey] = params
return metadata, nil
}

func (p *Parser) deprecated2(raw []byte) (map[string]interface{}, error) {
metadata := make(map[string]interface{})
reader := bytes.NewReader(raw)
var params verifreg.UseBytesParams
err := params.UnmarshalCBOR(reader)
if err != nil {
return metadata, err
}
metadata[ParamsKey] = params
return metadata, nil
}

0 comments on commit 5b2415f

Please sign in to comment.