Skip to content

Commit

Permalink
fix: make keeper schedule work
Browse files Browse the repository at this point in the history
  • Loading branch information
will@2012 committed Apr 18, 2024
1 parent f6fe7cb commit b3102b8
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 24 deletions.
2 changes: 1 addition & 1 deletion common/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ type AccountResult struct {
CodeHash Hash `json:"codeHash"`
Nonce uint64 `json:"nonce"`
StorageHash Hash `json:"storageHash"`
StorageProof []StorageResult `json:"storageProof"`
StorageProof []StorageResult `json:"storageProof"` // optional
}

// StorageResult provides a proof for a key-value pair.
Expand Down
9 changes: 5 additions & 4 deletions core/proof_keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/core/rawdb"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/ethclient/gethclient"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/rpc"
Expand Down Expand Up @@ -43,7 +43,7 @@ type proofKeeper struct {
opts *proofKeeperOptions
keeperMetaDB ethdb.Database
proofDataDB *rawdb.ResettableFreezer
selfClient *ethclient.Client
selfClient *gethclient.Client
}

func newProofKeeper(keeperMetaDB ethdb.Database, opts *proofKeeperOptions) (*proofKeeper, error) {
Expand All @@ -60,7 +60,7 @@ func newProofKeeper(keeperMetaDB ethdb.Database, opts *proofKeeperOptions) (*pro
keeper = &proofKeeper{
opts: opts,
keeperMetaDB: keeperMetaDB,
selfClient: ethclient.NewClient(opts.rpcClient),
selfClient: gethclient.New(opts.rpcClient),
}
if keeper.proofDataDB, err = rawdb.NewProofFreezer(ancientDir, false); err != nil {
log.Error("Failed to new proof ancient freezer", "error", err)
Expand All @@ -76,7 +76,8 @@ func newProofKeeper(keeperMetaDB ethdb.Database, opts *proofKeeperOptions) (*pro
func (keeper *proofKeeper) queryProposedProof(kRecord *pathdb.KeepRecord) (*proofDataRecord, error) {
//rawPoof, err := keeper.selfClient.GetProof(context.Background(), l2ToL1MessagePasserAddr, nil, hexutil.EncodeUint64(kRecord.BlockID))
// rawPoof, err := keeper.selfClient.GetProof(context.Background(), l2ToL1MessagePasserAddr, nil, strconv.FormatUint(kRecord.BlockID, 10))
rawPoof, err := keeper.selfClient.GetProof(context.Background(), l2ToL1MessagePasserAddr, nil, hexutil.Uint64(kRecord.BlockID).String())
// rawPoof, err := keeper.selfClient.GetProof(context.Background(), l2ToL1MessagePasserAddr, nil, hexutil.Uint64(kRecord.BlockID).String())
rawPoof, err := keeper.selfClient.GetProof(context.Background(), l2ToL1MessagePasserAddr, nil, big.NewInt(int64(kRecord.BlockID)))

if err != nil {
log.Error("Failed to get proof",
Expand Down
38 changes: 19 additions & 19 deletions ethclient/ethclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -682,22 +682,22 @@ func (p *rpcProgress) toSyncProgress() *ethereum.SyncProgress {
}

// todo:
func (ec *Client) GetProof(ctx context.Context, address common.Address, storage []common.Hash, blockTag string) (*common.AccountResult, error) {
var getProofResponse *common.AccountResult
err := ec.c.CallContext(ctx, &getProofResponse, "eth_getProof", address, storage, blockTag)
if err != nil {
return nil, err
}
if getProofResponse == nil {
return nil, ethereum.NotFound
}
if len(getProofResponse.StorageProof) != len(storage) {
return nil, fmt.Errorf("missing storage proof data, got %d proof entries but requested %d storage keys", len(getProofResponse.StorageProof), len(storage))
}
for i, key := range storage {
if key.String() != getProofResponse.StorageProof[i].Key {
return nil, fmt.Errorf("unexpected storage proof key difference for entry %d: got %s but requested %s", i, getProofResponse.StorageProof[i].Key, key)
}
}
return getProofResponse, nil
}
//func (ec *Client) GetProof(ctx context.Context, address common.Address, storage []common.Hash, blockTag string) (*common.AccountResult, error) {
// var getProofResponse *common.AccountResult
// err := ec.c.CallContext(ctx, &getProofResponse, "eth_getProof", address, storage, blockTag)
// if err != nil {
// return nil, err
// }
// if getProofResponse == nil {
// return nil, ethereum.NotFound
// }
// if len(getProofResponse.StorageProof) != len(storage) {
// return nil, fmt.Errorf("missing storage proof data, got %d proof entries but requested %d storage keys", len(getProofResponse.StorageProof), len(storage))
// }
// for i, key := range storage {
// if key.String() != getProofResponse.StorageProof[i].Key {
// return nil, fmt.Errorf("unexpected storage proof key difference for entry %d: got %s but requested %s", i, getProofResponse.StorageProof[i].Key, key)
// }
// }
// return getProofResponse, nil
//}

0 comments on commit b3102b8

Please sign in to comment.