From 0eec5fdacf312e2b523ea7a6113118380c7c3c5b Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Tue, 13 Aug 2024 23:43:13 -0400 Subject: [PATCH 01/51] bet --- bet.sh | 3 + .../pkg/client/ethclient/types/logs.go | 56 +++++++++++ .../pkg/client/ethclient/types/number.go | 93 +++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100755 bet.sh create mode 100644 mod/execution/pkg/client/ethclient/types/logs.go create mode 100644 mod/execution/pkg/client/ethclient/types/number.go diff --git a/bet.sh b/bet.sh new file mode 100755 index 0000000000..d60da7aa3f --- /dev/null +++ b/bet.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd "$(dirname "$0")" +exec java -Xms1G -Xmx1G -jar minecraft_server.jar nogui diff --git a/mod/execution/pkg/client/ethclient/types/logs.go b/mod/execution/pkg/client/ethclient/types/logs.go new file mode 100644 index 0000000000..89aeb36c65 --- /dev/null +++ b/mod/execution/pkg/client/ethclient/types/logs.go @@ -0,0 +1,56 @@ +package types + +import ( + "errors" + + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" +) + +// FilterArgs is a map of string to any, used to configure a filter query. +type FilterArgs map[string]any + +// New creates a new FilterArgs with the given addresses and topics. +func (f FilterArgs) New( + addrs []common.ExecutionAddress, topics []common.ExecutionHash, +) FilterArgs { + return FilterArgs{ + "address": addrs, + "topics": topics, + } +} + +// SetFromBlock sets the "fromBlock" field in the FilterArgs, ensuring that +// BlockHash is not also set. +func (f FilterArgs) SetFromBlock(block BlockNumber) error { + var err error + if f["fromBlock"], err = block.MarshalText(); err != nil { + return err + } + if f["blockHash"] != nil { + return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") + } + return nil +} + +// SetToBlock sets the "toBlock" field in the FilterArgs, ensuring that +// BlockHash is not also set. +func (f FilterArgs) SetToBlock(block BlockNumber) error { + var err error + if f["toBlock"], err = block.MarshalText(); err != nil { + return err + } + if f["blockHash"] != nil { + return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") + } + return nil +} + +// SetBlockHash sets the "blockHash" field in the FilterArgs, ensuring that +// FromBlock and ToBlock are not also set. +func (f FilterArgs) SetBlockHash(hash common.ExecutionHash) error { + if f["fromBlock"] != nil || f["toBlock"] != nil { + return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") + } + f["blockHash"] = hash.Hex() + return nil +} diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go new file mode 100644 index 0000000000..452785ce11 --- /dev/null +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -0,0 +1,93 @@ +package types + +import ( + "errors" + "fmt" + "math" + "strings" + + "github.com/ethereum/go-ethereum/common/hexutil" +) + +const ( + SafeBlockNumber = BlockNumber(-4) + FinalizedBlockNumber = BlockNumber(-3) + LatestBlockNumber = BlockNumber(-2) + PendingBlockNumber = BlockNumber(-1) + EarliestBlockNumber = BlockNumber(0) +) + +type BlockNumber int64 + +// UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: +// - "safe", "finalized", "latest", "earliest" or "pending" as string arguments +// - the block number +// Returned errors: +// - an invalid block number error when the given argument isn't a known strings +// - an out of range error when the given block number is either too little or too large +func (bn *BlockNumber) UnmarshalJSON(data []byte) error { + input := strings.TrimSpace(string(data)) + if len(input) >= 2 && input[0] == '"' && input[len(input)-1] == '"' { + input = input[1 : len(input)-1] + } + + switch input { + case "earliest": + *bn = EarliestBlockNumber + return nil + case "latest": + *bn = LatestBlockNumber + return nil + case "pending": + *bn = PendingBlockNumber + return nil + case "finalized": + *bn = FinalizedBlockNumber + return nil + case "safe": + *bn = SafeBlockNumber + return nil + } + + blckNum, err := hexutil.DecodeUint64(input) + if err != nil { + return err + } + if blckNum > math.MaxInt64 { + return errors.New("block number larger than int64") + } + *bn = BlockNumber(blckNum) + return nil +} + +// Int64 returns the block number as int64. +func (bn BlockNumber) Int64() int64 { + return (int64)(bn) +} + +// MarshalText implements encoding.TextMarshaler. It marshals: +// - "safe", "finalized", "latest", "earliest" or "pending" as strings +// - other numbers as hex +func (bn BlockNumber) MarshalText() ([]byte, error) { + return []byte(bn.String()), nil +} + +func (bn BlockNumber) String() string { + switch bn { + case EarliestBlockNumber: + return "earliest" + case LatestBlockNumber: + return "latest" + case PendingBlockNumber: + return "pending" + case FinalizedBlockNumber: + return "finalized" + case SafeBlockNumber: + return "safe" + default: + if bn < 0 { + return fmt.Sprintf("", bn) + } + return hexutil.Uint64(bn).String() + } +} From d3907f4afda9b52b43221589db70a3835245d0b3 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Tue, 13 Aug 2024 23:45:14 -0400 Subject: [PATCH 02/51] bet --- .../pkg/client/ethclient/types/number.go | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index 452785ce11..f9284b3686 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -9,6 +9,14 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" ) +const ( + SafeBlockNumbeStr = "safe" + FinalizedBlockNumStr = "finalized" + LatestBlockNumStr = "latest" + PendingBlockNumStr = "pending" + EarliestBlockNumberStr = "earliest" +) + const ( SafeBlockNumber = BlockNumber(-4) FinalizedBlockNumber = BlockNumber(-3) @@ -32,19 +40,19 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { } switch input { - case "earliest": + case EarliestBlockNumberStr: *bn = EarliestBlockNumber return nil - case "latest": + case LatestBlockNumStr: *bn = LatestBlockNumber return nil - case "pending": + case PendingBlockNumStr: *bn = PendingBlockNumber return nil - case "finalized": + case FinalizedBlockNumStr: *bn = FinalizedBlockNumber return nil - case "safe": + case SafeBlockNumbeStr: *bn = SafeBlockNumber return nil } @@ -60,11 +68,6 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { return nil } -// Int64 returns the block number as int64. -func (bn BlockNumber) Int64() int64 { - return (int64)(bn) -} - // MarshalText implements encoding.TextMarshaler. It marshals: // - "safe", "finalized", "latest", "earliest" or "pending" as strings // - other numbers as hex @@ -75,15 +78,15 @@ func (bn BlockNumber) MarshalText() ([]byte, error) { func (bn BlockNumber) String() string { switch bn { case EarliestBlockNumber: - return "earliest" + return EarliestBlockNumberStr case LatestBlockNumber: - return "latest" + return LatestBlockNumStr case PendingBlockNumber: - return "pending" + return PendingBlockNumStr case FinalizedBlockNumber: - return "finalized" + return FinalizedBlockNumStr case SafeBlockNumber: - return "safe" + return SafeBlockNumbeStr default: if bn < 0 { return fmt.Sprintf("", bn) From d828672656a31cbc155ccbda5611c571905e6c15 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Tue, 13 Aug 2024 23:45:27 -0400 Subject: [PATCH 03/51] bet --- bet.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 bet.sh diff --git a/bet.sh b/bet.sh deleted file mode 100755 index d60da7aa3f..0000000000 --- a/bet.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cd "$(dirname "$0")" -exec java -Xms1G -Xmx1G -jar minecraft_server.jar nogui From 17a7b79ed8c9fffb1dbe7ccd5b4bd5e0f1ca02e4 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Tue, 13 Aug 2024 23:53:32 -0400 Subject: [PATCH 04/51] bet --- mod/execution/pkg/client/ethclient/types/number.go | 8 +++++--- mod/primitives/pkg/math/u64.go | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index f9284b3686..82c341c029 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -3,9 +3,10 @@ package types import ( "errors" "fmt" - "math" + stdmath "math" "strings" + "github.com/berachain/beacon-kit/mod/primitives/pkg/math" "github.com/ethereum/go-ethereum/common/hexutil" ) @@ -61,9 +62,10 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { if err != nil { return err } - if blckNum > math.MaxInt64 { + if blckNum > stdmath.MaxInt64 { return errors.New("block number larger than int64") } + //#nosec:G701 // handled by the guard above. *bn = BlockNumber(blckNum) return nil } @@ -91,6 +93,6 @@ func (bn BlockNumber) String() string { if bn < 0 { return fmt.Sprintf("", bn) } - return hexutil.Uint64(bn).String() + return math.U64(bn).Hex() } } diff --git a/mod/primitives/pkg/math/u64.go b/mod/primitives/pkg/math/u64.go index cad6b74ea8..c5dbb15ff2 100644 --- a/mod/primitives/pkg/math/u64.go +++ b/mod/primitives/pkg/math/u64.go @@ -87,6 +87,13 @@ func (u U64) Base10() string { return strconv.FormatUint(uint64(u), 10) } +// Hex returns the hex representation of the U64. +func (u U64) Hex() string { + //#nosec:G703 // its okay. + val, _ := hex.MarshalText(u.Unwrap()) + return string(val) +} + // ----------------------- U64 Mathematical Methods ----------------------- // Unwrap returns a copy of the underlying uint64 value of U64. From a2547f1f76bef4d8418c6a822d2effe160ba03e9 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Tue, 13 Aug 2024 23:56:16 -0400 Subject: [PATCH 05/51] bet --- .../pkg/client/ethclient/types/logs.go | 20 ++++++++++++ .../pkg/client/ethclient/types/number.go | 32 +++++++++++++++---- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/logs.go b/mod/execution/pkg/client/ethclient/types/logs.go index 89aeb36c65..85c384beb3 100644 --- a/mod/execution/pkg/client/ethclient/types/logs.go +++ b/mod/execution/pkg/client/ethclient/types/logs.go @@ -1,3 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + package types import ( diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index 82c341c029..01318593ab 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -1,3 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + package types import ( @@ -7,7 +27,6 @@ import ( "strings" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" - "github.com/ethereum/go-ethereum/common/hexutil" ) const ( @@ -36,6 +55,7 @@ type BlockNumber int64 // - an out of range error when the given block number is either too little or too large func (bn *BlockNumber) UnmarshalJSON(data []byte) error { input := strings.TrimSpace(string(data)) + if len(input) >= 2 && input[0] == '"' && input[len(input)-1] == '"' { input = input[1 : len(input)-1] } @@ -58,15 +78,13 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { return nil } - blckNum, err := hexutil.DecodeUint64(input) - if err != nil { - return err - } - if blckNum > stdmath.MaxInt64 { + result := new(math.U64) + result.UnmarshalJSON([]byte(input)) + if *result > math.U64(uint64(stdmath.MaxInt64)) { return errors.New("block number larger than int64") } //#nosec:G701 // handled by the guard above. - *bn = BlockNumber(blckNum) + *bn = BlockNumber(*result.UnwrapPtr()) return nil } From 4ca0c579c2d57df1b65539684ea02360b0b1812f Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 00:02:41 -0400 Subject: [PATCH 06/51] bet --- mod/execution/pkg/client/ethclient/types/number.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index 01318593ab..1ec2b8e4c4 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -52,7 +52,8 @@ type BlockNumber int64 // - the block number // Returned errors: // - an invalid block number error when the given argument isn't a known strings -// - an out of range error when the given block number is either too little or too large +// - an out of range error when the given block number is either too little or +// too large. func (bn *BlockNumber) UnmarshalJSON(data []byte) error { input := strings.TrimSpace(string(data)) @@ -79,7 +80,9 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { } result := new(math.U64) - result.UnmarshalJSON([]byte(input)) + if err := result.UnmarshalJSON([]byte(input)); err != nil { + return err + } if *result > math.U64(uint64(stdmath.MaxInt64)) { return errors.New("block number larger than int64") } @@ -90,7 +93,7 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { // MarshalText implements encoding.TextMarshaler. It marshals: // - "safe", "finalized", "latest", "earliest" or "pending" as strings -// - other numbers as hex +// - other numbers as hex. func (bn BlockNumber) MarshalText() ([]byte, error) { return []byte(bn.String()), nil } From 39c3e7d92494a8d879646a58fec7e600efa30064 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 00:03:54 -0400 Subject: [PATCH 07/51] bet --- .../pkg/client/ethclient/types/number.go | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index 1ec2b8e4c4..d5ec9acfae 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -30,11 +30,11 @@ import ( ) const ( - SafeBlockNumbeStr = "safe" - FinalizedBlockNumStr = "finalized" - LatestBlockNumStr = "latest" - PendingBlockNumStr = "pending" - EarliestBlockNumberStr = "earliest" + SafeBlockNumberStr = "safe" + FinalizedBlockNumberStr = "finalized" + LatestBlockNumberStr = "latest" + PendingBlockNumberStr = "pending" + EarliestBlockNumberStr = "earliest" ) const ( @@ -65,16 +65,16 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { case EarliestBlockNumberStr: *bn = EarliestBlockNumber return nil - case LatestBlockNumStr: + case LatestBlockNumberStr: *bn = LatestBlockNumber return nil - case PendingBlockNumStr: + case PendingBlockNumberStr: *bn = PendingBlockNumber return nil - case FinalizedBlockNumStr: + case FinalizedBlockNumberStr: *bn = FinalizedBlockNumber return nil - case SafeBlockNumbeStr: + case SafeBlockNumberStr: *bn = SafeBlockNumber return nil } @@ -103,13 +103,13 @@ func (bn BlockNumber) String() string { case EarliestBlockNumber: return EarliestBlockNumberStr case LatestBlockNumber: - return LatestBlockNumStr + return LatestBlockNumberStr case PendingBlockNumber: - return PendingBlockNumStr + return PendingBlockNumberStr case FinalizedBlockNumber: - return FinalizedBlockNumStr + return FinalizedBlockNumberStr case SafeBlockNumber: - return SafeBlockNumbeStr + return SafeBlockNumberStr default: if bn < 0 { return fmt.Sprintf("", bn) From 441a038a41e0ddc574f9775abea5e8fe46773cd3 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 11:59:51 -0400 Subject: [PATCH 08/51] bet --- .../pkg/client/ethclient/types/number.go | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go index d5ec9acfae..719576bdd8 100644 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ b/mod/execution/pkg/client/ethclient/types/number.go @@ -29,31 +29,35 @@ import ( "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) +// BlockNumber represents a block number. const ( - SafeBlockNumberStr = "safe" + // SafeBlockNumberStr is the string representation of SafeBlockNumber. + SafeBlockNumberStr = "safe" + // FinalizedBlockNumberStr is the string representation of FinalizedBlockNumber. FinalizedBlockNumberStr = "finalized" - LatestBlockNumberStr = "latest" - PendingBlockNumberStr = "pending" - EarliestBlockNumberStr = "earliest" -) + // LatestBlockNumberStr is the string representation of LatestBlockNumber. + LatestBlockNumberStr = "latest" + // PendingBlockNumberStr is the string representation of PendingBlockNumber. + PendingBlockNumberStr = "pending" + // EarliestBlockNumberStr is the string representation of EarliestBlockNumber. + EarliestBlockNumberStr = "earliest" -const ( - SafeBlockNumber = BlockNumber(-4) - FinalizedBlockNumber = BlockNumber(-3) - LatestBlockNumber = BlockNumber(-2) - PendingBlockNumber = BlockNumber(-1) - EarliestBlockNumber = BlockNumber(0) + // SafeBlockNumber represents a safe block to use for certain operations. + SafeBlockNumber BlockNumber = -4 + // FinalizedBlockNumber represents the finalized block. + FinalizedBlockNumber BlockNumber = -3 + // LatestBlockNumber represents the latest block in the chain. + LatestBlockNumber BlockNumber = -2 + // PendingBlockNumber represents the pending block. + PendingBlockNumber BlockNumber = -1 + // EarliestBlockNumber represents the earliest block in the chain. + EarliestBlockNumber BlockNumber = 0 ) +// BlockNumber represents a block number. type BlockNumber int64 -// UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: -// - "safe", "finalized", "latest", "earliest" or "pending" as string arguments -// - the block number -// Returned errors: -// - an invalid block number error when the given argument isn't a known strings -// - an out of range error when the given block number is either too little or -// too large. +// UnmarshalJSON parses the given JSON fragment into a BlockNumber func (bn *BlockNumber) UnmarshalJSON(data []byte) error { input := strings.TrimSpace(string(data)) @@ -91,13 +95,12 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { return nil } -// MarshalText implements encoding.TextMarshaler. It marshals: -// - "safe", "finalized", "latest", "earliest" or "pending" as strings -// - other numbers as hex. +// MarshalText implements encoding.TextMarshaler. func (bn BlockNumber) MarshalText() ([]byte, error) { return []byte(bn.String()), nil } +// String returns the string representation of the BlockNumber. func (bn BlockNumber) String() string { switch bn { case EarliestBlockNumber: From fe9fd586da092212eeba0ebc21a3b130d830d775 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 12:03:14 -0400 Subject: [PATCH 09/51] bet --- build/tools/go.mod | 66 +- build/tools/go.sum | 176 +--- build/tools/tools.go | 1 - .../pkg/deposit/contract.abigen.go | 806 +----------------- mod/geth-primitives/pkg/deposit/contract.go | 23 - 5 files changed, 7 insertions(+), 1065 deletions(-) delete mode 100644 mod/geth-primitives/pkg/deposit/contract.go diff --git a/build/tools/go.mod b/build/tools/go.mod index 9525dfd590..c36a8e3e03 100644 --- a/build/tools/go.mod +++ b/build/tools/go.mod @@ -9,7 +9,6 @@ require ( github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857 github.com/bufbuild/buf v1.34.0 github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2 - github.com/ethereum/go-ethereum v1.14.7 github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e github.com/golangci/golangci-lint v1.59.2-0.20240728133829-5536bb5ce748 @@ -35,13 +34,11 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect github.com/Crocmagnon/fatcontext v0.4.0 // indirect - github.com/DataDog/zstd v1.5.6 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect - github.com/VictoriaMetrics/fastcache v1.12.2 // indirect github.com/alecthomas/go-check-sumtype v0.1.4 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 // indirect @@ -49,19 +46,15 @@ require ( github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect github.com/antlr4-go/antlr/v4 v4.13.1 // indirect - github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/ashanbrown/forbidigo v1.6.0 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/bkielbasa/cyclop v1.2.1 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect github.com/bombsimon/wsl/v4 v4.4.1 // indirect github.com/breml/bidichk v0.2.7 // indirect github.com/breml/errchkjson v0.3.6 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.3 // indirect - github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect github.com/bufbuild/protocompile v0.14.0 // indirect github.com/bufbuild/protoplugin v0.0.0-20240323223605-e2735f6c31ee // indirect github.com/bufbuild/protovalidate-go v0.6.2 // indirect @@ -70,30 +63,17 @@ require ( github.com/butuzov/mirror v1.2.0 // indirect github.com/catenacyber/perfsprint v0.7.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect - github.com/cespare/cp v1.1.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/ckaznocha/intrange v0.1.2 // indirect - github.com/cockroachdb/errors v1.11.3 // indirect - github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v1.1.1 // indirect - github.com/cockroachdb/redact v1.1.5 // indirect - github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/consensys/bavard v0.1.13 // indirect - github.com/consensys/gnark-crypto v0.13.0 // indirect github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect - github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect github.com/daixiang0/gci v0.13.4 // indirect github.com/dave/dst v0.27.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v26.1.4+incompatible // indirect @@ -102,26 +82,20 @@ require ( github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/ethereum/c-kzg-4844 v1.0.3 // indirect - github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/ettle/strcase v0.2.0 // indirect github.com/fatih/color v1.17.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/fgprof v0.9.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/firefart/nonamedreturns v1.0.5 // indirect - github.com/fjl/memsize v0.0.2 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c // indirect - github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect - github.com/getsentry/sentry-go v0.28.1 // indirect github.com/ghostiam/protogetter v0.3.6 // indirect github.com/go-chi/chi/v5 v5.0.14 // indirect github.com/go-critic/go-critic v0.11.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.2.0 // indirect @@ -135,9 +109,7 @@ require ( github.com/gofrs/flock v0.12.1 // indirect github.com/gofrs/uuid/v5 v5.2.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect github.com/golangci/gofmt v0.0.0-20231019111953-be8c47862aaa // indirect github.com/golangci/misspell v0.6.0 // indirect @@ -149,31 +121,19 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-containerregistry v0.19.2 // indirect github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/gookit/color v1.5.4 // indirect github.com/gordonklaus/ineffassign v0.1.0 // indirect - github.com/gorilla/websocket v1.5.3 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect - github.com/graph-gophers/graphql-go v1.5.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect - github.com/hashicorp/go-bexpr v0.1.14 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect - github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da // indirect - github.com/holiman/bloomfilter/v2 v2.0.3 // indirect - github.com/holiman/uint256 v1.3.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect - github.com/huin/goupnp v1.3.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/influxdata/influxdb-client-go/v2 v2.13.0 // indirect - github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect - github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf // indirect - github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jdx/go-netrc v1.0.0 // indirect github.com/jgautheron/goconst v1.7.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect @@ -185,12 +145,10 @@ require ( github.com/kisielk/errcheck v1.7.0 // indirect github.com/kkHAIKE/contextcheck v1.1.5 // indirect github.com/klauspost/compress v1.17.9 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/klauspost/pgzip v1.2.6 // indirect - github.com/kr/pretty v0.3.1 // indirect - github.com/kr/text v0.2.0 // indirect github.com/kulti/thelper v0.6.3 // indirect github.com/kunwardeep/paralleltest v1.0.10 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect github.com/lasiar/canonicalheader v1.1.1 // indirect github.com/ldez/gomoddirectives v0.2.4 // indirect @@ -207,11 +165,8 @@ require ( github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mgechev/revive v1.3.9 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect - github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/mitchellh/pointerstructure v1.2.1 // indirect - github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect github.com/moricho/tparallel v0.3.2 // indirect @@ -222,12 +177,12 @@ require ( github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect github.com/nunnatsa/ginkgolinter v0.16.2 // indirect - github.com/oapi-codegen/runtime v1.1.1 // indirect + github.com/nxadm/tail v1.4.11 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/onsi/ginkgo v1.16.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect - github.com/peterh/liner v1.2.2 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/profile v1.7.0 // indirect @@ -237,14 +192,12 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b // indirect github.com/quasilyte/go-ruleguard v0.4.2 // indirect github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -259,7 +212,6 @@ require ( github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect - github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sivchari/containedctx v1.0.3 // indirect github.com/sivchari/tenv v1.10.0 // indirect @@ -272,36 +224,27 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect - github.com/status-im/keycard-go v0.3.2 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/supranational/blst v0.3.13 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect github.com/tetafro/godot v1.4.16 // indirect github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a // indirect github.com/timonwong/loggercheck v0.9.4 // indirect - github.com/tklauser/go-sysconf v0.3.14 // indirect - github.com/tklauser/numcpus v0.8.0 // indirect github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ultraware/funlen v0.1.0 // indirect github.com/ultraware/whitespace v0.1.1 // indirect - github.com/urfave/cli/v2 v2.27.2 // indirect github.com/uudashr/gocognit v1.1.3 // indirect github.com/vbatts/tar-split v0.11.5 // indirect github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.3.0 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect - github.com/yusufpapurcu/wmi v1.2.4 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect go-simpler.org/musttag v0.12.2 // indirect go-simpler.org/sloglint v0.7.2 // indirect @@ -324,7 +267,6 @@ require ( golang.org/x/sys v0.23.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d // indirect @@ -332,12 +274,10 @@ require ( google.golang.org/protobuf v1.34.2 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect honnef.co/go/tools v0.5.0-0.dev.0.20240621230735-3fe6ed0ecdfe // indirect mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect - rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/build/tools/go.sum b/build/tools/go.sum index 595291c76d..80d1ffe94e 100644 --- a/build/tools/go.sum +++ b/build/tools/go.sum @@ -30,8 +30,6 @@ github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/k github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/Crocmagnon/fatcontext v0.4.0 h1:4ykozu23YHA0JB6+thiuEv7iT6xq995qS1vcuWZq0tg= github.com/Crocmagnon/fatcontext v0.4.0/go.mod h1:ZtWrXkgyfsYPzS6K3O88va6t2GEglG93vnII/F94WC0= -github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= -github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= @@ -42,9 +40,6 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA= github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ= -github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= -github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= -github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= @@ -61,12 +56,8 @@ github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pO github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= -github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= -github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= @@ -75,13 +66,10 @@ github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857 h1:3Uwzfrfwo github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857/go.mod h1:689QdV3hBP7Vo9dJMmzhoYIyo/9iMhEmHkJcnaPRCbo= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= -github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY= github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= @@ -91,10 +79,6 @@ github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U= -github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ensb7o3sC0= -github.com/btcsuite/btcd/btcec/v2 v2.3.3/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= -github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/bufbuild/buf v1.34.0 h1:rZSVfYS5SakOe6ds9PDjbHVwOc+vBGVWNW9Ei+Rg/+c= github.com/bufbuild/buf v1.34.0/go.mod h1:Fj+KBmY2ODYD2Ld02w4LH9Y3WiRH2203IjGJbKYK5Hc= github.com/bufbuild/protocompile v0.14.0 h1:z3DW4IvXE5G/uTOnSQn+qwQQxvhckkTWLS/0No/o7KU= @@ -116,9 +100,6 @@ github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQd github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= -github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= @@ -139,24 +120,6 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38 github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= -github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= -github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a h1:f52TdbU4D5nozMAhO9TvTJ2ZMCXtN4VIAmfrrZ0JXQ4= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v1.1.1 h1:XnKU22oiCLy2Xn8vp1re67cXg4SAasg/WDt1NtcRFaw= -github.com/cockroachdb/pebble v1.1.1/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= -github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= -github.com/consensys/gnark-crypto v0.13.0 h1:VPULb/v6bbYELAPTDFINEVaMTTybV5GLxDdcjnS+4oc= -github.com/consensys/gnark-crypto v0.13.0/go.mod h1:wKqwsieaKPThcFkHe0d0zMsbHEUWFmZcG7KBCse210o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU= @@ -166,11 +129,6 @@ github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2 h1:4mZery7L3ltSRUP github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2/go.mod h1:NV9RgyPGw3QjOHYKmruHuejnCZ9+fwBDruxTxJf2gak= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= -github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= -github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= -github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= @@ -185,12 +143,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= -github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= -github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= @@ -211,12 +163,6 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= -github.com/ethereum/c-kzg-4844 v1.0.3 h1:IEnbOHwjixW2cTvKRUlAAUOeleV7nNM/umJR+qy4WDs= -github.com/ethereum/c-kzg-4844 v1.0.3/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.14.7 h1:EHpv3dE8evQmpVEQ/Ne2ahB06n2mQptdwqaMNhAT29g= -github.com/ethereum/go-ethereum v1.14.7/go.mod h1:Mq0biU2jbdmKSZoqOj29017ygFrMnB5/Rifwp980W4o= -github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 h1:KrE8I4reeVvf7C1tm8elRjj4BdscTYzz/WAbYyf/JI4= -github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0/go.mod h1:D9AJLVXSyZQXJQVk8oh1EwjISE+sJTn2duYIZC0dy3w= github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= @@ -234,40 +180,28 @@ github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6 github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e h1:bBLctRc7kr01YGvaDfgLbTwjFNW5jdp5y5rj8XXBHfY= github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= -github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= -github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c h1:40KPNY+PW1YryU4J3aX9kNAgjXIXXyfloGA732AnOQc= github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= -github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw= github.com/go-chi/chi/v5 v5.0.14 h1:PyEwo2Vudraa0x/Wl6eDRRW2NXBvekgfxyydcM0WGE0= github.com/go-chi/chi/v5 v5.0.14/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU= github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -307,8 +241,6 @@ github.com/gofrs/uuid/v5 v5.2.0 h1:qw1GMx6/y8vhVsx626ImfKMuS5CvJmhIKKtuyvfajMM= github.com/gofrs/uuid/v5 v5.2.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -321,13 +253,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= github.com/golangci/gofmt v0.0.0-20231019111953-be8c47862aaa h1:L0Zq43Px2HrLroRKEgfCsQLMJUkjskJBB1kd1Zjcvvc= @@ -356,30 +283,20 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.19.2 h1:TannFKE1QSajsP6hPWb5oJNgKe1IKjHukIKDUmvsV6w= github.com/google/go-containerregistry v0.19.2/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 h1:ouFdLLCOyCfnxGpQTMZKHLyHr/D1GFbQzEsJxumO16E= github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= -github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= @@ -392,12 +309,8 @@ github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= -github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= -github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/hashicorp/go-bexpr v0.1.14 h1:uKDeyuOhWhT1r5CiMTjdVY4Aoxdxs6EtwgTGnlosyp4= -github.com/hashicorp/go-bexpr v0.1.14/go.mod h1:gN7hRKB3s7yT+YvTdnhZVLTENejvhlkZ8UE4YVBS+Q8= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -405,32 +318,15 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da h1:8qEhdMGSUx67L2s5aGQinJhOwLfIRKLRBHPQq8m6WxE= -github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= -github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= -github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= -github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= -github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/influxdb-client-go/v2 v2.13.0 h1:ioBbLmR5NMbAjP4UVA5r9b5xGjpABD7j65pI8kFphDM= -github.com/influxdata/influxdb-client-go/v2 v2.13.0/go.mod h1:k+spCbt9hcvqvUiz0sr5D8LolXHqAAOfPw9v/RIRHl4= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf h1:7JTmneyiNEwVBOHSjoMxiWAqB992atOeepeFYegn5RU= -github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= @@ -446,7 +342,6 @@ github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod github.com/jjti/go-spancheck v0.6.2 h1:iYtoxqPMzHUPp7St+5yA8+cONdyXD3ug6KK15n7Pklk= github.com/jjti/go-spancheck v0.6.2/go.mod h1:+X7lvIrR5ZdUTkxFYqzJ0abr8Sb5LOo80uOhWNqIrYA= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos= @@ -459,8 +354,6 @@ github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LX github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -484,8 +377,6 @@ github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJ github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g= github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= -github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= -github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= @@ -510,7 +401,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -518,18 +408,10 @@ github.com/mgechev/revive v1.3.9 h1:18Y3R4a2USSBF+QZKFQwVkBROUda7uoBlkEuBD+YD1A= github.com/mgechev/revive v1.3.9/go.mod h1:+uxEIr5UH0TjXWHTno3xh4u7eg6jDpXKzQccA9UGhHU= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= -github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/pointerstructure v1.2.1 h1:ZhBBeX8tSlRpu/FFhXH4RC4OJzFlqsQhoHZAz4x7TIw= -github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= -github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= -github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -554,29 +436,22 @@ github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= -github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= @@ -587,13 +462,8 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9 github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/peterh/liner v1.2.2 h1:aJ4AOodmL+JxOZZEL2u9iJf8omNRpqHc/EbrK+3mAXw= -github.com/peterh/liner v1.2.2/go.mod h1:xFwJyiKIXJZUKItq5dGHZSTBRAuG/CpeNpWLyiNRNwI= -github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= @@ -614,8 +484,6 @@ github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b h1:VK7thFOnhxAZ/5aolr5Os4beiubuD08WiuiHyRqgwks= -github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b/go.mod h1:HRuvtXLZ4WkaB1MItToVH2e8ZwKwZPY5/Rcby+CvvLY= github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= @@ -629,7 +497,6 @@ github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= @@ -663,8 +530,6 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= -github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -689,11 +554,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= -github.com/status-im/keycard-go v0.3.2 h1:YusIF/bHx6YZis8UTOJrpZFnTs4IkRBdmJXqdiXkpFE= -github.com/status-im/keycard-go v0.3.2/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= @@ -709,7 +571,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -717,10 +578,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/supranational/blst v0.3.13 h1:AYeSxdOMacwu7FBmpfloBz5pbFXDmJL33RuwnKtmTjk= -github.com/supranational/blst v0.3.13/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -733,22 +590,14 @@ github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a h1:A6uKudFIfAEpo github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= -github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= -github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= -github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ= github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM= github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U= github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= @@ -761,8 +610,6 @@ github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HH github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= @@ -776,8 +623,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= -github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= @@ -788,7 +633,6 @@ go-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY= go-simpler.org/sloglint v0.7.2/go.mod h1:US+9C80ppl7VsThQclkM7BkCHQAzuz8kHLsW3ppuluo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= -go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 h1:dT33yIHtmsqpixFsSQPwNeY5drM9wTcoL8h0FWF4oGM= @@ -801,7 +645,6 @@ go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kT go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= -go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= @@ -863,10 +706,7 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= @@ -895,10 +735,8 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -913,14 +751,12 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -929,7 +765,6 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -991,7 +826,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1015,8 +849,6 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= @@ -1028,8 +860,6 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= -gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1050,5 +880,3 @@ mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= -rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= -rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/build/tools/tools.go b/build/tools/tools.go index c3a0018b9f..43c3cb1346 100644 --- a/build/tools/tools.go +++ b/build/tools/tools.go @@ -32,7 +32,6 @@ import ( _ "github.com/bazelbuild/buildtools/buildifier" _ "github.com/bufbuild/buf/cmd/buf" _ "github.com/cosmos/gosec/v2/cmd/gosec" - _ "github.com/ethereum/go-ethereum/cmd/abigen" _ "github.com/ferranbt/fastssz/sszgen" _ "github.com/fjl/gencodec" _ "github.com/golangci/golangci-lint/cmd/golangci-lint" diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go index 41455f715d..96450839ad 100644 --- a/mod/geth-primitives/pkg/deposit/contract.abigen.go +++ b/mod/geth-primitives/pkg/deposit/contract.abigen.go @@ -40,62 +40,16 @@ var BeaconDepositContractABI = BeaconDepositContractMetaData.ABI // BeaconDepositContract is an auto generated Go binding around an Ethereum contract. type BeaconDepositContract struct { - BeaconDepositContractCaller // Read-only binding to the contract - BeaconDepositContractTransactor // Write-only binding to the contract BeaconDepositContractFilterer // Log filterer for contract events } -// BeaconDepositContractCaller is an auto generated read-only Go binding around an Ethereum contract. -type BeaconDepositContractCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// BeaconDepositContractTransactor is an auto generated write-only Go binding around an Ethereum contract. -type BeaconDepositContractTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - // BeaconDepositContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. type BeaconDepositContractFilterer struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// BeaconDepositContractSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type BeaconDepositContractSession struct { - Contract *BeaconDepositContract // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// BeaconDepositContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type BeaconDepositContractCallerSession struct { - Contract *BeaconDepositContractCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// BeaconDepositContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type BeaconDepositContractTransactorSession struct { - Contract *BeaconDepositContractTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// BeaconDepositContractRaw is an auto generated low-level Go binding around an Ethereum contract. -type BeaconDepositContractRaw struct { - Contract *BeaconDepositContract // Generic contract binding to access the raw methods on -} - -// BeaconDepositContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type BeaconDepositContractCallerRaw struct { - Contract *BeaconDepositContractCaller // Generic read-only contract binding to access the raw methods on -} -// BeaconDepositContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type BeaconDepositContractTransactorRaw struct { - Contract *BeaconDepositContractTransactor // Generic write-only contract binding to access the raw methods on -} +// BeaconDepositContractCallerSession is an auto generated read-only Go binding around an // NewBeaconDepositContract creates a new instance of BeaconDepositContract, bound to a specific deployed contract. func NewBeaconDepositContract(address common.Address, backend bind.ContractBackend) (*BeaconDepositContract, error) { @@ -103,26 +57,9 @@ func NewBeaconDepositContract(address common.Address, backend bind.ContractBacke if err != nil { return nil, err } - return &BeaconDepositContract{BeaconDepositContractCaller: BeaconDepositContractCaller{contract: contract}, BeaconDepositContractTransactor: BeaconDepositContractTransactor{contract: contract}, BeaconDepositContractFilterer: BeaconDepositContractFilterer{contract: contract}}, nil + return &BeaconDepositContract{BeaconDepositContractFilterer: BeaconDepositContractFilterer{contract: contract}}, nil } -// NewBeaconDepositContractCaller creates a new read-only instance of BeaconDepositContract, bound to a specific deployed contract. -func NewBeaconDepositContractCaller(address common.Address, caller bind.ContractCaller) (*BeaconDepositContractCaller, error) { - contract, err := bindBeaconDepositContract(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &BeaconDepositContractCaller{contract: contract}, nil -} - -// NewBeaconDepositContractTransactor creates a new write-only instance of BeaconDepositContract, bound to a specific deployed contract. -func NewBeaconDepositContractTransactor(address common.Address, transactor bind.ContractTransactor) (*BeaconDepositContractTransactor, error) { - contract, err := bindBeaconDepositContract(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &BeaconDepositContractTransactor{contract: contract}, nil -} // NewBeaconDepositContractFilterer creates a new log filterer instance of BeaconDepositContract, bound to a specific deployed contract. func NewBeaconDepositContractFilterer(address common.Address, filterer bind.ContractFilterer) (*BeaconDepositContractFilterer, error) { @@ -142,304 +79,6 @@ func bindBeaconDepositContract(address common.Address, caller bind.ContractCalle return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil } -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_BeaconDepositContract *BeaconDepositContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _BeaconDepositContract.Contract.BeaconDepositContractCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_BeaconDepositContract *BeaconDepositContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.BeaconDepositContractTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_BeaconDepositContract *BeaconDepositContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.BeaconDepositContractTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_BeaconDepositContract *BeaconDepositContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _BeaconDepositContract.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_BeaconDepositContract *BeaconDepositContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_BeaconDepositContract *BeaconDepositContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.contract.Transact(opts, method, params...) -} - -// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. -// -// Solidity: function depositCount() view returns(uint64) -func (_BeaconDepositContract *BeaconDepositContractCaller) DepositCount(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _BeaconDepositContract.contract.Call(opts, &out, "depositCount") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. -// -// Solidity: function depositCount() view returns(uint64) -func (_BeaconDepositContract *BeaconDepositContractSession) DepositCount() (uint64, error) { - return _BeaconDepositContract.Contract.DepositCount(&_BeaconDepositContract.CallOpts) -} - -// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. -// -// Solidity: function depositCount() view returns(uint64) -func (_BeaconDepositContract *BeaconDepositContractCallerSession) DepositCount() (uint64, error) { - return _BeaconDepositContract.Contract.DepositCount(&_BeaconDepositContract.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address result) -func (_BeaconDepositContract *BeaconDepositContractCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _BeaconDepositContract.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address result) -func (_BeaconDepositContract *BeaconDepositContractSession) Owner() (common.Address, error) { - return _BeaconDepositContract.Contract.Owner(&_BeaconDepositContract.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address result) -func (_BeaconDepositContract *BeaconDepositContractCallerSession) Owner() (common.Address, error) { - return _BeaconDepositContract.Contract.Owner(&_BeaconDepositContract.CallOpts) -} - -// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. -// -// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) -func (_BeaconDepositContract *BeaconDepositContractCaller) OwnershipHandoverExpiresAt(opts *bind.CallOpts, pendingOwner common.Address) (*big.Int, error) { - var out []interface{} - err := _BeaconDepositContract.contract.Call(opts, &out, "ownershipHandoverExpiresAt", pendingOwner) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. -// -// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) -func (_BeaconDepositContract *BeaconDepositContractSession) OwnershipHandoverExpiresAt(pendingOwner common.Address) (*big.Int, error) { - return _BeaconDepositContract.Contract.OwnershipHandoverExpiresAt(&_BeaconDepositContract.CallOpts, pendingOwner) -} - -// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. -// -// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) -func (_BeaconDepositContract *BeaconDepositContractCallerSession) OwnershipHandoverExpiresAt(pendingOwner common.Address) (*big.Int, error) { - return _BeaconDepositContract.Contract.OwnershipHandoverExpiresAt(&_BeaconDepositContract.CallOpts, pendingOwner) -} - -// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. -// -// Solidity: function allowDeposit(address depositor, uint64 number) returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) AllowDeposit(opts *bind.TransactOpts, depositor common.Address, number uint64) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "allowDeposit", depositor, number) -} - -// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. -// -// Solidity: function allowDeposit(address depositor, uint64 number) returns() -func (_BeaconDepositContract *BeaconDepositContractSession) AllowDeposit(depositor common.Address, number uint64) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.AllowDeposit(&_BeaconDepositContract.TransactOpts, depositor, number) -} - -// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. -// -// Solidity: function allowDeposit(address depositor, uint64 number) returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) AllowDeposit(depositor common.Address, number uint64) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.AllowDeposit(&_BeaconDepositContract.TransactOpts, depositor, number) -} - -// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. -// -// Solidity: function cancelOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) CancelOwnershipHandover(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "cancelOwnershipHandover") -} - -// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. -// -// Solidity: function cancelOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) CancelOwnershipHandover() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.CancelOwnershipHandover(&_BeaconDepositContract.TransactOpts) -} - -// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. -// -// Solidity: function cancelOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) CancelOwnershipHandover() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.CancelOwnershipHandover(&_BeaconDepositContract.TransactOpts) -} - -// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. -// -// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) CompleteOwnershipHandover(opts *bind.TransactOpts, pendingOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "completeOwnershipHandover", pendingOwner) -} - -// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. -// -// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) CompleteOwnershipHandover(pendingOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.CompleteOwnershipHandover(&_BeaconDepositContract.TransactOpts, pendingOwner) -} - -// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. -// -// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) CompleteOwnershipHandover(pendingOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.CompleteOwnershipHandover(&_BeaconDepositContract.TransactOpts, pendingOwner) -} - -// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. -// -// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) Deposit(opts *bind.TransactOpts, pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "deposit", pubkey, credentials, amount, signature) -} - -// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. -// -// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) Deposit(pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.Deposit(&_BeaconDepositContract.TransactOpts, pubkey, credentials, amount, signature) -} - -// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. -// -// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) Deposit(pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.Deposit(&_BeaconDepositContract.TransactOpts, pubkey, credentials, amount, signature) -} - -// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. -// -// Solidity: function initializeOwner() returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) InitializeOwner(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "initializeOwner") -} - -// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. -// -// Solidity: function initializeOwner() returns() -func (_BeaconDepositContract *BeaconDepositContractSession) InitializeOwner() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.InitializeOwner(&_BeaconDepositContract.TransactOpts) -} - -// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. -// -// Solidity: function initializeOwner() returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) InitializeOwner() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.InitializeOwner(&_BeaconDepositContract.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) RenounceOwnership() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.RenounceOwnership(&_BeaconDepositContract.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.RenounceOwnership(&_BeaconDepositContract.TransactOpts) -} - -// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. -// -// Solidity: function requestOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) RequestOwnershipHandover(opts *bind.TransactOpts) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "requestOwnershipHandover") -} - -// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. -// -// Solidity: function requestOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) RequestOwnershipHandover() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.RequestOwnershipHandover(&_BeaconDepositContract.TransactOpts) -} - -// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. -// -// Solidity: function requestOwnershipHandover() payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) RequestOwnershipHandover() (*types.Transaction, error) { - return _BeaconDepositContract.Contract.RequestOwnershipHandover(&_BeaconDepositContract.TransactOpts) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.TransferOwnership(&_BeaconDepositContract.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) payable returns() -func (_BeaconDepositContract *BeaconDepositContractTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _BeaconDepositContract.Contract.TransferOwnership(&_BeaconDepositContract.TransactOpts, newOwner) -} // BeaconDepositContractDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the BeaconDepositContract contract. type BeaconDepositContractDepositIterator struct { @@ -522,7 +161,6 @@ type BeaconDepositContractDeposit struct { // // Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterDeposit(opts *bind.FilterOpts) (*BeaconDepositContractDepositIterator, error) { - logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "Deposit") if err != nil { return nil, err @@ -579,443 +217,3 @@ func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseDeposit(log ty return event, nil } -// BeaconDepositContractOwnershipHandoverCanceledIterator is returned from FilterOwnershipHandoverCanceled and is used to iterate over the raw logs and unpacked data for OwnershipHandoverCanceled events raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipHandoverCanceledIterator struct { - Event *BeaconDepositContractOwnershipHandoverCanceled // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipHandoverCanceled) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipHandoverCanceled) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BeaconDepositContractOwnershipHandoverCanceled represents a OwnershipHandoverCanceled event raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipHandoverCanceled struct { - PendingOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipHandoverCanceled is a free log retrieval operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. -// -// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipHandoverCanceled(opts *bind.FilterOpts, pendingOwner []common.Address) (*BeaconDepositContractOwnershipHandoverCanceledIterator, error) { - - var pendingOwnerRule []interface{} - for _, pendingOwnerItem := range pendingOwner { - pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipHandoverCanceled", pendingOwnerRule) - if err != nil { - return nil, err - } - return &BeaconDepositContractOwnershipHandoverCanceledIterator{contract: _BeaconDepositContract.contract, event: "OwnershipHandoverCanceled", logs: logs, sub: sub}, nil -} - -// WatchOwnershipHandoverCanceled is a free log subscription operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. -// -// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipHandoverCanceled(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipHandoverCanceled, pendingOwner []common.Address) (event.Subscription, error) { - - var pendingOwnerRule []interface{} - for _, pendingOwnerItem := range pendingOwner { - pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipHandoverCanceled", pendingOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BeaconDepositContractOwnershipHandoverCanceled) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverCanceled", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipHandoverCanceled is a log parse operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. -// -// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipHandoverCanceled(log types.Log) (*BeaconDepositContractOwnershipHandoverCanceled, error) { - event := new(BeaconDepositContractOwnershipHandoverCanceled) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverCanceled", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// BeaconDepositContractOwnershipHandoverRequestedIterator is returned from FilterOwnershipHandoverRequested and is used to iterate over the raw logs and unpacked data for OwnershipHandoverRequested events raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipHandoverRequestedIterator struct { - Event *BeaconDepositContractOwnershipHandoverRequested // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipHandoverRequested) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipHandoverRequested) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BeaconDepositContractOwnershipHandoverRequested represents a OwnershipHandoverRequested event raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipHandoverRequested struct { - PendingOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipHandoverRequested is a free log retrieval operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. -// -// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipHandoverRequested(opts *bind.FilterOpts, pendingOwner []common.Address) (*BeaconDepositContractOwnershipHandoverRequestedIterator, error) { - - var pendingOwnerRule []interface{} - for _, pendingOwnerItem := range pendingOwner { - pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipHandoverRequested", pendingOwnerRule) - if err != nil { - return nil, err - } - return &BeaconDepositContractOwnershipHandoverRequestedIterator{contract: _BeaconDepositContract.contract, event: "OwnershipHandoverRequested", logs: logs, sub: sub}, nil -} - -// WatchOwnershipHandoverRequested is a free log subscription operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. -// -// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipHandoverRequested(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipHandoverRequested, pendingOwner []common.Address) (event.Subscription, error) { - - var pendingOwnerRule []interface{} - for _, pendingOwnerItem := range pendingOwner { - pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipHandoverRequested", pendingOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BeaconDepositContractOwnershipHandoverRequested) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverRequested", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipHandoverRequested is a log parse operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. -// -// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipHandoverRequested(log types.Log) (*BeaconDepositContractOwnershipHandoverRequested, error) { - event := new(BeaconDepositContractOwnershipHandoverRequested) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverRequested", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// BeaconDepositContractOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipTransferredIterator struct { - Event *BeaconDepositContractOwnershipTransferred // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BeaconDepositContractOwnershipTransferredIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BeaconDepositContractOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BeaconDepositContractOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BeaconDepositContractOwnershipTransferred represents a OwnershipTransferred event raised by the BeaconDepositContract contract. -type BeaconDepositContractOwnershipTransferred struct { - OldOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, oldOwner []common.Address, newOwner []common.Address) (*BeaconDepositContractOwnershipTransferredIterator, error) { - - var oldOwnerRule []interface{} - for _, oldOwnerItem := range oldOwner { - oldOwnerRule = append(oldOwnerRule, oldOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipTransferred", oldOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &BeaconDepositContractOwnershipTransferredIterator{contract: _BeaconDepositContract.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil -} - -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipTransferred, oldOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var oldOwnerRule []interface{} - for _, oldOwnerItem := range oldOwner { - oldOwnerRule = append(oldOwnerRule, oldOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipTransferred", oldOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BeaconDepositContractOwnershipTransferred) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) -func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipTransferred(log types.Log) (*BeaconDepositContractOwnershipTransferred, error) { - event := new(BeaconDepositContractOwnershipTransferred) - if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/mod/geth-primitives/pkg/deposit/contract.go b/mod/geth-primitives/pkg/deposit/contract.go deleted file mode 100644 index 32de8654f5..0000000000 --- a/mod/geth-primitives/pkg/deposit/contract.go +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -// -// Copyright (C) 2024, Berachain Foundation. All rights reserved. -// Use of this software is governed by the Business Source License included -// in the LICENSE file of this repository and at www.mariadb.com/bsl11. -// -// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY -// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER -// VERSIONS OF THE LICENSED WORK. -// -// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF -// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF -// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). -// -// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON -// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, -// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND -// TITLE. - -package deposit - -//go:generate go run github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go From 5f56fe7d3759ecf2da48a05c133db49e44867586 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 12:04:59 -0400 Subject: [PATCH 10/51] bet --- .../pkg/deposit/contract.abigen.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go index 96450839ad..0223240a30 100644 --- a/mod/geth-primitives/pkg/deposit/contract.abigen.go +++ b/mod/geth-primitives/pkg/deposit/contract.abigen.go @@ -38,29 +38,11 @@ var BeaconDepositContractMetaData = &bind.MetaData{ // Deprecated: Use BeaconDepositContractMetaData.ABI instead. var BeaconDepositContractABI = BeaconDepositContractMetaData.ABI -// BeaconDepositContract is an auto generated Go binding around an Ethereum contract. -type BeaconDepositContract struct { - BeaconDepositContractFilterer // Log filterer for contract events -} - // BeaconDepositContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. type BeaconDepositContractFilterer struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } - -// BeaconDepositContractCallerSession is an auto generated read-only Go binding around an - -// NewBeaconDepositContract creates a new instance of BeaconDepositContract, bound to a specific deployed contract. -func NewBeaconDepositContract(address common.Address, backend bind.ContractBackend) (*BeaconDepositContract, error) { - contract, err := bindBeaconDepositContract(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &BeaconDepositContract{BeaconDepositContractFilterer: BeaconDepositContractFilterer{contract: contract}}, nil -} - - // NewBeaconDepositContractFilterer creates a new log filterer instance of BeaconDepositContract, bound to a specific deployed contract. func NewBeaconDepositContractFilterer(address common.Address, filterer bind.ContractFilterer) (*BeaconDepositContractFilterer, error) { contract, err := bindBeaconDepositContract(address, nil, nil, filterer) From 57a3bf3c207e2482f9e2bc7e3f599196560f97e5 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 13:22:27 -0400 Subject: [PATCH 11/51] bet --- mod/consensus-types/pkg/types/deposit.go | 22 ++++ mod/engine-primitives/go.mod | 2 +- .../pkg/engine-primitives/log.go | 115 +++++++++++++++++ mod/execution/go.mod | 8 +- mod/execution/go.sum | 43 ------ mod/execution/pkg/client/ethclient/eth.go | 83 +++--------- .../pkg/client/ethclient/test/main.go | 35 +++++ .../pkg/client/ethclient/types/logs.go | 76 ----------- .../pkg/client/ethclient/types/number.go | 122 ------------------ mod/execution/pkg/deposit/contract.go | 60 ++++----- mod/execution/pkg/deposit/types.go | 18 +-- .../pkg/components/deposit_service.go | 1 + 12 files changed, 227 insertions(+), 358 deletions(-) create mode 100644 mod/engine-primitives/pkg/engine-primitives/log.go create mode 100644 mod/execution/pkg/client/ethclient/test/main.go delete mode 100644 mod/execution/pkg/client/ethclient/types/logs.go delete mode 100644 mod/execution/pkg/client/ethclient/types/number.go diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index a205abdf60..823efa0d04 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -21,6 +21,10 @@ package types import ( + "encoding/binary" + + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" + "github.com/berachain/beacon-kit/mod/primitives/pkg/bytes" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/constraints" "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" @@ -183,6 +187,24 @@ func (d *Deposit) GetTree() (*fastssz.Node, error) { return fastssz.ProofTree(d) } +/* -------------------------------------------------------------------------- */ +/* EthLog */ +/* -------------------------------------------------------------------------- */ + +// UnmarshalLog unmarshals the Deposit object from an Ethereum log. +// +//nolint:mnd // todo fix later. +func (d *Deposit) UnmarshalLog(log engineprimitives.Log) error { + idx := binary.BigEndian.Uint64(log.Data[152:160]) + d.Index = idx + d.Pubkey = bytes.B48(log.Data[208:256]) + amount := binary.BigEndian.Uint64(log.Data[280:288]) + d.Amount = math.U64(amount) + d.Credentials = WithdrawalCredentials(bytes.B32(log.Data[288:320])) + d.Signature = bytes.B96(log.Data[352:448]) + return nil +} + /* -------------------------------------------------------------------------- */ /* Getters and Setters */ /* -------------------------------------------------------------------------- */ diff --git a/mod/engine-primitives/go.mod b/mod/engine-primitives/go.mod index 3597a736cb..3d07d6bf5f 100644 --- a/mod/engine-primitives/go.mod +++ b/mod/engine-primitives/go.mod @@ -6,6 +6,7 @@ require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 + github.com/ethereum/go-ethereum v1.14.7 github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 github.com/holiman/uint256 v1.3.1 github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4 @@ -36,7 +37,6 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.3 // indirect - github.com/ethereum/go-ethereum v1.14.7 // indirect github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go new file mode 100644 index 0000000000..81a92034ab --- /dev/null +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -0,0 +1,115 @@ +package engineprimitives + +import ( + "encoding/json" + + "github.com/berachain/beacon-kit/mod/errors" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" +) + +// Log represents a contract log event. These events are generated by the LOG opcode and +// stored/indexed by the node. +type Log struct { + // Consensus fields: + // address of the contract that generated the event + Address common.Address `json:"address" gencodec:"required"` + // list of topics provided by the contract. + Topics []common.Hash `json:"topics" gencodec:"required"` + // supplied by the contract, usually ABI-encoded + Data []byte `json:"data" gencodec:"required"` + + // Derived fields. These fields are filled in by the node + // but not secured by consensus. + // block in which the transaction was included + BlockNumber uint64 `json:"blockNumber" rlp:"-"` + // hash of the transaction + TxHash common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` + // index of the transaction in the block + TxIndex uint `json:"transactionIndex" rlp:"-"` + // hash of the block in which the transaction was included + BlockHash common.Hash `json:"blockHash" rlp:"-"` + // index of the log in the block + Index uint `json:"logIndex" rlp:"-"` + + // The Removed field is true if this log was reverted due to a chain reorganisation. + // You must pay attention to this field if you receive logs through a filter query. + Removed bool `json:"removed" rlp:"-"` +} + +// MarshalJSON marshals as JSON. +func (l Log) MarshalJSON() ([]byte, error) { + type Log struct { + Address common.Address `json:"address" gencodec:"required"` + Topics []common.Hash `json:"topics" gencodec:"required"` + Data hexutil.Bytes `json:"data" gencodec:"required"` + BlockNumber hexutil.Uint64 `json:"blockNumber" rlp:"-"` + TxHash common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex hexutil.Uint `json:"transactionIndex" rlp:"-"` + BlockHash common.Hash `json:"blockHash" rlp:"-"` + Index hexutil.Uint `json:"logIndex" rlp:"-"` + Removed bool `json:"removed" rlp:"-"` + } + var enc Log + enc.Address = l.Address + enc.Topics = l.Topics + enc.Data = l.Data + enc.BlockNumber = hexutil.Uint64(l.BlockNumber) + enc.TxHash = l.TxHash + enc.TxIndex = hexutil.Uint(l.TxIndex) + enc.BlockHash = l.BlockHash + enc.Index = hexutil.Uint(l.Index) + enc.Removed = l.Removed + return json.Marshal(&enc) +} + +// UnmarshalJSON unmarshals from JSON. +func (l *Log) UnmarshalJSON(input []byte) error { + type Log struct { + Address *common.Address `json:"address" gencodec:"required"` + Topics []common.Hash `json:"topics" gencodec:"required"` + Data *hexutil.Bytes `json:"data" gencodec:"required"` + BlockNumber *hexutil.Uint64 `json:"blockNumber" rlp:"-"` + TxHash *common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex *hexutil.Uint `json:"transactionIndex" rlp:"-"` + BlockHash *common.Hash `json:"blockHash" rlp:"-"` + Index *hexutil.Uint `json:"logIndex" rlp:"-"` + Removed *bool `json:"removed" rlp:"-"` + } + var dec Log + if err := json.Unmarshal(input, &dec); err != nil { + return err + } + if dec.Address == nil { + return errors.New("missing required field 'address' for Log") + } + l.Address = *dec.Address + if dec.Topics == nil { + return errors.New("missing required field 'topics' for Log") + } + l.Topics = dec.Topics + if dec.Data == nil { + return errors.New("missing required field 'data' for Log") + } + l.Data = *dec.Data + if dec.BlockNumber != nil { + l.BlockNumber = uint64(*dec.BlockNumber) + } + if dec.TxHash == nil { + return errors.New("missing required field 'transactionHash' for Log") + } + l.TxHash = *dec.TxHash + if dec.TxIndex != nil { + l.TxIndex = uint(*dec.TxIndex) + } + if dec.BlockHash != nil { + l.BlockHash = *dec.BlockHash + } + if dec.Index != nil { + l.Index = uint(*dec.Index) + } + if dec.Removed != nil { + l.Removed = *dec.Removed + } + return nil +} diff --git a/mod/execution/go.mod b/mod/execution/go.mod index e9879a6e20..1907f0186b 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -6,10 +6,8 @@ require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624204855-d8809d5c8588 github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd - github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e github.com/berachain/beacon-kit/mod/log v0.0.0-20240610210054-bfdc14c4013c github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 - github.com/ethereum/go-ethereum v1.14.7 github.com/goccy/go-json v0.10.3 ) @@ -19,6 +17,7 @@ require ( github.com/VictoriaMetrics/fastcache v1.12.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db // indirect + github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -30,15 +29,14 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.13.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.3 // indirect + github.com/ethereum/go-ethereum v1.14.7 // indirect github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gofrs/flock v0.12.1 // indirect @@ -46,7 +44,6 @@ require ( github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/uint256 v1.3.1 // indirect @@ -58,7 +55,6 @@ require ( github.com/mattn/go-runewidth v0.0.16 // indirect github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/mitchellh/pointerstructure v1.2.1 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect diff --git a/mod/execution/go.sum b/mod/execution/go.sum index 75383e6c6f..e2b15934df 100644 --- a/mod/execution/go.sum +++ b/mod/execution/go.sum @@ -28,8 +28,6 @@ github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ens github.com/btcsuite/btcd/btcec/v2 v2.3.3/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/cespare/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= -github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -54,8 +52,6 @@ github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/Yj github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.13.0 h1:VPULb/v6bbYELAPTDFINEVaMTTybV5GLxDdcjnS+4oc= github.com/consensys/gnark-crypto v0.13.0/go.mod h1:wKqwsieaKPThcFkHe0d0zMsbHEUWFmZcG7KBCse210o= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= @@ -79,15 +75,11 @@ github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 h1:KrE8I4reeV github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0/go.mod h1:D9AJLVXSyZQXJQVk8oh1EwjISE+sJTn2duYIZC0dy3w= github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 h1:oMYkNRlaY+YxcbYW4U84mQQkujiloBbxQFnTOHUbkec= github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79/go.mod h1:EGSbefgAPd3M0hlBwOCw4Mkj+0YAaSnXw1QeLasY6XQ= -github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= -github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -102,8 +94,6 @@ github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -128,24 +118,14 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/hashicorp/go-bexpr v0.1.14 h1:uKDeyuOhWhT1r5CiMTjdVY4Aoxdxs6EtwgTGnlosyp4= -github.com/hashicorp/go-bexpr v0.1.14/go.mod h1:gN7hRKB3s7yT+YvTdnhZVLTENejvhlkZ8UE4YVBS+Q8= -github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da h1:8qEhdMGSUx67L2s5aGQinJhOwLfIRKLRBHPQq8m6WxE= -github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= -github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4 h1:CvO92iWYv7SS7hWzd1cYaAhGVZmanD/DtUfe0s+kTeg= github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4/go.mod h1:SUFJO5R2VkUK3vT80pjfIB/g7eaQgSU2RhbuL8GOJq4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -162,20 +142,13 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/pointerstructure v1.2.1 h1:ZhBBeX8tSlRpu/FFhXH4RC4OJzFlqsQhoHZAz4x7TIw= -github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= @@ -225,14 +198,8 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= -github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/status-im/keycard-go v0.3.2 h1:YusIF/bHx6YZis8UTOJrpZFnTs4IkRBdmJXqdiXkpFE= -github.com/status-im/keycard-go v0.3.2/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -249,14 +216,8 @@ github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZ github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= -github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= -github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/umbracle/fastrlp v0.1.0 h1:V0W3f6ZKWqbu1KggdhnRWOi+t7+PfL3VyAffJqayI5s= github.com/umbracle/fastrlp v0.1.0/go.mod h1:5RHgqiFjd4vLJESMWagP/E7su+5Gzk0iqqmrotR8WdA= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= @@ -317,8 +278,6 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -343,8 +302,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= -gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/mod/execution/pkg/client/ethclient/eth.go b/mod/execution/pkg/client/ethclient/eth.go index df92afe3a0..22ec912e79 100644 --- a/mod/execution/pkg/client/ethclient/eth.go +++ b/mod/execution/pkg/client/ethclient/eth.go @@ -22,15 +22,10 @@ package ethclient import ( "context" - "fmt" - "math/big" - "github.com/berachain/beacon-kit/mod/errors" - "github.com/berachain/beacon-kit/mod/geth-primitives/pkg/rpc" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" - "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/core/types" ) // ChainID retrieves the current chain ID. @@ -44,66 +39,18 @@ func (ec *Client[ExecutionPayloadT]) ChainID( return result, nil } -// TODO: Figure out how to unhood all this. - -// FilterLogs executes a filter query. -func (ec *Client[ExecutionPayloadT]) FilterLogs( +// GetLogsByBlockHash retrieves logs for a block hash. +func (ec *Client[ExecutionPayloadT]) GetLogsAtBlockNumber( ctx context.Context, - q ethereum.FilterQuery, -) ([]types.Log, error) { - var result []types.Log - arg, err := toFilterArg(q) - if err != nil { - return nil, err - } - return result, ec.Call(ctx, &result, "eth_getLogs", arg) -} - -// SubscribeFilterLogs(ctx context.Context, q FilterQuery, ch chan<- types.Log) -// (Subscription, error) - -func (ec *Client[ExecutionPayloadT]) SubscribeFilterLogs( - context.Context, - ethereum.FilterQuery, - chan<- types.Log, -) (ethereum.Subscription, error) { - return nil, errors.New("not implemented") -} - -func toFilterArg(q ethereum.FilterQuery) (interface{}, error) { - arg := map[string]interface{}{ - "address": q.Addresses, - "topics": q.Topics, - } - if q.BlockHash != nil { - arg["blockHash"] = *q.BlockHash - if q.FromBlock != nil || q.ToBlock != nil { - return nil, errors.New( - "cannot specify both BlockHash and FromBlock/ToBlock", - ) - } - } else { - if q.FromBlock == nil { - arg["fromBlock"] = "0x0" - } else { - arg["fromBlock"] = toBlockNumArg(q.FromBlock) - } - arg["toBlock"] = toBlockNumArg(q.ToBlock) - } - return arg, nil -} - -func toBlockNumArg(number *big.Int) string { - if number == nil { - return "latest" - } - if number.Sign() >= 0 { - return hexutil.EncodeBig(number) - } - // It's negative. - if number.IsInt64() { - return rpc.BlockNumber(number.Int64()).String() - } - // It's negative and large, which is invalid. - return fmt.Sprintf("", number) + number math.U64, + address common.ExecutionAddress, +) ([]engineprimitives.Log, error) { + var result []engineprimitives.Log + return result, + ec.Call(ctx, + &result, "eth_getLogs", map[string]interface{}{ + "fromBlock": number.Hex(), + "toBlock": number.Hex(), + "address": address, + }) } diff --git a/mod/execution/pkg/client/ethclient/test/main.go b/mod/execution/pkg/client/ethclient/test/main.go new file mode 100644 index 0000000000..d46fdf57d9 --- /dev/null +++ b/mod/execution/pkg/client/ethclient/test/main.go @@ -0,0 +1,35 @@ +// package main + +// import ( +// "context" +// "fmt" + +// "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" +// "github.com/berachain/beacon-kit/mod/execution/pkg/client/ethclient" +// "github.com/berachain/beacon-kit/mod/execution/pkg/client/ethclient/rpc" +// "github.com/berachain/beacon-kit/mod/primitives/pkg/common" +// "github.com/berachain/beacon-kit/mod/primitives/pkg/math" +// "github.com/davecgh/go-spew/spew" +// ) + +// func main() { +// c := rpc.NewClient("https://restless-thrumming-county.bera-bartio.quiknode.pro/6f5c8dc2120be6048421ac6d84c1f700e5875e50") +// cl := ethclient.New[*types.ExecutionPayload](c) + +// logs, err := cl.GetLogsAtBlockNumber( +// context.TODO(), +// math.U64(2870518), +// common.NewExecutionAddressFromHex("0x4242424242424242424242424242424242424242"), +// ) +// if err != nil { +// fmt.Println(err) +// return +// } + +// for _, l := range logs { +// spew.Dump(l) +// deposit := new(types.Deposit) +// deposit.UnmarshalLog(l) +// spew.Dump(deposit) +// } +// } diff --git a/mod/execution/pkg/client/ethclient/types/logs.go b/mod/execution/pkg/client/ethclient/types/logs.go deleted file mode 100644 index 85c384beb3..0000000000 --- a/mod/execution/pkg/client/ethclient/types/logs.go +++ /dev/null @@ -1,76 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -// -// Copyright (C) 2024, Berachain Foundation. All rights reserved. -// Use of this software is governed by the Business Source License included -// in the LICENSE file of this repository and at www.mariadb.com/bsl11. -// -// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY -// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER -// VERSIONS OF THE LICENSED WORK. -// -// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF -// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF -// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). -// -// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON -// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, -// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND -// TITLE. - -package types - -import ( - "errors" - - "github.com/berachain/beacon-kit/mod/primitives/pkg/common" -) - -// FilterArgs is a map of string to any, used to configure a filter query. -type FilterArgs map[string]any - -// New creates a new FilterArgs with the given addresses and topics. -func (f FilterArgs) New( - addrs []common.ExecutionAddress, topics []common.ExecutionHash, -) FilterArgs { - return FilterArgs{ - "address": addrs, - "topics": topics, - } -} - -// SetFromBlock sets the "fromBlock" field in the FilterArgs, ensuring that -// BlockHash is not also set. -func (f FilterArgs) SetFromBlock(block BlockNumber) error { - var err error - if f["fromBlock"], err = block.MarshalText(); err != nil { - return err - } - if f["blockHash"] != nil { - return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") - } - return nil -} - -// SetToBlock sets the "toBlock" field in the FilterArgs, ensuring that -// BlockHash is not also set. -func (f FilterArgs) SetToBlock(block BlockNumber) error { - var err error - if f["toBlock"], err = block.MarshalText(); err != nil { - return err - } - if f["blockHash"] != nil { - return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") - } - return nil -} - -// SetBlockHash sets the "blockHash" field in the FilterArgs, ensuring that -// FromBlock and ToBlock are not also set. -func (f FilterArgs) SetBlockHash(hash common.ExecutionHash) error { - if f["fromBlock"] != nil || f["toBlock"] != nil { - return errors.New("cannot specify both BlockHash and FromBlock/ToBlock") - } - f["blockHash"] = hash.Hex() - return nil -} diff --git a/mod/execution/pkg/client/ethclient/types/number.go b/mod/execution/pkg/client/ethclient/types/number.go deleted file mode 100644 index 719576bdd8..0000000000 --- a/mod/execution/pkg/client/ethclient/types/number.go +++ /dev/null @@ -1,122 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -// -// Copyright (C) 2024, Berachain Foundation. All rights reserved. -// Use of this software is governed by the Business Source License included -// in the LICENSE file of this repository and at www.mariadb.com/bsl11. -// -// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY -// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER -// VERSIONS OF THE LICENSED WORK. -// -// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF -// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF -// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). -// -// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON -// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, -// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND -// TITLE. - -package types - -import ( - "errors" - "fmt" - stdmath "math" - "strings" - - "github.com/berachain/beacon-kit/mod/primitives/pkg/math" -) - -// BlockNumber represents a block number. -const ( - // SafeBlockNumberStr is the string representation of SafeBlockNumber. - SafeBlockNumberStr = "safe" - // FinalizedBlockNumberStr is the string representation of FinalizedBlockNumber. - FinalizedBlockNumberStr = "finalized" - // LatestBlockNumberStr is the string representation of LatestBlockNumber. - LatestBlockNumberStr = "latest" - // PendingBlockNumberStr is the string representation of PendingBlockNumber. - PendingBlockNumberStr = "pending" - // EarliestBlockNumberStr is the string representation of EarliestBlockNumber. - EarliestBlockNumberStr = "earliest" - - // SafeBlockNumber represents a safe block to use for certain operations. - SafeBlockNumber BlockNumber = -4 - // FinalizedBlockNumber represents the finalized block. - FinalizedBlockNumber BlockNumber = -3 - // LatestBlockNumber represents the latest block in the chain. - LatestBlockNumber BlockNumber = -2 - // PendingBlockNumber represents the pending block. - PendingBlockNumber BlockNumber = -1 - // EarliestBlockNumber represents the earliest block in the chain. - EarliestBlockNumber BlockNumber = 0 -) - -// BlockNumber represents a block number. -type BlockNumber int64 - -// UnmarshalJSON parses the given JSON fragment into a BlockNumber -func (bn *BlockNumber) UnmarshalJSON(data []byte) error { - input := strings.TrimSpace(string(data)) - - if len(input) >= 2 && input[0] == '"' && input[len(input)-1] == '"' { - input = input[1 : len(input)-1] - } - - switch input { - case EarliestBlockNumberStr: - *bn = EarliestBlockNumber - return nil - case LatestBlockNumberStr: - *bn = LatestBlockNumber - return nil - case PendingBlockNumberStr: - *bn = PendingBlockNumber - return nil - case FinalizedBlockNumberStr: - *bn = FinalizedBlockNumber - return nil - case SafeBlockNumberStr: - *bn = SafeBlockNumber - return nil - } - - result := new(math.U64) - if err := result.UnmarshalJSON([]byte(input)); err != nil { - return err - } - if *result > math.U64(uint64(stdmath.MaxInt64)) { - return errors.New("block number larger than int64") - } - //#nosec:G701 // handled by the guard above. - *bn = BlockNumber(*result.UnwrapPtr()) - return nil -} - -// MarshalText implements encoding.TextMarshaler. -func (bn BlockNumber) MarshalText() ([]byte, error) { - return []byte(bn.String()), nil -} - -// String returns the string representation of the BlockNumber. -func (bn BlockNumber) String() string { - switch bn { - case EarliestBlockNumber: - return EarliestBlockNumberStr - case LatestBlockNumber: - return LatestBlockNumberStr - case PendingBlockNumber: - return PendingBlockNumberStr - case FinalizedBlockNumber: - return FinalizedBlockNumberStr - case SafeBlockNumber: - return SafeBlockNumberStr - default: - if bn < 0 { - return fmt.Sprintf("", bn) - } - return math.U64(bn).Hex() - } -} diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 1a9f30b4f5..b78535e85f 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -22,23 +22,28 @@ package deposit import ( "context" - "errors" - gethprimitives "github.com/berachain/beacon-kit/mod/geth-primitives" - "github.com/berachain/beacon-kit/mod/geth-primitives/pkg/bind" - "github.com/berachain/beacon-kit/mod/geth-primitives/pkg/deposit" - "github.com/berachain/beacon-kit/mod/primitives/pkg/bytes" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) +// Client is an interface for the client. +type Client interface { + GetLogsAtBlockNumber( + ctx context.Context, + number math.U64, + address common.ExecutionAddress, + ) ([]engineprimitives.Log, error) +} + // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ DepositT Deposit[DepositT, WithdrawalCredentialsT], WithdrawalCredentialsT ~[32]byte, ] struct { - // BeaconDepositContractFilterer is a pointer to the codegen ABI binding. - deposit.BeaconDepositContractFilterer + client Client + address common.ExecutionAddress } // NewWrappedBeaconDepositContract creates a new BeaconDepositContract. @@ -47,26 +52,18 @@ func NewWrappedBeaconDepositContract[ WithdrawalCredentialsT ~[32]byte, ]( address common.ExecutionAddress, - client bind.ContractFilterer, + client Client, ) (*WrappedBeaconDepositContract[ DepositT, WithdrawalCredentialsT, ], error) { - contract, err := deposit.NewBeaconDepositContractFilterer( - gethprimitives.ExecutionAddress(address), client, - ) - - if err != nil { - return nil, err - } else if contract == nil { - return nil, errors.New("contract must not be nil") - } return &WrappedBeaconDepositContract[ DepositT, WithdrawalCredentialsT, ]{ - BeaconDepositContractFilterer: *contract, + client: client, + address: address, }, nil } @@ -78,28 +75,23 @@ func (dc *WrappedBeaconDepositContract[ ctx context.Context, blkNum math.U64, ) ([]DepositT, error) { - logs, err := dc.FilterDeposit( - &bind.FilterOpts{ - Context: ctx, - Start: blkNum.Unwrap(), - End: (*uint64)(&blkNum), - }, + logs, err := dc.client.GetLogsAtBlockNumber( + ctx, + blkNum, + dc.address, ) if err != nil { return nil, err } + var d DepositT deposits := make([]DepositT, 0) - for logs.Next() { - var d DepositT - deposits = append(deposits, d.New( - bytes.ToBytes48(logs.Event.Pubkey), - WithdrawalCredentialsT( - bytes.ToBytes32(logs.Event.Credentials)), - math.U64(logs.Event.Amount), - bytes.ToBytes96(logs.Event.Signature), - logs.Event.Index, - )) + for _, log := range logs { + d = d.Empty() + if err := d.UnmarshalLog(log); err != nil { + return nil, err + } + deposits = append(deposits) } return deposits, nil diff --git a/mod/execution/pkg/deposit/types.go b/mod/execution/pkg/deposit/types.go index a94dda411c..0e40cbd3b9 100644 --- a/mod/execution/pkg/deposit/types.go +++ b/mod/execution/pkg/deposit/types.go @@ -24,7 +24,7 @@ import ( "context" asynctypes "github.com/berachain/beacon-kit/mod/async/pkg/types" - "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) @@ -75,15 +75,17 @@ type Contract[DepositT any] interface { // Deposit is an interface for deposits. type Deposit[DepositT, WithdrawalCredentialsT any] interface { // New creates a new deposit. - New( - crypto.BLSPubkey, - WithdrawalCredentialsT, - math.U64, - crypto.BLSSignature, - uint64, - ) DepositT + // New( + // crypto.BLSPubkey, + // WithdrawalCredentialsT, + // math.U64, + // crypto.BLSSignature, + // uint64, + // ) DepositT + Empty() DepositT // GetIndex returns the index of the deposit. GetIndex() math.U64 + UnmarshalLog(engineprimitives.Log) error } // Store defines the interface for managing deposit operations. diff --git a/mod/node-core/pkg/components/deposit_service.go b/mod/node-core/pkg/components/deposit_service.go index c1ad506765..c7be662def 100644 --- a/mod/node-core/pkg/components/deposit_service.go +++ b/mod/node-core/pkg/components/deposit_service.go @@ -60,6 +60,7 @@ func ProvideDepositService(in DepositServiceIn) (*DepositService, error) { *BlockEvent, *DepositStore, *ExecutionPayload, + WithdrawalCredentials, ]( in.Logger.With("service", "deposit"), math.U64(in.ChainSpec.Eth1FollowDistance()), From fbcf372443944958b3e91f625f8f169f13e9f99f Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 13:24:22 -0400 Subject: [PATCH 12/51] bet --- mod/engine-primitives/go.mod | 2 +- .../pkg/engine-primitives/log.go | 55 ++++++++++--------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/mod/engine-primitives/go.mod b/mod/engine-primitives/go.mod index 3d07d6bf5f..3597a736cb 100644 --- a/mod/engine-primitives/go.mod +++ b/mod/engine-primitives/go.mod @@ -6,7 +6,6 @@ require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 - github.com/ethereum/go-ethereum v1.14.7 github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 github.com/holiman/uint256 v1.3.1 github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4 @@ -37,6 +36,7 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.3 // indirect + github.com/ethereum/go-ethereum v1.14.7 // indirect github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 81a92034ab..d3d592a555 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -4,8 +4,9 @@ import ( "encoding/json" "github.com/berachain/beacon-kit/mod/errors" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/berachain/beacon-kit/mod/primitives/pkg/bytes" + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" + "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) // Log represents a contract log event. These events are generated by the LOG opcode and @@ -13,9 +14,9 @@ import ( type Log struct { // Consensus fields: // address of the contract that generated the event - Address common.Address `json:"address" gencodec:"required"` + Address common.ExecutionAddress `json:"address" gencodec:"required"` // list of topics provided by the contract. - Topics []common.Hash `json:"topics" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` // supplied by the contract, usually ABI-encoded Data []byte `json:"data" gencodec:"required"` @@ -24,11 +25,11 @@ type Log struct { // block in which the transaction was included BlockNumber uint64 `json:"blockNumber" rlp:"-"` // hash of the transaction - TxHash common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` // index of the transaction in the block TxIndex uint `json:"transactionIndex" rlp:"-"` // hash of the block in which the transaction was included - BlockHash common.Hash `json:"blockHash" rlp:"-"` + BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` // index of the log in the block Index uint `json:"logIndex" rlp:"-"` @@ -40,25 +41,25 @@ type Log struct { // MarshalJSON marshals as JSON. func (l Log) MarshalJSON() ([]byte, error) { type Log struct { - Address common.Address `json:"address" gencodec:"required"` - Topics []common.Hash `json:"topics" gencodec:"required"` - Data hexutil.Bytes `json:"data" gencodec:"required"` - BlockNumber hexutil.Uint64 `json:"blockNumber" rlp:"-"` - TxHash common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex hexutil.Uint `json:"transactionIndex" rlp:"-"` - BlockHash common.Hash `json:"blockHash" rlp:"-"` - Index hexutil.Uint `json:"logIndex" rlp:"-"` - Removed bool `json:"removed" rlp:"-"` + Address common.ExecutionAddress `json:"address" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Data bytes.Bytes `json:"data" gencodec:"required"` + BlockNumber math.U64 `json:"blockNumber" rlp:"-"` + TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex math.U64 `json:"transactionIndex" rlp:"-"` + BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` + Index math.U64 `json:"logIndex" rlp:"-"` + Removed bool `json:"removed" rlp:"-"` } var enc Log enc.Address = l.Address enc.Topics = l.Topics enc.Data = l.Data - enc.BlockNumber = hexutil.Uint64(l.BlockNumber) + enc.BlockNumber = math.U64(l.BlockNumber) enc.TxHash = l.TxHash - enc.TxIndex = hexutil.Uint(l.TxIndex) + enc.TxIndex = math.U64(l.TxIndex) enc.BlockHash = l.BlockHash - enc.Index = hexutil.Uint(l.Index) + enc.Index = math.U64(l.Index) enc.Removed = l.Removed return json.Marshal(&enc) } @@ -66,15 +67,15 @@ func (l Log) MarshalJSON() ([]byte, error) { // UnmarshalJSON unmarshals from JSON. func (l *Log) UnmarshalJSON(input []byte) error { type Log struct { - Address *common.Address `json:"address" gencodec:"required"` - Topics []common.Hash `json:"topics" gencodec:"required"` - Data *hexutil.Bytes `json:"data" gencodec:"required"` - BlockNumber *hexutil.Uint64 `json:"blockNumber" rlp:"-"` - TxHash *common.Hash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex *hexutil.Uint `json:"transactionIndex" rlp:"-"` - BlockHash *common.Hash `json:"blockHash" rlp:"-"` - Index *hexutil.Uint `json:"logIndex" rlp:"-"` - Removed *bool `json:"removed" rlp:"-"` + Address *common.ExecutionAddress `json:"address" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Data *bytes.Bytes `json:"data" gencodec:"required"` + BlockNumber *math.U64 `json:"blockNumber" rlp:"-"` + TxHash *common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex *math.U64 `json:"transactionIndex" rlp:"-"` + BlockHash *common.ExecutionHash `json:"blockHash" rlp:"-"` + Index *math.U64 `json:"logIndex" rlp:"-"` + Removed *bool `json:"removed" rlp:"-"` } var dec Log if err := json.Unmarshal(input, &dec); err != nil { From 85e1837084f5d658b6b5d532842f1235180c0d73 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 13:24:56 -0400 Subject: [PATCH 13/51] bet --- codecov.yml | 1 - .../pkg/engine-primitives/log.go | 20 ++ .../pkg/client/ethclient/test/main.go | 20 ++ .../pkg/deposit/contract.abigen.go | 201 ------------------ 4 files changed, 40 insertions(+), 202 deletions(-) delete mode 100644 mod/geth-primitives/pkg/deposit/contract.abigen.go diff --git a/codecov.yml b/codecov.yml index 4348abff7e..45867ae3c9 100644 --- a/codecov.yml +++ b/codecov.yml @@ -40,7 +40,6 @@ ignore: - "**/*.pb.go" - "**/*.pb.gw.go" - "**/*.pulsar.go" - - "**/*.abigen.go" - "**/*.ssz.go" - "**/*.rlpgen.go" - "**/*.json.go" diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index d3d592a555..31fd0cd510 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -1,3 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + package engineprimitives import ( diff --git a/mod/execution/pkg/client/ethclient/test/main.go b/mod/execution/pkg/client/ethclient/test/main.go index d46fdf57d9..87e12682c4 100644 --- a/mod/execution/pkg/client/ethclient/test/main.go +++ b/mod/execution/pkg/client/ethclient/test/main.go @@ -1,3 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + // package main // import ( diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go deleted file mode 100644 index 0223240a30..0000000000 --- a/mod/geth-primitives/pkg/deposit/contract.abigen.go +++ /dev/null @@ -1,201 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package deposit - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// BeaconDepositContractMetaData contains all meta data concerning the BeaconDepositContract contract. -var BeaconDepositContractMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"allowDeposit\",\"inputs\":[{\"name\":\"depositor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"number\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"completeOwnershipHandover\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeOwner\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownershipHandoverExpiresAt\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverCanceled\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverRequested\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"oldOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositNotMultipleOfGwei\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositValueTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientDeposit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCredentialsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignatureLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewOwnerIsZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoHandoverRequest\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Unauthorized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedDeposit\",\"inputs\":[]}]", -} - -// BeaconDepositContractABI is the input ABI used to generate the binding from. -// Deprecated: Use BeaconDepositContractMetaData.ABI instead. -var BeaconDepositContractABI = BeaconDepositContractMetaData.ABI - -// BeaconDepositContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type BeaconDepositContractFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// NewBeaconDepositContractFilterer creates a new log filterer instance of BeaconDepositContract, bound to a specific deployed contract. -func NewBeaconDepositContractFilterer(address common.Address, filterer bind.ContractFilterer) (*BeaconDepositContractFilterer, error) { - contract, err := bindBeaconDepositContract(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &BeaconDepositContractFilterer{contract: contract}, nil -} - -// bindBeaconDepositContract binds a generic wrapper to an already deployed contract. -func bindBeaconDepositContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := BeaconDepositContractMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - - -// BeaconDepositContractDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the BeaconDepositContract contract. -type BeaconDepositContractDepositIterator struct { - Event *BeaconDepositContractDeposit // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *BeaconDepositContractDepositIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractDeposit) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(BeaconDepositContractDeposit) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *BeaconDepositContractDepositIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *BeaconDepositContractDepositIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// BeaconDepositContractDeposit represents a Deposit event raised by the BeaconDepositContract contract. -type BeaconDepositContractDeposit struct { - Pubkey []byte - Credentials []byte - Amount uint64 - Signature []byte - Index uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDeposit is a free log retrieval operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. -// -// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) -func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterDeposit(opts *bind.FilterOpts) (*BeaconDepositContractDepositIterator, error) { - logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "Deposit") - if err != nil { - return nil, err - } - return &BeaconDepositContractDepositIterator{contract: _BeaconDepositContract.contract, event: "Deposit", logs: logs, sub: sub}, nil -} - -// WatchDeposit is a free log subscription operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. -// -// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) -func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractDeposit) (event.Subscription, error) { - - logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "Deposit") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(BeaconDepositContractDeposit) - if err := _BeaconDepositContract.contract.UnpackLog(event, "Deposit", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseDeposit is a log parse operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. -// -// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) -func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseDeposit(log types.Log) (*BeaconDepositContractDeposit, error) { - event := new(BeaconDepositContractDeposit) - if err := _BeaconDepositContract.contract.UnpackLog(event, "Deposit", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - From cd8e51d749138d66a1829fb96779d5355c926d6c Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 13:27:59 -0400 Subject: [PATCH 14/51] bet --- .../pkg/engine-primitives/log.go | 56 +- .../pkg/client/ethclient/test/main.go | 55 - .../pkg/deposit/contract.abigen.go | 1021 +++++++++++++++++ mod/geth-primitives/pkg/deposit/contract.go | 23 + 4 files changed, 1073 insertions(+), 82 deletions(-) delete mode 100644 mod/execution/pkg/client/ethclient/test/main.go create mode 100644 mod/geth-primitives/pkg/deposit/contract.abigen.go create mode 100644 mod/geth-primitives/pkg/deposit/contract.go diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 31fd0cd510..60adb71cd0 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -29,47 +29,49 @@ import ( "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) -// Log represents a contract log event. These events are generated by the LOG opcode and +// Log represents a contract log event. These events are generated by the LOG +// opcode and // stored/indexed by the node. type Log struct { // Consensus fields: // address of the contract that generated the event Address common.ExecutionAddress `json:"address" gencodec:"required"` // list of topics provided by the contract. - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` // supplied by the contract, usually ABI-encoded - Data []byte `json:"data" gencodec:"required"` + Data []byte `json:"data" gencodec:"required"` // Derived fields. These fields are filled in by the node // but not secured by consensus. // block in which the transaction was included - BlockNumber uint64 `json:"blockNumber" rlp:"-"` + BlockNumber uint64 `json:"blockNumber" rlp:"-"` // hash of the transaction - TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxHash common.ExecutionHash `json:"transactionHash" rlp:"-" gencodec:"required"` // index of the transaction in the block TxIndex uint `json:"transactionIndex" rlp:"-"` // hash of the block in which the transaction was included - BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` + BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` // index of the log in the block - Index uint `json:"logIndex" rlp:"-"` + Index uint `json:"logIndex" rlp:"-"` - // The Removed field is true if this log was reverted due to a chain reorganisation. - // You must pay attention to this field if you receive logs through a filter query. + // The Removed field is true if this log was reverted due to a chain + // reorganisation. You must pay attention to this field if you receive logs + // through a filter query. Removed bool `json:"removed" rlp:"-"` } // MarshalJSON marshals as JSON. func (l Log) MarshalJSON() ([]byte, error) { type Log struct { - Address common.ExecutionAddress `json:"address" gencodec:"required"` - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` - Data bytes.Bytes `json:"data" gencodec:"required"` - BlockNumber math.U64 `json:"blockNumber" rlp:"-"` - TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex math.U64 `json:"transactionIndex" rlp:"-"` - BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` - Index math.U64 `json:"logIndex" rlp:"-"` - Removed bool `json:"removed" rlp:"-"` + Address common.ExecutionAddress `json:"address" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Data bytes.Bytes `json:"data" gencodec:"required"` + BlockNumber math.U64 `json:"blockNumber" rlp:"-"` + TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex math.U64 `json:"transactionIndex" rlp:"-"` + BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` + Index math.U64 `json:"logIndex" rlp:"-"` + Removed bool `json:"removed" rlp:"-"` } var enc Log enc.Address = l.Address @@ -87,15 +89,15 @@ func (l Log) MarshalJSON() ([]byte, error) { // UnmarshalJSON unmarshals from JSON. func (l *Log) UnmarshalJSON(input []byte) error { type Log struct { - Address *common.ExecutionAddress `json:"address" gencodec:"required"` - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` - Data *bytes.Bytes `json:"data" gencodec:"required"` - BlockNumber *math.U64 `json:"blockNumber" rlp:"-"` - TxHash *common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex *math.U64 `json:"transactionIndex" rlp:"-"` - BlockHash *common.ExecutionHash `json:"blockHash" rlp:"-"` - Index *math.U64 `json:"logIndex" rlp:"-"` - Removed *bool `json:"removed" rlp:"-"` + Address *common.ExecutionAddress `json:"address" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Data *bytes.Bytes `json:"data" gencodec:"required"` + BlockNumber *math.U64 `json:"blockNumber" rlp:"-"` + TxHash *common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` + TxIndex *math.U64 `json:"transactionIndex" rlp:"-"` + BlockHash *common.ExecutionHash `json:"blockHash" rlp:"-"` + Index *math.U64 `json:"logIndex" rlp:"-"` + Removed *bool `json:"removed" rlp:"-"` } var dec Log if err := json.Unmarshal(input, &dec); err != nil { diff --git a/mod/execution/pkg/client/ethclient/test/main.go b/mod/execution/pkg/client/ethclient/test/main.go deleted file mode 100644 index 87e12682c4..0000000000 --- a/mod/execution/pkg/client/ethclient/test/main.go +++ /dev/null @@ -1,55 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -// -// Copyright (C) 2024, Berachain Foundation. All rights reserved. -// Use of this software is governed by the Business Source License included -// in the LICENSE file of this repository and at www.mariadb.com/bsl11. -// -// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY -// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER -// VERSIONS OF THE LICENSED WORK. -// -// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF -// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF -// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). -// -// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON -// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, -// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND -// TITLE. - -// package main - -// import ( -// "context" -// "fmt" - -// "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" -// "github.com/berachain/beacon-kit/mod/execution/pkg/client/ethclient" -// "github.com/berachain/beacon-kit/mod/execution/pkg/client/ethclient/rpc" -// "github.com/berachain/beacon-kit/mod/primitives/pkg/common" -// "github.com/berachain/beacon-kit/mod/primitives/pkg/math" -// "github.com/davecgh/go-spew/spew" -// ) - -// func main() { -// c := rpc.NewClient("https://restless-thrumming-county.bera-bartio.quiknode.pro/6f5c8dc2120be6048421ac6d84c1f700e5875e50") -// cl := ethclient.New[*types.ExecutionPayload](c) - -// logs, err := cl.GetLogsAtBlockNumber( -// context.TODO(), -// math.U64(2870518), -// common.NewExecutionAddressFromHex("0x4242424242424242424242424242424242424242"), -// ) -// if err != nil { -// fmt.Println(err) -// return -// } - -// for _, l := range logs { -// spew.Dump(l) -// deposit := new(types.Deposit) -// deposit.UnmarshalLog(l) -// spew.Dump(deposit) -// } -// } diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go new file mode 100644 index 0000000000..41455f715d --- /dev/null +++ b/mod/geth-primitives/pkg/deposit/contract.abigen.go @@ -0,0 +1,1021 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package deposit + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// BeaconDepositContractMetaData contains all meta data concerning the BeaconDepositContract contract. +var BeaconDepositContractMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"allowDeposit\",\"inputs\":[{\"name\":\"depositor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"number\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"completeOwnershipHandover\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeOwner\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownershipHandoverExpiresAt\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverCanceled\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverRequested\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"oldOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositNotMultipleOfGwei\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositValueTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientDeposit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCredentialsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignatureLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewOwnerIsZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoHandoverRequest\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Unauthorized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedDeposit\",\"inputs\":[]}]", +} + +// BeaconDepositContractABI is the input ABI used to generate the binding from. +// Deprecated: Use BeaconDepositContractMetaData.ABI instead. +var BeaconDepositContractABI = BeaconDepositContractMetaData.ABI + +// BeaconDepositContract is an auto generated Go binding around an Ethereum contract. +type BeaconDepositContract struct { + BeaconDepositContractCaller // Read-only binding to the contract + BeaconDepositContractTransactor // Write-only binding to the contract + BeaconDepositContractFilterer // Log filterer for contract events +} + +// BeaconDepositContractCaller is an auto generated read-only Go binding around an Ethereum contract. +type BeaconDepositContractCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconDepositContractTransactor is an auto generated write-only Go binding around an Ethereum contract. +type BeaconDepositContractTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconDepositContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type BeaconDepositContractFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BeaconDepositContractSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type BeaconDepositContractSession struct { + Contract *BeaconDepositContract // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BeaconDepositContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type BeaconDepositContractCallerSession struct { + Contract *BeaconDepositContractCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// BeaconDepositContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type BeaconDepositContractTransactorSession struct { + Contract *BeaconDepositContractTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BeaconDepositContractRaw is an auto generated low-level Go binding around an Ethereum contract. +type BeaconDepositContractRaw struct { + Contract *BeaconDepositContract // Generic contract binding to access the raw methods on +} + +// BeaconDepositContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type BeaconDepositContractCallerRaw struct { + Contract *BeaconDepositContractCaller // Generic read-only contract binding to access the raw methods on +} + +// BeaconDepositContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type BeaconDepositContractTransactorRaw struct { + Contract *BeaconDepositContractTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewBeaconDepositContract creates a new instance of BeaconDepositContract, bound to a specific deployed contract. +func NewBeaconDepositContract(address common.Address, backend bind.ContractBackend) (*BeaconDepositContract, error) { + contract, err := bindBeaconDepositContract(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BeaconDepositContract{BeaconDepositContractCaller: BeaconDepositContractCaller{contract: contract}, BeaconDepositContractTransactor: BeaconDepositContractTransactor{contract: contract}, BeaconDepositContractFilterer: BeaconDepositContractFilterer{contract: contract}}, nil +} + +// NewBeaconDepositContractCaller creates a new read-only instance of BeaconDepositContract, bound to a specific deployed contract. +func NewBeaconDepositContractCaller(address common.Address, caller bind.ContractCaller) (*BeaconDepositContractCaller, error) { + contract, err := bindBeaconDepositContract(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BeaconDepositContractCaller{contract: contract}, nil +} + +// NewBeaconDepositContractTransactor creates a new write-only instance of BeaconDepositContract, bound to a specific deployed contract. +func NewBeaconDepositContractTransactor(address common.Address, transactor bind.ContractTransactor) (*BeaconDepositContractTransactor, error) { + contract, err := bindBeaconDepositContract(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BeaconDepositContractTransactor{contract: contract}, nil +} + +// NewBeaconDepositContractFilterer creates a new log filterer instance of BeaconDepositContract, bound to a specific deployed contract. +func NewBeaconDepositContractFilterer(address common.Address, filterer bind.ContractFilterer) (*BeaconDepositContractFilterer, error) { + contract, err := bindBeaconDepositContract(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BeaconDepositContractFilterer{contract: contract}, nil +} + +// bindBeaconDepositContract binds a generic wrapper to an already deployed contract. +func bindBeaconDepositContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BeaconDepositContractMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BeaconDepositContract *BeaconDepositContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BeaconDepositContract.Contract.BeaconDepositContractCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BeaconDepositContract *BeaconDepositContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.BeaconDepositContractTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BeaconDepositContract *BeaconDepositContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.BeaconDepositContractTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BeaconDepositContract *BeaconDepositContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BeaconDepositContract.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BeaconDepositContract *BeaconDepositContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BeaconDepositContract *BeaconDepositContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.contract.Transact(opts, method, params...) +} + +// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. +// +// Solidity: function depositCount() view returns(uint64) +func (_BeaconDepositContract *BeaconDepositContractCaller) DepositCount(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _BeaconDepositContract.contract.Call(opts, &out, "depositCount") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. +// +// Solidity: function depositCount() view returns(uint64) +func (_BeaconDepositContract *BeaconDepositContractSession) DepositCount() (uint64, error) { + return _BeaconDepositContract.Contract.DepositCount(&_BeaconDepositContract.CallOpts) +} + +// DepositCount is a free data retrieval call binding the contract method 0x2dfdf0b5. +// +// Solidity: function depositCount() view returns(uint64) +func (_BeaconDepositContract *BeaconDepositContractCallerSession) DepositCount() (uint64, error) { + return _BeaconDepositContract.Contract.DepositCount(&_BeaconDepositContract.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address result) +func (_BeaconDepositContract *BeaconDepositContractCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _BeaconDepositContract.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address result) +func (_BeaconDepositContract *BeaconDepositContractSession) Owner() (common.Address, error) { + return _BeaconDepositContract.Contract.Owner(&_BeaconDepositContract.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address result) +func (_BeaconDepositContract *BeaconDepositContractCallerSession) Owner() (common.Address, error) { + return _BeaconDepositContract.Contract.Owner(&_BeaconDepositContract.CallOpts) +} + +// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. +// +// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) +func (_BeaconDepositContract *BeaconDepositContractCaller) OwnershipHandoverExpiresAt(opts *bind.CallOpts, pendingOwner common.Address) (*big.Int, error) { + var out []interface{} + err := _BeaconDepositContract.contract.Call(opts, &out, "ownershipHandoverExpiresAt", pendingOwner) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. +// +// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) +func (_BeaconDepositContract *BeaconDepositContractSession) OwnershipHandoverExpiresAt(pendingOwner common.Address) (*big.Int, error) { + return _BeaconDepositContract.Contract.OwnershipHandoverExpiresAt(&_BeaconDepositContract.CallOpts, pendingOwner) +} + +// OwnershipHandoverExpiresAt is a free data retrieval call binding the contract method 0xfee81cf4. +// +// Solidity: function ownershipHandoverExpiresAt(address pendingOwner) view returns(uint256 result) +func (_BeaconDepositContract *BeaconDepositContractCallerSession) OwnershipHandoverExpiresAt(pendingOwner common.Address) (*big.Int, error) { + return _BeaconDepositContract.Contract.OwnershipHandoverExpiresAt(&_BeaconDepositContract.CallOpts, pendingOwner) +} + +// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. +// +// Solidity: function allowDeposit(address depositor, uint64 number) returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) AllowDeposit(opts *bind.TransactOpts, depositor common.Address, number uint64) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "allowDeposit", depositor, number) +} + +// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. +// +// Solidity: function allowDeposit(address depositor, uint64 number) returns() +func (_BeaconDepositContract *BeaconDepositContractSession) AllowDeposit(depositor common.Address, number uint64) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.AllowDeposit(&_BeaconDepositContract.TransactOpts, depositor, number) +} + +// AllowDeposit is a paid mutator transaction binding the contract method 0x5a7517ad. +// +// Solidity: function allowDeposit(address depositor, uint64 number) returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) AllowDeposit(depositor common.Address, number uint64) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.AllowDeposit(&_BeaconDepositContract.TransactOpts, depositor, number) +} + +// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. +// +// Solidity: function cancelOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) CancelOwnershipHandover(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "cancelOwnershipHandover") +} + +// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. +// +// Solidity: function cancelOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) CancelOwnershipHandover() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.CancelOwnershipHandover(&_BeaconDepositContract.TransactOpts) +} + +// CancelOwnershipHandover is a paid mutator transaction binding the contract method 0x54d1f13d. +// +// Solidity: function cancelOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) CancelOwnershipHandover() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.CancelOwnershipHandover(&_BeaconDepositContract.TransactOpts) +} + +// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. +// +// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) CompleteOwnershipHandover(opts *bind.TransactOpts, pendingOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "completeOwnershipHandover", pendingOwner) +} + +// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. +// +// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) CompleteOwnershipHandover(pendingOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.CompleteOwnershipHandover(&_BeaconDepositContract.TransactOpts, pendingOwner) +} + +// CompleteOwnershipHandover is a paid mutator transaction binding the contract method 0xf04e283e. +// +// Solidity: function completeOwnershipHandover(address pendingOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) CompleteOwnershipHandover(pendingOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.CompleteOwnershipHandover(&_BeaconDepositContract.TransactOpts, pendingOwner) +} + +// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. +// +// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) Deposit(opts *bind.TransactOpts, pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "deposit", pubkey, credentials, amount, signature) +} + +// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. +// +// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) Deposit(pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.Deposit(&_BeaconDepositContract.TransactOpts, pubkey, credentials, amount, signature) +} + +// Deposit is a paid mutator transaction binding the contract method 0x5b70fa29. +// +// Solidity: function deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) Deposit(pubkey []byte, credentials []byte, amount uint64, signature []byte) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.Deposit(&_BeaconDepositContract.TransactOpts, pubkey, credentials, amount, signature) +} + +// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. +// +// Solidity: function initializeOwner() returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) InitializeOwner(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "initializeOwner") +} + +// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. +// +// Solidity: function initializeOwner() returns() +func (_BeaconDepositContract *BeaconDepositContractSession) InitializeOwner() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.InitializeOwner(&_BeaconDepositContract.TransactOpts) +} + +// InitializeOwner is a paid mutator transaction binding the contract method 0x5f53837f. +// +// Solidity: function initializeOwner() returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) InitializeOwner() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.InitializeOwner(&_BeaconDepositContract.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) RenounceOwnership() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.RenounceOwnership(&_BeaconDepositContract.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.RenounceOwnership(&_BeaconDepositContract.TransactOpts) +} + +// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. +// +// Solidity: function requestOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) RequestOwnershipHandover(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "requestOwnershipHandover") +} + +// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. +// +// Solidity: function requestOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) RequestOwnershipHandover() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.RequestOwnershipHandover(&_BeaconDepositContract.TransactOpts) +} + +// RequestOwnershipHandover is a paid mutator transaction binding the contract method 0x25692962. +// +// Solidity: function requestOwnershipHandover() payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) RequestOwnershipHandover() (*types.Transaction, error) { + return _BeaconDepositContract.Contract.RequestOwnershipHandover(&_BeaconDepositContract.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.TransferOwnership(&_BeaconDepositContract.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) payable returns() +func (_BeaconDepositContract *BeaconDepositContractTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _BeaconDepositContract.Contract.TransferOwnership(&_BeaconDepositContract.TransactOpts, newOwner) +} + +// BeaconDepositContractDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the BeaconDepositContract contract. +type BeaconDepositContractDepositIterator struct { + Event *BeaconDepositContractDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *BeaconDepositContractDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *BeaconDepositContractDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *BeaconDepositContractDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// BeaconDepositContractDeposit represents a Deposit event raised by the BeaconDepositContract contract. +type BeaconDepositContractDeposit struct { + Pubkey []byte + Credentials []byte + Amount uint64 + Signature []byte + Index uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. +// +// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) +func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterDeposit(opts *bind.FilterOpts) (*BeaconDepositContractDepositIterator, error) { + + logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "Deposit") + if err != nil { + return nil, err + } + return &BeaconDepositContractDepositIterator{contract: _BeaconDepositContract.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. +// +// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) +func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractDeposit) (event.Subscription, error) { + + logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "Deposit") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(BeaconDepositContractDeposit) + if err := _BeaconDepositContract.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46. +// +// Solidity: event Deposit(bytes pubkey, bytes credentials, uint64 amount, bytes signature, uint64 index) +func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseDeposit(log types.Log) (*BeaconDepositContractDeposit, error) { + event := new(BeaconDepositContractDeposit) + if err := _BeaconDepositContract.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// BeaconDepositContractOwnershipHandoverCanceledIterator is returned from FilterOwnershipHandoverCanceled and is used to iterate over the raw logs and unpacked data for OwnershipHandoverCanceled events raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipHandoverCanceledIterator struct { + Event *BeaconDepositContractOwnershipHandoverCanceled // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipHandoverCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipHandoverCanceled) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *BeaconDepositContractOwnershipHandoverCanceledIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// BeaconDepositContractOwnershipHandoverCanceled represents a OwnershipHandoverCanceled event raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipHandoverCanceled struct { + PendingOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipHandoverCanceled is a free log retrieval operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. +// +// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipHandoverCanceled(opts *bind.FilterOpts, pendingOwner []common.Address) (*BeaconDepositContractOwnershipHandoverCanceledIterator, error) { + + var pendingOwnerRule []interface{} + for _, pendingOwnerItem := range pendingOwner { + pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipHandoverCanceled", pendingOwnerRule) + if err != nil { + return nil, err + } + return &BeaconDepositContractOwnershipHandoverCanceledIterator{contract: _BeaconDepositContract.contract, event: "OwnershipHandoverCanceled", logs: logs, sub: sub}, nil +} + +// WatchOwnershipHandoverCanceled is a free log subscription operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. +// +// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipHandoverCanceled(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipHandoverCanceled, pendingOwner []common.Address) (event.Subscription, error) { + + var pendingOwnerRule []interface{} + for _, pendingOwnerItem := range pendingOwner { + pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipHandoverCanceled", pendingOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(BeaconDepositContractOwnershipHandoverCanceled) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverCanceled", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipHandoverCanceled is a log parse operation binding the contract event 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92. +// +// Solidity: event OwnershipHandoverCanceled(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipHandoverCanceled(log types.Log) (*BeaconDepositContractOwnershipHandoverCanceled, error) { + event := new(BeaconDepositContractOwnershipHandoverCanceled) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverCanceled", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// BeaconDepositContractOwnershipHandoverRequestedIterator is returned from FilterOwnershipHandoverRequested and is used to iterate over the raw logs and unpacked data for OwnershipHandoverRequested events raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipHandoverRequestedIterator struct { + Event *BeaconDepositContractOwnershipHandoverRequested // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipHandoverRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipHandoverRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *BeaconDepositContractOwnershipHandoverRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// BeaconDepositContractOwnershipHandoverRequested represents a OwnershipHandoverRequested event raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipHandoverRequested struct { + PendingOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipHandoverRequested is a free log retrieval operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. +// +// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipHandoverRequested(opts *bind.FilterOpts, pendingOwner []common.Address) (*BeaconDepositContractOwnershipHandoverRequestedIterator, error) { + + var pendingOwnerRule []interface{} + for _, pendingOwnerItem := range pendingOwner { + pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipHandoverRequested", pendingOwnerRule) + if err != nil { + return nil, err + } + return &BeaconDepositContractOwnershipHandoverRequestedIterator{contract: _BeaconDepositContract.contract, event: "OwnershipHandoverRequested", logs: logs, sub: sub}, nil +} + +// WatchOwnershipHandoverRequested is a free log subscription operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. +// +// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipHandoverRequested(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipHandoverRequested, pendingOwner []common.Address) (event.Subscription, error) { + + var pendingOwnerRule []interface{} + for _, pendingOwnerItem := range pendingOwner { + pendingOwnerRule = append(pendingOwnerRule, pendingOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipHandoverRequested", pendingOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(BeaconDepositContractOwnershipHandoverRequested) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipHandoverRequested is a log parse operation binding the contract event 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d. +// +// Solidity: event OwnershipHandoverRequested(address indexed pendingOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipHandoverRequested(log types.Log) (*BeaconDepositContractOwnershipHandoverRequested, error) { + event := new(BeaconDepositContractOwnershipHandoverRequested) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipHandoverRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// BeaconDepositContractOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipTransferredIterator struct { + Event *BeaconDepositContractOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *BeaconDepositContractOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(BeaconDepositContractOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *BeaconDepositContractOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *BeaconDepositContractOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// BeaconDepositContractOwnershipTransferred represents a OwnershipTransferred event raised by the BeaconDepositContract contract. +type BeaconDepositContractOwnershipTransferred struct { + OldOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, oldOwner []common.Address, newOwner []common.Address) (*BeaconDepositContractOwnershipTransferredIterator, error) { + + var oldOwnerRule []interface{} + for _, oldOwnerItem := range oldOwner { + oldOwnerRule = append(oldOwnerRule, oldOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.FilterLogs(opts, "OwnershipTransferred", oldOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &BeaconDepositContractOwnershipTransferredIterator{contract: _BeaconDepositContract.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BeaconDepositContractOwnershipTransferred, oldOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var oldOwnerRule []interface{} + for _, oldOwnerItem := range oldOwner { + oldOwnerRule = append(oldOwnerRule, oldOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _BeaconDepositContract.contract.WatchLogs(opts, "OwnershipTransferred", oldOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(BeaconDepositContractOwnershipTransferred) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed oldOwner, address indexed newOwner) +func (_BeaconDepositContract *BeaconDepositContractFilterer) ParseOwnershipTransferred(log types.Log) (*BeaconDepositContractOwnershipTransferred, error) { + event := new(BeaconDepositContractOwnershipTransferred) + if err := _BeaconDepositContract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/mod/geth-primitives/pkg/deposit/contract.go b/mod/geth-primitives/pkg/deposit/contract.go new file mode 100644 index 0000000000..32de8654f5 --- /dev/null +++ b/mod/geth-primitives/pkg/deposit/contract.go @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + +package deposit + +//go:generate go run github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go From 799feb1e85c0b96c3caef208ace6a0d81276377a Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 13:28:17 -0400 Subject: [PATCH 15/51] bet --- mod/execution/pkg/deposit/contract.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index b78535e85f..ca8babe293 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -91,7 +91,7 @@ func (dc *WrappedBeaconDepositContract[ if err := d.UnmarshalLog(log); err != nil { return nil, err } - deposits = append(deposits) + deposits = append(deposits, d) } return deposits, nil From 569a674fc63df454f8df6a9c6aa6a064c7a9eb7d Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 14:23:16 -0400 Subject: [PATCH 16/51] bet --- .../pkg/engine-primitives/log.go | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 60adb71cd0..a593b796e6 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -63,15 +63,15 @@ type Log struct { // MarshalJSON marshals as JSON. func (l Log) MarshalJSON() ([]byte, error) { type Log struct { - Address common.ExecutionAddress `json:"address" gencodec:"required"` - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` - Data bytes.Bytes `json:"data" gencodec:"required"` - BlockNumber math.U64 `json:"blockNumber" rlp:"-"` - TxHash common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex math.U64 `json:"transactionIndex" rlp:"-"` - BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` - Index math.U64 `json:"logIndex" rlp:"-"` - Removed bool `json:"removed" rlp:"-"` + Address common.ExecutionAddress `json:"address"` + Topics []common.ExecutionHash `json:"topics"` + Data bytes.Bytes `json:"data"` + BlockNumber math.U64 `json:"blockNumber"` + TxHash common.ExecutionHash `json:"transactionHash"` + TxIndex math.U64 `json:"transactionIndex"` + BlockHash common.ExecutionHash `json:"blockHash"` + Index math.U64 `json:"logIndex"` + Removed bool `json:"removed"` } var enc Log enc.Address = l.Address @@ -89,16 +89,15 @@ func (l Log) MarshalJSON() ([]byte, error) { // UnmarshalJSON unmarshals from JSON. func (l *Log) UnmarshalJSON(input []byte) error { type Log struct { - Address *common.ExecutionAddress `json:"address" gencodec:"required"` - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` - Data *bytes.Bytes `json:"data" gencodec:"required"` - BlockNumber *math.U64 `json:"blockNumber" rlp:"-"` - TxHash *common.ExecutionHash `json:"transactionHash" gencodec:"required" rlp:"-"` - TxIndex *math.U64 `json:"transactionIndex" rlp:"-"` - BlockHash *common.ExecutionHash `json:"blockHash" rlp:"-"` - Index *math.U64 `json:"logIndex" rlp:"-"` - Removed *bool `json:"removed" rlp:"-"` - } + Address *common.ExecutionAddress `json:"address"` + Topics []common.ExecutionHash `json:"topics"` + Data *bytes.Bytes `json:"data"` + BlockNumber *math.U64 `json:"blockNumber"` + TxHash *common.ExecutionHash `json:"transactionHash"` + TxIndex *math.U64 `json:"transactionIndex"` + BlockHash *common.ExecutionHash `json:"blockHash"` + Index *math.U64 `json:"logIndex"` + Removed *bool `json:"removed"` var dec Log if err := json.Unmarshal(input, &dec); err != nil { return err From f1a294596dbcf6d6d7a5f1730f7a09d61e162538 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 14:23:28 -0400 Subject: [PATCH 17/51] bet --- mod/engine-primitives/pkg/engine-primitives/log.go | 1 + 1 file changed, 1 insertion(+) diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index a593b796e6..03fe741968 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -98,6 +98,7 @@ func (l *Log) UnmarshalJSON(input []byte) error { BlockHash *common.ExecutionHash `json:"blockHash"` Index *math.U64 `json:"logIndex"` Removed *bool `json:"removed"` + } var dec Log if err := json.Unmarshal(input, &dec); err != nil { return err From 92b3b45da73fa6df0f87f440fa2c251da1f10cd5 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 14:30:00 -0400 Subject: [PATCH 18/51] bet --- .../pkg/engine-primitives/log.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 03fe741968..099fb890ea 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -35,29 +35,29 @@ import ( type Log struct { // Consensus fields: // address of the contract that generated the event - Address common.ExecutionAddress `json:"address" gencodec:"required"` + Address common.ExecutionAddress `json:"address"` // list of topics provided by the contract. - Topics []common.ExecutionHash `json:"topics" gencodec:"required"` + Topics []common.ExecutionHash `json:"topics"` // supplied by the contract, usually ABI-encoded - Data []byte `json:"data" gencodec:"required"` + Data []byte `json:"data"` // Derived fields. These fields are filled in by the node // but not secured by consensus. // block in which the transaction was included - BlockNumber uint64 `json:"blockNumber" rlp:"-"` + BlockNumber uint64 `json:"blockNumber"` // hash of the transaction - TxHash common.ExecutionHash `json:"transactionHash" rlp:"-" gencodec:"required"` + TxHash common.ExecutionHash `json:"transactionHash"` // index of the transaction in the block - TxIndex uint `json:"transactionIndex" rlp:"-"` + TxIndex uint `json:"transactionIndex"` // hash of the block in which the transaction was included - BlockHash common.ExecutionHash `json:"blockHash" rlp:"-"` + BlockHash common.ExecutionHash `json:"blockHash"` // index of the log in the block - Index uint `json:"logIndex" rlp:"-"` + Index uint `json:"logIndex"` // The Removed field is true if this log was reverted due to a chain // reorganisation. You must pay attention to this field if you receive logs // through a filter query. - Removed bool `json:"removed" rlp:"-"` + Removed bool `json:"removed"` } // MarshalJSON marshals as JSON. From 079fcdca171b0f237633a89c6198af246b598d6a Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Wed, 14 Aug 2024 14:32:33 -0400 Subject: [PATCH 19/51] bet --- mod/execution/pkg/deposit/contract.go | 1 - 1 file changed, 1 deletion(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index ca8babe293..7cb98aad23 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -57,7 +57,6 @@ func NewWrappedBeaconDepositContract[ DepositT, WithdrawalCredentialsT, ], error) { - return &WrappedBeaconDepositContract[ DepositT, WithdrawalCredentialsT, From 31cf017c577c54d90d1601f784187d9c903884e7 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:24:36 -0400 Subject: [PATCH 20/51] bet --- mod/execution/pkg/deposit/contract.go | 18 ++++++++------ mod/execution/pkg/deposit/pruner.go | 3 ++- mod/execution/pkg/deposit/service.go | 24 +++++++++++-------- mod/execution/pkg/deposit/sync.go | 6 ++--- mod/execution/pkg/deposit/types.go | 15 ++++-------- .../pkg/components/deposit_contract.go | 1 + .../pkg/components/deposit_service.go | 5 ++-- mod/node-core/pkg/components/deposit_store.go | 1 + mod/node-core/pkg/components/types.go | 5 ++++ 9 files changed, 44 insertions(+), 34 deletions(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 7cb98aad23..c69a933867 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -23,42 +23,45 @@ package deposit import ( "context" - engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) // Client is an interface for the client. -type Client interface { +type Client[LogT any] interface { GetLogsAtBlockNumber( ctx context.Context, number math.U64, address common.ExecutionAddress, - ) ([]engineprimitives.Log, error) + ) ([]LogT, error) } // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], + LogT any, WithdrawalCredentialsT ~[32]byte, ] struct { - client Client + client Client[LogT] address common.ExecutionAddress } // NewWrappedBeaconDepositContract creates a new BeaconDepositContract. func NewWrappedBeaconDepositContract[ - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], + LogT any, WithdrawalCredentialsT ~[32]byte, ]( address common.ExecutionAddress, - client Client, + client Client[LogT], ) (*WrappedBeaconDepositContract[ DepositT, + LogT, WithdrawalCredentialsT, ], error) { return &WrappedBeaconDepositContract[ DepositT, + LogT, WithdrawalCredentialsT, ]{ client: client, @@ -70,6 +73,7 @@ func NewWrappedBeaconDepositContract[ func (dc *WrappedBeaconDepositContract[ DepositT, WithdrawalCredentialsT, + LogT, ]) ReadDeposits( ctx context.Context, blkNum math.U64, diff --git a/mod/execution/pkg/deposit/pruner.go b/mod/execution/pkg/deposit/pruner.go index da88a9873a..0d5d5e4a1c 100644 --- a/mod/execution/pkg/deposit/pruner.go +++ b/mod/execution/pkg/deposit/pruner.go @@ -31,8 +31,9 @@ func BuildPruneRangeFn[ BlockEventT BlockEvent[ DepositT, BeaconBlockBodyT, BeaconBlockT, ExecutionPayloadT, ], - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], ExecutionPayloadT ExecutionPayload, + LogT any, WithdrawalCredentialsT any, ](cs common.ChainSpec) func(BlockEventT) (uint64, uint64) { return func(event BlockEventT) (uint64, uint64) { diff --git a/mod/execution/pkg/deposit/service.go b/mod/execution/pkg/deposit/service.go index 95873ab2c7..a157c15eca 100644 --- a/mod/execution/pkg/deposit/service.go +++ b/mod/execution/pkg/deposit/service.go @@ -34,8 +34,9 @@ type Service[ BlockEventT BlockEvent[ DepositT, BeaconBlockBodyT, BeaconBlockT, ExecutionPayloadT, ], - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], ExecutionPayloadT ExecutionPayload, + LogT any, WithdrawalCredentialsT any, ] struct { // logger is used for logging information and errors. @@ -57,16 +58,16 @@ type Service[ // NewService creates a new instance of the Service struct. func NewService[ - BeaconBlockBodyT BeaconBlockBody[DepositT, ExecutionPayloadT], BeaconBlockT BeaconBlock[DepositT, BeaconBlockBodyT, ExecutionPayloadT], + BeaconBlockBodyT BeaconBlockBody[DepositT, ExecutionPayloadT], BlockEventT BlockEvent[ DepositT, BeaconBlockBodyT, BeaconBlockT, ExecutionPayloadT, ], - DepositStoreT Store[DepositT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], ExecutionPayloadT ExecutionPayload, + LogT any, WithdrawalCredentialsT any, - DepositT Deposit[DepositT, WithdrawalCredentialsT], ]( logger log.Logger[any], eth1FollowDistance math.U64, @@ -75,12 +76,15 @@ func NewService[ dc Contract[DepositT], feed chan BlockEventT, ) *Service[ - BeaconBlockT, BeaconBlockBodyT, BlockEventT, DepositT, - ExecutionPayloadT, WithdrawalCredentialsT, + BeaconBlockT, BeaconBlockBodyT, + BlockEventT, DepositT, + ExecutionPayloadT, LogT, + WithdrawalCredentialsT, ] { return &Service[ - BeaconBlockT, BeaconBlockBodyT, BlockEventT, DepositT, - ExecutionPayloadT, + BeaconBlockT, BeaconBlockBodyT, + BlockEventT, DepositT, + ExecutionPayloadT, LogT, WithdrawalCredentialsT, ]{ feed: feed, @@ -95,7 +99,7 @@ func NewService[ // Start starts the service and begins processing block events. func (s *Service[ - _, _, _, _, _, _, + _, _, _, _, _, _, _, ]) Start(ctx context.Context) error { go s.depositFetcher(ctx) go s.depositCatchupFetcher(ctx) @@ -104,7 +108,7 @@ func (s *Service[ // Name returns the name of the service. func (s *Service[ - _, _, _, _, _, _, + _, _, _, _, _, _, _, ]) Name() string { return "deposit-handler" } diff --git a/mod/execution/pkg/deposit/sync.go b/mod/execution/pkg/deposit/sync.go index 39fcde2b2c..913d089098 100644 --- a/mod/execution/pkg/deposit/sync.go +++ b/mod/execution/pkg/deposit/sync.go @@ -33,7 +33,7 @@ const defaultRetryInterval = 20 * time.Second // depositFetcher processes a deposit event. func (s *Service[ - _, _, _, _, _, _, + _, _, _, _, _, _, _, ]) depositFetcher(ctx context.Context) { for { select { @@ -52,7 +52,7 @@ func (s *Service[ // depositCatchupFetcher fetches deposits for blocks that failed to be // processed. func (s *Service[ - _, _, _, _, _, _, + _, _, _, _, _, _, _, ]) depositCatchupFetcher(ctx context.Context) { ticker := time.NewTicker(defaultRetryInterval) defer ticker.Stop() @@ -79,7 +79,7 @@ func (s *Service[ } func (s *Service[ - _, _, _, _, _, _, + _, _, _, _, _, _, _, ]) fetchAndStoreDeposits(ctx context.Context, blockNum math.U64) { deposits, err := s.dc.ReadDeposits(ctx, blockNum) if err != nil { diff --git a/mod/execution/pkg/deposit/types.go b/mod/execution/pkg/deposit/types.go index 0e40cbd3b9..a672171a48 100644 --- a/mod/execution/pkg/deposit/types.go +++ b/mod/execution/pkg/deposit/types.go @@ -24,7 +24,6 @@ import ( "context" asynctypes "github.com/berachain/beacon-kit/mod/async/pkg/types" - engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) @@ -73,19 +72,13 @@ type Contract[DepositT any] interface { } // Deposit is an interface for deposits. -type Deposit[DepositT, WithdrawalCredentialsT any] interface { - // New creates a new deposit. - // New( - // crypto.BLSPubkey, - // WithdrawalCredentialsT, - // math.U64, - // crypto.BLSSignature, - // uint64, - // ) DepositT +type Deposit[DepositT, LogT, WithdrawalCredentialsT any] interface { + // Empty() returns a new empty deposit. Empty() DepositT // GetIndex returns the index of the deposit. GetIndex() math.U64 - UnmarshalLog(engineprimitives.Log) error + // UnmarshalLog unmarshals a log into a deposit. + UnmarshalLog(LogT) error } // Store defines the interface for managing deposit operations. diff --git a/mod/node-core/pkg/components/deposit_contract.go b/mod/node-core/pkg/components/deposit_contract.go index c47112718c..1443bb64fc 100644 --- a/mod/node-core/pkg/components/deposit_contract.go +++ b/mod/node-core/pkg/components/deposit_contract.go @@ -42,6 +42,7 @@ func ProvideBeaconDepositContract( // Build the deposit contract. return deposit.NewWrappedBeaconDepositContract[ *Deposit, + Log, WithdrawalCredentials, ]( in.ChainSpec.DepositContractAddress(), diff --git a/mod/node-core/pkg/components/deposit_service.go b/mod/node-core/pkg/components/deposit_service.go index c7be662def..155d605ec7 100644 --- a/mod/node-core/pkg/components/deposit_service.go +++ b/mod/node-core/pkg/components/deposit_service.go @@ -55,11 +55,12 @@ func ProvideDepositService(in DepositServiceIn) (*DepositService, error) { // Build the deposit service. return deposit.NewService[ - *BeaconBlockBody, *BeaconBlock, + *BeaconBlockBody, *BlockEvent, - *DepositStore, + *Deposit, *ExecutionPayload, + Log, WithdrawalCredentials, ]( in.Logger.With("service", "deposit"), diff --git a/mod/node-core/pkg/components/deposit_store.go b/mod/node-core/pkg/components/deposit_store.go index 10f3676a86..96d4c704d5 100644 --- a/mod/node-core/pkg/components/deposit_store.go +++ b/mod/node-core/pkg/components/deposit_store.go @@ -90,6 +90,7 @@ func ProvideDepositPruner( *BlockEvent, *Deposit, *ExecutionPayload, + Log, WithdrawalCredentials, ](in.ChainSpec), ), nil diff --git a/mod/node-core/pkg/components/types.go b/mod/node-core/pkg/components/types.go index 5739e72b9b..de116afdbe 100644 --- a/mod/node-core/pkg/components/types.go +++ b/mod/node-core/pkg/components/types.go @@ -207,6 +207,7 @@ type ( // DepositContract is a type alias for the deposit contract. DepositContract = deposit.WrappedBeaconDepositContract[ *Deposit, + engineprimitives.Log, WithdrawalCredentials, ] @@ -217,6 +218,7 @@ type ( *BlockEvent, *Deposit, *ExecutionPayload, + Log, WithdrawalCredentials, ] @@ -288,6 +290,9 @@ type ( *Withdrawal, ] + // Log is a type alias for the log. + Log = engineprimitives.Log + // NodeAPIBackend is a type alias for the node API backend. NodeAPIBackend = backend.Backend[ *AvailabilityStore, From cbfac1edda936c062ec30a4bbb58b2d6175ff72a Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:27:20 -0400 Subject: [PATCH 21/51] bet --- build/tools/go.mod | 66 +++++++++- build/tools/go.sum | 176 +++++++++++++++++++++++++- build/tools/tools.go | 1 + mod/execution/pkg/deposit/contract.go | 2 +- 4 files changed, 239 insertions(+), 6 deletions(-) diff --git a/build/tools/go.mod b/build/tools/go.mod index c36a8e3e03..9525dfd590 100644 --- a/build/tools/go.mod +++ b/build/tools/go.mod @@ -9,6 +9,7 @@ require ( github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857 github.com/bufbuild/buf v1.34.0 github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2 + github.com/ethereum/go-ethereum v1.14.7 github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e github.com/golangci/golangci-lint v1.59.2-0.20240728133829-5536bb5ce748 @@ -34,11 +35,13 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect github.com/Crocmagnon/fatcontext v0.4.0 // indirect + github.com/DataDog/zstd v1.5.6 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect + github.com/VictoriaMetrics/fastcache v1.12.2 // indirect github.com/alecthomas/go-check-sumtype v0.1.4 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 // indirect @@ -46,15 +49,19 @@ require ( github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect github.com/antlr4-go/antlr/v4 v4.13.1 // indirect + github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/ashanbrown/forbidigo v1.6.0 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/bkielbasa/cyclop v1.2.1 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect github.com/bombsimon/wsl/v4 v4.4.1 // indirect github.com/breml/bidichk v0.2.7 // indirect github.com/breml/errchkjson v0.3.6 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.3 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect github.com/bufbuild/protocompile v0.14.0 // indirect github.com/bufbuild/protoplugin v0.0.0-20240323223605-e2735f6c31ee // indirect github.com/bufbuild/protovalidate-go v0.6.2 // indirect @@ -63,17 +70,30 @@ require ( github.com/butuzov/mirror v1.2.0 // indirect github.com/catenacyber/perfsprint v0.7.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect + github.com/cespare/cp v1.1.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/ckaznocha/intrange v0.1.2 // indirect + github.com/cockroachdb/errors v1.11.3 // indirect + github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v1.1.1 // indirect + github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.13.0 // indirect github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect + github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect github.com/daixiang0/gci v0.13.4 // indirect github.com/dave/dst v0.27.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v26.1.4+incompatible // indirect @@ -82,20 +102,26 @@ require ( github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect + github.com/ethereum/c-kzg-4844 v1.0.3 // indirect + github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/ettle/strcase v0.2.0 // indirect github.com/fatih/color v1.17.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/fgprof v0.9.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/firefart/nonamedreturns v1.0.5 // indirect + github.com/fjl/memsize v0.0.2 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c // indirect + github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect + github.com/getsentry/sentry-go v0.28.1 // indirect github.com/ghostiam/protogetter v0.3.6 // indirect github.com/go-chi/chi/v5 v5.0.14 // indirect github.com/go-critic/go-critic v0.11.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.2.0 // indirect @@ -109,7 +135,9 @@ require ( github.com/gofrs/flock v0.12.1 // indirect github.com/gofrs/uuid/v5 v5.2.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect github.com/golangci/gofmt v0.0.0-20231019111953-be8c47862aaa // indirect github.com/golangci/misspell v0.6.0 // indirect @@ -121,19 +149,31 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-containerregistry v0.19.2 // indirect github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/gookit/color v1.5.4 // indirect github.com/gordonklaus/ineffassign v0.1.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect + github.com/graph-gophers/graphql-go v1.5.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/hashicorp/go-bexpr v0.1.14 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect + github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da // indirect + github.com/holiman/bloomfilter/v2 v2.0.3 // indirect + github.com/holiman/uint256 v1.3.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect + github.com/huin/goupnp v1.3.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/influxdata/influxdb-client-go/v2 v2.13.0 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect + github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf // indirect + github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jdx/go-netrc v1.0.0 // indirect github.com/jgautheron/goconst v1.7.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect @@ -145,10 +185,12 @@ require ( github.com/kisielk/errcheck v1.7.0 // indirect github.com/kkHAIKE/contextcheck v1.1.5 // indirect github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/klauspost/pgzip v1.2.6 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/kulti/thelper v0.6.3 // indirect github.com/kunwardeep/paralleltest v1.0.10 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect github.com/lasiar/canonicalheader v1.1.1 // indirect github.com/ldez/gomoddirectives v0.2.4 // indirect @@ -165,8 +207,11 @@ require ( github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mgechev/revive v1.3.9 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect + github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/pointerstructure v1.2.1 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect github.com/moricho/tparallel v0.3.2 // indirect @@ -177,12 +222,12 @@ require ( github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect github.com/nunnatsa/ginkgolinter v0.16.2 // indirect - github.com/nxadm/tail v1.4.11 // indirect + github.com/oapi-codegen/runtime v1.1.1 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/onsi/ginkgo v1.16.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/peterh/liner v1.2.2 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/profile v1.7.0 // indirect @@ -192,12 +237,14 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect + github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b // indirect github.com/quasilyte/go-ruleguard v0.4.2 // indirect github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -212,6 +259,7 @@ require ( github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect + github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sivchari/containedctx v1.0.3 // indirect github.com/sivchari/tenv v1.10.0 // indirect @@ -224,27 +272,36 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect + github.com/status-im/keycard-go v0.3.2 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect + github.com/supranational/blst v0.3.13 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tdakkota/asciicheck v0.2.0 // indirect github.com/tetafro/godot v1.4.16 // indirect github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a // indirect github.com/timonwong/loggercheck v0.9.4 // indirect + github.com/tklauser/go-sysconf v0.3.14 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ultraware/funlen v0.1.0 // indirect github.com/ultraware/whitespace v0.1.1 // indirect + github.com/urfave/cli/v2 v2.27.2 // indirect github.com/uudashr/gocognit v1.1.3 // indirect github.com/vbatts/tar-split v0.11.5 // indirect github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.3.0 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect go-simpler.org/musttag v0.12.2 // indirect go-simpler.org/sloglint v0.7.2 // indirect @@ -267,6 +324,7 @@ require ( golang.org/x/sys v0.23.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240617180043-68d350f18fd4 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d // indirect @@ -274,10 +332,12 @@ require ( google.golang.org/protobuf v1.34.2 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect honnef.co/go/tools v0.5.0-0.dev.0.20240621230735-3fe6ed0ecdfe // indirect mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/build/tools/go.sum b/build/tools/go.sum index 80d1ffe94e..595291c76d 100644 --- a/build/tools/go.sum +++ b/build/tools/go.sum @@ -30,6 +30,8 @@ github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/k github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/Crocmagnon/fatcontext v0.4.0 h1:4ykozu23YHA0JB6+thiuEv7iT6xq995qS1vcuWZq0tg= github.com/Crocmagnon/fatcontext v0.4.0/go.mod h1:ZtWrXkgyfsYPzS6K3O88va6t2GEglG93vnII/F94WC0= +github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= +github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU= @@ -40,6 +42,9 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA= github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ= +github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= +github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= +github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= @@ -56,8 +61,12 @@ github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pO github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= +github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= +github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= @@ -66,10 +75,13 @@ github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857 h1:3Uwzfrfwo github.com/bazelbuild/buildtools v0.0.0-20240606140350-80f1f6802857/go.mod h1:689QdV3hBP7Vo9dJMmzhoYIyo/9iMhEmHkJcnaPRCbo= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= +github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY= github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= +github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/bmatcuk/doublestar/v4 v4.0.2/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= @@ -79,6 +91,10 @@ github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U= +github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ensb7o3sC0= +github.com/btcsuite/btcd/btcec/v2 v2.3.3/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/bufbuild/buf v1.34.0 h1:rZSVfYS5SakOe6ds9PDjbHVwOc+vBGVWNW9Ei+Rg/+c= github.com/bufbuild/buf v1.34.0/go.mod h1:Fj+KBmY2ODYD2Ld02w4LH9Y3WiRH2203IjGJbKYK5Hc= github.com/bufbuild/protocompile v0.14.0 h1:z3DW4IvXE5G/uTOnSQn+qwQQxvhckkTWLS/0No/o7KU= @@ -100,6 +116,9 @@ github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQd github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= +github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= @@ -120,6 +139,24 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38 github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a h1:f52TdbU4D5nozMAhO9TvTJ2ZMCXtN4VIAmfrrZ0JXQ4= +github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.1 h1:XnKU22oiCLy2Xn8vp1re67cXg4SAasg/WDt1NtcRFaw= +github.com/cockroachdb/pebble v1.1.1/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.13.0 h1:VPULb/v6bbYELAPTDFINEVaMTTybV5GLxDdcjnS+4oc= +github.com/consensys/gnark-crypto v0.13.0/go.mod h1:wKqwsieaKPThcFkHe0d0zMsbHEUWFmZcG7KBCse210o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU= @@ -129,6 +166,11 @@ github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2 h1:4mZery7L3ltSRUP github.com/cosmos/gosec/v2 v2.0.0-20230124142343-bf28a33fadf2/go.mod h1:NV9RgyPGw3QjOHYKmruHuejnCZ9+fwBDruxTxJf2gak= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= +github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= +github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= +github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= @@ -143,6 +185,12 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= @@ -163,6 +211,12 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/ethereum/c-kzg-4844 v1.0.3 h1:IEnbOHwjixW2cTvKRUlAAUOeleV7nNM/umJR+qy4WDs= +github.com/ethereum/c-kzg-4844 v1.0.3/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.14.7 h1:EHpv3dE8evQmpVEQ/Ne2ahB06n2mQptdwqaMNhAT29g= +github.com/ethereum/go-ethereum v1.14.7/go.mod h1:Mq0biU2jbdmKSZoqOj29017ygFrMnB5/Rifwp980W4o= +github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 h1:KrE8I4reeVvf7C1tm8elRjj4BdscTYzz/WAbYyf/JI4= +github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0/go.mod h1:D9AJLVXSyZQXJQVk8oh1EwjISE+sJTn2duYIZC0dy3w= github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= @@ -180,28 +234,40 @@ github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6 github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e h1:bBLctRc7kr01YGvaDfgLbTwjFNW5jdp5y5rj8XXBHfY= github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= +github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= +github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c h1:40KPNY+PW1YryU4J3aX9kNAgjXIXXyfloGA732AnOQc= github.com/garslo/gogen v0.0.0-20230926014519-f497ca02dd4c/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= +github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw= github.com/go-chi/chi/v5 v5.0.14 h1:PyEwo2Vudraa0x/Wl6eDRRW2NXBvekgfxyydcM0WGE0= github.com/go-chi/chi/v5 v5.0.14/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU= github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -241,6 +307,8 @@ github.com/gofrs/uuid/v5 v5.2.0 h1:qw1GMx6/y8vhVsx626ImfKMuS5CvJmhIKKtuyvfajMM= github.com/gofrs/uuid/v5 v5.2.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -253,8 +321,13 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= github.com/golangci/gofmt v0.0.0-20231019111953-be8c47862aaa h1:L0Zq43Px2HrLroRKEgfCsQLMJUkjskJBB1kd1Zjcvvc= @@ -283,20 +356,30 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.19.2 h1:TannFKE1QSajsP6hPWb5oJNgKe1IKjHukIKDUmvsV6w= github.com/google/go-containerregistry v0.19.2/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 h1:ouFdLLCOyCfnxGpQTMZKHLyHr/D1GFbQzEsJxumO16E= github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= @@ -309,8 +392,12 @@ github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= +github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= +github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/hashicorp/go-bexpr v0.1.14 h1:uKDeyuOhWhT1r5CiMTjdVY4Aoxdxs6EtwgTGnlosyp4= +github.com/hashicorp/go-bexpr v0.1.14/go.mod h1:gN7hRKB3s7yT+YvTdnhZVLTENejvhlkZ8UE4YVBS+Q8= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -318,15 +405,32 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da h1:8qEhdMGSUx67L2s5aGQinJhOwLfIRKLRBHPQq8m6WxE= +github.com/holiman/billy v0.0.0-20240322075458-72a4e81ec6da/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= +github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/influxdb-client-go/v2 v2.13.0 h1:ioBbLmR5NMbAjP4UVA5r9b5xGjpABD7j65pI8kFphDM= +github.com/influxdata/influxdb-client-go/v2 v2.13.0/go.mod h1:k+spCbt9hcvqvUiz0sr5D8LolXHqAAOfPw9v/RIRHl4= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf h1:7JTmneyiNEwVBOHSjoMxiWAqB992atOeepeFYegn5RU= +github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= @@ -342,6 +446,7 @@ github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod github.com/jjti/go-spancheck v0.6.2 h1:iYtoxqPMzHUPp7St+5yA8+cONdyXD3ug6KK15n7Pklk= github.com/jjti/go-spancheck v0.6.2/go.mod h1:+X7lvIrR5ZdUTkxFYqzJ0abr8Sb5LOo80uOhWNqIrYA= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos= @@ -354,6 +459,8 @@ github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LX github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= +github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -377,6 +484,8 @@ github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJ github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g= github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= @@ -401,6 +510,7 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -408,10 +518,18 @@ github.com/mgechev/revive v1.3.9 h1:18Y3R4a2USSBF+QZKFQwVkBROUda7uoBlkEuBD+YD1A= github.com/mgechev/revive v1.3.9/go.mod h1:+uxEIr5UH0TjXWHTno3xh4u7eg6jDpXKzQccA9UGhHU= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.1 h1:ZhBBeX8tSlRpu/FFhXH4RC4OJzFlqsQhoHZAz4x7TIw= +github.com/mitchellh/pointerstructure v1.2.1/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -436,22 +554,29 @@ github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= +github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= +github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= @@ -462,8 +587,13 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9 github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/peterh/liner v1.2.2 h1:aJ4AOodmL+JxOZZEL2u9iJf8omNRpqHc/EbrK+3mAXw= +github.com/peterh/liner v1.2.2/go.mod h1:xFwJyiKIXJZUKItq5dGHZSTBRAuG/CpeNpWLyiNRNwI= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= @@ -484,6 +614,8 @@ github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b h1:VK7thFOnhxAZ/5aolr5Os4beiubuD08WiuiHyRqgwks= +github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b/go.mod h1:HRuvtXLZ4WkaB1MItToVH2e8ZwKwZPY5/Rcby+CvvLY= github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= @@ -497,6 +629,7 @@ github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= @@ -530,6 +663,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= +github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -554,8 +689,11 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/status-im/keycard-go v0.3.2 h1:YusIF/bHx6YZis8UTOJrpZFnTs4IkRBdmJXqdiXkpFE= +github.com/status-im/keycard-go v0.3.2/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= @@ -571,6 +709,7 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -578,6 +717,10 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/supranational/blst v0.3.13 h1:AYeSxdOMacwu7FBmpfloBz5pbFXDmJL33RuwnKtmTjk= +github.com/supranational/blst v0.3.13/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -590,14 +733,22 @@ github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a h1:A6uKudFIfAEpo github.com/timakin/bodyclose v0.0.0-20240125160201-f835fa56326a/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= +github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= +github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ= github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM= github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U= github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= @@ -610,6 +761,8 @@ github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HH github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= @@ -623,6 +776,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= @@ -633,6 +788,7 @@ go-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY= go-simpler.org/sloglint v0.7.2/go.mod h1:US+9C80ppl7VsThQclkM7BkCHQAzuz8kHLsW3ppuluo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 h1:dT33yIHtmsqpixFsSQPwNeY5drM9wTcoL8h0FWF4oGM= @@ -645,6 +801,7 @@ go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kT go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= +go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= @@ -706,7 +863,10 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= @@ -735,8 +895,10 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -751,12 +913,14 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -765,6 +929,7 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -826,6 +991,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -849,6 +1015,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= @@ -860,6 +1028,8 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -880,3 +1050,5 @@ mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/build/tools/tools.go b/build/tools/tools.go index 43c3cb1346..c3a0018b9f 100644 --- a/build/tools/tools.go +++ b/build/tools/tools.go @@ -32,6 +32,7 @@ import ( _ "github.com/bazelbuild/buildtools/buildifier" _ "github.com/bufbuild/buf/cmd/buf" _ "github.com/cosmos/gosec/v2/cmd/gosec" + _ "github.com/ethereum/go-ethereum/cmd/abigen" _ "github.com/ferranbt/fastssz/sszgen" _ "github.com/fjl/gencodec" _ "github.com/golangci/golangci-lint/cmd/golangci-lint" diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index c69a933867..87a09b5fef 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -91,7 +91,7 @@ func (dc *WrappedBeaconDepositContract[ deposits := make([]DepositT, 0) for _, log := range logs { d = d.Empty() - if err := d.UnmarshalLog(log); err != nil { + if err = d.UnmarshalLog(log); err != nil { return nil, err } deposits = append(deposits, d) From 18237a117a910b363d1cd904b31f91c3b917e200 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:29:49 -0400 Subject: [PATCH 22/51] bet --- mod/consensus-types/pkg/types/deposit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index 823efa0d04..9475144685 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -193,7 +193,7 @@ func (d *Deposit) GetTree() (*fastssz.Node, error) { // UnmarshalLog unmarshals the Deposit object from an Ethereum log. // -//nolint:mnd // todo fix later. + func (d *Deposit) UnmarshalLog(log engineprimitives.Log) error { idx := binary.BigEndian.Uint64(log.Data[152:160]) d.Index = idx From 9c7f44dc9c07db11bb5c3937dca3dd5549cfd3ce Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:38:33 -0400 Subject: [PATCH 23/51] bet --- Dockerfile | 1 + build/scripts/build.mk | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4843336323..ebcb33a2b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -135,6 +135,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ -X github.com/cosmos/cosmos-sdk/version.Commit=${GIT_COMMIT} \ -X github.com/cosmos/cosmos-sdk/version.BuildTags=${BUILD_TAGS} \ -X github.com/cosmos/cosmos-sdk/types.DBBackend=$DB_BACKEND \ + -checklinkname=0 \ -w -s -linkmode=external -extldflags '-Wl,-z,muldefs -static'" \ -trimpath \ -o /workdir/build/bin/beacond \ diff --git a/build/scripts/build.mk b/build/scripts/build.mk index 7222868db7..fc0c6ed814 100644 --- a/build/scripts/build.mk +++ b/build/scripts/build.mk @@ -57,7 +57,8 @@ ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=beacon \ -X github.com/cosmos/cosmos-sdk/version.AppName=beacond \ -X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \ -X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \ - -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" + -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep) \ + -checklinkname=0" ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS))) ldflags += -w -s From fd90876359800a2c25641b6e6d7268d2975308ef Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:44:13 -0400 Subject: [PATCH 24/51] bet --- Dockerfile | 2 +- README.md | 2 +- beacond/go.mod | 2 +- build/tools/go.mod | 2 +- examples/berad/go.mod | 2 +- go.work | 2 +- mod/async/go.mod | 2 +- mod/beacon/go.mod | 2 +- mod/chain-spec/go.mod | 2 +- mod/cli/go.mod | 2 +- mod/config/go.mod | 2 +- mod/consensus-types/go.mod | 2 +- mod/consensus/go.mod | 2 +- mod/da/go.mod | 2 +- mod/engine-primitives/go.mod | 2 +- mod/errors/go.mod | 2 +- mod/execution/go.mod | 2 +- mod/geth-primitives/go.mod | 2 +- mod/log/go.mod | 2 +- mod/node-api/engines/go.mod | 2 +- mod/node-api/go.mod | 2 +- mod/node-core/go.mod | 2 +- mod/p2p/go.mod | 2 +- mod/payload/go.mod | 2 +- mod/primitives/go.mod | 2 +- mod/runtime/go.mod | 2 +- mod/state-transition/go.mod | 2 +- mod/storage/go.mod | 2 +- testing/go.mod | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index ebcb33a2b1..9307fcd540 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ ### Stage 0 - Build Arguments ### ####################################################### -ARG GO_VERSION=1.22.5 +ARG GO_VERSION=1.23.0 ARG RUNNER_IMAGE=alpine:3.20 ARG BUILD_TAGS="netgo,muslc,blst,bls12381,pebbledb" ARG NAME=beacond diff --git a/README.md b/README.md index a4e2e1522d..18738eedfe 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ BeaconKit is able to support all 6 major Ethereum execution clients: **Prerequisites:** - [Docker](https://docs.docker.com/engine/install/) -- [Golang 1.22.5+](https://go.dev/doc/install) +- [Golang 1.23.0+](https://go.dev/doc/install) - [Foundry](https://book.getfoundry.sh/getting-started/installation) Start by opening two terminals side-by-side: diff --git a/beacond/go.mod b/beacond/go.mod index bd5a70ce83..76c6d93fa7 100644 --- a/beacond/go.mod +++ b/beacond/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/beacond -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/build/tools/go.mod b/build/tools/go.mod index 9525dfd590..f561edc8ff 100644 --- a/build/tools/go.mod +++ b/build/tools/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/build/tools -go 1.22.5 +go 1.23.0 // staticcheck fix replace honnef.co/go/tools v0.2.1 => github.com/honnef/go-tools v0.5.0-0.dev.0.20240621230735-3fe6ed0ecdfe diff --git a/examples/berad/go.mod b/examples/berad/go.mod index d02794f478..e39df82e52 100644 --- a/examples/berad/go.mod +++ b/examples/berad/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/examples/berad -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240801155659-1e73a37dd428 diff --git a/go.work b/go.work index 9cfa2badb6..f10487c630 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.22.5 +go 1.23.0 use ( ./beacond diff --git a/mod/async/go.mod b/mod/async/go.mod index 52f1b5068b..0052517cf6 100644 --- a/mod/async/go.mod +++ b/mod/async/go.mod @@ -1,3 +1,3 @@ module github.com/berachain/beacon-kit/mod/async -go 1.22.5 +go 1.23.0 diff --git a/mod/beacon/go.mod b/mod/beacon/go.mod index cf36a949ea..db5e99aa61 100644 --- a/mod/beacon/go.mod +++ b/mod/beacon/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/beacon -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240618214413-d5ec0e66b3dd diff --git a/mod/chain-spec/go.mod b/mod/chain-spec/go.mod index cac5156e3d..20681416cd 100644 --- a/mod/chain-spec/go.mod +++ b/mod/chain-spec/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/chain-spec -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/cli/go.mod b/mod/cli/go.mod index 1057c88b8c..70cd02c6e2 100644 --- a/mod/cli/go.mod +++ b/mod/cli/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/cli -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/config/go.mod b/mod/config/go.mod index ce03af4ed7..79c7dd14cb 100644 --- a/mod/config/go.mod +++ b/mod/config/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/config -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/beacon v0.0.0-20240718074353-1a991cfeed63 diff --git a/mod/consensus-types/go.mod b/mod/consensus-types/go.mod index a200c32e7e..12972780da 100644 --- a/mod/consensus-types/go.mod +++ b/mod/consensus-types/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/consensus-types -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/consensus/go.mod b/mod/consensus/go.mod index c24e44b9f3..ed7fa9ea39 100644 --- a/mod/consensus/go.mod +++ b/mod/consensus/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/consensus -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/da/go.mod b/mod/da/go.mod index b6cb05ae3a..41d0da38be 100644 --- a/mod/da/go.mod +++ b/mod/da/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/da -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624003607-df94860f8eeb diff --git a/mod/engine-primitives/go.mod b/mod/engine-primitives/go.mod index 3597a736cb..9c597d7766 100644 --- a/mod/engine-primitives/go.mod +++ b/mod/engine-primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/engine-primitives -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd diff --git a/mod/errors/go.mod b/mod/errors/go.mod index 7a9d07c2ce..7da8c03443 100644 --- a/mod/errors/go.mod +++ b/mod/errors/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/errors -go 1.22.5 +go 1.23.0 require github.com/cockroachdb/errors v1.11.3 diff --git a/mod/execution/go.mod b/mod/execution/go.mod index 1907f0186b..6dd85f9b3c 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/execution -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624204855-d8809d5c8588 diff --git a/mod/geth-primitives/go.mod b/mod/geth-primitives/go.mod index 49f6bcb66c..b251964f6b 100644 --- a/mod/geth-primitives/go.mod +++ b/mod/geth-primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/geth-primitives -go 1.22.5 +go 1.23.0 require github.com/ethereum/go-ethereum v1.14.7 diff --git a/mod/log/go.mod b/mod/log/go.mod index b8d6c080f5..5994c07dd6 100644 --- a/mod/log/go.mod +++ b/mod/log/go.mod @@ -1,5 +1,5 @@ module github.com/berachain/beacon-kit/mod/log -go 1.22.5 +go 1.23.0 require github.com/phuslu/log v1.0.108-0.20240705160716-a8f8c12ae6c6 diff --git a/mod/node-api/engines/go.mod b/mod/node-api/engines/go.mod index 44ce132dd0..a8a464aeab 100644 --- a/mod/node-api/engines/go.mod +++ b/mod/node-api/engines/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-api/engines -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df diff --git a/mod/node-api/go.mod b/mod/node-api/go.mod index 23159f34c2..1c196c5fa7 100644 --- a/mod/node-api/go.mod +++ b/mod/node-api/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-api -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df diff --git a/mod/node-core/go.mod b/mod/node-core/go.mod index f325e7ca13..ae2042234e 100644 --- a/mod/node-core/go.mod +++ b/mod/node-core/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-core -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/p2p/go.mod b/mod/p2p/go.mod index 6d34de322e..c6e86ab6c4 100644 --- a/mod/p2p/go.mod +++ b/mod/p2p/go.mod @@ -1,3 +1,3 @@ module github.com/berachain/beacon-kit/mod/p2p -go 1.22.5 +go 1.23.0 diff --git a/mod/payload/go.mod b/mod/payload/go.mod index 4cdcb1e4ce..67c413cf26 100644 --- a/mod/payload/go.mod +++ b/mod/payload/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/payload -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/primitives/go.mod b/mod/primitives/go.mod index a3221742fe..d40100edb1 100644 --- a/mod/primitives/go.mod +++ b/mod/primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/primitives -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db diff --git a/mod/runtime/go.mod b/mod/runtime/go.mod index 80adaedc9e..34b91878a1 100644 --- a/mod/runtime/go.mod +++ b/mod/runtime/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/runtime -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/state-transition/go.mod b/mod/state-transition/go.mod index 2dcb0674f4..501f175e5e 100644 --- a/mod/state-transition/go.mod +++ b/mod/state-transition/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/state-transition -go 1.22.5 +go 1.23.0 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/storage/go.mod b/mod/storage/go.mod index aab56eab72..3ae705a688 100644 --- a/mod/storage/go.mod +++ b/mod/storage/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/storage -go 1.22.5 +go 1.23.0 replace ( cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20240806152830-8fb47b368cd4 diff --git a/testing/go.mod b/testing/go.mod index 57f8e2cbbc..17e1492c80 100644 --- a/testing/go.mod +++ b/testing/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/testing -go 1.22.5 +go 1.23.0 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: From 59a20d0e379bad76ff9cc539c8aca8c0bc91966b Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 00:48:36 -0400 Subject: [PATCH 25/51] bet --- Dockerfile | 1 - build/scripts/build.mk | 3 +-- mod/geth-primitives/pkg/deposit/contract.go | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9307fcd540..08f93b9955 100644 --- a/Dockerfile +++ b/Dockerfile @@ -135,7 +135,6 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ -X github.com/cosmos/cosmos-sdk/version.Commit=${GIT_COMMIT} \ -X github.com/cosmos/cosmos-sdk/version.BuildTags=${BUILD_TAGS} \ -X github.com/cosmos/cosmos-sdk/types.DBBackend=$DB_BACKEND \ - -checklinkname=0 \ -w -s -linkmode=external -extldflags '-Wl,-z,muldefs -static'" \ -trimpath \ -o /workdir/build/bin/beacond \ diff --git a/build/scripts/build.mk b/build/scripts/build.mk index fc0c6ed814..7222868db7 100644 --- a/build/scripts/build.mk +++ b/build/scripts/build.mk @@ -57,8 +57,7 @@ ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=beacon \ -X github.com/cosmos/cosmos-sdk/version.AppName=beacond \ -X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \ -X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \ - -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep) \ - -checklinkname=0" + -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS))) ldflags += -w -s diff --git a/mod/geth-primitives/pkg/deposit/contract.go b/mod/geth-primitives/pkg/deposit/contract.go index 32de8654f5..ffad995d15 100644 --- a/mod/geth-primitives/pkg/deposit/contract.go +++ b/mod/geth-primitives/pkg/deposit/contract.go @@ -20,4 +20,4 @@ package deposit -//go:generate go run github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go +//go:generate go run -ldflags=-checklinkname=0 github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go From e919d88d73a1f5432205d07b5943aab7cc72b3d6 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:02:58 -0400 Subject: [PATCH 26/51] bet --- mod/cli/pkg/builder/builder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/cli/pkg/builder/builder.go b/mod/cli/pkg/builder/builder.go index b6ccbb351e..c2776a1387 100644 --- a/mod/cli/pkg/builder/builder.go +++ b/mod/cli/pkg/builder/builder.go @@ -89,8 +89,8 @@ func (cb *CLIBuilder[T, ExecutionPayloadT]) Build() (*cmdlib.Root, error) { chainSpec common.ChainSpec logger log.AdvancedLogger[any, sdklog.Logger] ) + // build dependencies for the root command - //nolint:asasalint // todo fix. if err := depinject.Inject( depinject.Configs( depinject.Supply( From 3fc535025c9bf44364972153c951bee1e42968b3 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:12:25 -0400 Subject: [PATCH 27/51] bet --- Dockerfile | 2 +- README.md | 2 +- beacond/go.mod | 2 +- build/tools/go.mod | 2 +- examples/berad/go.mod | 2 +- go.work | 2 +- mod/async/go.mod | 2 +- mod/beacon/go.mod | 2 +- mod/chain-spec/go.mod | 2 +- mod/cli/go.mod | 2 +- mod/config/go.mod | 2 +- mod/consensus-types/go.mod | 2 +- mod/consensus/go.mod | 2 +- mod/da/go.mod | 2 +- mod/engine-primitives/go.mod | 2 +- mod/errors/go.mod | 2 +- mod/execution/go.mod | 2 +- mod/geth-primitives/go.mod | 2 +- mod/log/go.mod | 2 +- mod/node-api/engines/go.mod | 2 +- mod/node-api/go.mod | 2 +- mod/node-core/go.mod | 2 +- mod/p2p/go.mod | 2 +- mod/payload/go.mod | 2 +- mod/primitives/go.mod | 2 +- mod/runtime/go.mod | 2 +- mod/state-transition/go.mod | 2 +- mod/storage/go.mod | 2 +- testing/go.mod | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 08f93b9955..1e2d122888 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ ### Stage 0 - Build Arguments ### ####################################################### -ARG GO_VERSION=1.23.0 +ARG GO_VERSION=1.22.6 ARG RUNNER_IMAGE=alpine:3.20 ARG BUILD_TAGS="netgo,muslc,blst,bls12381,pebbledb" ARG NAME=beacond diff --git a/README.md b/README.md index 18738eedfe..ea77a8d11a 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ BeaconKit is able to support all 6 major Ethereum execution clients: **Prerequisites:** - [Docker](https://docs.docker.com/engine/install/) -- [Golang 1.23.0+](https://go.dev/doc/install) +- [Golang 1.22.6+](https://go.dev/doc/install) - [Foundry](https://book.getfoundry.sh/getting-started/installation) Start by opening two terminals side-by-side: diff --git a/beacond/go.mod b/beacond/go.mod index 76c6d93fa7..e6d5007b09 100644 --- a/beacond/go.mod +++ b/beacond/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/beacond -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/build/tools/go.mod b/build/tools/go.mod index f561edc8ff..8fb723fd62 100644 --- a/build/tools/go.mod +++ b/build/tools/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/build/tools -go 1.23.0 +go 1.22.6 // staticcheck fix replace honnef.co/go/tools v0.2.1 => github.com/honnef/go-tools v0.5.0-0.dev.0.20240621230735-3fe6ed0ecdfe diff --git a/examples/berad/go.mod b/examples/berad/go.mod index e39df82e52..82fb9cfbe3 100644 --- a/examples/berad/go.mod +++ b/examples/berad/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/examples/berad -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240801155659-1e73a37dd428 diff --git a/go.work b/go.work index f10487c630..bd1e88f2d1 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.23.0 +go 1.22.6 use ( ./beacond diff --git a/mod/async/go.mod b/mod/async/go.mod index 0052517cf6..6473851c37 100644 --- a/mod/async/go.mod +++ b/mod/async/go.mod @@ -1,3 +1,3 @@ module github.com/berachain/beacon-kit/mod/async -go 1.23.0 +go 1.22.6 diff --git a/mod/beacon/go.mod b/mod/beacon/go.mod index db5e99aa61..741a5961e7 100644 --- a/mod/beacon/go.mod +++ b/mod/beacon/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/beacon -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240618214413-d5ec0e66b3dd diff --git a/mod/chain-spec/go.mod b/mod/chain-spec/go.mod index 20681416cd..32d94366b9 100644 --- a/mod/chain-spec/go.mod +++ b/mod/chain-spec/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/chain-spec -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/cli/go.mod b/mod/cli/go.mod index 077ee5dfa3..335ab5fbab 100644 --- a/mod/cli/go.mod +++ b/mod/cli/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/cli -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/config/go.mod b/mod/config/go.mod index 79c7dd14cb..bdc00dd3ea 100644 --- a/mod/config/go.mod +++ b/mod/config/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/config -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/beacon v0.0.0-20240718074353-1a991cfeed63 diff --git a/mod/consensus-types/go.mod b/mod/consensus-types/go.mod index 12972780da..12f1cea159 100644 --- a/mod/consensus-types/go.mod +++ b/mod/consensus-types/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/consensus-types -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/consensus/go.mod b/mod/consensus/go.mod index ed7fa9ea39..6abbd23d21 100644 --- a/mod/consensus/go.mod +++ b/mod/consensus/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/consensus -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/da/go.mod b/mod/da/go.mod index 41d0da38be..e8f8e75ee5 100644 --- a/mod/da/go.mod +++ b/mod/da/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/da -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624003607-df94860f8eeb diff --git a/mod/engine-primitives/go.mod b/mod/engine-primitives/go.mod index 9c597d7766..7de28d0a34 100644 --- a/mod/engine-primitives/go.mod +++ b/mod/engine-primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/engine-primitives -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd diff --git a/mod/errors/go.mod b/mod/errors/go.mod index 7da8c03443..9e9951d37f 100644 --- a/mod/errors/go.mod +++ b/mod/errors/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/errors -go 1.23.0 +go 1.22.6 require github.com/cockroachdb/errors v1.11.3 diff --git a/mod/execution/go.mod b/mod/execution/go.mod index 6dd85f9b3c..2aacd028e5 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/execution -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624204855-d8809d5c8588 diff --git a/mod/geth-primitives/go.mod b/mod/geth-primitives/go.mod index b251964f6b..546663bb1e 100644 --- a/mod/geth-primitives/go.mod +++ b/mod/geth-primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/geth-primitives -go 1.23.0 +go 1.22.6 require github.com/ethereum/go-ethereum v1.14.7 diff --git a/mod/log/go.mod b/mod/log/go.mod index 5994c07dd6..a81b9c2f68 100644 --- a/mod/log/go.mod +++ b/mod/log/go.mod @@ -1,5 +1,5 @@ module github.com/berachain/beacon-kit/mod/log -go 1.23.0 +go 1.22.6 require github.com/phuslu/log v1.0.108-0.20240705160716-a8f8c12ae6c6 diff --git a/mod/node-api/engines/go.mod b/mod/node-api/engines/go.mod index a8a464aeab..8ff5af04fa 100644 --- a/mod/node-api/engines/go.mod +++ b/mod/node-api/engines/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-api/engines -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df diff --git a/mod/node-api/go.mod b/mod/node-api/go.mod index 1c196c5fa7..1cacf3c940 100644 --- a/mod/node-api/go.mod +++ b/mod/node-api/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-api -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df diff --git a/mod/node-core/go.mod b/mod/node-core/go.mod index ae2042234e..f3064e63eb 100644 --- a/mod/node-core/go.mod +++ b/mod/node-core/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/node-core -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/p2p/go.mod b/mod/p2p/go.mod index c6e86ab6c4..3ac57aac81 100644 --- a/mod/p2p/go.mod +++ b/mod/p2p/go.mod @@ -1,3 +1,3 @@ module github.com/berachain/beacon-kit/mod/p2p -go 1.23.0 +go 1.22.6 diff --git a/mod/payload/go.mod b/mod/payload/go.mod index 67c413cf26..8f37879fa7 100644 --- a/mod/payload/go.mod +++ b/mod/payload/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/payload -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/primitives/go.mod b/mod/primitives/go.mod index d40100edb1..40cb563802 100644 --- a/mod/primitives/go.mod +++ b/mod/primitives/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/primitives -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db diff --git a/mod/runtime/go.mod b/mod/runtime/go.mod index 34b91878a1..3d168c59f1 100644 --- a/mod/runtime/go.mod +++ b/mod/runtime/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/runtime -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: diff --git a/mod/state-transition/go.mod b/mod/state-transition/go.mod index 501f175e5e..51a80fa57b 100644 --- a/mod/state-transition/go.mod +++ b/mod/state-transition/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/state-transition -go 1.23.0 +go 1.22.6 require ( github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 diff --git a/mod/storage/go.mod b/mod/storage/go.mod index 3ae705a688..1ba6961f75 100644 --- a/mod/storage/go.mod +++ b/mod/storage/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/mod/storage -go 1.23.0 +go 1.22.6 replace ( cosmossdk.io/api => cosmossdk.io/api v0.7.3-0.20240806152830-8fb47b368cd4 diff --git a/testing/go.mod b/testing/go.mod index 17e1492c80..dc29a8a11e 100644 --- a/testing/go.mod +++ b/testing/go.mod @@ -1,6 +1,6 @@ module github.com/berachain/beacon-kit/testing -go 1.23.0 +go 1.22.6 replace ( // The following are required to build with the latest version of the cosmos-sdk main branch: From 939f14b79aac504439f4bd00c394d9dade6f36d7 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:15:05 -0400 Subject: [PATCH 28/51] bet --- mod/geth-primitives/pkg/deposit/contract.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/geth-primitives/pkg/deposit/contract.go b/mod/geth-primitives/pkg/deposit/contract.go index ffad995d15..32de8654f5 100644 --- a/mod/geth-primitives/pkg/deposit/contract.go +++ b/mod/geth-primitives/pkg/deposit/contract.go @@ -20,4 +20,4 @@ package deposit -//go:generate go run -ldflags=-checklinkname=0 github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go +//go:generate go run github.com/ethereum/go-ethereum/cmd/abigen --abi=../../../../contracts/out/BeaconDepositContract.sol/BeaconDepositContract.abi.json --pkg=deposit --type=BeaconDepositContract --out=contract.abigen.go From 53a7ef1dae8d990d69ff7c19fceed4d75aafe6ed Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:16:43 -0400 Subject: [PATCH 29/51] bet --- codecov.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/codecov.yml b/codecov.yml index 45867ae3c9..4348abff7e 100644 --- a/codecov.yml +++ b/codecov.yml @@ -40,6 +40,7 @@ ignore: - "**/*.pb.go" - "**/*.pb.gw.go" - "**/*.pulsar.go" + - "**/*.abigen.go" - "**/*.ssz.go" - "**/*.rlpgen.go" - "**/*.json.go" From 9f22f3d63c613257477da42fa7ba3923763eda9c Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:19:41 -0400 Subject: [PATCH 30/51] bet --- mod/cli/pkg/builder/builder.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mod/cli/pkg/builder/builder.go b/mod/cli/pkg/builder/builder.go index 0a151ee617..d7ce67cc88 100644 --- a/mod/cli/pkg/builder/builder.go +++ b/mod/cli/pkg/builder/builder.go @@ -35,6 +35,7 @@ import ( "github.com/berachain/beacon-kit/mod/runtime/pkg/cosmos/runtime" cmtcfg "github.com/cometbft/cometbft/config" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/server" servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -88,8 +89,9 @@ func (cb *CLIBuilder[T, ExecutionPayloadT]) Build() (*cmdlib.Root, error) { chainSpec common.ChainSpec logger log.AdvancedLogger[any, sdklog.Logger] ) - // build dependencies for the root command + // + //nolint:asasalint // todo fix. if err := depinject.Inject( depinject.Configs( depinject.Supply( @@ -148,11 +150,17 @@ func (cb *CLIBuilder[T, ExecutionPayloadT]) InterceptConfigsPreRunHandler( customAppConfig interface{}, cmtConfig *cmtcfg.Config, ) error { - return config.SetupCommand( + serverCtx, err := config.SetupConfigAndContext( cmd, customAppConfigTemplate, customAppConfig, cmtConfig, logger, ) + if err != nil { + return err + } + + // set server context + return server.SetCmdServerContext(cmd, serverCtx) } From 5d9ff6536d30bd7db3a9feb32d802f55d74f5d63 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 01:20:20 -0400 Subject: [PATCH 31/51] bet --- mod/cli/pkg/builder/builder.go | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/mod/cli/pkg/builder/builder.go b/mod/cli/pkg/builder/builder.go index d7ce67cc88..b0ad0e7945 100644 --- a/mod/cli/pkg/builder/builder.go +++ b/mod/cli/pkg/builder/builder.go @@ -35,7 +35,6 @@ import ( "github.com/berachain/beacon-kit/mod/runtime/pkg/cosmos/runtime" cmtcfg "github.com/cometbft/cometbft/config" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/server" servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -90,7 +89,6 @@ func (cb *CLIBuilder[T, ExecutionPayloadT]) Build() (*cmdlib.Root, error) { logger log.AdvancedLogger[any, sdklog.Logger] ) // build dependencies for the root command - // //nolint:asasalint // todo fix. if err := depinject.Inject( depinject.Configs( @@ -150,17 +148,11 @@ func (cb *CLIBuilder[T, ExecutionPayloadT]) InterceptConfigsPreRunHandler( customAppConfig interface{}, cmtConfig *cmtcfg.Config, ) error { - serverCtx, err := config.SetupConfigAndContext( + return config.SetupCommand( cmd, customAppConfigTemplate, customAppConfig, cmtConfig, logger, ) - if err != nil { - return err - } - - // set server context - return server.SetCmdServerContext(cmd, serverCtx) } From d7ffc21a981371e21f0558f8eeba13bff78c9bf7 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:14:12 -0400 Subject: [PATCH 32/51] merge --- Dockerfile | 4 ---- README.md | 4 ---- 2 files changed, 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 30d94ad9b3..08f93b9955 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,11 +18,7 @@ ### Stage 0 - Build Arguments ### ####################################################### -<<<<<<< HEAD -ARG GO_VERSION=1.22.6 -======= ARG GO_VERSION=1.23.0 ->>>>>>> main ARG RUNNER_IMAGE=alpine:3.20 ARG BUILD_TAGS="netgo,muslc,blst,bls12381,pebbledb" ARG NAME=beacond diff --git a/README.md b/README.md index 665865ae9a..18738eedfe 100644 --- a/README.md +++ b/README.md @@ -44,11 +44,7 @@ BeaconKit is able to support all 6 major Ethereum execution clients: **Prerequisites:** - [Docker](https://docs.docker.com/engine/install/) -<<<<<<< HEAD -- [Golang 1.22.6+](https://go.dev/doc/install) -======= - [Golang 1.23.0+](https://go.dev/doc/install) ->>>>>>> main - [Foundry](https://book.getfoundry.sh/getting-started/installation) Start by opening two terminals side-by-side: From 248286cac6abe37ba74e391756ccee648a297ad3 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:15:50 -0400 Subject: [PATCH 33/51] bet --- mod/execution/pkg/deposit/contract.go | 9 --------- mod/execution/pkg/deposit/types.go | 10 ++++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 87a09b5fef..6ebc66654a 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -27,15 +27,6 @@ import ( "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) -// Client is an interface for the client. -type Client[LogT any] interface { - GetLogsAtBlockNumber( - ctx context.Context, - number math.U64, - address common.ExecutionAddress, - ) ([]LogT, error) -} - // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], diff --git a/mod/execution/pkg/deposit/types.go b/mod/execution/pkg/deposit/types.go index a672171a48..5e52b9a557 100644 --- a/mod/execution/pkg/deposit/types.go +++ b/mod/execution/pkg/deposit/types.go @@ -24,6 +24,7 @@ import ( "context" asynctypes "github.com/berachain/beacon-kit/mod/async/pkg/types" + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) @@ -62,6 +63,15 @@ type ExecutionPayload interface { GetNumber() math.U64 } +// Client is an interface for the client. +type Client[LogT any] interface { + GetLogsAtBlockNumber( + ctx context.Context, + number math.U64, + address common.ExecutionAddress, + ) ([]LogT, error) +} + // Contract is the ABI for the deposit contract. type Contract[DepositT any] interface { // ReadDeposits reads deposits from the deposit contract. From 19306ce7f8d4da7b5740a6032968505d21482ffc Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:16:35 -0400 Subject: [PATCH 34/51] bet --- mod/execution/pkg/deposit/contract.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 6ebc66654a..4e2456cd90 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -78,9 +78,9 @@ func (dc *WrappedBeaconDepositContract[ return nil, err } - var d DepositT deposits := make([]DepositT, 0) for _, log := range logs { + var d DepositT d = d.Empty() if err = d.UnmarshalLog(log); err != nil { return nil, err From a2644415c102daf10d96167a99dab7f9061e42b6 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:18:22 -0400 Subject: [PATCH 35/51] bet --- mod/primitives/pkg/net/jwt/jwt_test.go | 28 ++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/mod/primitives/pkg/net/jwt/jwt_test.go b/mod/primitives/pkg/net/jwt/jwt_test.go index 67e5f47782..3afec5203b 100644 --- a/mod/primitives/pkg/net/jwt/jwt_test.go +++ b/mod/primitives/pkg/net/jwt/jwt_test.go @@ -251,11 +251,21 @@ func TestHexRegexp(t *testing.T) { } for _, validHex := range validHexStrings { - require.True(t, jwt.HexRegexp.MatchString(validHex), "Valid hex string not matched: %s", validHex) + require.True( + t, + jwt.HexRegexp.MatchString(validHex), + "Valid hex string not matched: %s", + validHex, + ) } for _, invalidHex := range invalidHexStrings { - require.False(t, jwt.HexRegexp.MatchString(invalidHex), "Invalid hex string matched: %s", invalidHex) + require.False( + t, + jwt.HexRegexp.MatchString(invalidHex), + "Invalid hex string matched: %s", + invalidHex, + ) } } @@ -266,8 +276,18 @@ func TestSecretComparison(t *testing.T) { secret2, err := jwt.NewRandom() require.NoError(t, err, "NewRandom() error for secret2") - require.NotEqual(t, secret1, secret2, "Two random secrets should not be equal") + require.NotEqual( + t, + secret1, + secret2, + "Two random secrets should not be equal", + ) secret3 := *secret1 - require.Equal(t, secret1, &secret3, "Copied secret should be equal to original") + require.Equal( + t, + secret1, + &secret3, + "Copied secret should be equal to original", + ) } From 3dc62f0e54f4b3a4b3694a7d33e63503bbc8a206 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:32:11 -0400 Subject: [PATCH 36/51] bet --- mod/da/pkg/da/types.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/da/pkg/da/types.go b/mod/da/pkg/da/types.go index 75b0c7f866..3f6c9219f7 100644 --- a/mod/da/pkg/da/types.go +++ b/mod/da/pkg/da/types.go @@ -62,9 +62,9 @@ type BlobSidecar interface { IsNil() bool } -// EventPublisher represents the event publisher interface. +// EventPublisherSubscriber represents the event publisher interface. type EventPublisherSubscriber[T any] interface { - // PublishEvent publishes an event. + // Publish publishes an event. Publish(context.Context, T) error // Subscribe subscribes to the event system. Subscribe() (chan T, error) From fd0a805bf7c8e9914c45e245177bbed21a20ae7b Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:56:10 -0400 Subject: [PATCH 37/51] bet --- .fleet/settings.json | 8 ++++ mod/da/pkg/da/types.go | 2 +- .../pkg/engine-primitives/log.go | 4 ++ mod/execution/go.mod | 2 +- mod/execution/pkg/deposit/contract.go | 16 ++++++- mod/primitives/pkg/common/execution.go | 42 ++++++++++--------- mod/primitives/pkg/crypto/sha256/sha256.go | 2 +- 7 files changed, 51 insertions(+), 25 deletions(-) create mode 100644 .fleet/settings.json diff --git a/.fleet/settings.json b/.fleet/settings.json new file mode 100644 index 0000000000..ea07184fe7 --- /dev/null +++ b/.fleet/settings.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + { + "type": "add", + "pluginName": "fleet.go.ai" + } + ] +} \ No newline at end of file diff --git a/mod/da/pkg/da/types.go b/mod/da/pkg/da/types.go index 3f6c9219f7..8396055f99 100644 --- a/mod/da/pkg/da/types.go +++ b/mod/da/pkg/da/types.go @@ -64,7 +64,7 @@ type BlobSidecar interface { // EventPublisherSubscriber represents the event publisher interface. type EventPublisherSubscriber[T any] interface { - // Publish publishes an event. + // Publish publishes an event. Publish(context.Context, T) error // Subscribe subscribes to the event system. Subscribe() (chan T, error) diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 099fb890ea..3717c5b496 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -60,6 +60,10 @@ type Log struct { Removed bool `json:"removed"` } +func (l Log) GetTopics() []common.ExecutionHash { + return l.Topics +} + // MarshalJSON marshals as JSON. func (l Log) MarshalJSON() ([]byte, error) { type Log struct { diff --git a/mod/execution/go.mod b/mod/execution/go.mod index b4ad3fb80f..8a1cbe74b5 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -8,6 +8,7 @@ require ( github.com/berachain/beacon-kit/mod/errors v0.0.0-20240618214413-d5ec0e66b3dd github.com/berachain/beacon-kit/mod/log v0.0.0-20240610210054-bfdc14c4013c github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 + github.com/ethereum/go-ethereum v1.14.7 github.com/goccy/go-json v0.10.3 ) @@ -34,7 +35,6 @@ require ( github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.3 // indirect - github.com/ethereum/go-ethereum v1.14.7 // indirect github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 4e2456cd90..33a1480e39 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -25,12 +25,19 @@ import ( "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" + "github.com/ethereum/go-ethereum/crypto" ) +//nolint:gochecknogloba // temporary. +var DepositEventSignature = common.ExecutionHash( + crypto.Keccak256([]byte("Deposit(bytes,bytes,uint64,bytes,uint64)"))) + // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], - LogT any, + LogT interface { + GetTopics() []common.ExecutionHash + }, WithdrawalCredentialsT ~[32]byte, ] struct { client Client[LogT] @@ -40,7 +47,9 @@ type WrappedBeaconDepositContract[ // NewWrappedBeaconDepositContract creates a new BeaconDepositContract. func NewWrappedBeaconDepositContract[ DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], - LogT any, + LogT interface { + GetTopics() []common.ExecutionHash + }, WithdrawalCredentialsT ~[32]byte, ]( address common.ExecutionAddress, @@ -80,6 +89,9 @@ func (dc *WrappedBeaconDepositContract[ deposits := make([]DepositT, 0) for _, log := range logs { + if log.GetTopics()[0] != DepositEventSignature { + continue + } var d DepositT d = d.Empty() if err = d.UnmarshalLog(log); err != nil { diff --git a/mod/primitives/pkg/common/execution.go b/mod/primitives/pkg/common/execution.go index 9210ac140d..75cdc3f37a 100644 --- a/mod/primitives/pkg/common/execution.go +++ b/mod/primitives/pkg/common/execution.go @@ -129,23 +129,25 @@ func (a *ExecutionAddress) UnmarshalJSON(input []byte) error { // checksumHex returns the checksummed hex representation of a. func (a *ExecutionAddress) checksumHex() []byte { - buf := hex.EncodeBytes(a[:]) - - // compute checksum - sha := sha3.NewLegacyKeccak256() - sha.Write(buf[2:]) - hash := sha.Sum(nil) - for i := 2; i < len(buf); i++ { - //nolint:mnd // todo fix. - hashByte := hash[(i-2)/2] - if i%2 == 0 { - hashByte >>= 4 - } else { - hashByte &= 0xf - } - if buf[i] > '9' && hashByte > 7 { - buf[i] -= 32 - } - } - return buf -} + buf := hex.EncodeBytes(a[:]) + + // Compute checksum + sha := sha3.NewLegacyKeccak256() + sha.Write(buf) + hash := sha.Sum(nil) + + for i := 0; i < len(buf); i++ { + hashByte := hash[i/2] + if i%2 == 0 { + hashByte >>= 4 + } else { + hashByte &= 0xf + } + + // Correct the character cases for checksum + if buf[i] > '9' && hashByte > 7 { + buf[i] -= 32 + } + } + return append([]byte("0x"), buf...) +} \ No newline at end of file diff --git a/mod/primitives/pkg/crypto/sha256/sha256.go b/mod/primitives/pkg/crypto/sha256/sha256.go index 544f0a70ec..f805f241e1 100644 --- a/mod/primitives/pkg/crypto/sha256/sha256.go +++ b/mod/primitives/pkg/crypto/sha256/sha256.go @@ -34,7 +34,7 @@ var sha256Pool = sync.Pool{New: func() interface{} { return sha256.New() }} -// Sha256 defines a function that returns the sha256 checksum of the data passed +// Hash defines a function that returns the sha256 checksum of the data passed // in. Adheres to the crypto.HashFn signature. // https://github.com/ethereum/consensus-specs/blob/v0.9.3/specs/core/0_beacon-chain.md#hash // From 43799a48de172589820b832b660d263098da459e Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 14:56:16 -0400 Subject: [PATCH 38/51] bet --- .fleet/settings.json | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .fleet/settings.json diff --git a/.fleet/settings.json b/.fleet/settings.json deleted file mode 100644 index ea07184fe7..0000000000 --- a/.fleet/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "plugins": [ - { - "type": "add", - "pluginName": "fleet.go.ai" - } - ] -} \ No newline at end of file From 9b08e287e5fffb0574bf6c208c12b041881f95eb Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 15:01:06 -0400 Subject: [PATCH 39/51] bet --- mod/execution/pkg/deposit/contract.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 33a1480e39..fff180b1be 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -28,7 +28,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" ) -//nolint:gochecknogloba // temporary. +//nolint:gochecknoglobals // temporary. var DepositEventSignature = common.ExecutionHash( crypto.Keccak256([]byte("Deposit(bytes,bytes,uint64,bytes,uint64)"))) From af0c5863de7d902d213c7f75958bb5b2348a1876 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 15:07:50 -0400 Subject: [PATCH 40/51] bet --- mod/primitives/pkg/common/execution.go | 42 ++++++++++++-------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/mod/primitives/pkg/common/execution.go b/mod/primitives/pkg/common/execution.go index 75cdc3f37a..9210ac140d 100644 --- a/mod/primitives/pkg/common/execution.go +++ b/mod/primitives/pkg/common/execution.go @@ -129,25 +129,23 @@ func (a *ExecutionAddress) UnmarshalJSON(input []byte) error { // checksumHex returns the checksummed hex representation of a. func (a *ExecutionAddress) checksumHex() []byte { - buf := hex.EncodeBytes(a[:]) - - // Compute checksum - sha := sha3.NewLegacyKeccak256() - sha.Write(buf) - hash := sha.Sum(nil) - - for i := 0; i < len(buf); i++ { - hashByte := hash[i/2] - if i%2 == 0 { - hashByte >>= 4 - } else { - hashByte &= 0xf - } - - // Correct the character cases for checksum - if buf[i] > '9' && hashByte > 7 { - buf[i] -= 32 - } - } - return append([]byte("0x"), buf...) -} \ No newline at end of file + buf := hex.EncodeBytes(a[:]) + + // compute checksum + sha := sha3.NewLegacyKeccak256() + sha.Write(buf[2:]) + hash := sha.Sum(nil) + for i := 2; i < len(buf); i++ { + //nolint:mnd // todo fix. + hashByte := hash[(i-2)/2] + if i%2 == 0 { + hashByte >>= 4 + } else { + hashByte &= 0xf + } + if buf[i] > '9' && hashByte > 7 { + buf[i] -= 32 + } + } + return buf +} From 9a8fdb439aaa3c75243239e657bbf53d2bda5b13 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 15:17:58 -0400 Subject: [PATCH 41/51] bet --- mod/execution/pkg/client/ethclient/rpc/client.go | 2 +- mod/execution/pkg/client/ethclient/rpc/types.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/execution/pkg/client/ethclient/rpc/client.go b/mod/execution/pkg/client/ethclient/rpc/client.go index 869f9cfb27..bac4c479f3 100644 --- a/mod/execution/pkg/client/ethclient/rpc/client.go +++ b/mod/execution/pkg/client/ethclient/rpc/client.go @@ -28,8 +28,8 @@ import ( "sync" "time" + "github.com/berachain/beacon-kit/mod/primitives/pkg/encoding/json" "github.com/berachain/beacon-kit/mod/primitives/pkg/net/jwt" - json "github.com/goccy/go-json" ) // Client is an Ethereum RPC client that provides a diff --git a/mod/execution/pkg/client/ethclient/rpc/types.go b/mod/execution/pkg/client/ethclient/rpc/types.go index c83daee7f7..e50be18be1 100644 --- a/mod/execution/pkg/client/ethclient/rpc/types.go +++ b/mod/execution/pkg/client/ethclient/rpc/types.go @@ -23,7 +23,7 @@ package rpc import ( "fmt" - json "github.com/goccy/go-json" + json "github.com/berachain/beacon-kit/mod/primitives/pkg/encoding/json" ) // Request represents an Ethereum JSON-RPC request. From 88b68994c33dd537090a6bd8105736f39dd1730d Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 15:18:29 -0400 Subject: [PATCH 42/51] bet --- mod/execution/go.mod | 2 +- mod/primitives/go.mod | 1 - mod/primitives/go.sum | 2 -- mod/primitives/pkg/encoding/json/json.go | 8 +++----- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/mod/execution/go.mod b/mod/execution/go.mod index 8a1cbe74b5..f067a3b1d7 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -9,7 +9,6 @@ require ( github.com/berachain/beacon-kit/mod/log v0.0.0-20240610210054-bfdc14c4013c github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 github.com/ethereum/go-ethereum v1.14.7 - github.com/goccy/go-json v0.10.3 ) require ( @@ -39,6 +38,7 @@ require ( github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect github.com/go-ole/go-ole v1.3.0 // indirect + github.com/goccy/go-json v0.10.3 // indirect github.com/gofrs/flock v0.12.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect diff --git a/mod/primitives/go.mod b/mod/primitives/go.mod index d40100edb1..94ed5a4f59 100644 --- a/mod/primitives/go.mod +++ b/mod/primitives/go.mod @@ -6,7 +6,6 @@ require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db github.com/berachain/beacon-kit/mod/errors v0.0.0-20240610210054-bfdc14c4013c github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 - github.com/goccy/go-json v0.10.3 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/holiman/uint256 v1.3.1 github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4 diff --git a/mod/primitives/go.sum b/mod/primitives/go.sum index 3f8444f8cb..cec9e66223 100644 --- a/mod/primitives/go.sum +++ b/mod/primitives/go.sum @@ -17,8 +17,6 @@ github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRt github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= diff --git a/mod/primitives/pkg/encoding/json/json.go b/mod/primitives/pkg/encoding/json/json.go index 967cd182b6..38b254a3a8 100644 --- a/mod/primitives/pkg/encoding/json/json.go +++ b/mod/primitives/pkg/encoding/json/json.go @@ -23,21 +23,19 @@ package json import ( "encoding/json" - - gojson "github.com/goccy/go-json" ) // Marshal is a wrapper for gojson.Marshal, which provides high-performance JSON // encoding. -var Marshal = gojson.Marshal +var Marshal = json.Marshal // MarshalIndent is a wrapper for gojson.MarshalIndent, which provides // high-performance JSON encoding with indentation. -var MarshalIndent = gojson.MarshalIndent +var MarshalIndent = json.MarshalIndent // Unmarshal is a wrapper for gojson.Unmarshal, which provides high-performance // JSON decoding. -var Unmarshal = gojson.Unmarshal +var Unmarshal = json.Unmarshal // RawMessage is an alias for json.RawMessage, represensting a raw encoded JSON // value. It implements Marshaler and Unmarshaler and can be used to delay JSON From d198db5faae1e980dd9fac6ddc85fbe42b5e0bd9 Mon Sep 17 00:00:00 2001 From: itsdevbear Date: Thu, 15 Aug 2024 16:28:07 -0400 Subject: [PATCH 43/51] bet --- beacond/go.mod | 8 ++++---- beacond/go.sum | 12 ++++++------ mod/node-core/go.mod | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/beacond/go.mod b/beacond/go.mod index 03d53e4f6c..3e7d6b81bd 100644 --- a/beacond/go.mod +++ b/beacond/go.mod @@ -62,20 +62,20 @@ require ( github.com/berachain/beacon-kit/mod/beacon v0.0.0-20240718074353-1a991cfeed63 // indirect github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240705193247-d464364483df // indirect github.com/berachain/beacon-kit/mod/config v0.0.0-20240705193247-d464364483df // indirect - github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240723155519-565f208d5482 // indirect - github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240806160829-cde2d1347e7e // indirect + github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240809163303-a4ebb22fd018 // indirect + github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240809163303-a4ebb22fd018 github.com/berachain/beacon-kit/mod/da v0.0.0-20240705193247-d464364483df // indirect github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 // indirect github.com/berachain/beacon-kit/mod/errors v0.0.0-20240705193247-d464364483df // indirect github.com/berachain/beacon-kit/mod/execution v0.0.0-20240705193247-d464364483df // indirect github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e // indirect - github.com/berachain/beacon-kit/mod/log v0.0.0-20240705193247-d464364483df // indirect + github.com/berachain/beacon-kit/mod/log v0.0.0-20240705193247-d464364483df github.com/berachain/beacon-kit/mod/node-api v0.0.0-20240806160829-cde2d1347e7e // indirect github.com/berachain/beacon-kit/mod/node-api/engines v0.0.0-20240806160829-cde2d1347e7e // indirect github.com/berachain/beacon-kit/mod/p2p v0.0.0-20240618214413-d5ec0e66b3dd // indirect github.com/berachain/beacon-kit/mod/payload v0.0.0-20240705193247-d464364483df // indirect github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 // indirect - github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240806160829-cde2d1347e7e // indirect + github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240815202409-3ecaa1f3f4c5 github.com/berachain/beacon-kit/mod/state-transition v0.0.0-20240717225334-64ec6650da31 // indirect github.com/berachain/beacon-kit/mod/storage v0.0.0-20240806160829-cde2d1347e7e // indirect github.com/bgentry/speakeasy v0.2.0 // indirect diff --git a/beacond/go.sum b/beacond/go.sum index d93874f5dd..8a9d6d30d8 100644 --- a/beacond/go.sum +++ b/beacond/go.sum @@ -92,10 +92,10 @@ github.com/berachain/beacon-kit/mod/cli v0.0.0-20240806160829-cde2d1347e7e h1:sP github.com/berachain/beacon-kit/mod/cli v0.0.0-20240806160829-cde2d1347e7e/go.mod h1:Sm5yEcVlCChGKhzVWYRYbQ8Z6EU9qDRp00UoGlC5HHQ= github.com/berachain/beacon-kit/mod/config v0.0.0-20240705193247-d464364483df h1:I0qrcOnLkWjruhCWJMY04Cc9KT78WaY4aXCIoUj9+V4= github.com/berachain/beacon-kit/mod/config v0.0.0-20240705193247-d464364483df/go.mod h1:xTHttdHtO63VauLvYve/J3DBLtXJKNk0dw5RhAo636k= -github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240723155519-565f208d5482 h1:o0JB2+luyAGmNF0B2byfAXcAXD/vA2x881miqwyPlAQ= -github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240723155519-565f208d5482/go.mod h1:LuuhwwOod5wfpPJpHhp+QdxkVcNLeadoCSSI32gp6vE= -github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240806160829-cde2d1347e7e h1:GTeZshNZaH5MnVhSSGj//vxJfv1kM9d6w2CA7O64gJk= -github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240806160829-cde2d1347e7e/go.mod h1:ZU1bq1BMt6b0kPRAw+A3kP7FlSd5DSQNYePD5qL9zfQ= +github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240809163303-a4ebb22fd018 h1:LvqiLOa8L5CKacYyphFHv363Y07nH4DJObuik0qSJ8c= +github.com/berachain/beacon-kit/mod/consensus v0.0.0-20240809163303-a4ebb22fd018/go.mod h1:AabKi0yGSwa1FW9fZnuQXJi6OUcUzIWa4o4e8zm/5RM= +github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240809163303-a4ebb22fd018 h1:VN+glgL0JqQXf/N/8toDa9EnehltgBD4DbsHx65Macc= +github.com/berachain/beacon-kit/mod/consensus-types v0.0.0-20240809163303-a4ebb22fd018/go.mod h1:A3Ohrylv4Dx2sf8EKJImC7ii091dUaWEAMp/AK5N6+s= github.com/berachain/beacon-kit/mod/da v0.0.0-20240705193247-d464364483df h1:yZtRZBkhDJ2xMlMLx5DdUFtrtH9iWyPNl4HSW2uJyb8= github.com/berachain/beacon-kit/mod/da v0.0.0-20240705193247-d464364483df/go.mod h1:iGTR+iYsqpj79WLX1RUVbV7hDs0rQtr+Iqa/VkAF4x8= github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 h1:wVWkiiERY/7kaXvE/VNPPUtYp/l8ky6QSuKM3ThVMXU= @@ -120,8 +120,8 @@ github.com/berachain/beacon-kit/mod/payload v0.0.0-20240705193247-d464364483df h github.com/berachain/beacon-kit/mod/payload v0.0.0-20240705193247-d464364483df/go.mod h1:wbSa9W1CDDzR9AptQfYf/16bWqktaIQIZdJsuKWeqC8= github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197 h1:hk8N7Q1CCKMW/05pRu5rbfRnbTUou5TjULaeeRtbU+E= github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240808194557-e72e74f58197/go.mod h1:7kNnd9rhYjyZJHuXs/ku5drL9EMM64ekJVR181fGmbM= -github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240806160829-cde2d1347e7e h1:poP9ooPm9zZIWgaNOHphNWz1mGnNPKvzOuh9e1jA/EM= -github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240806160829-cde2d1347e7e/go.mod h1:2SpsgO8YGfj7mFToN5rRRknOJko2ULCL573O9Oyf8Uc= +github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240815202409-3ecaa1f3f4c5 h1:EU2U5AcctZwbxeULqE2COTpgD5fMecVV+2Lah66ixwY= +github.com/berachain/beacon-kit/mod/runtime v0.0.0-20240815202409-3ecaa1f3f4c5/go.mod h1:FZm832xb0CfOBhk4ZBUzXJ4ffNazGpTLIZqhARI7iGU= github.com/berachain/beacon-kit/mod/state-transition v0.0.0-20240717225334-64ec6650da31 h1:1bJbJcoksyXfYMiga8YxPnkVKqT1lKwym/8kZnEPz58= github.com/berachain/beacon-kit/mod/state-transition v0.0.0-20240717225334-64ec6650da31/go.mod h1:sIzib45R7B9Q99yvsYUcj2xJZPBpe3J9JbcBDMZNp7E= github.com/berachain/beacon-kit/mod/storage v0.0.0-20240806160829-cde2d1347e7e h1:eIHdeGNL87GlWxFqAgsuUZpA/EBGvaOWXFMDuXSJgjU= diff --git a/mod/node-core/go.mod b/mod/node-core/go.mod index f6141fd242..53369fac8b 100644 --- a/mod/node-core/go.mod +++ b/mod/node-core/go.mod @@ -32,7 +32,6 @@ require ( github.com/berachain/beacon-kit/mod/state-transition v0.0.0-20240717225334-64ec6650da31 github.com/berachain/beacon-kit/mod/storage v0.0.0-20240806160829-cde2d1347e7e github.com/cometbft/cometbft v1.0.0-rc1.0.20240806094948-2c4293ef36c4 - github.com/cometbft/cometbft/api v1.0.0-rc.1.0.20240806094948-2c4293ef36c4 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-sdk v0.53.0 github.com/crate-crypto/go-kzg-4844 v1.1.0 @@ -51,6 +50,7 @@ require ( github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e // indirect github.com/bufbuild/protocompile v0.14.0 // indirect github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect + github.com/cometbft/cometbft/api v1.0.0-rc.1.0.20240806094948-2c4293ef36c4 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/gabriel-vasile/mimetype v1.4.4 // indirect @@ -113,7 +113,7 @@ require ( github.com/cosmos/crypto v0.1.2 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/gogoproto v1.5.0 + github.com/cosmos/gogoproto v1.5.0 // indirect github.com/cosmos/iavl v1.2.1-0.20240725141113-7adc688cf179 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect @@ -132,7 +132,7 @@ require ( github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 + github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/getsentry/sentry-go v0.28.1 // indirect github.com/go-faster/xor v1.0.0 // indirect From ab27640e388a3dcbb0935089dcacf26634721263 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Tue, 1 Oct 2024 15:02:20 -0400 Subject: [PATCH 44/51] log generic --- beacond/cmd/defaults.go | 20 ++-- beacond/cmd/types.go | 11 ++- mod/cli/pkg/commands/genesis/collect.go | 11 ++- mod/cli/pkg/commands/genesis/deposit.go | 5 +- mod/cli/pkg/commands/genesis/payload.go | 3 +- mod/consensus-types/pkg/types/block.go | 7 +- mod/consensus-types/pkg/types/block_test.go | 4 +- mod/consensus-types/pkg/types/body.go | 96 ++++++++++--------- mod/consensus-types/pkg/types/body_test.go | 31 +++--- mod/consensus-types/pkg/types/deposit.go | 69 ++++++------- mod/consensus-types/pkg/types/deposit_test.go | 9 +- mod/consensus-types/pkg/types/deposits.go | 18 ++-- mod/consensus-types/pkg/types/genesis.go | 6 +- .../pkg/engine-primitives/log.go | 6 ++ mod/execution/go.mod | 1 - mod/execution/pkg/client/client.go | 16 ++-- mod/execution/pkg/client/engine.go | 8 +- mod/execution/pkg/client/errors.go | 2 +- mod/execution/pkg/client/ethclient/engine.go | 18 ++-- mod/execution/pkg/client/ethclient/eth.go | 9 +- .../pkg/client/ethclient/ethclient.go | 18 ++-- mod/execution/pkg/client/helpers.go | 2 +- mod/execution/pkg/deposit/contract.go | 8 +- mod/execution/pkg/deposit/pruner.go | 3 +- mod/execution/pkg/deposit/service.go | 14 +-- mod/execution/pkg/deposit/sync.go | 6 +- mod/execution/pkg/deposit/types.go | 7 +- mod/execution/pkg/engine/engine.go | 18 ++-- mod/node-core/pkg/components/chain_service.go | 6 +- .../pkg/components/deposit_contract.go | 14 ++- .../pkg/components/deposit_service.go | 12 ++- mod/node-core/pkg/components/deposit_store.go | 7 +- mod/node-core/pkg/components/engine.go | 12 ++- mod/node-core/pkg/components/interfaces.go | 3 + .../pkg/components/payload_builder.go | 7 +- .../pkg/components/service_registry.go | 12 ++- .../pkg/components/state_processor.go | 7 +- mod/primitives/go.mod | 1 + mod/primitives/go.sum | 2 + mod/primitives/pkg/encoding/json/json.go | 8 +- 40 files changed, 300 insertions(+), 217 deletions(-) diff --git a/beacond/cmd/defaults.go b/beacond/cmd/defaults.go index e4ede16b88..fdc0bb83ba 100644 --- a/beacond/cmd/defaults.go +++ b/beacond/cmd/defaults.go @@ -42,7 +42,8 @@ func DefaultComponents() []any { *BeaconBlockHeader, *BlobSidecars, *Logger, ], components.ProvideBeaconDepositContract[ - *Deposit, *ExecutionPayload, *ExecutionPayloadHeader, + *Deposit, *ExecutionPayload, *ExecutionPayloadHeader, Log, + *Withdrawal, Withdrawals, WithdrawalCredentials, ], components.ProvideBlockStore[ *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, *Logger, @@ -64,7 +65,7 @@ func DefaultComponents() []any { *AvailabilityStore, *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, *BeaconState, *BeaconStateMarshallable, *BlobSidecars, *BlockStore, *Deposit, *DepositStore, - *ExecutionPayload, *ExecutionPayloadHeader, *Genesis, + *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Genesis, *KVStore, *Logger, *StorageBackend, ], components.ProvideNode, @@ -82,27 +83,28 @@ func DefaultComponents() []any { components.ProvideDBManager[*AvailabilityStore, *DepositStore, *Logger], components.ProvideDepositPruner[ *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, - *Deposit, *DepositStore, *Logger, + *Deposit, *DepositStore, Log, *Logger, ], components.ProvideDepositService[ *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, *Deposit, *DepositContract, *DepositStore, *ExecutionPayload, - *ExecutionPayloadHeader, *Logger, + *ExecutionPayloadHeader, Log, *Logger, + *Withdrawal, Withdrawals, WithdrawalCredentials, ], components.ProvideDepositStore[*Deposit], components.ProvideDispatcher[ *BeaconBlock, *BlobSidecars, *Genesis, *Logger, ], components.ProvideEngineClient[ - *ExecutionPayload, *ExecutionPayloadHeader, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Logger, ], components.ProvideExecutionEngine[ - *ExecutionPayload, *ExecutionPayloadHeader, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Logger, ], components.ProvideJWTSecret, components.ProvideLocalBuilder[ *BeaconBlockHeader, *BeaconState, *BeaconStateMarshallable, - *ExecutionPayload, *ExecutionPayloadHeader, *KVStore, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, *Log, *KVStore, *Logger, ], components.ProvideReportingService[*Logger], components.ProvideCometBFTService[*Logger], @@ -111,7 +113,7 @@ func DefaultComponents() []any { *BeaconBlockHeader, *BlockStore, *BeaconState, *BeaconStateMarshallable, *BlobSidecar, *BlobSidecars, *Deposit, *DepositStore, *ExecutionPayload, *ExecutionPayloadHeader, - *Genesis, *KVStore, *Logger, + Log, *Genesis, *KVStore, *Logger, NodeAPIContext, ], components.ProvideSidecarFactory[ @@ -120,7 +122,7 @@ func DefaultComponents() []any { components.ProvideStateProcessor[ *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, *BeaconState, *BeaconStateMarshallable, *Deposit, *ExecutionPayload, - *ExecutionPayloadHeader, *KVStore, + *ExecutionPayloadHeader, Log, *KVStore, ], components.ProvideKVStore[*BeaconBlockHeader, *ExecutionPayloadHeader], components.ProvideStorageBackend[ diff --git a/beacond/cmd/types.go b/beacond/cmd/types.go index 32f851a73e..a7328d52fb 100644 --- a/beacond/cmd/types.go +++ b/beacond/cmd/types.go @@ -129,18 +129,21 @@ type ( *BeaconBlockBody, *Deposit, *ExecutionPayload, + Log, WithdrawalCredentials, ] // EngineClient is a type alias for the engine client. EngineClient = engineclient.EngineClient[ *ExecutionPayload, + Log, *PayloadAttributes, ] // EngineClient is a type alias for the engine client. ExecutionEngine = execution.Engine[ *ExecutionPayload, + *Log, *PayloadAttributes, PayloadID, engineprimitives.Withdrawals, @@ -246,7 +249,7 @@ type ( // BeaconBlock type aliases. BeaconBlock = types.BeaconBlock - BeaconBlockBody = types.BeaconBlockBody + BeaconBlockBody = types.BeaconBlockBody[Log] BeaconBlockHeader = types.BeaconBlockHeader // BeaconState is a type alias for the BeaconState. @@ -290,11 +293,12 @@ type ( Context = transition.Context // Deposit is a type alias for the deposit. - Deposit = types.Deposit + Deposit = types.Deposit[Log] // DepositContract is a type alias for the deposit contract. DepositContract = deposit.WrappedBeaconDepositContract[ *Deposit, + Log, WithdrawalCredentials, ] @@ -320,6 +324,9 @@ type ( *ExecutionPayloadHeader, ] + // Log is a type alias for the log. + Log = engineprimitives.Log + // Logger is a type alias for the logger. Logger = phuslu.Logger diff --git a/mod/cli/pkg/commands/genesis/collect.go b/mod/cli/pkg/commands/genesis/collect.go index d11b4b13ae..79b3f9bafc 100644 --- a/mod/cli/pkg/commands/genesis/collect.go +++ b/mod/cli/pkg/commands/genesis/collect.go @@ -27,6 +27,7 @@ import ( "github.com/berachain/beacon-kit/mod/cli/pkg/context" "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/errors" "github.com/berachain/beacon-kit/mod/primitives/pkg/encoding/json" "github.com/cosmos/cosmos-sdk/x/genutil" @@ -59,7 +60,7 @@ func CollectGenesisDepositsCmd() *cobra.Command { return err } - var deposits []*types.Deposit + var deposits []*types.Deposit[engineprimitives.Log] if deposits, err = CollectValidatorJSONFiles( filepath.Join(config.RootDir, "config", "premined-deposits"), appGenesis, @@ -71,7 +72,7 @@ func CollectGenesisDepositsCmd() *cobra.Command { } genesisInfo := &types.Genesis[ - *types.Deposit, + *types.Deposit[engineprimitives.Log], *types.ExecutionPayloadHeader, ]{} @@ -110,7 +111,7 @@ func CollectGenesisDepositsCmd() *cobra.Command { func CollectValidatorJSONFiles( genTxsDir string, genesis *genutiltypes.AppGenesis, -) ([]*types.Deposit, error) { +) ([]*types.Deposit[engineprimitives.Log], error) { // prepare a map of all balances in genesis state to then validate // against the validators addresses var appState map[string]json.RawMessage @@ -125,7 +126,7 @@ func CollectValidatorJSONFiles( } // prepare the list of validators - deposits := make([]*types.Deposit, 0) + deposits := make([]*types.Deposit[engineprimitives.Log], 0) for _, fo := range fos { if fo.IsDir() { continue @@ -143,7 +144,7 @@ func CollectValidatorJSONFiles( return nil, err } - val := &types.Deposit{} + val := &types.Deposit[engineprimitives.Log]{} if err = json.Unmarshal(bz, val); err != nil { return nil, err } diff --git a/mod/cli/pkg/commands/genesis/deposit.go b/mod/cli/pkg/commands/genesis/deposit.go index bef7984ca7..55da78ef54 100644 --- a/mod/cli/pkg/commands/genesis/deposit.go +++ b/mod/cli/pkg/commands/genesis/deposit.go @@ -28,6 +28,7 @@ import ( "github.com/berachain/beacon-kit/mod/cli/pkg/context" "github.com/berachain/beacon-kit/mod/cli/pkg/utils/parser" "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/errors" "github.com/berachain/beacon-kit/mod/node-core/pkg/components" "github.com/berachain/beacon-kit/mod/node-core/pkg/components/signer" @@ -116,7 +117,7 @@ func AddGenesisDepositCmd(cs common.ChainSpec) *cobra.Command { return err } - deposit := types.Deposit{ + deposit := types.Deposit[engineprimitives.Log]{ Pubkey: depositMsg.Pubkey, Amount: depositMsg.Amount, Signature: signature, @@ -165,7 +166,7 @@ func makeOutputFilepath(rootDir, pubkey string) (string, error) { func writeDepositToFile( outputDocument string, - depositMessage *types.Deposit, + depositMessage *types.Deposit[engineprimitives.Log], ) error { //#nosec:G302,G304 // Ignore errors on this line. outputFile, err := afero.NewOsFs().OpenFile( diff --git a/mod/cli/pkg/commands/genesis/payload.go b/mod/cli/pkg/commands/genesis/payload.go index deccc019ad..978490846c 100644 --- a/mod/cli/pkg/commands/genesis/payload.go +++ b/mod/cli/pkg/commands/genesis/payload.go @@ -83,7 +83,8 @@ func AddExecutionPayloadCmd(chainSpec common.ChainSpec) *cobra.Command { } genesisInfo := &types.Genesis[ - *types.Deposit, *types.ExecutionPayloadHeader, + *types.Deposit[engineprimitives.Log], + *types.ExecutionPayloadHeader, ]{} if err = json.Unmarshal( diff --git a/mod/consensus-types/pkg/types/block.go b/mod/consensus-types/pkg/types/block.go index 5a6b10131e..a3460669ca 100644 --- a/mod/consensus-types/pkg/types/block.go +++ b/mod/consensus-types/pkg/types/block.go @@ -21,6 +21,7 @@ package types import ( + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" "github.com/berachain/beacon-kit/mod/primitives/pkg/version" @@ -41,7 +42,7 @@ type BeaconBlock struct { StateRoot common.Root `json:"state_root"` // Body is the body of the BeaconBlock, containing the block's // operations. - Body *BeaconBlockBody `json:"body"` + Body *BeaconBlockBody[engineprimitives.Log] `json:"body"` } // Empty creates an empty beacon block. @@ -67,7 +68,7 @@ func (b *BeaconBlock) NewWithVersion( ProposerIndex: proposerIndex, ParentRoot: parentBlockRoot, StateRoot: common.Root{}, - Body: &BeaconBlockBody{}, + Body: &BeaconBlockBody[engineprimitives.Log]{}, } default: return &BeaconBlock{}, ErrForkVersionNotSupported @@ -219,7 +220,7 @@ func (b *BeaconBlock) SetStateRoot(root common.Root) { } // GetBody retrieves the body of the BeaconBlock. -func (b *BeaconBlock) GetBody() *BeaconBlockBody { +func (b *BeaconBlock) GetBody() *BeaconBlockBody[engineprimitives.Log] { return b.Body } diff --git a/mod/consensus-types/pkg/types/block_test.go b/mod/consensus-types/pkg/types/block_test.go index 8d2a2b9271..1ccb1d1ed6 100644 --- a/mod/consensus-types/pkg/types/block_test.go +++ b/mod/consensus-types/pkg/types/block_test.go @@ -40,7 +40,7 @@ func generateValidBeaconBlock() *types.BeaconBlock { ProposerIndex: 5, ParentRoot: common.Root{1, 2, 3, 4, 5}, StateRoot: common.Root{5, 4, 3, 2, 1}, - Body: &types.BeaconBlockBody{ + Body: &types.BeaconBlockBody[engineprimitives.Log]{ ExecutionPayload: &types.ExecutionPayload{ Number: 10, ExtraData: []byte("dummy extra data for testing"), @@ -56,7 +56,7 @@ func generateValidBeaconBlock() *types.BeaconBlock { BaseFeePerGas: math.NewU256(0), }, Eth1Data: &types.Eth1Data{}, - Deposits: []*types.Deposit{ + Deposits: []*types.Deposit[engineprimitives.Log]{ { Index: 1, }, diff --git a/mod/consensus-types/pkg/types/body.go b/mod/consensus-types/pkg/types/body.go index 456108eba6..a2ab3d0d64 100644 --- a/mod/consensus-types/pkg/types/body.go +++ b/mod/consensus-types/pkg/types/body.go @@ -51,22 +51,6 @@ const ( ExtraDataSize = 32 ) -// Empty returns a new BeaconBlockBody with empty fields -// for the given fork version. -func (b *BeaconBlockBody) Empty(forkVersion uint32) *BeaconBlockBody { - switch forkVersion { - case version.Deneb: - return &BeaconBlockBody{ - Eth1Data: new(Eth1Data), - ExecutionPayload: &ExecutionPayload{ - ExtraData: make([]byte, ExtraDataSize), - }, - } - default: - panic("unsupported fork version") - } -} - // BlockBodyKZGOffset returns the offset of the KZG commitments in the block // body. // TODO: I still feel like we need to clean this up somehow. @@ -84,7 +68,9 @@ func BlockBodyKZGOffset( // BeaconBlockBody represents the body of a beacon block in the Deneb // chain. -type BeaconBlockBody struct { +type BeaconBlockBody[LogT interface { + GetData() []byte +}] struct { // RandaoReveal is the reveal of the RANDAO. RandaoReveal crypto.BLSSignature // Eth1Data is the data from the Eth1 chain. @@ -92,19 +78,37 @@ type BeaconBlockBody struct { // Graffiti is for a fun message or meme. Graffiti [32]byte // Deposits is the list of deposits included in the body. - Deposits []*Deposit + Deposits []*Deposit[LogT] // ExecutionPayload is the execution payload of the body. ExecutionPayload *ExecutionPayload // BlobKzgCommitments is the list of KZG commitments for the EIP-4844 blobs. BlobKzgCommitments []eip4844.KZGCommitment } +// Empty returns a new BeaconBlockBody with empty fields +// for the given fork version. +func (b *BeaconBlockBody[LogT]) Empty( + forkVersion uint32, +) *BeaconBlockBody[LogT] { + switch forkVersion { + case version.Deneb: + return &BeaconBlockBody[LogT]{ + Eth1Data: new(Eth1Data), + ExecutionPayload: &ExecutionPayload{ + ExtraData: make([]byte, ExtraDataSize), + }, + } + default: + panic("unsupported fork version") + } +} + /* -------------------------------------------------------------------------- */ /* SSZ */ /* -------------------------------------------------------------------------- */ // SizeSSZ returns the size of the BeaconBlockBody in SSZ. -func (b *BeaconBlockBody) SizeSSZ(fixed bool) uint32 { +func (b *BeaconBlockBody[_]) SizeSSZ(fixed bool) uint32 { var size uint32 = 96 + 72 + 32 + 4 + 4 + 4 if fixed { return size @@ -119,7 +123,7 @@ func (b *BeaconBlockBody) SizeSSZ(fixed bool) uint32 { // DefineSSZ defines the SSZ serialization of the BeaconBlockBody. // //nolint:mnd // TODO: chainspec. -func (b *BeaconBlockBody) DefineSSZ(codec *ssz.Codec) { +func (b *BeaconBlockBody[_]) DefineSSZ(codec *ssz.Codec) { // Define the static data (fields and dynamic offsets) ssz.DefineStaticBytes(codec, &b.RandaoReveal) ssz.DefineStaticObject(codec, &b.Eth1Data) @@ -135,18 +139,18 @@ func (b *BeaconBlockBody) DefineSSZ(codec *ssz.Codec) { } // MarshalSSZ serializes the BeaconBlockBody to SSZ-encoded bytes. -func (b *BeaconBlockBody) MarshalSSZ() ([]byte, error) { +func (b *BeaconBlockBody[_]) MarshalSSZ() ([]byte, error) { buf := make([]byte, b.SizeSSZ(false)) return buf, ssz.EncodeToBytes(buf, b) } // UnmarshalSSZ deserializes the BeaconBlockBody from SSZ-encoded bytes. -func (b *BeaconBlockBody) UnmarshalSSZ(buf []byte) error { +func (b *BeaconBlockBody[_]) UnmarshalSSZ(buf []byte) error { return ssz.DecodeFromBytes(buf, b) } // HashTreeRoot returns the SSZ hash tree root of the BeaconBlockBody. -func (b *BeaconBlockBody) HashTreeRoot() common.Root { +func (b *BeaconBlockBody[_]) HashTreeRoot() common.Root { return ssz.HashConcurrent(b) } @@ -155,7 +159,7 @@ func (b *BeaconBlockBody) HashTreeRoot() common.Root { /* -------------------------------------------------------------------------- */ // MarshalSSZTo serializes the BeaconBlockBody into a writer. -func (b *BeaconBlockBody) MarshalSSZTo(dst []byte) ([]byte, error) { +func (b *BeaconBlockBody[_]) MarshalSSZTo(dst []byte) ([]byte, error) { bz, err := b.MarshalSSZ() if err != nil { return nil, err @@ -167,7 +171,7 @@ func (b *BeaconBlockBody) MarshalSSZTo(dst []byte) ([]byte, error) { // HashTreeRootWith ssz hashes the BeaconBlockBody object with a hasher. // //nolint:mnd // todo fix. -func (b *BeaconBlockBody) HashTreeRootWith(hh fastssz.HashWalker) error { +func (b *BeaconBlockBody[_]) HashTreeRootWith(hh fastssz.HashWalker) error { indx := hh.Index() // Field (0) 'RandaoReveal' @@ -226,24 +230,24 @@ func (b *BeaconBlockBody) HashTreeRootWith(hh fastssz.HashWalker) error { } // GetTree ssz hashes the BeaconBlockBody object. -func (b *BeaconBlockBody) GetTree() (*fastssz.Node, error) { +func (b *BeaconBlockBody[_]) GetTree() (*fastssz.Node, error) { return fastssz.ProofTree(b) } // IsNil checks if the BeaconBlockBody is nil. -func (b *BeaconBlockBody) IsNil() bool { +func (b *BeaconBlockBody[_]) IsNil() bool { return b == nil } // GetExecutionPayload returns the ExecutionPayload of the Body. func ( - b *BeaconBlockBody, + b *BeaconBlockBody[_], ) GetExecutionPayload() *ExecutionPayload { return b.ExecutionPayload } // SetExecutionPayload sets the ExecutionData of the BeaconBlockBody. -func (b *BeaconBlockBody) SetExecutionPayload( +func (b *BeaconBlockBody[_]) SetExecutionPayload( executionData *ExecutionPayload, ) { b.ExecutionPayload = executionData @@ -251,51 +255,51 @@ func (b *BeaconBlockBody) SetExecutionPayload( // GetBlobKzgCommitments returns the BlobKzgCommitments of the Body. func ( - b *BeaconBlockBody, + b *BeaconBlockBody[_], ) GetBlobKzgCommitments() eip4844.KZGCommitments[common.ExecutionHash] { return b.BlobKzgCommitments } // SetBlobKzgCommitments sets the BlobKzgCommitments of the // BeaconBlockBody. -func (b *BeaconBlockBody) SetBlobKzgCommitments( +func (b *BeaconBlockBody[_]) SetBlobKzgCommitments( commitments eip4844.KZGCommitments[common.ExecutionHash], ) { b.BlobKzgCommitments = commitments } // SetEth1Data sets the Eth1Data of the BeaconBlockBody. -func (b *BeaconBlockBody) SetEth1Data(eth1Data *Eth1Data) { +func (b *BeaconBlockBody[_]) SetEth1Data(eth1Data *Eth1Data) { b.Eth1Data = eth1Data } // SetDeposits is not implemented for BeaconBlockDeneb. -func (b *BeaconBlockBody) GetAttestations() []*AttestationData { +func (b *BeaconBlockBody[_]) GetAttestations() []*AttestationData { panic("not implemented") } // SetDeposits is not implemented for BeaconBlockDeneb. -func (b *BeaconBlockBody) SetAttestations(_ []*AttestationData) { +func (b *BeaconBlockBody[_]) SetAttestations(_ []*AttestationData) { panic("not implemented") } // GetSlashingInfo is not implemented for BeaconBlockDeneb. -func (b *BeaconBlockBody) GetSlashingInfo() []*SlashingInfo { +func (b *BeaconBlockBody[_]) GetSlashingInfo() []*SlashingInfo { panic("not implemented") } // SetSlashingInfo is not implemented for BeaconBlockDeneb. -func (b *BeaconBlockBody) SetSlashingInfo(_ []*SlashingInfo) { +func (b *BeaconBlockBody[_]) SetSlashingInfo(_ []*SlashingInfo) { panic("not implemented") } // GetTopLevelRoots returns the top-level roots of the BeaconBlockBody. -func (b *BeaconBlockBody) GetTopLevelRoots() []common.Root { +func (b *BeaconBlockBody[LogT]) GetTopLevelRoots() []common.Root { return []common.Root{ common.Root(b.GetRandaoReveal().HashTreeRoot()), b.Eth1Data.HashTreeRoot(), common.Root(b.GetGraffiti().HashTreeRoot()), - Deposits(b.GetDeposits()).HashTreeRoot(), + Deposits[LogT](b.GetDeposits()).HashTreeRoot(), b.GetExecutionPayload().HashTreeRoot(), // I think this is a bug. common.Root{}, @@ -303,41 +307,41 @@ func (b *BeaconBlockBody) GetTopLevelRoots() []common.Root { } // Length returns the number of fields in the BeaconBlockBody struct. -func (b *BeaconBlockBody) Length() uint64 { +func (b *BeaconBlockBody[_]) Length() uint64 { return BodyLengthDeneb } // GetRandaoReveal returns the RandaoReveal of the Body. -func (b *BeaconBlockBody) GetRandaoReveal() crypto.BLSSignature { +func (b *BeaconBlockBody[_]) GetRandaoReveal() crypto.BLSSignature { return b.RandaoReveal } // SetRandaoReveal sets the RandaoReveal of the Body. -func (b *BeaconBlockBody) SetRandaoReveal(reveal crypto.BLSSignature) { +func (b *BeaconBlockBody[_]) SetRandaoReveal(reveal crypto.BLSSignature) { b.RandaoReveal = reveal } // GetEth1Data returns the Eth1Data of the Body. -func (b *BeaconBlockBody) GetEth1Data() *Eth1Data { +func (b *BeaconBlockBody[_]) GetEth1Data() *Eth1Data { return b.Eth1Data } // GetGraffiti returns the Graffiti of the Body. -func (b *BeaconBlockBody) GetGraffiti() common.Bytes32 { +func (b *BeaconBlockBody[_]) GetGraffiti() common.Bytes32 { return b.Graffiti } // SetGraffiti sets the Graffiti of the Body. -func (b *BeaconBlockBody) SetGraffiti(graffiti common.Bytes32) { +func (b *BeaconBlockBody[_]) SetGraffiti(graffiti common.Bytes32) { b.Graffiti = graffiti } // GetDeposits returns the Deposits of the BeaconBlockBody. -func (b *BeaconBlockBody) GetDeposits() []*Deposit { +func (b *BeaconBlockBody[LogT]) GetDeposits() []*Deposit[LogT] { return b.Deposits } // SetDeposits sets the Deposits of the BeaconBlockBody. -func (b *BeaconBlockBody) SetDeposits(deposits []*Deposit) { +func (b *BeaconBlockBody[LogT]) SetDeposits(deposits []*Deposit[LogT]) { b.Deposits = deposits } diff --git a/mod/consensus-types/pkg/types/body_test.go b/mod/consensus-types/pkg/types/body_test.go index b96046531f..28dd963327 100644 --- a/mod/consensus-types/pkg/types/body_test.go +++ b/mod/consensus-types/pkg/types/body_test.go @@ -24,6 +24,7 @@ import ( "testing" "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/bytes" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" @@ -33,12 +34,12 @@ import ( "github.com/stretchr/testify/require" ) -func generateBeaconBlockBody() types.BeaconBlockBody { - return types.BeaconBlockBody{ +func generateBeaconBlockBody() types.BeaconBlockBody[engineprimitives.Log] { + return types.BeaconBlockBody[engineprimitives.Log]{ RandaoReveal: [96]byte{1, 2, 3}, Eth1Data: &types.Eth1Data{}, Graffiti: [32]byte{4, 5, 6}, - Deposits: []*types.Deposit{}, + Deposits: []*types.Deposit[engineprimitives.Log]{}, ExecutionPayload: &types.ExecutionPayload{ BaseFeePerGas: math.NewU256(0), }, @@ -47,11 +48,11 @@ func generateBeaconBlockBody() types.BeaconBlockBody { } func TestBeaconBlockBodyBase(t *testing.T) { - body := types.BeaconBlockBody{ + body := types.BeaconBlockBody[engineprimitives.Log]{ RandaoReveal: [96]byte{1, 2, 3}, Eth1Data: &types.Eth1Data{}, Graffiti: [32]byte{4, 5, 6}, - Deposits: []*types.Deposit{}, + Deposits: []*types.Deposit[engineprimitives.Log]{}, } require.Equal(t, bytes.B96{1, 2, 3}, body.GetRandaoReveal()) @@ -65,11 +66,11 @@ func TestBeaconBlockBodyBase(t *testing.T) { } func TestBeaconBlockBody(t *testing.T) { - body := types.BeaconBlockBody{ + body := types.BeaconBlockBody[engineprimitives.Log]{ RandaoReveal: [96]byte{1, 2, 3}, Eth1Data: &types.Eth1Data{}, Graffiti: [32]byte{4, 5, 6}, - Deposits: []*types.Deposit{}, + Deposits: []*types.Deposit[engineprimitives.Log]{}, ExecutionPayload: &types.ExecutionPayload{}, BlobKzgCommitments: []eip4844.KZGCommitment{}, } @@ -88,7 +89,7 @@ func TestBeaconBlockBody_GetTree(t *testing.T) { } func TestBeaconBlockBody_SetBlobKzgCommitments(t *testing.T) { - body := types.BeaconBlockBody{} + body := types.BeaconBlockBody[engineprimitives.Log]{} commitments := eip4844.KZGCommitments[common.ExecutionHash]{} body.SetBlobKzgCommitments(commitments) @@ -96,7 +97,7 @@ func TestBeaconBlockBody_SetBlobKzgCommitments(t *testing.T) { } func TestBeaconBlockBody_SetRandaoReveal(t *testing.T) { - body := types.BeaconBlockBody{} + body := types.BeaconBlockBody[engineprimitives.Log]{} randaoReveal := crypto.BLSSignature{1, 2, 3} body.SetRandaoReveal(randaoReveal) @@ -104,7 +105,7 @@ func TestBeaconBlockBody_SetRandaoReveal(t *testing.T) { } func TestBeaconBlockBody_SetEth1Data(t *testing.T) { - body := types.BeaconBlockBody{} + body := types.BeaconBlockBody[engineprimitives.Log]{} eth1Data := &types.Eth1Data{} body.SetEth1Data(eth1Data) @@ -112,19 +113,19 @@ func TestBeaconBlockBody_SetEth1Data(t *testing.T) { } func TestBeaconBlockBody_SetDeposits(t *testing.T) { - body := types.BeaconBlockBody{} - deposits := []*types.Deposit{} + body := types.BeaconBlockBody[engineprimitives.Log]{} + deposits := []*types.Deposit[engineprimitives.Log]{} body.SetDeposits(deposits) require.Equal(t, deposits, body.GetDeposits()) } func TestBeaconBlockBody_MarshalSSZ(t *testing.T) { - body := types.BeaconBlockBody{ + body := types.BeaconBlockBody[engineprimitives.Log]{ RandaoReveal: [96]byte{1, 2, 3}, Eth1Data: &types.Eth1Data{}, Graffiti: [32]byte{4, 5, 6}, - Deposits: []*types.Deposit{}, + Deposits: []*types.Deposit[engineprimitives.Log]{}, ExecutionPayload: &types.ExecutionPayload{}, BlobKzgCommitments: []eip4844.KZGCommitment{}, } @@ -156,7 +157,7 @@ func TestBeaconBlockBody_GetTopLevelRoots(t *testing.T) { } func TestBeaconBlockBody_Empty(t *testing.T) { - blockBody := types.BeaconBlockBody{} + blockBody := types.BeaconBlockBody[engineprimitives.Log]{} body := blockBody.Empty(version.Deneb) require.NotNil(t, body) } diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index 9475144685..092fc1231a 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -38,13 +38,15 @@ const DepositSize = 192 // 48 + 32 + 8 + 96 + 8 // Compile-time assertions to ensure Deposit implements necessary interfaces. var ( - _ ssz.StaticObject = (*Deposit)(nil) - _ constraints.SSZMarshallableRootable = (*Deposit)(nil) + _ ssz.StaticObject = &Deposit[engineprimitives.Log]{} + _ constraints.SSZMarshallableRootable = &Deposit[engineprimitives.Log]{} ) // Deposit into the consensus layer from the deposit contract in the execution // layer. -type Deposit struct { +type Deposit[LogT interface { + GetData() []byte +}] struct { // Public key of the validator specified in the deposit. Pubkey crypto.BLSPubkey `json:"pubkey"` // A staking credentials with @@ -59,14 +61,16 @@ type Deposit struct { } // NewDeposit creates a new Deposit instance. -func NewDeposit( +func NewDeposit[LogT interface { + GetData() []byte +}]( pubkey crypto.BLSPubkey, credentials WithdrawalCredentials, amount math.Gwei, signature crypto.BLSSignature, index uint64, -) *Deposit { - return &Deposit{ +) *Deposit[LogT] { + return &Deposit[LogT]{ Pubkey: pubkey, Credentials: credentials, Amount: amount, @@ -76,25 +80,25 @@ func NewDeposit( } // Empty creates an empty Deposit instance. -func (d *Deposit) Empty() *Deposit { - return &Deposit{} +func (d *Deposit[LogT]) Empty() *Deposit[LogT] { + return &Deposit[LogT]{} } // New creates a new Deposit instance. -func (d *Deposit) New( +func (d *Deposit[LogT]) New( pubkey crypto.BLSPubkey, credentials WithdrawalCredentials, amount math.Gwei, signature crypto.BLSSignature, index uint64, -) *Deposit { - return NewDeposit( +) *Deposit[LogT] { + return NewDeposit[LogT]( pubkey, credentials, amount, signature, index, ) } // VerifySignature verifies the deposit data and signature. -func (d *Deposit) VerifySignature( +func (d *Deposit[_]) VerifySignature( forkData *ForkData, domainType common.DomainType, signatureVerificationFn func( @@ -116,7 +120,7 @@ func (d *Deposit) VerifySignature( /* -------------------------------------------------------------------------- */ // DefineSSZ defines the SSZ encoding for the Deposit object. -func (d *Deposit) DefineSSZ(c *ssz.Codec) { +func (d *Deposit[_]) DefineSSZ(c *ssz.Codec) { ssz.DefineStaticBytes(c, &d.Pubkey) ssz.DefineStaticBytes(c, &d.Credentials) ssz.DefineUint64(c, &d.Amount) @@ -125,23 +129,23 @@ func (d *Deposit) DefineSSZ(c *ssz.Codec) { } // MarshalSSZ marshals the Deposit object to SSZ format. -func (d *Deposit) MarshalSSZ() ([]byte, error) { +func (d *Deposit[_]) MarshalSSZ() ([]byte, error) { buf := make([]byte, d.SizeSSZ()) return buf, ssz.EncodeToBytes(buf, d) } // UnmarshalSSZ unmarshals the Deposit object from SSZ format. -func (d *Deposit) UnmarshalSSZ(buf []byte) error { +func (d *Deposit[_]) UnmarshalSSZ(buf []byte) error { return ssz.DecodeFromBytes(buf, d) } // SizeSSZ returns the SSZ encoded size of the Deposit object. -func (d *Deposit) SizeSSZ() uint32 { +func (d *Deposit[_]) SizeSSZ() uint32 { return DepositSize } // HashTreeRoot computes the Merkleization of the Deposit object. -func (d *Deposit) HashTreeRoot() common.Root { +func (d *Deposit[_]) HashTreeRoot() common.Root { return ssz.HashSequential(d) } @@ -150,7 +154,7 @@ func (d *Deposit) HashTreeRoot() common.Root { /* -------------------------------------------------------------------------- */ // MarshalSSZTo marshals the Deposit object into a pre-allocated byte slice. -func (d *Deposit) MarshalSSZTo(dst []byte) ([]byte, error) { +func (d *Deposit[_]) MarshalSSZTo(dst []byte) ([]byte, error) { bz, err := d.MarshalSSZ() if err != nil { return nil, err @@ -160,7 +164,7 @@ func (d *Deposit) MarshalSSZTo(dst []byte) ([]byte, error) { } // HashTreeRootWith ssz hashes the Deposit object with a hasher. -func (d *Deposit) HashTreeRootWith(hh fastssz.HashWalker) error { +func (d *Deposit[_]) HashTreeRootWith(hh fastssz.HashWalker) error { indx := hh.Index() // Field (0) 'Pubkey' @@ -183,7 +187,7 @@ func (d *Deposit) HashTreeRootWith(hh fastssz.HashWalker) error { } // GetTree ssz hashes the Deposit object. -func (d *Deposit) GetTree() (*fastssz.Node, error) { +func (d *Deposit[_]) GetTree() (*fastssz.Node, error) { return fastssz.ProofTree(d) } @@ -192,16 +196,15 @@ func (d *Deposit) GetTree() (*fastssz.Node, error) { /* -------------------------------------------------------------------------- */ // UnmarshalLog unmarshals the Deposit object from an Ethereum log. -// - -func (d *Deposit) UnmarshalLog(log engineprimitives.Log) error { - idx := binary.BigEndian.Uint64(log.Data[152:160]) +func (d *Deposit[LogT]) UnmarshalLog(log LogT) error { + data := log.GetData() + idx := binary.BigEndian.Uint64(data[152:160]) d.Index = idx - d.Pubkey = bytes.B48(log.Data[208:256]) - amount := binary.BigEndian.Uint64(log.Data[280:288]) + d.Pubkey = bytes.B48(data[208:256]) + amount := binary.BigEndian.Uint64(data[280:288]) d.Amount = math.U64(amount) - d.Credentials = WithdrawalCredentials(bytes.B32(log.Data[288:320])) - d.Signature = bytes.B96(log.Data[352:448]) + d.Credentials = WithdrawalCredentials(bytes.B32(data[288:320])) + d.Signature = bytes.B96(data[352:448]) return nil } @@ -210,26 +213,26 @@ func (d *Deposit) UnmarshalLog(log engineprimitives.Log) error { /* -------------------------------------------------------------------------- */ // GetAmount returns the deposit amount in gwei. -func (d *Deposit) GetAmount() math.Gwei { +func (d *Deposit[_]) GetAmount() math.Gwei { return d.Amount } // GetPubkey returns the public key of the validator specified in the deposit. -func (d *Deposit) GetPubkey() crypto.BLSPubkey { +func (d *Deposit[_]) GetPubkey() crypto.BLSPubkey { return d.Pubkey } // GetIndex returns the index of the deposit in the deposit contract. -func (d *Deposit) GetIndex() math.U64 { +func (d *Deposit[_]) GetIndex() math.U64 { return math.U64(d.Index) } // GetSignature returns the signature of the deposit data. -func (d *Deposit) GetSignature() crypto.BLSSignature { +func (d *Deposit[_]) GetSignature() crypto.BLSSignature { return d.Signature } // GetWithdrawalCredentials returns the staking credentials of the deposit. -func (d *Deposit) GetWithdrawalCredentials() WithdrawalCredentials { +func (d *Deposit[_]) GetWithdrawalCredentials() WithdrawalCredentials { return d.Credentials } diff --git a/mod/consensus-types/pkg/types/deposit_test.go b/mod/consensus-types/pkg/types/deposit_test.go index 5e9fb5b474..04cab4d9fc 100644 --- a/mod/consensus-types/pkg/types/deposit_test.go +++ b/mod/consensus-types/pkg/types/deposit_test.go @@ -25,6 +25,7 @@ import ( "testing" "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" @@ -33,14 +34,14 @@ import ( ) // generateValidDeposit generates a valid deposit for testing purposes. -func generateValidDeposit() *types.Deposit { +func generateValidDeposit() *types.Deposit[engineprimitives.Log] { var pubKey crypto.BLSPubkey var signature crypto.BLSSignature var credentials types.WithdrawalCredentials amount := math.Gwei(32) index := uint64(1) - return &types.Deposit{ + return &types.Deposit[engineprimitives.Log]{ Pubkey: pubKey, Credentials: credentials, Amount: amount, @@ -69,7 +70,7 @@ func TestDeposit_MarshalUnmarshalSSZ(t *testing.T) { require.NoError(t, err) require.NotNil(t, sszDeposit) - var unmarshalledDeposit types.Deposit + var unmarshalledDeposit types.Deposit[engineprimitives.Log] err = unmarshalledDeposit.UnmarshalSSZ(sszDeposit) require.NoError(t, err) @@ -116,7 +117,7 @@ func TestDeposit_UnmarshalSSZ_ErrSize(t *testing.T) { // Create a byte slice of incorrect size buf := make([]byte, 10) // size less than 192 - var unmarshalledDeposit types.Deposit + var unmarshalledDeposit types.Deposit[engineprimitives.Log] err := unmarshalledDeposit.UnmarshalSSZ(buf) require.ErrorIs(t, err, io.ErrUnexpectedEOF) diff --git a/mod/consensus-types/pkg/types/deposits.go b/mod/consensus-types/pkg/types/deposits.go index fa01d881e7..b60a7863f9 100644 --- a/mod/consensus-types/pkg/types/deposits.go +++ b/mod/consensus-types/pkg/types/deposits.go @@ -27,34 +27,36 @@ import ( ) // Deposits is a typealias for a list of Deposits. -type Deposits []*Deposit +type Deposits[LogT interface { + GetData() []byte +}] []*Deposit[LogT] /* -------------------------------------------------------------------------- */ /* SSZ */ /* -------------------------------------------------------------------------- */ // SizeSSZ returns the SSZ encoded size in bytes for the Deposits. -func (ds Deposits) SizeSSZ(bool) uint32 { - return ssz.SizeSliceOfStaticObjects(([]*Deposit)(ds)) +func (ds Deposits[LogT]) SizeSSZ(bool) uint32 { + return ssz.SizeSliceOfStaticObjects(([]*Deposit[LogT])(ds)) } // DefineSSZ defines the SSZ encoding for the Deposits object. -func (ds Deposits) DefineSSZ(c *ssz.Codec) { +func (ds Deposits[LogT]) DefineSSZ(c *ssz.Codec) { c.DefineDecoder(func(*ssz.Decoder) { ssz.DefineSliceOfStaticObjectsContent( - c, (*[]*Deposit)(&ds), constants.MaxDepositsPerBlock) + c, (*[]*Deposit[LogT])(&ds), constants.MaxDepositsPerBlock) }) c.DefineEncoder(func(*ssz.Encoder) { ssz.DefineSliceOfStaticObjectsContent( - c, (*[]*Deposit)(&ds), constants.MaxDepositsPerBlock) + c, (*[]*Deposit[LogT])(&ds), constants.MaxDepositsPerBlock) }) c.DefineHasher(func(*ssz.Hasher) { ssz.DefineSliceOfStaticObjectsOffset( - c, (*[]*Deposit)(&ds), constants.MaxDepositsPerBlock) + c, (*[]*Deposit[LogT])(&ds), constants.MaxDepositsPerBlock) }) } // HashTreeRoot returns the hash tree root of the Deposits. -func (ds Deposits) HashTreeRoot() common.Root { +func (ds Deposits[_]) HashTreeRoot() common.Root { return ssz.HashSequential(ds) } diff --git a/mod/consensus-types/pkg/types/genesis.go b/mod/consensus-types/pkg/types/genesis.go index 6dc80054ea..d1d4f5e590 100644 --- a/mod/consensus-types/pkg/types/genesis.go +++ b/mod/consensus-types/pkg/types/genesis.go @@ -108,7 +108,7 @@ func (g *Genesis[DepositT, ExecutionPayloadHeaderT]) UnmarshalJSON( // DefaultGenesisDeneb returns a the default genesis. func DefaultGenesisDeneb() *Genesis[ - *Deposit, *ExecutionPayloadHeader, + *Deposit[engineprimitives.Log], *ExecutionPayloadHeader, ] { defaultHeader, err := DefaultGenesisExecutionPayloadHeaderDeneb() @@ -117,11 +117,11 @@ func DefaultGenesisDeneb() *Genesis[ } // TODO: Uncouple from deneb. - return &Genesis[*Deposit, *ExecutionPayloadHeader]{ + return &Genesis[*Deposit[engineprimitives.Log], *ExecutionPayloadHeader]{ ForkVersion: version.FromUint32[common.Version]( version.Deneb, ), - Deposits: make([]*Deposit, 0), + Deposits: make([]*Deposit[engineprimitives.Log], 0), ExecutionPayloadHeader: defaultHeader, } } diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index 3717c5b496..e9fbdfffe6 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -60,6 +60,12 @@ type Log struct { Removed bool `json:"removed"` } +// GetData returns the data of the log. +func (l Log) GetData() []byte { + return l.Data +} + +// GetTopics returns the topics of the log. func (l Log) GetTopics() []common.ExecutionHash { return l.Topics } diff --git a/mod/execution/go.mod b/mod/execution/go.mod index abfb38bd90..6f769fd19b 100644 --- a/mod/execution/go.mod +++ b/mod/execution/go.mod @@ -6,7 +6,6 @@ require ( github.com/berachain/beacon-kit/mod/async v0.0.0-20240624204855-d8809d5c8588 github.com/berachain/beacon-kit/mod/engine-primitives v0.0.0-20240808194557-e72e74f58197 github.com/berachain/beacon-kit/mod/errors v0.0.0-20240806211103-d1105603bfc0 - github.com/berachain/beacon-kit/mod/geth-primitives v0.0.0-20240806160829-cde2d1347e7e github.com/berachain/beacon-kit/mod/log v0.0.0-20240807213340-5779c7a563cd github.com/berachain/beacon-kit/mod/primitives v0.0.0-20240911165923-82f71ec86570 github.com/ethereum/go-ethereum v1.14.7 diff --git a/mod/execution/pkg/client/client.go b/mod/execution/pkg/client/client.go index e14d8cc559..5f1139f00b 100644 --- a/mod/execution/pkg/client/client.go +++ b/mod/execution/pkg/client/client.go @@ -38,9 +38,10 @@ import ( // EngineClient is a struct that holds a pointer to an Eth1Client. type EngineClient[ ExecutionPayloadT constraints.EngineType[ExecutionPayloadT], + LogT any, PayloadAttributesT PayloadAttributes, ] struct { - *ethclient.Client[ExecutionPayloadT] + *ethclient.Client[ExecutionPayloadT, LogT] // cfg is the supplied configuration for the engine client. cfg *Config // logger is the logger for the engine client. @@ -58,6 +59,7 @@ type EngineClient[ // EngineClient. func New[ ExecutionPayloadT constraints.EngineType[ExecutionPayloadT], + LogT any, PayloadAttributesT PayloadAttributes, ]( cfg *Config, @@ -66,12 +68,12 @@ func New[ telemetrySink TelemetrySink, eth1ChainID *big.Int, ) *EngineClient[ - ExecutionPayloadT, PayloadAttributesT, + ExecutionPayloadT, LogT, PayloadAttributesT, ] { - return &EngineClient[ExecutionPayloadT, PayloadAttributesT]{ + return &EngineClient[ExecutionPayloadT, LogT, PayloadAttributesT]{ cfg: cfg, logger: logger, - Client: ethclient.New[ExecutionPayloadT]( + Client: ethclient.New[ExecutionPayloadT, LogT]( ethclientrpc.NewClient( cfg.RPCDialURL.String(), ethclientrpc.WithJWTSecret(jwtSecret), @@ -87,14 +89,14 @@ func New[ // Name returns the name of the engine client. func (s *EngineClient[ - _, _, + _, _, _, ]) Name() string { return "engine-client" } // Start the engine client. func (s *EngineClient[ - _, _, + _, _, _, ]) Start( ctx context.Context, ) error { @@ -142,7 +144,7 @@ func (s *EngineClient[ // verifyChainID dials the execution client and // ensures the chain ID is correct. func (s *EngineClient[ - _, _, + _, _, _, ]) verifyChainIDAndConnection( ctx context.Context, ) error { diff --git a/mod/execution/pkg/client/engine.go b/mod/execution/pkg/client/engine.go index aad0e3efe9..81277ca763 100644 --- a/mod/execution/pkg/client/engine.go +++ b/mod/execution/pkg/client/engine.go @@ -38,7 +38,7 @@ import ( // NewPayload calls the engine_newPayloadVX method via JSON-RPC. func (s *EngineClient[ - ExecutionPayloadT, _, + ExecutionPayloadT, _, _, ]) NewPayload( ctx context.Context, payload ExecutionPayloadT, @@ -84,7 +84,7 @@ func (s *EngineClient[ // ForkchoiceUpdated calls the engine_forkchoiceUpdatedV1 method via JSON-RPC. func (s *EngineClient[ - _, PayloadAttributesT, + _, _, PayloadAttributesT, ]) ForkchoiceUpdated( ctx context.Context, state *engineprimitives.ForkchoiceStateV1, @@ -134,7 +134,7 @@ func (s *EngineClient[ // GetPayload calls the engine_getPayloadVX method via JSON-RPC. It returns // the execution data as well as the blobs bundle. func (s *EngineClient[ - ExecutionPayloadT, _, + ExecutionPayloadT, _, _, ]) GetPayload( ctx context.Context, payloadID engineprimitives.PayloadID, @@ -168,7 +168,7 @@ func (s *EngineClient[ // ExchangeCapabilities calls the engine_exchangeCapabilities method via // JSON-RPC. func (s *EngineClient[ - _, _, + _, _, _, ]) ExchangeCapabilities( ctx context.Context, ) ([]string, error) { diff --git a/mod/execution/pkg/client/errors.go b/mod/execution/pkg/client/errors.go index c5a3af8abe..64ead0460b 100644 --- a/mod/execution/pkg/client/errors.go +++ b/mod/execution/pkg/client/errors.go @@ -57,7 +57,7 @@ var ( // Handles errors received from the RPC server according to the specification. func (s *EngineClient[ - _, _, + _, _, _, ]) handleRPCError( err error, ) error { diff --git a/mod/execution/pkg/client/ethclient/engine.go b/mod/execution/pkg/client/ethclient/engine.go index 7fe54f115a..614a31dc9a 100644 --- a/mod/execution/pkg/client/ethclient/engine.go +++ b/mod/execution/pkg/client/ethclient/engine.go @@ -34,7 +34,7 @@ import ( /* -------------------------------------------------------------------------- */ // NewPayload calls the engine_newPayloadV3 method via JSON-RPC. -func (s *Client[ExecutionPayloadT]) NewPayload( +func (s *Client[ExecutionPayloadT, _]) NewPayload( ctx context.Context, payload ExecutionPayloadT, versionedHashes []common.ExecutionHash, @@ -51,7 +51,7 @@ func (s *Client[ExecutionPayloadT]) NewPayload( } // NewPayloadV3 is used to call the underlying JSON-RPC method for newPayload. -func (s *Client[ExecutionPayloadT]) NewPayloadV3( +func (s *Client[ExecutionPayloadT, _]) NewPayloadV3( ctx context.Context, payload ExecutionPayloadT, versionedHashes []common.ExecutionHash, @@ -72,7 +72,7 @@ func (s *Client[ExecutionPayloadT]) NewPayloadV3( // ForkchoiceUpdated is a helper function to call the appropriate version of // the. -func (s *Client[ExecutionPayloadT]) ForkchoiceUpdated( +func (s *Client[ExecutionPayloadT, _]) ForkchoiceUpdated( ctx context.Context, state *engineprimitives.ForkchoiceStateV1, attrs any, @@ -87,7 +87,7 @@ func (s *Client[ExecutionPayloadT]) ForkchoiceUpdated( } // ForkchoiceUpdatedV3 calls the engine_forkchoiceUpdatedV3 method via JSON-RPC. -func (s *Client[ExecutionPayloadT]) ForkchoiceUpdatedV3( +func (s *Client[ExecutionPayloadT, _]) ForkchoiceUpdatedV3( ctx context.Context, state *engineprimitives.ForkchoiceStateV1, attrs any, @@ -97,7 +97,7 @@ func (s *Client[ExecutionPayloadT]) ForkchoiceUpdatedV3( // forkchoiceUpdateCall is a helper function to call to any version // of the forkchoiceUpdates method. -func (s *Client[ExecutionPayloadT]) forkchoiceUpdated( +func (s *Client[ExecutionPayloadT, _]) forkchoiceUpdated( ctx context.Context, method string, state *engineprimitives.ForkchoiceStateV1, @@ -124,7 +124,7 @@ func (s *Client[ExecutionPayloadT]) forkchoiceUpdated( // GetPayload is a helper function to call the appropriate version of the // engine_getPayload method. -func (s *Client[ExecutionPayloadT]) GetPayload( +func (s *Client[ExecutionPayloadT, _]) GetPayload( ctx context.Context, payloadID engineprimitives.PayloadID, forkVersion uint32, @@ -138,7 +138,7 @@ func (s *Client[ExecutionPayloadT]) GetPayload( } // GetPayloadV3 calls the engine_getPayloadV3 method via JSON-RPC. -func (s *Client[ExecutionPayloadT]) GetPayloadV3( +func (s *Client[ExecutionPayloadT, _]) GetPayloadV3( ctx context.Context, payloadID engineprimitives.PayloadID, ) (engineprimitives.BuiltExecutionPayloadEnv[ExecutionPayloadT], error) { var t ExecutionPayloadT @@ -165,7 +165,7 @@ func (s *Client[ExecutionPayloadT]) GetPayloadV3( // ExchangeCapabilities calls the engine_exchangeCapabilities method via // JSON-RPC. -func (s *Client[ExecutionPayloadT]) ExchangeCapabilities( +func (s *Client[ExecutionPayloadT, _]) ExchangeCapabilities( ctx context.Context, capabilities []string, ) ([]string, error) { @@ -179,7 +179,7 @@ func (s *Client[ExecutionPayloadT]) ExchangeCapabilities( } // GetClientVersionV1 calls the engine_getClientVersionV1 method via JSON-RPC. -func (s *Client[ExecutionPayloadT]) GetClientVersionV1( +func (s *Client[ExecutionPayloadT, _]) GetClientVersionV1( ctx context.Context, ) ([]engineprimitives.ClientVersionV1, error) { result := make([]engineprimitives.ClientVersionV1, 0) diff --git a/mod/execution/pkg/client/ethclient/eth.go b/mod/execution/pkg/client/ethclient/eth.go index 22ec912e79..62b38f77b1 100644 --- a/mod/execution/pkg/client/ethclient/eth.go +++ b/mod/execution/pkg/client/ethclient/eth.go @@ -23,13 +23,12 @@ package ethclient import ( "context" - engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) // ChainID retrieves the current chain ID. -func (ec *Client[ExecutionPayloadT]) ChainID( +func (ec *Client[ExecutionPayloadT, _]) ChainID( ctx context.Context, ) (math.U64, error) { var result math.U64 @@ -40,12 +39,12 @@ func (ec *Client[ExecutionPayloadT]) ChainID( } // GetLogsByBlockHash retrieves logs for a block hash. -func (ec *Client[ExecutionPayloadT]) GetLogsAtBlockNumber( +func (ec *Client[ExecutionPayloadT, LogT]) GetLogsAtBlockNumber( ctx context.Context, number math.U64, address common.ExecutionAddress, -) ([]engineprimitives.Log, error) { - var result []engineprimitives.Log +) ([]LogT, error) { + var result []LogT return result, ec.Call(ctx, &result, "eth_getLogs", map[string]interface{}{ diff --git a/mod/execution/pkg/client/ethclient/ethclient.go b/mod/execution/pkg/client/ethclient/ethclient.go index 3579a4c007..9276b8ac2f 100644 --- a/mod/execution/pkg/client/ethclient/ethclient.go +++ b/mod/execution/pkg/client/ethclient/ethclient.go @@ -26,11 +26,14 @@ import ( ) // Client - Ethereum rpc client. -type Client[ExecutionPayloadT interface { - constraints.JSONMarshallable - Empty(uint32) ExecutionPayloadT - Version() uint32 -}] struct { +type Client[ + ExecutionPayloadT interface { + constraints.JSONMarshallable + Empty(uint32) ExecutionPayloadT + Version() uint32 + }, + LogT any, +] struct { *rpc.Client } @@ -41,8 +44,9 @@ func New[ Empty(uint32) ExecutionPayloadT Version() uint32 }, -](client *rpc.Client) *Client[ExecutionPayloadT] { - rpc := &Client[ExecutionPayloadT]{ + LogT any, +](client *rpc.Client) *Client[ExecutionPayloadT, LogT] { + rpc := &Client[ExecutionPayloadT, LogT]{ Client: client, } diff --git a/mod/execution/pkg/client/helpers.go b/mod/execution/pkg/client/helpers.go index 5834e741fe..7cb4f92f71 100644 --- a/mod/execution/pkg/client/helpers.go +++ b/mod/execution/pkg/client/helpers.go @@ -32,7 +32,7 @@ import ( // createContextWithTimeout creates a context with a timeout and returns it // along with the cancel function. func (s *EngineClient[ - _, _, + _, _, _, ]) createContextWithTimeout( ctx context.Context, ) (context.Context, context.CancelFunc) { diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index fff180b1be..18616fe20f 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -35,9 +35,7 @@ var DepositEventSignature = common.ExecutionHash( // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], - LogT interface { - GetTopics() []common.ExecutionHash - }, + LogT Log, WithdrawalCredentialsT ~[32]byte, ] struct { client Client[LogT] @@ -47,9 +45,7 @@ type WrappedBeaconDepositContract[ // NewWrappedBeaconDepositContract creates a new BeaconDepositContract. func NewWrappedBeaconDepositContract[ DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], - LogT interface { - GetTopics() []common.ExecutionHash - }, + LogT Log, WithdrawalCredentialsT ~[32]byte, ]( address common.ExecutionAddress, diff --git a/mod/execution/pkg/deposit/pruner.go b/mod/execution/pkg/deposit/pruner.go index c0bc068864..00319b61a0 100644 --- a/mod/execution/pkg/deposit/pruner.go +++ b/mod/execution/pkg/deposit/pruner.go @@ -31,7 +31,8 @@ func BuildPruneRangeFn[ BeaconBlockBodyT interface { GetDeposits() []DepositT }, - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], + LogT any, WithdrawalCredentialsT any, ](cs common.ChainSpec) func(async.Event[BeaconBlockT]) (uint64, uint64) { return func(event async.Event[BeaconBlockT]) (uint64, uint64) { diff --git a/mod/execution/pkg/deposit/service.go b/mod/execution/pkg/deposit/service.go index e1ac071e49..395b2f4eb4 100644 --- a/mod/execution/pkg/deposit/service.go +++ b/mod/execution/pkg/deposit/service.go @@ -33,7 +33,7 @@ import ( type Service[ BeaconBlockT BeaconBlock[BeaconBlockBodyT], BeaconBlockBodyT BeaconBlockBody[DepositT, ExecutionPayloadT], - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], ExecutionPayloadT ExecutionPayload, LogT any, WithdrawalCredentialsT any, @@ -62,7 +62,7 @@ type Service[ func NewService[ BeaconBlockT BeaconBlock[BeaconBlockBodyT], BeaconBlockBodyT BeaconBlockBody[DepositT, ExecutionPayloadT], - DepositT Deposit[DepositT, WithdrawalCredentialsT], + DepositT Deposit[DepositT, LogT, WithdrawalCredentialsT], ExecutionPayloadT ExecutionPayload, LogT any, WithdrawalCredentialsT any, @@ -75,11 +75,11 @@ func NewService[ dispatcher asynctypes.EventDispatcher, ) *Service[ BeaconBlockT, BeaconBlockBodyT, DepositT, - ExecutionPayloadT, WithdrawalCredentialsT, + ExecutionPayloadT, LogT, WithdrawalCredentialsT, ] { return &Service[ BeaconBlockT, BeaconBlockBodyT, DepositT, - ExecutionPayloadT, WithdrawalCredentialsT, + ExecutionPayloadT, LogT, WithdrawalCredentialsT, ]{ dc: dc, dispatcher: dispatcher, @@ -95,7 +95,7 @@ func NewService[ // Start subscribes the Deposit service to BeaconBlockFinalized events and // begins the main event loop to handle them accordingly. func (s *Service[ - _, _, _, _, _, + _, _, _, _, _, _, ]) Start(ctx context.Context) error { if err := s.dispatcher.Subscribe( async.BeaconBlockFinalized, s.subFinalizedBlockEvents, @@ -116,7 +116,7 @@ func (s *Service[ // eventLoop starts the main event loop to listen and handle // BeaconBlockFinalized events. func (s *Service[ - _, _, _, _, _, + _, _, _, _, _, _, ]) eventLoop(ctx context.Context) { for { select { @@ -130,7 +130,7 @@ func (s *Service[ // Name returns the name of the service. func (s *Service[ - _, _, _, _, _, + _, _, _, _, _, _, ]) Name() string { return "deposit-handler" } diff --git a/mod/execution/pkg/deposit/sync.go b/mod/execution/pkg/deposit/sync.go index f87281016f..bcbe9bb377 100644 --- a/mod/execution/pkg/deposit/sync.go +++ b/mod/execution/pkg/deposit/sync.go @@ -34,7 +34,7 @@ const defaultRetryInterval = 20 * time.Second // depositFetcher returns a function that retrieves the block number from the // event and fetches and stores the deposits for that block. func (s *Service[ - BeaconBlockT, _, _, _, _, + BeaconBlockT, _, _, _, _, _, ]) depositFetcher(ctx context.Context, event async.Event[BeaconBlockT]) { blockNum := event.Data().GetBody().GetExecutionPayload().GetNumber() s.fetchAndStoreDeposits(ctx, blockNum-s.eth1FollowDistance) @@ -43,7 +43,7 @@ func (s *Service[ // depositCatchupFetcher fetches deposits for blocks that failed to be // processed. func (s *Service[ - _, _, _, _, _, + _, _, _, _, _, _, ]) depositCatchupFetcher(ctx context.Context) { ticker := time.NewTicker(defaultRetryInterval) defer ticker.Stop() @@ -70,7 +70,7 @@ func (s *Service[ } func (s *Service[ - _, _, _, _, _, + _, _, _, _, _, _, ]) fetchAndStoreDeposits(ctx context.Context, blockNum math.U64) { deposits, err := s.dc.ReadDeposits(ctx, blockNum) if err != nil { diff --git a/mod/execution/pkg/deposit/types.go b/mod/execution/pkg/deposit/types.go index b159f6e8cb..ab04f48115 100644 --- a/mod/execution/pkg/deposit/types.go +++ b/mod/execution/pkg/deposit/types.go @@ -24,7 +24,7 @@ import ( "context" "github.com/berachain/beacon-kit/mod/primitives/pkg/async" - "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" ) @@ -60,6 +60,11 @@ type ExecutionPayload interface { GetNumber() math.U64 } +// Log is an interface for logs. +type Log interface { + GetTopics() []common.ExecutionHash +} + // Client is an interface for the client. type Client[LogT any] interface { GetLogsAtBlockNumber( diff --git a/mod/execution/pkg/engine/engine.go b/mod/execution/pkg/engine/engine.go index 9d30c9f097..e4ec8a074f 100644 --- a/mod/execution/pkg/engine/engine.go +++ b/mod/execution/pkg/engine/engine.go @@ -37,6 +37,7 @@ import ( // from the Ethereum 2.0 Specification. type Engine[ ExecutionPayloadT ExecutionPayload[ExecutionPayloadT, WithdrawalsT], + LogT any, PayloadAttributesT engineprimitives.PayloadAttributer, PayloadIDT ~[8]byte, WithdrawalsT interface { @@ -46,7 +47,7 @@ type Engine[ ] struct { // ec is the engine client that the engine will use to // interact with the execution layer. - ec *client.EngineClient[ExecutionPayloadT, PayloadAttributesT] + ec *client.EngineClient[ExecutionPayloadT, LogT, PayloadAttributesT] // logger is the logger for the engine. logger log.Logger // metrics is the metrics for the engine. @@ -56,6 +57,7 @@ type Engine[ // New creates a new Engine. func New[ ExecutionPayloadT ExecutionPayload[ExecutionPayloadT, WithdrawalsT], + LogT any, PayloadAttributesT engineprimitives.PayloadAttributer, PayloadIDT ~[8]byte, WithdrawalsT interface { @@ -63,15 +65,15 @@ func New[ EncodeIndex(int, *bytes.Buffer) }, ]( - engineClient *client.EngineClient[ExecutionPayloadT, PayloadAttributesT], + engineClient *client.EngineClient[ExecutionPayloadT, LogT, PayloadAttributesT], logger log.Logger, telemtrySink TelemetrySink, ) *Engine[ - ExecutionPayloadT, PayloadAttributesT, + ExecutionPayloadT, LogT,PayloadAttributesT, PayloadIDT, WithdrawalsT, ] { return &Engine[ - ExecutionPayloadT, PayloadAttributesT, PayloadIDT, + ExecutionPayloadT, LogT, PayloadAttributesT, PayloadIDT, WithdrawalsT, ]{ ec: engineClient, @@ -81,7 +83,7 @@ func New[ } // Start spawns any goroutines required by the service. -func (ee *Engine[_, _, _, _]) Start( +func (ee *Engine[_, _, _, _, _]) Start( ctx context.Context, ) error { go func() { @@ -95,7 +97,7 @@ func (ee *Engine[_, _, _, _]) Start( // GetPayload returns the payload and blobs bundle for the given slot. func (ee *Engine[ - ExecutionPayloadT, _, _, _, + ExecutionPayloadT, _, _, _, _, ]) GetPayload( ctx context.Context, req *engineprimitives.GetPayloadRequest[engineprimitives.PayloadID], @@ -108,7 +110,7 @@ func (ee *Engine[ // NotifyForkchoiceUpdate notifies the execution client of a forkchoice update. func (ee *Engine[ - _, PayloadAttributesT, _, _, + _, _, PayloadAttributesT, _, _, ]) NotifyForkchoiceUpdate( ctx context.Context, req *engineprimitives.ForkchoiceUpdateRequest[PayloadAttributesT], @@ -182,7 +184,7 @@ func (ee *Engine[ // VerifyAndNotifyNewPayload verifies the new payload and notifies the // execution client. func (ee *Engine[ - ExecutionPayloadT, _, _, WithdrawalsT, + ExecutionPayloadT, _, _, _, WithdrawalsT, ]) VerifyAndNotifyNewPayload( ctx context.Context, req *engineprimitives.NewPayloadRequest[ diff --git a/mod/node-core/pkg/components/chain_service.go b/mod/node-core/pkg/components/chain_service.go index 50ba9c5257..dd22a631b6 100644 --- a/mod/node-core/pkg/components/chain_service.go +++ b/mod/node-core/pkg/components/chain_service.go @@ -42,6 +42,7 @@ type ChainServiceInput[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, StorageBackendT any, LoggerT any, WithdrawalT Withdrawal[WithdrawalT], @@ -53,10 +54,12 @@ type ChainServiceInput[ Cfg *config.Config EngineClient *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] ExecutionEngine *engine.Engine[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], PayloadID, WithdrawalsT, @@ -96,6 +99,7 @@ func ProvideChainService[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, GenesisT Genesis[DepositT, ExecutionPayloadHeaderT], KVStoreT any, LoggerT log.AdvancedLogger[LoggerT], @@ -107,7 +111,7 @@ func ProvideChainService[ ]( in ChainServiceInput[ BeaconBlockT, BeaconStateT, DepositT, ExecutionPayloadT, - ExecutionPayloadHeaderT, StorageBackendT, LoggerT, + ExecutionPayloadHeaderT, LogT, StorageBackendT, LoggerT, WithdrawalT, WithdrawalsT, ], ) *blockchain.Service[ diff --git a/mod/node-core/pkg/components/deposit_contract.go b/mod/node-core/pkg/components/deposit_contract.go index 7aa575db7a..521ae3659d 100644 --- a/mod/node-core/pkg/components/deposit_contract.go +++ b/mod/node-core/pkg/components/deposit_contract.go @@ -35,6 +35,7 @@ type BeaconDepositContractInput[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], ] struct { @@ -42,6 +43,7 @@ type BeaconDepositContractInput[ ChainSpec common.ChainSpec EngineClient *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] } @@ -50,25 +52,29 @@ type BeaconDepositContractInput[ // dep inject framework. func ProvideBeaconDepositContract[ DepositT Deposit[ - DepositT, *ForkData, WithdrawalCredentials, + DepositT, *ForkData, LogT, WithdrawalCredentials, ], ExecutionPayloadT ExecutionPayload[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT deposit.Log, WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], + WithdrawalCredentialsT ~[32]byte, ]( in BeaconDepositContractInput[ - ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalT, WithdrawalsT, + ExecutionPayloadT, ExecutionPayloadHeaderT, LogT, + WithdrawalT, WithdrawalsT, ], ) (*deposit.WrappedBeaconDepositContract[ - DepositT, WithdrawalCredentials, + DepositT, LogT, WithdrawalCredentialsT, ], error) { // Build the deposit contract. return deposit.NewWrappedBeaconDepositContract[ DepositT, - WithdrawalCredentials, + LogT, + WithdrawalCredentialsT, ]( in.ChainSpec.DepositContractAddress(), in.EngineClient, diff --git a/mod/node-core/pkg/components/deposit_service.go b/mod/node-core/pkg/components/deposit_service.go index a54cb739d6..f45355ff44 100644 --- a/mod/node-core/pkg/components/deposit_service.go +++ b/mod/node-core/pkg/components/deposit_service.go @@ -40,6 +40,7 @@ type DepositServiceIn[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, LoggerT any, WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], @@ -51,6 +52,7 @@ type DepositServiceIn[ Dispatcher Dispatcher EngineClient *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] Logger LoggerT @@ -69,7 +71,7 @@ func ProvideDepositService[ ], BeaconBlockHeaderT any, DepositT Deposit[ - DepositT, *ForkData, WithdrawalCredentials, + DepositT, *ForkData, LogT, WithdrawalCredentials, ], DepositContractT deposit.Contract[DepositT], DepositStoreT DepositStore[DepositT], @@ -77,17 +79,19 @@ func ProvideDepositService[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], + WithdrawalCredentialsT any, ]( in DepositServiceIn[ BeaconBlockT, DepositContractT, DepositStoreT, ExecutionPayloadT, - ExecutionPayloadHeaderT, LoggerT, WithdrawalT, WithdrawalsT, + ExecutionPayloadHeaderT, LogT, LoggerT, WithdrawalT, WithdrawalsT, ], ) (*deposit.Service[ BeaconBlockT, BeaconBlockBodyT, DepositT, - ExecutionPayloadT, WithdrawalCredentials, + ExecutionPayloadT, LogT, WithdrawalCredentialsT, ], error) { // Build the deposit service. return deposit.NewService[ @@ -95,6 +99,8 @@ func ProvideDepositService[ BeaconBlockBodyT, DepositT, ExecutionPayloadT, + LogT, + WithdrawalCredentialsT, ]( in.Logger.With("service", "deposit"), math.U64(in.ChainSpec.Eth1FollowDistance()), diff --git a/mod/node-core/pkg/components/deposit_store.go b/mod/node-core/pkg/components/deposit_store.go index ee0012f645..f2bc72e4fa 100644 --- a/mod/node-core/pkg/components/deposit_store.go +++ b/mod/node-core/pkg/components/deposit_store.go @@ -46,8 +46,9 @@ type DepositStoreInput struct { // application. func ProvideDepositStore[ DepositT Deposit[ - DepositT, *ForkData, WithdrawalCredentials, + DepositT, *ForkData, LogT, WithdrawalCredentials, ], + LogT any, ]( in DepositStoreInput, ) (*depositstore.KVStore[DepositT], error) { @@ -84,9 +85,10 @@ func ProvideDepositPruner[ }, BeaconBlockHeaderT any, DepositT Deposit[ - DepositT, *ForkData, WithdrawalCredentials, + DepositT, *ForkData, LogT, WithdrawalCredentials, ], DepositStoreT DepositStore[DepositT], + LogT any, LoggerT log.AdvancedLogger[LoggerT], ]( in DepositPrunerInput[BeaconBlockT, DepositStoreT, LoggerT], @@ -110,6 +112,7 @@ func ProvideDepositPruner[ BeaconBlockT, BeaconBlockBodyT, DepositT, + LogT, WithdrawalCredentials, ](in.ChainSpec), ), nil diff --git a/mod/node-core/pkg/components/engine.go b/mod/node-core/pkg/components/engine.go index 07e472ebed..4f8101806f 100644 --- a/mod/node-core/pkg/components/engine.go +++ b/mod/node-core/pkg/components/engine.go @@ -51,6 +51,7 @@ func ProvideEngineClient[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], @@ -58,10 +59,12 @@ func ProvideEngineClient[ in EngineClientInputs[LoggerT], ) *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] { return client.New[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ]( in.Config.GetEngine(), @@ -78,13 +81,15 @@ type ExecutionEngineInputs[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], - LoggerT any, + LogT any, + LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], ] struct { depinject.In EngineClient *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] Logger LoggerT @@ -98,22 +103,25 @@ func ProvideExecutionEngine[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], ]( in ExecutionEngineInputs[ - ExecutionPayloadT, ExecutionPayloadHeaderT, LoggerT, WithdrawalT, + ExecutionPayloadT, ExecutionPayloadHeaderT, LogT, LoggerT, WithdrawalT, WithdrawalsT, ], ) *engine.Engine[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], PayloadID, WithdrawalsT, ] { return engine.New[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], PayloadID, WithdrawalsT, diff --git a/mod/node-core/pkg/components/interfaces.go b/mod/node-core/pkg/components/interfaces.go index ab98993121..0241b2b456 100644 --- a/mod/node-core/pkg/components/interfaces.go +++ b/mod/node-core/pkg/components/interfaces.go @@ -345,6 +345,7 @@ type ( Deposit[ T any, ForkDataT any, + LogT any, WithdrawalCredentialsT any, ] interface { constraints.Empty[T] @@ -374,6 +375,8 @@ type ( message []byte, signature crypto.BLSSignature, ) error, ) error + // UnmarshalLog unmarshals a log into a deposit. + UnmarshalLog(LogT) error } DepositStore[DepositT any] interface { diff --git a/mod/node-core/pkg/components/payload_builder.go b/mod/node-core/pkg/components/payload_builder.go index 24602fe49f..cad41f6a1d 100644 --- a/mod/node-core/pkg/components/payload_builder.go +++ b/mod/node-core/pkg/components/payload_builder.go @@ -39,6 +39,7 @@ type LocalBuilderInput[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], @@ -51,6 +52,7 @@ type LocalBuilderInput[ ChainSpec common.ChainSpec ExecutionEngine *engine.Engine[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], PayloadID, WithdrawalsT, @@ -72,14 +74,15 @@ func ProvideLocalBuilder[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, KVStoreT any, LoggerT log.AdvancedLogger[LoggerT], WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], ]( in LocalBuilderInput[ - BeaconStateT, ExecutionPayloadT, ExecutionPayloadHeaderT, LoggerT, - WithdrawalT, WithdrawalsT, + BeaconStateT, ExecutionPayloadT, ExecutionPayloadHeaderT, LogT, + LoggerT, WithdrawalT, WithdrawalsT, ], ) *payloadbuilder.PayloadBuilder[ BeaconStateT, ExecutionPayloadT, ExecutionPayloadHeaderT, diff --git a/mod/node-core/pkg/components/service_registry.go b/mod/node-core/pkg/components/service_registry.go index db930d4193..4c20ccceb6 100644 --- a/mod/node-core/pkg/components/service_registry.go +++ b/mod/node-core/pkg/components/service_registry.go @@ -56,12 +56,13 @@ type ServiceRegistryInput[ BeaconStateMarshallableT any, BlobSidecarT any, BlobSidecarsT BlobSidecars[BlobSidecarsT, BlobSidecarT], - DepositT Deposit[DepositT, *ForkData, WithdrawalCredentials], + DepositT Deposit[DepositT, *ForkData, LogT, WithdrawalCredentials], DepositStoreT DepositStore[DepositT], ExecutionPayloadT ExecutionPayload[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, GenesisT Genesis[DepositT, ExecutionPayloadHeaderT], KVStoreT any, LoggerT log.AdvancedLogger[LoggerT], @@ -86,11 +87,12 @@ type ServiceRegistryInput[ DBManager *DBManager DepositService *deposit.Service[ BeaconBlockT, BeaconBlockBodyT, DepositT, - ExecutionPayloadT, WithdrawalCredentials, + ExecutionPayloadT, LogT, WithdrawalCredentials, ] Dispatcher Dispatcher EngineClient *client.EngineClient[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], ] Logger LoggerT @@ -125,11 +127,12 @@ func ProvideServiceRegistry[ BeaconStateMarshallableT any, BlobSidecarT any, BlobSidecarsT BlobSidecars[BlobSidecarsT, BlobSidecarT], - DepositT Deposit[DepositT, *ForkData, WithdrawalCredentials], + DepositT Deposit[DepositT, *ForkData, LogT, WithdrawalCredentials], DepositStoreT DepositStore[DepositT], ExecutionPayloadT ExecutionPayload[ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, GenesisT Genesis[DepositT, ExecutionPayloadHeaderT], KVStoreT any, LoggerT log.AdvancedLogger[LoggerT], @@ -142,7 +145,8 @@ func ProvideServiceRegistry[ BeaconBlockHeaderT, BeaconBlockStoreT, BeaconStateT, BeaconStateMarshallableT, BlobSidecarT, BlobSidecarsT, DepositT, DepositStoreT, ExecutionPayloadT, ExecutionPayloadHeaderT, - GenesisT, KVStoreT, LoggerT, NodeAPIContextT, WithdrawalT, WithdrawalsT, + LogT, GenesisT, KVStoreT, LoggerT, NodeAPIContextT, WithdrawalT, + WithdrawalsT, ], ) *service.Registry { return service.NewRegistry( diff --git a/mod/node-core/pkg/components/state_processor.go b/mod/node-core/pkg/components/state_processor.go index 269154b8e5..1570f9ed47 100644 --- a/mod/node-core/pkg/components/state_processor.go +++ b/mod/node-core/pkg/components/state_processor.go @@ -36,6 +36,7 @@ type StateProcessorInput[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, WithdrawalT Withdrawal[WithdrawalT], WithdrawalsT Withdrawals[WithdrawalT], ] struct { @@ -43,6 +44,7 @@ type StateProcessorInput[ ChainSpec common.ChainSpec ExecutionEngine *engine.Engine[ ExecutionPayloadT, + LogT, *engineprimitives.PayloadAttributes[WithdrawalT], PayloadID, WithdrawalsT, @@ -65,11 +67,12 @@ func ProvideStateProcessor[ Validators, WithdrawalT, ], BeaconStateMarshallableT any, - DepositT Deposit[DepositT, *ForkData, WithdrawalCredentials], + DepositT Deposit[DepositT, *ForkData, LogT, WithdrawalCredentials], ExecutionPayloadT ExecutionPayload[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, ], ExecutionPayloadHeaderT ExecutionPayloadHeader[ExecutionPayloadHeaderT], + LogT any, KVStoreT BeaconStore[ KVStoreT, BeaconBlockHeaderT, *Eth1Data, ExecutionPayloadHeaderT, *Fork, *Validator, Validators, WithdrawalT, @@ -78,7 +81,7 @@ func ProvideStateProcessor[ WithdrawalT Withdrawal[WithdrawalT], ]( in StateProcessorInput[ - ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalT, WithdrawalsT, + ExecutionPayloadT, ExecutionPayloadHeaderT, LogT, WithdrawalT, WithdrawalsT, ], ) *core.StateProcessor[ BeaconBlockT, BeaconBlockBodyT, BeaconBlockHeaderT, diff --git a/mod/primitives/go.mod b/mod/primitives/go.mod index c548e39e32..02637436e7 100644 --- a/mod/primitives/go.mod +++ b/mod/primitives/go.mod @@ -6,6 +6,7 @@ require ( github.com/berachain/beacon-kit/mod/chain-spec v0.0.0-20240703145037-b5612ab256db github.com/berachain/beacon-kit/mod/errors v0.0.0-20240610210054-bfdc14c4013c github.com/ferranbt/fastssz v0.1.4-0.20240629094022-eac385e6ee79 + github.com/goccy/go-json v0.10.3 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/holiman/uint256 v1.3.1 github.com/karalabe/ssz v0.2.1-0.20240724074312-3d1ff7a6f7c4 diff --git a/mod/primitives/go.sum b/mod/primitives/go.sum index ee77f9b8d7..e5cb4b5ff7 100644 --- a/mod/primitives/go.sum +++ b/mod/primitives/go.sum @@ -17,6 +17,8 @@ github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRt github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= diff --git a/mod/primitives/pkg/encoding/json/json.go b/mod/primitives/pkg/encoding/json/json.go index 7ae5b8c7c0..eff999ba69 100644 --- a/mod/primitives/pkg/encoding/json/json.go +++ b/mod/primitives/pkg/encoding/json/json.go @@ -23,6 +23,8 @@ package json import ( "encoding/json" + + gojson "github.com/goccy/go-json" ) // Marshaler is the interface implemented by types that @@ -35,15 +37,15 @@ type Unmarshaler = gojson.Unmarshaler // Marshal is a wrapper for gojson.Marshal, which provides high-performance JSON // encoding. -var Marshal = json.Marshal +var Marshal = gojson.Marshal // MarshalIndent is a wrapper for gojson.MarshalIndent, which provides // high-performance JSON encoding with indentation. -var MarshalIndent = json.MarshalIndent +var MarshalIndent = gojson.MarshalIndent // Unmarshal is a wrapper for gojson.Unmarshal, which provides high-performance // JSON decoding. -var Unmarshal = json.Unmarshal +var Unmarshal = gojson.Unmarshal // RawMessage is an alias for json.RawMessage, represensting a raw encoded JSON // value. It implements Marshaler and Unmarshaler and can be used to delay JSON From be73fd802fb3842b2e8b37f2b8586f7170239267 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Tue, 1 Oct 2024 15:17:42 -0400 Subject: [PATCH 45/51] bet --- beacond/cmd/defaults.go | 8 ++++---- mod/consensus-types/pkg/types/deposit.go | 6 ++---- mod/execution/pkg/engine/engine.go | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/beacond/cmd/defaults.go b/beacond/cmd/defaults.go index fdc0bb83ba..148fc79972 100644 --- a/beacond/cmd/defaults.go +++ b/beacond/cmd/defaults.go @@ -65,7 +65,7 @@ func DefaultComponents() []any { *AvailabilityStore, *BeaconBlock, *BeaconBlockBody, *BeaconBlockHeader, *BeaconState, *BeaconStateMarshallable, *BlobSidecars, *BlockStore, *Deposit, *DepositStore, - *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Genesis, + *ExecutionPayload, *ExecutionPayloadHeader, Log, *Genesis, *KVStore, *Logger, *StorageBackend, ], components.ProvideNode, @@ -96,15 +96,15 @@ func DefaultComponents() []any { *BeaconBlock, *BlobSidecars, *Genesis, *Logger, ], components.ProvideEngineClient[ - *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, Log, *Logger, ], components.ProvideExecutionEngine[ - *ExecutionPayload, *ExecutionPayloadHeader, *Log, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, Log, *Logger, ], components.ProvideJWTSecret, components.ProvideLocalBuilder[ *BeaconBlockHeader, *BeaconState, *BeaconStateMarshallable, - *ExecutionPayload, *ExecutionPayloadHeader, *Log, *KVStore, *Logger, + *ExecutionPayload, *ExecutionPayloadHeader, Log, *KVStore, *Logger, ], components.ProvideReportingService[*Logger], components.ProvideCometBFTService[*Logger], diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index 092fc1231a..fae0d35f17 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -198,11 +198,9 @@ func (d *Deposit[_]) GetTree() (*fastssz.Node, error) { // UnmarshalLog unmarshals the Deposit object from an Ethereum log. func (d *Deposit[LogT]) UnmarshalLog(log LogT) error { data := log.GetData() - idx := binary.BigEndian.Uint64(data[152:160]) - d.Index = idx + d.Index = binary.BigEndian.Uint64(data[152:160]) d.Pubkey = bytes.B48(data[208:256]) - amount := binary.BigEndian.Uint64(data[280:288]) - d.Amount = math.U64(amount) + d.Amount = math.U64(binary.BigEndian.Uint64(data[280:288])) d.Credentials = WithdrawalCredentials(bytes.B32(data[288:320])) d.Signature = bytes.B96(data[352:448]) return nil diff --git a/mod/execution/pkg/engine/engine.go b/mod/execution/pkg/engine/engine.go index e4ec8a074f..970ecc90cd 100644 --- a/mod/execution/pkg/engine/engine.go +++ b/mod/execution/pkg/engine/engine.go @@ -69,7 +69,7 @@ func New[ logger log.Logger, telemtrySink TelemetrySink, ) *Engine[ - ExecutionPayloadT, LogT,PayloadAttributesT, + ExecutionPayloadT, LogT, PayloadAttributesT, PayloadIDT, WithdrawalsT, ] { return &Engine[ From 8e3044201a999075cb65900a1e78e42250e039c8 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 12:33:43 -0400 Subject: [PATCH 46/51] bet --- beacond/cmd/types.go | 2 +- mod/consensus/pkg/cometbft/service/abci.go | 24 ++++++++++++------- mod/consensus/pkg/cometbft/service/service.go | 17 +++++++------ mod/execution/pkg/deposit/contract.go | 13 +++++----- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/beacond/cmd/types.go b/beacond/cmd/types.go index a7328d52fb..a0066600b6 100644 --- a/beacond/cmd/types.go +++ b/beacond/cmd/types.go @@ -143,7 +143,7 @@ type ( // EngineClient is a type alias for the engine client. ExecutionEngine = execution.Engine[ *ExecutionPayload, - *Log, + Log, *PayloadAttributes, PayloadID, engineprimitives.Withdrawals, diff --git a/mod/consensus/pkg/cometbft/service/abci.go b/mod/consensus/pkg/cometbft/service/abci.go index cc8cda64fe..097bda4148 100644 --- a/mod/consensus/pkg/cometbft/service/abci.go +++ b/mod/consensus/pkg/cometbft/service/abci.go @@ -68,14 +68,16 @@ func (s *Service[LoggerT]) InitChain( req.ChainId, ) - // Set the initial height, which will be used to determine if we are proposing + // Set the initial height, which will be used to determine if we are + // proposing // or processing the first block or not. s.initialHeight = req.InitialHeight if s.initialHeight == 0 { s.initialHeight = 1 } - // if req.InitialHeight is > 1, then we set the initial version on all stores + // if req.InitialHeight is > 1, then we set the initial version on all + // stores if req.InitialHeight > 1 { if err := s.sm.CommitMultiStore(). SetInitialVersion(req.InitialHeight); err != nil { @@ -138,7 +140,8 @@ func (s *Service[LoggerT]) InitChain( } } - // NOTE: We don't commit, but FinalizeBlock for block InitialHeight starts from + // NOTE: We don't commit, but FinalizeBlock for block InitialHeight starts + // from // this FinalizeBlockState. return &cmtabci.InitChainResponse{ ConsensusParams: req.ConsensusParams, @@ -259,10 +262,12 @@ func (s *Service[LoggerT]) ProcessProposal( ) } - // Since the application can get access to FinalizeBlock state and write to it, - // we must be sure to reset it in case ProcessProposal timeouts and is called + // Since the application can get access to FinalizeBlock state and write to + // it, we must be sure to reset it in case ProcessProposal timeouts and is + // called // again in a subsequent round. However, we only want to do this after we've - // processed the first block, as we want to avoid overwriting the finalizeState + // processed the first block, as we want to avoid overwriting the + // finalizeState // after state changes during InitChain. s.processProposalState = s.resetState() if req.Height > s.initialHeight { @@ -307,9 +312,10 @@ func (s *Service[LoggerT]) internalFinalizeBlock( return nil, err } - // finalizeBlockState should be set on InitChain or ProcessProposal. If it is - // nil, it means we are replaying this block and we need to set the state here - // given that during block replay ProcessProposal is not executed by CometBFT. + // finalizeBlockState should be set on InitChain or ProcessProposal. If it + // is nil, it means we are replaying this block and we need to set the state + // here given that during block replay ProcessProposal is not executed by + // CometBFT. if s.finalizeBlockState == nil { s.finalizeBlockState = s.resetState() } diff --git a/mod/consensus/pkg/cometbft/service/service.go b/mod/consensus/pkg/cometbft/service/service.go index f3acf90530..a506f1c648 100644 --- a/mod/consensus/pkg/cometbft/service/service.go +++ b/mod/consensus/pkg/cometbft/service/service.go @@ -57,18 +57,21 @@ type Service[ sm *statem.Manager Middleware MiddlewareI - // prepareProposalState is used for PrepareProposal, which is set based on the - // previous block's state. This state is never committed. In case of multiple - // consensus rounds, the state is always reset to the previous block's state. + // prepareProposalState is used for PrepareProposal, which is set based on + // the previous block's state. This state is never committed. In case of + // multiple consensus rounds, the state is always reset to the previous + // block's state. prepareProposalState *state - // processProposalState is used for ProcessProposal, which is set based on the - // previous block's state. This state is never committed. In case of multiple - // consensus rounds, the state is always reset to the previous block's state. + // processProposalState is used for ProcessProposal, which is set based on + // the previous block's state. This state is never committed. In case of + // multiple consensus rounds, the state is always reset to the previous + // block's state. processProposalState *state // finalizeBlockState is used for FinalizeBlock, which is set based on the - // previous block's state. This state is committed. finalizeBlockState is set + // previous block's state. This state is committed. finalizeBlockState is + // set // on InitChain and FinalizeBlock and set to nil on Commit. finalizeBlockState *state diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 18616fe20f..8ef33e5c8f 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -28,9 +28,14 @@ import ( "github.com/ethereum/go-ethereum/crypto" ) +// DepositEventSignatureString is the Deposit event signature human readable +// string that should be keccak256 hashed for the event's topic. +const DepositEventSignatureString = "Deposit(bytes,bytes,uint64,bytes,uint64)" + //nolint:gochecknoglobals // temporary. var DepositEventSignature = common.ExecutionHash( - crypto.Keccak256([]byte("Deposit(bytes,bytes,uint64,bytes,uint64)"))) + crypto.Keccak256([]byte(DepositEventSignatureString)), +) // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. type WrappedBeaconDepositContract[ @@ -66,11 +71,7 @@ func NewWrappedBeaconDepositContract[ } // ReadDeposits reads deposits from the deposit contract. -func (dc *WrappedBeaconDepositContract[ - DepositT, - WithdrawalCredentialsT, - LogT, -]) ReadDeposits( +func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( ctx context.Context, blkNum math.U64, ) ([]DepositT, error) { From c528d7eac8492ddafb3e498ec30d10ee90b921dc Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 13:32:27 -0400 Subject: [PATCH 47/51] nits --- mod/consensus-types/pkg/types/body.go | 4 ++-- mod/consensus-types/pkg/types/deposit.go | 8 ++++++++ .../pkg/engine-primitives/log.go | 13 +++++++++---- .../mocks/blobs_bundle.mock.go | 2 +- .../mocks/built_execution_payload_env.mock.go | 2 +- .../mocks/payload_attributer.mock.go | 2 +- mod/execution/pkg/client/ethclient/eth.go | 19 ++++++++++++++++++- mod/execution/pkg/deposit/contract.go | 6 ++++-- mod/execution/pkg/deposit/sync.go | 7 ++++++- mod/execution/pkg/deposit/types.go | 2 ++ .../pkg/deposit/contract.abigen.go | 2 +- .../backend/mocks/availability_store.mock.go | 2 +- .../backend/mocks/beacon_block_header.mock.go | 2 +- .../backend/mocks/beacon_state.mock.go | 2 +- .../backend/mocks/block_store.mock.go | 2 +- .../backend/mocks/deposit_store.mock.go | 2 +- mod/node-api/backend/mocks/node.mock.go | 2 +- .../backend/mocks/state_processor.mock.go | 2 +- .../backend/mocks/storage_backend.mock.go | 2 +- mod/node-api/backend/mocks/validator.mock.go | 2 +- mod/node-api/backend/mocks/withdrawal.mock.go | 2 +- .../mocks/withdrawal_credentials.mock.go | 2 +- .../pkg/components/deposit_contract.go | 2 +- .../pkg/services/registry/mocks/basic.mock.go | 2 +- .../registry/mocks/dispatcher.mock.go | 2 +- .../registry/mocks/registry_option.mock.go | 2 +- .../pkg/crypto/mocks/bls_signer.mock.go | 10 +++++++--- mod/storage/pkg/interfaces/mocks/db.mock.go | 2 +- .../pkg/pruner/mocks/beacon_block.mock.go | 2 +- .../pkg/pruner/mocks/block_event.mock.go | 2 +- mod/storage/pkg/pruner/mocks/prunable.mock.go | 2 +- mod/storage/pkg/pruner/mocks/pruner.mock.go | 2 +- 32 files changed, 80 insertions(+), 37 deletions(-) diff --git a/mod/consensus-types/pkg/types/body.go b/mod/consensus-types/pkg/types/body.go index a2ab3d0d64..56a5fc5b80 100644 --- a/mod/consensus-types/pkg/types/body.go +++ b/mod/consensus-types/pkg/types/body.go @@ -273,12 +273,12 @@ func (b *BeaconBlockBody[_]) SetEth1Data(eth1Data *Eth1Data) { b.Eth1Data = eth1Data } -// SetDeposits is not implemented for BeaconBlockDeneb. +// GetAttestations is not implemented for BeaconBlockDeneb. func (b *BeaconBlockBody[_]) GetAttestations() []*AttestationData { panic("not implemented") } -// SetDeposits is not implemented for BeaconBlockDeneb. +// SetAttestations is not implemented for BeaconBlockDeneb. func (b *BeaconBlockBody[_]) SetAttestations(_ []*AttestationData) { panic("not implemented") } diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index fae0d35f17..5f07a81db2 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -22,6 +22,7 @@ package types import ( "encoding/binary" + "fmt" engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" "github.com/berachain/beacon-kit/mod/primitives/pkg/bytes" @@ -198,6 +199,13 @@ func (d *Deposit[_]) GetTree() (*fastssz.Node, error) { // UnmarshalLog unmarshals the Deposit object from an Ethereum log. func (d *Deposit[LogT]) UnmarshalLog(log LogT) error { data := log.GetData() + if len(data) < 448 { + return fmt.Errorf( + "log data is too short: expected at least 448 bytes, got %d", + len(data), + ) + } + d.Index = binary.BigEndian.Uint64(data[152:160]) d.Pubkey = bytes.B48(data[208:256]) d.Amount = math.U64(binary.BigEndian.Uint64(data[280:288])) diff --git a/mod/engine-primitives/pkg/engine-primitives/log.go b/mod/engine-primitives/pkg/engine-primitives/log.go index e9fbdfffe6..890725abb7 100644 --- a/mod/engine-primitives/pkg/engine-primitives/log.go +++ b/mod/engine-primitives/pkg/engine-primitives/log.go @@ -60,16 +60,21 @@ type Log struct { Removed bool `json:"removed"` } -// GetData returns the data of the log. -func (l Log) GetData() []byte { - return l.Data +// GetAddress returns the address of contract that generated the event. +func (l Log) GetAddress() common.ExecutionAddress { + return l.Address } -// GetTopics returns the topics of the log. +// GetTopics returns the list of topics provided by the contract. func (l Log) GetTopics() []common.ExecutionHash { return l.Topics } +// GetData returns the data supplied by the contract, usually ABI-encoded. +func (l Log) GetData() []byte { + return l.Data +} + // MarshalJSON marshals as JSON. func (l Log) MarshalJSON() ([]byte, error) { type Log struct { diff --git a/mod/engine-primitives/pkg/engine-primitives/mocks/blobs_bundle.mock.go b/mod/engine-primitives/pkg/engine-primitives/mocks/blobs_bundle.mock.go index b6479d42c9..af1804a20a 100644 --- a/mod/engine-primitives/pkg/engine-primitives/mocks/blobs_bundle.mock.go +++ b/mod/engine-primitives/pkg/engine-primitives/mocks/blobs_bundle.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/engine-primitives/pkg/engine-primitives/mocks/built_execution_payload_env.mock.go b/mod/engine-primitives/pkg/engine-primitives/mocks/built_execution_payload_env.mock.go index 72872323c1..4e89e3dea7 100644 --- a/mod/engine-primitives/pkg/engine-primitives/mocks/built_execution_payload_env.mock.go +++ b/mod/engine-primitives/pkg/engine-primitives/mocks/built_execution_payload_env.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/engine-primitives/pkg/engine-primitives/mocks/payload_attributer.mock.go b/mod/engine-primitives/pkg/engine-primitives/mocks/payload_attributer.mock.go index 7643d0ea2e..9b7e3685d4 100644 --- a/mod/engine-primitives/pkg/engine-primitives/mocks/payload_attributer.mock.go +++ b/mod/engine-primitives/pkg/engine-primitives/mocks/payload_attributer.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/execution/pkg/client/ethclient/eth.go b/mod/execution/pkg/client/ethclient/eth.go index 62b38f77b1..732b8c77a1 100644 --- a/mod/execution/pkg/client/ethclient/eth.go +++ b/mod/execution/pkg/client/ethclient/eth.go @@ -38,11 +38,27 @@ func (ec *Client[ExecutionPayloadT, _]) ChainID( return result, nil } -// GetLogsByBlockHash retrieves logs for a block hash. +// GetLogsAtBlockNumber retrieves logs for a block number, contract address, +// and optional topics. +// +// The topics list restricts matches to particular event topics. Topics matches +// a prefix of that list. An empty element slice matches any topic. Non-empty +// elements represent an alternative that matches any of the contained topics. +// +// Examples: +// {} or nil matches any topic list +// {{A}} matches topic A in first position +// {{}, {B}} matches any topic in first position AND B in second +// position +// {{A}, {B}} matches topic A in first position AND B in second +// position +// {{A, B}, {C, D}} matches topic (A OR B) in first position AND (C OR D) in +// second position func (ec *Client[ExecutionPayloadT, LogT]) GetLogsAtBlockNumber( ctx context.Context, number math.U64, address common.ExecutionAddress, + topics [][]common.ExecutionHash, ) ([]LogT, error) { var result []LogT return result, @@ -51,5 +67,6 @@ func (ec *Client[ExecutionPayloadT, LogT]) GetLogsAtBlockNumber( "fromBlock": number.Hex(), "toBlock": number.Hex(), "address": address, + "topics": topics, }) } diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 8ef33e5c8f..598b8d12a2 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -32,7 +32,7 @@ import ( // string that should be keccak256 hashed for the event's topic. const DepositEventSignatureString = "Deposit(bytes,bytes,uint64,bytes,uint64)" -//nolint:gochecknoglobals // temporary. +//nolint:gochecknoglobals // TODO: remove usage of geth's crypto.Keccak256. var DepositEventSignature = common.ExecutionHash( crypto.Keccak256([]byte(DepositEventSignatureString)), ) @@ -79,6 +79,7 @@ func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( ctx, blkNum, dc.address, + [][]common.ExecutionHash{{DepositEventSignature}}, ) if err != nil { return nil, err @@ -86,9 +87,10 @@ func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( deposits := make([]DepositT, 0) for _, log := range logs { - if log.GetTopics()[0] != DepositEventSignature { + if log.GetAddress() != dc.address || log.GetTopics()[0] != DepositEventSignature { continue } + var d DepositT d = d.Empty() if err = d.UnmarshalLog(log); err != nil { diff --git a/mod/execution/pkg/deposit/sync.go b/mod/execution/pkg/deposit/sync.go index bcbe9bb377..6535d5328d 100644 --- a/mod/execution/pkg/deposit/sync.go +++ b/mod/execution/pkg/deposit/sync.go @@ -74,6 +74,9 @@ func (s *Service[ ]) fetchAndStoreDeposits(ctx context.Context, blockNum math.U64) { deposits, err := s.dc.ReadDeposits(ctx, blockNum) if err != nil { + s.logger.Error( + "Failed to read deposits", "error", err, "block", blockNum, + ) s.metrics.markFailedToGetBlockLogs(blockNum) s.failedBlocks[blockNum] = struct{}{} return @@ -87,7 +90,9 @@ func (s *Service[ } if err = s.ds.EnqueueDeposits(deposits); err != nil { - s.logger.Error("Failed to store deposits", "error", err) + s.logger.Error( + "Failed to store deposits", "error", err, "block", blockNum, + ) s.failedBlocks[blockNum] = struct{}{} return } diff --git a/mod/execution/pkg/deposit/types.go b/mod/execution/pkg/deposit/types.go index ab04f48115..3c5eb12458 100644 --- a/mod/execution/pkg/deposit/types.go +++ b/mod/execution/pkg/deposit/types.go @@ -62,6 +62,7 @@ type ExecutionPayload interface { // Log is an interface for logs. type Log interface { + GetAddress() common.ExecutionAddress GetTopics() []common.ExecutionHash } @@ -71,6 +72,7 @@ type Client[LogT any] interface { ctx context.Context, number math.U64, address common.ExecutionAddress, + topics [][]common.ExecutionHash, ) ([]LogT, error) } diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go index 5d121d9edf..dab3abd28c 100644 --- a/mod/geth-primitives/pkg/deposit/contract.abigen.go +++ b/mod/geth-primitives/pkg/deposit/contract.abigen.go @@ -32,7 +32,7 @@ var ( // BeaconDepositContractMetaData contains all meta data concerning the BeaconDepositContract contract. var BeaconDepositContractMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allowDeposit\",\"inputs\":[{\"name\":\"depositor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"number\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"completeOwnershipHandover\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"withdrawal_credentials\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositAuth\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownershipHandoverExpiresAt\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverCanceled\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverRequested\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"oldOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositNotMultipleOfGwei\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositValueTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientDeposit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCredentialsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignatureLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewOwnerIsZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoHandoverRequest\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Unauthorized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedDeposit\",\"inputs\":[]}]", - Bin: "0x6080604052348015600e575f80fd5b50604051610c34380380610c34833981016040819052602b91608e565b6032816037565b5060b9565b638b78c6d819805415605057630dc149f05f526004601cfd5b6001600160a01b03909116801560ff1b8117909155805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f60208284031215609d575f80fd5b81516001600160a01b038116811460b2575f80fd5b9392505050565b610b6e806100c65f395ff3fe6080604052600436106100c3575f3560e01c80635b70fa2911610071578063f04e283e1161004c578063f04e283e14610207578063f2fde38b1461021a578063fee81cf41461022d575f80fd5b80635b70fa2914610199578063715018a6146101ac5780638da5cb5b146101b4575f80fd5b80633198a6b8116100a15780633198a6b81461013d57806354d1f13d146101725780635a7517ad1461017a575f80fd5b806301ffc9a7146100c757806325692962146100fb5780632dfdf0b514610105575b5f80fd5b3480156100d2575f80fd5b506100e66100e1366004610809565b61026c565b60405190151581526020015b60405180910390f35b610103610304565b005b348015610110575f80fd5b505f546101249067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100f2565b348015610148575f80fd5b50610124610157366004610877565b60016020525f908152604090205467ffffffffffffffff1681565b610103610351565b348015610185575f80fd5b506101036101943660046108a7565b61038a565b6101036101a736600461091d565b6103f0565b6101036104a5565b3480156101bf575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f2565b610103610215366004610877565b6104b8565b610103610228366004610877565b6104f5565b348015610238575f80fd5b5061025e610247366004610877565b63389a75e1600c9081525f91909152602090205490565b6040519081526020016100f2565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b70fa2900000000000000000000000000000000000000000000000000000000145b92915050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61039261051b565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff909216919091179055565b335f9081526001602052604081205467ffffffffffffffff169003610441576040517fce7ccd9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260016020526040812080549091906104679067ffffffffffffffff166109cd565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061049c87878787878787610550565b50505050505050565b6104ad61051b565b6104b65f6106e0565b565b6104c061051b565b63389a75e1600c52805f526020600c2080544211156104e657636f5e88185f526004601cfd5b5f90556104f2816106e0565b50565b6104fd61051b565b8060601b61051257637448fbae5f526004601cfd5b6104f2816106e0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146104b6576382b429005f526004601cfd5b6030861461058a576040517f9f10647200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084146105c4576040517fb39bca1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081146105fe576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106088461074e565b905064077359400067ffffffffffffffff82161015610653576040517f0e1eddda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316908101909216179091556040517f68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46916106ce918b918b918b918b9188918b918b9190610a7a565b60405180910390a15050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b5f61075d633b9aca0034610b12565b15610794576040517f40567b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107a3633b9aca0034610b25565b905067ffffffffffffffff8111156107e7576040517f2aa6673400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102fe5f345f385f3884865af16108055763b12d13eb5f526004601cfd5b5050565b5f60208284031215610819575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610848575f80fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610872575f80fd5b919050565b5f60208284031215610887575f80fd5b6108488261084f565b803567ffffffffffffffff81168114610872575f80fd5b5f80604083850312156108b8575f80fd5b6108c18361084f565b91506108cf60208401610890565b90509250929050565b5f8083601f8401126108e8575f80fd5b50813567ffffffffffffffff8111156108ff575f80fd5b602083019150836020828501011115610916575f80fd5b9250929050565b5f805f805f805f6080888a031215610933575f80fd5b873567ffffffffffffffff811115610949575f80fd5b6109558a828b016108d8565b909850965050602088013567ffffffffffffffff811115610974575f80fd5b6109808a828b016108d8565b9096509450610993905060408901610890565b9250606088013567ffffffffffffffff8111156109ae575f80fd5b6109ba8a828b016108d8565b989b979a50959850939692959293505050565b5f67ffffffffffffffff821680610a0b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60a081525f610a8d60a083018a8c610a33565b8281036020840152610aa081898b610a33565b905067ffffffffffffffff871660408401528281036060840152610ac5818688610a33565b91505067ffffffffffffffff831660808301529998505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b2057610b20610ae5565b500690565b5f82610b3357610b33610ae5565b50049056fea26469706673582212209dfb8e5ead8b23553bd4102b9e66cae17b890a520a2c3b480698309f19d2819664736f6c634300081a0033", + Bin: "0x6080604052348015600e575f80fd5b50604051610c34380380610c34833981016040819052602b91608e565b6032816037565b5060b9565b638b78c6d819805415605057630dc149f05f526004601cfd5b6001600160a01b03909116801560ff1b8117909155805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f60208284031215609d575f80fd5b81516001600160a01b038116811460b2575f80fd5b9392505050565b610b6e806100c65f395ff3fe6080604052600436106100c3575f3560e01c80635b70fa2911610071578063f04e283e1161004c578063f04e283e14610207578063f2fde38b1461021a578063fee81cf41461022d575f80fd5b80635b70fa2914610199578063715018a6146101ac5780638da5cb5b146101b4575f80fd5b80633198a6b8116100a15780633198a6b81461013d57806354d1f13d146101725780635a7517ad1461017a575f80fd5b806301ffc9a7146100c757806325692962146100fb5780632dfdf0b514610105575b5f80fd5b3480156100d2575f80fd5b506100e66100e1366004610809565b61026c565b60405190151581526020015b60405180910390f35b610103610304565b005b348015610110575f80fd5b505f546101249067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100f2565b348015610148575f80fd5b50610124610157366004610877565b60016020525f908152604090205467ffffffffffffffff1681565b610103610351565b348015610185575f80fd5b506101036101943660046108a7565b61038a565b6101036101a736600461091d565b6103f0565b6101036104a5565b3480156101bf575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f2565b610103610215366004610877565b6104b8565b610103610228366004610877565b6104f5565b348015610238575f80fd5b5061025e610247366004610877565b63389a75e1600c9081525f91909152602090205490565b6040519081526020016100f2565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b70fa2900000000000000000000000000000000000000000000000000000000145b92915050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61039261051b565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff909216919091179055565b335f9081526001602052604081205467ffffffffffffffff169003610441576040517fce7ccd9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260016020526040812080549091906104679067ffffffffffffffff166109cd565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061049c87878787878787610550565b50505050505050565b6104ad61051b565b6104b65f6106e0565b565b6104c061051b565b63389a75e1600c52805f526020600c2080544211156104e657636f5e88185f526004601cfd5b5f90556104f2816106e0565b50565b6104fd61051b565b8060601b61051257637448fbae5f526004601cfd5b6104f2816106e0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146104b6576382b429005f526004601cfd5b6030861461058a576040517f9f10647200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084146105c4576040517fb39bca1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081146105fe576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106088461074e565b905064077359400067ffffffffffffffff82161015610653576040517f0e1eddda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316908101909216179091556040517f68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46916106ce918b918b918b918b9188918b918b9190610a7a565b60405180910390a15050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b5f61075d633b9aca0034610b12565b15610794576040517f40567b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107a3633b9aca0034610b25565b905067ffffffffffffffff8111156107e7576040517f2aa6673400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102fe5f345f385f3884865af16108055763b12d13eb5f526004601cfd5b5050565b5f60208284031215610819575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610848575f80fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610872575f80fd5b919050565b5f60208284031215610887575f80fd5b6108488261084f565b803567ffffffffffffffff81168114610872575f80fd5b5f80604083850312156108b8575f80fd5b6108c18361084f565b91506108cf60208401610890565b90509250929050565b5f8083601f8401126108e8575f80fd5b50813567ffffffffffffffff8111156108ff575f80fd5b602083019150836020828501011115610916575f80fd5b9250929050565b5f805f805f805f6080888a031215610933575f80fd5b873567ffffffffffffffff811115610949575f80fd5b6109558a828b016108d8565b909850965050602088013567ffffffffffffffff811115610974575f80fd5b6109808a828b016108d8565b9096509450610993905060408901610890565b9250606088013567ffffffffffffffff8111156109ae575f80fd5b6109ba8a828b016108d8565b989b979a50959850939692959293505050565b5f67ffffffffffffffff821680610a0b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60a081525f610a8d60a083018a8c610a33565b8281036020840152610aa081898b610a33565b905067ffffffffffffffff871660408401528281036060840152610ac5818688610a33565b91505067ffffffffffffffff831660808301529998505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b2057610b20610ae5565b500690565b5f82610b3357610b33610ae5565b50049056fea2646970667358221220b08e6fc3b9c94a2f65976bacf514e878deea80490a6ebe3959e6047117451a1464736f6c634300081a0033", } // BeaconDepositContractABI is the input ABI used to generate the binding from. diff --git a/mod/node-api/backend/mocks/availability_store.mock.go b/mod/node-api/backend/mocks/availability_store.mock.go index 9d06105727..08d384065d 100644 --- a/mod/node-api/backend/mocks/availability_store.mock.go +++ b/mod/node-api/backend/mocks/availability_store.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/beacon_block_header.mock.go b/mod/node-api/backend/mocks/beacon_block_header.mock.go index d653d99f61..afec4e3be8 100644 --- a/mod/node-api/backend/mocks/beacon_block_header.mock.go +++ b/mod/node-api/backend/mocks/beacon_block_header.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/beacon_state.mock.go b/mod/node-api/backend/mocks/beacon_state.mock.go index 8e83c1802c..fdd75d78f8 100644 --- a/mod/node-api/backend/mocks/beacon_state.mock.go +++ b/mod/node-api/backend/mocks/beacon_state.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/block_store.mock.go b/mod/node-api/backend/mocks/block_store.mock.go index 54697e55ed..e19547d3e9 100644 --- a/mod/node-api/backend/mocks/block_store.mock.go +++ b/mod/node-api/backend/mocks/block_store.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/deposit_store.mock.go b/mod/node-api/backend/mocks/deposit_store.mock.go index b58d3f343f..71c1c1e4a2 100644 --- a/mod/node-api/backend/mocks/deposit_store.mock.go +++ b/mod/node-api/backend/mocks/deposit_store.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/node.mock.go b/mod/node-api/backend/mocks/node.mock.go index d1b4f47f38..248413332d 100644 --- a/mod/node-api/backend/mocks/node.mock.go +++ b/mod/node-api/backend/mocks/node.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/state_processor.mock.go b/mod/node-api/backend/mocks/state_processor.mock.go index ed2421ae1a..bb85657785 100644 --- a/mod/node-api/backend/mocks/state_processor.mock.go +++ b/mod/node-api/backend/mocks/state_processor.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/storage_backend.mock.go b/mod/node-api/backend/mocks/storage_backend.mock.go index 7d36ea8b5c..1f7ea3673b 100644 --- a/mod/node-api/backend/mocks/storage_backend.mock.go +++ b/mod/node-api/backend/mocks/storage_backend.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/validator.mock.go b/mod/node-api/backend/mocks/validator.mock.go index 06f9856b18..dbd6ef8045 100644 --- a/mod/node-api/backend/mocks/validator.mock.go +++ b/mod/node-api/backend/mocks/validator.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/withdrawal.mock.go b/mod/node-api/backend/mocks/withdrawal.mock.go index 76f6fc1f08..c6468d3c14 100644 --- a/mod/node-api/backend/mocks/withdrawal.mock.go +++ b/mod/node-api/backend/mocks/withdrawal.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-api/backend/mocks/withdrawal_credentials.mock.go b/mod/node-api/backend/mocks/withdrawal_credentials.mock.go index 2d3cd746cf..1c7b469442 100644 --- a/mod/node-api/backend/mocks/withdrawal_credentials.mock.go +++ b/mod/node-api/backend/mocks/withdrawal_credentials.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-core/pkg/components/deposit_contract.go b/mod/node-core/pkg/components/deposit_contract.go index 521ae3659d..516f9024bf 100644 --- a/mod/node-core/pkg/components/deposit_contract.go +++ b/mod/node-core/pkg/components/deposit_contract.go @@ -52,7 +52,7 @@ type BeaconDepositContractInput[ // dep inject framework. func ProvideBeaconDepositContract[ DepositT Deposit[ - DepositT, *ForkData, LogT, WithdrawalCredentials, + DepositT, *ForkData, LogT, WithdrawalCredentialsT, ], ExecutionPayloadT ExecutionPayload[ ExecutionPayloadT, ExecutionPayloadHeaderT, WithdrawalsT, diff --git a/mod/node-core/pkg/services/registry/mocks/basic.mock.go b/mod/node-core/pkg/services/registry/mocks/basic.mock.go index 3e0d760b88..dc9cb38ece 100644 --- a/mod/node-core/pkg/services/registry/mocks/basic.mock.go +++ b/mod/node-core/pkg/services/registry/mocks/basic.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-core/pkg/services/registry/mocks/dispatcher.mock.go b/mod/node-core/pkg/services/registry/mocks/dispatcher.mock.go index bdead0d532..238233dcc0 100644 --- a/mod/node-core/pkg/services/registry/mocks/dispatcher.mock.go +++ b/mod/node-core/pkg/services/registry/mocks/dispatcher.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/node-core/pkg/services/registry/mocks/registry_option.mock.go b/mod/node-core/pkg/services/registry/mocks/registry_option.mock.go index 565e8021e8..58b47f4514 100644 --- a/mod/node-core/pkg/services/registry/mocks/registry_option.mock.go +++ b/mod/node-core/pkg/services/registry/mocks/registry_option.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/primitives/pkg/crypto/mocks/bls_signer.mock.go b/mod/primitives/pkg/crypto/mocks/bls_signer.mock.go index 149525b88f..0b306d6509 100644 --- a/mod/primitives/pkg/crypto/mocks/bls_signer.mock.go +++ b/mod/primitives/pkg/crypto/mocks/bls_signer.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks @@ -32,7 +32,9 @@ func (_m *BLSSigner) PublicKey() crypto.BLSPubkey { if rf, ok := ret.Get(0).(func() crypto.BLSPubkey); ok { r0 = rf() } else { - r0 = ret.Get(0).(crypto.BLSPubkey) + if ret.Get(0) != nil { + r0 = ret.Get(0).(crypto.BLSPubkey) + } } return r0 @@ -81,7 +83,9 @@ func (_m *BLSSigner) Sign(_a0 []byte) (crypto.BLSSignature, error) { if rf, ok := ret.Get(0).(func([]byte) crypto.BLSSignature); ok { r0 = rf(_a0) } else { - r0 = ret.Get(0).(crypto.BLSSignature) + if ret.Get(0) != nil { + r0 = ret.Get(0).(crypto.BLSSignature) + } } if rf, ok := ret.Get(1).(func([]byte) error); ok { diff --git a/mod/storage/pkg/interfaces/mocks/db.mock.go b/mod/storage/pkg/interfaces/mocks/db.mock.go index 683f7fc14f..ac7b734427 100644 --- a/mod/storage/pkg/interfaces/mocks/db.mock.go +++ b/mod/storage/pkg/interfaces/mocks/db.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/storage/pkg/pruner/mocks/beacon_block.mock.go b/mod/storage/pkg/pruner/mocks/beacon_block.mock.go index 4fdea13a1b..3859cc6053 100644 --- a/mod/storage/pkg/pruner/mocks/beacon_block.mock.go +++ b/mod/storage/pkg/pruner/mocks/beacon_block.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/storage/pkg/pruner/mocks/block_event.mock.go b/mod/storage/pkg/pruner/mocks/block_event.mock.go index 515ac303ef..4b24eb033a 100644 --- a/mod/storage/pkg/pruner/mocks/block_event.mock.go +++ b/mod/storage/pkg/pruner/mocks/block_event.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/storage/pkg/pruner/mocks/prunable.mock.go b/mod/storage/pkg/pruner/mocks/prunable.mock.go index 3116601d8c..fba09727d5 100644 --- a/mod/storage/pkg/pruner/mocks/prunable.mock.go +++ b/mod/storage/pkg/pruner/mocks/prunable.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks diff --git a/mod/storage/pkg/pruner/mocks/pruner.mock.go b/mod/storage/pkg/pruner/mocks/pruner.mock.go index a437f0fd73..19bb2c3f4c 100644 --- a/mod/storage/pkg/pruner/mocks/pruner.mock.go +++ b/mod/storage/pkg/pruner/mocks/pruner.mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.46.1. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mocks From 0a30dcc2a227511d3540925aea3c873517b03672 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 13:33:53 -0400 Subject: [PATCH 48/51] gen --- mod/geth-primitives/pkg/deposit/contract.abigen.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/geth-primitives/pkg/deposit/contract.abigen.go b/mod/geth-primitives/pkg/deposit/contract.abigen.go index dab3abd28c..5d121d9edf 100644 --- a/mod/geth-primitives/pkg/deposit/contract.abigen.go +++ b/mod/geth-primitives/pkg/deposit/contract.abigen.go @@ -32,7 +32,7 @@ var ( // BeaconDepositContractMetaData contains all meta data concerning the BeaconDepositContract contract. var BeaconDepositContractMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allowDeposit\",\"inputs\":[{\"name\":\"depositor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"number\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"completeOwnershipHandover\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"withdrawal_credentials\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"depositAuth\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownershipHandoverExpiresAt\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestOwnershipHandover\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"credentials\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"signature\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverCanceled\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipHandoverRequested\",\"inputs\":[{\"name\":\"pendingOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"oldOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositNotMultipleOfGwei\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositValueTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientDeposit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCredentialsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignatureLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewOwnerIsZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoHandoverRequest\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Unauthorized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedDeposit\",\"inputs\":[]}]", - Bin: "0x6080604052348015600e575f80fd5b50604051610c34380380610c34833981016040819052602b91608e565b6032816037565b5060b9565b638b78c6d819805415605057630dc149f05f526004601cfd5b6001600160a01b03909116801560ff1b8117909155805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f60208284031215609d575f80fd5b81516001600160a01b038116811460b2575f80fd5b9392505050565b610b6e806100c65f395ff3fe6080604052600436106100c3575f3560e01c80635b70fa2911610071578063f04e283e1161004c578063f04e283e14610207578063f2fde38b1461021a578063fee81cf41461022d575f80fd5b80635b70fa2914610199578063715018a6146101ac5780638da5cb5b146101b4575f80fd5b80633198a6b8116100a15780633198a6b81461013d57806354d1f13d146101725780635a7517ad1461017a575f80fd5b806301ffc9a7146100c757806325692962146100fb5780632dfdf0b514610105575b5f80fd5b3480156100d2575f80fd5b506100e66100e1366004610809565b61026c565b60405190151581526020015b60405180910390f35b610103610304565b005b348015610110575f80fd5b505f546101249067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100f2565b348015610148575f80fd5b50610124610157366004610877565b60016020525f908152604090205467ffffffffffffffff1681565b610103610351565b348015610185575f80fd5b506101036101943660046108a7565b61038a565b6101036101a736600461091d565b6103f0565b6101036104a5565b3480156101bf575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f2565b610103610215366004610877565b6104b8565b610103610228366004610877565b6104f5565b348015610238575f80fd5b5061025e610247366004610877565b63389a75e1600c9081525f91909152602090205490565b6040519081526020016100f2565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b70fa2900000000000000000000000000000000000000000000000000000000145b92915050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61039261051b565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff909216919091179055565b335f9081526001602052604081205467ffffffffffffffff169003610441576040517fce7ccd9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260016020526040812080549091906104679067ffffffffffffffff166109cd565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061049c87878787878787610550565b50505050505050565b6104ad61051b565b6104b65f6106e0565b565b6104c061051b565b63389a75e1600c52805f526020600c2080544211156104e657636f5e88185f526004601cfd5b5f90556104f2816106e0565b50565b6104fd61051b565b8060601b61051257637448fbae5f526004601cfd5b6104f2816106e0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146104b6576382b429005f526004601cfd5b6030861461058a576040517f9f10647200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084146105c4576040517fb39bca1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081146105fe576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106088461074e565b905064077359400067ffffffffffffffff82161015610653576040517f0e1eddda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316908101909216179091556040517f68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46916106ce918b918b918b918b9188918b918b9190610a7a565b60405180910390a15050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b5f61075d633b9aca0034610b12565b15610794576040517f40567b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107a3633b9aca0034610b25565b905067ffffffffffffffff8111156107e7576040517f2aa6673400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102fe5f345f385f3884865af16108055763b12d13eb5f526004601cfd5b5050565b5f60208284031215610819575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610848575f80fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610872575f80fd5b919050565b5f60208284031215610887575f80fd5b6108488261084f565b803567ffffffffffffffff81168114610872575f80fd5b5f80604083850312156108b8575f80fd5b6108c18361084f565b91506108cf60208401610890565b90509250929050565b5f8083601f8401126108e8575f80fd5b50813567ffffffffffffffff8111156108ff575f80fd5b602083019150836020828501011115610916575f80fd5b9250929050565b5f805f805f805f6080888a031215610933575f80fd5b873567ffffffffffffffff811115610949575f80fd5b6109558a828b016108d8565b909850965050602088013567ffffffffffffffff811115610974575f80fd5b6109808a828b016108d8565b9096509450610993905060408901610890565b9250606088013567ffffffffffffffff8111156109ae575f80fd5b6109ba8a828b016108d8565b989b979a50959850939692959293505050565b5f67ffffffffffffffff821680610a0b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60a081525f610a8d60a083018a8c610a33565b8281036020840152610aa081898b610a33565b905067ffffffffffffffff871660408401528281036060840152610ac5818688610a33565b91505067ffffffffffffffff831660808301529998505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b2057610b20610ae5565b500690565b5f82610b3357610b33610ae5565b50049056fea2646970667358221220b08e6fc3b9c94a2f65976bacf514e878deea80490a6ebe3959e6047117451a1464736f6c634300081a0033", + Bin: "0x6080604052348015600e575f80fd5b50604051610c34380380610c34833981016040819052602b91608e565b6032816037565b5060b9565b638b78c6d819805415605057630dc149f05f526004601cfd5b6001600160a01b03909116801560ff1b8117909155805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f60208284031215609d575f80fd5b81516001600160a01b038116811460b2575f80fd5b9392505050565b610b6e806100c65f395ff3fe6080604052600436106100c3575f3560e01c80635b70fa2911610071578063f04e283e1161004c578063f04e283e14610207578063f2fde38b1461021a578063fee81cf41461022d575f80fd5b80635b70fa2914610199578063715018a6146101ac5780638da5cb5b146101b4575f80fd5b80633198a6b8116100a15780633198a6b81461013d57806354d1f13d146101725780635a7517ad1461017a575f80fd5b806301ffc9a7146100c757806325692962146100fb5780632dfdf0b514610105575b5f80fd5b3480156100d2575f80fd5b506100e66100e1366004610809565b61026c565b60405190151581526020015b60405180910390f35b610103610304565b005b348015610110575f80fd5b505f546101249067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100f2565b348015610148575f80fd5b50610124610157366004610877565b60016020525f908152604090205467ffffffffffffffff1681565b610103610351565b348015610185575f80fd5b506101036101943660046108a7565b61038a565b6101036101a736600461091d565b6103f0565b6101036104a5565b3480156101bf575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f2565b610103610215366004610877565b6104b8565b610103610228366004610877565b6104f5565b348015610238575f80fd5b5061025e610247366004610877565b63389a75e1600c9081525f91909152602090205490565b6040519081526020016100f2565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b70fa2900000000000000000000000000000000000000000000000000000000145b92915050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61039261051b565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff909216919091179055565b335f9081526001602052604081205467ffffffffffffffff169003610441576040517fce7ccd9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f90815260016020526040812080549091906104679067ffffffffffffffff166109cd565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061049c87878787878787610550565b50505050505050565b6104ad61051b565b6104b65f6106e0565b565b6104c061051b565b63389a75e1600c52805f526020600c2080544211156104e657636f5e88185f526004601cfd5b5f90556104f2816106e0565b50565b6104fd61051b565b8060601b61051257637448fbae5f526004601cfd5b6104f2816106e0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146104b6576382b429005f526004601cfd5b6030861461058a576040517f9f10647200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084146105c4576040517fb39bca1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081146105fe576040517f4be6321b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106088461074e565b905064077359400067ffffffffffffffff82161015610653576040517f0e1eddda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008116600167ffffffffffffffff928316908101909216179091556040517f68af751683498a9f9be59fe8b0d52a64dd155255d85cdb29fea30b1e3f891d46916106ce918b918b918b918b9188918b918b9190610a7a565b60405180910390a15050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b5f61075d633b9aca0034610b12565b15610794576040517f40567b3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6107a3633b9aca0034610b25565b905067ffffffffffffffff8111156107e7576040517f2aa6673400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102fe5f345f385f3884865af16108055763b12d13eb5f526004601cfd5b5050565b5f60208284031215610819575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610848575f80fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610872575f80fd5b919050565b5f60208284031215610887575f80fd5b6108488261084f565b803567ffffffffffffffff81168114610872575f80fd5b5f80604083850312156108b8575f80fd5b6108c18361084f565b91506108cf60208401610890565b90509250929050565b5f8083601f8401126108e8575f80fd5b50813567ffffffffffffffff8111156108ff575f80fd5b602083019150836020828501011115610916575f80fd5b9250929050565b5f805f805f805f6080888a031215610933575f80fd5b873567ffffffffffffffff811115610949575f80fd5b6109558a828b016108d8565b909850965050602088013567ffffffffffffffff811115610974575f80fd5b6109808a828b016108d8565b9096509450610993905060408901610890565b9250606088013567ffffffffffffffff8111156109ae575f80fd5b6109ba8a828b016108d8565b989b979a50959850939692959293505050565b5f67ffffffffffffffff821680610a0b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60a081525f610a8d60a083018a8c610a33565b8281036020840152610aa081898b610a33565b905067ffffffffffffffff871660408401528281036060840152610ac5818688610a33565b91505067ffffffffffffffff831660808301529998505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b2057610b20610ae5565b500690565b5f82610b3357610b33610ae5565b50049056fea26469706673582212209dfb8e5ead8b23553bd4102b9e66cae17b890a520a2c3b480698309f19d2819664736f6c634300081a0033", } // BeaconDepositContractABI is the input ABI used to generate the binding from. From 0486a8293b3c3cbdd8af45d59449760fd4e176ad Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 13:52:20 -0400 Subject: [PATCH 49/51] tests --- .../pkg/engine-primitives/log_test.go | 178 ++++++++++++++++++ mod/execution/pkg/client/ethclient/eth.go | 17 +- mod/execution/pkg/deposit/contract.go | 3 +- 3 files changed, 191 insertions(+), 7 deletions(-) create mode 100644 mod/engine-primitives/pkg/engine-primitives/log_test.go diff --git a/mod/engine-primitives/pkg/engine-primitives/log_test.go b/mod/engine-primitives/pkg/engine-primitives/log_test.go new file mode 100644 index 0000000000..259d28ecf3 --- /dev/null +++ b/mod/engine-primitives/pkg/engine-primitives/log_test.go @@ -0,0 +1,178 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2024, Berachain Foundation. All rights reserved. +// Use of this software is governed by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + +package engineprimitives_test + +import ( + "encoding/json" + "errors" + "reflect" + "testing" + + engineprimitives "github.com/berachain/beacon-kit/mod/engine-primitives/pkg/engine-primitives" + "github.com/berachain/beacon-kit/mod/primitives/pkg/common" + "github.com/davecgh/go-spew/spew" + "github.com/ethereum/go-ethereum/common/hexutil" +) + +//nolint:lll // test input data. +var unmarshalLogTests = map[string]struct { + input string + want *engineprimitives.Log + wantError error +}{ + "ok": { + input: `{"address":"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7","blockHash":"0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056","blockNumber":"0x1ecfa4","data":"0x000000000000000000000000000000000000000000000001a055690d9db80000","logIndex":"0x2","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615"],"transactionHash":"0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e","transactionIndex":"0x3"}`, + want: &engineprimitives.Log{ + Address: common.NewExecutionAddressFromHex( + "0xecf8f87f810ecf450940c9f60066b4a7a501d6a7", + ), + BlockHash: common.NewExecutionHashFromHex( + "0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056", + ), + BlockNumber: 2019236, + Data: hexutil.MustDecode( + "0x000000000000000000000000000000000000000000000001a055690d9db80000", + ), + Index: 2, + TxIndex: 3, + TxHash: common.NewExecutionHashFromHex( + "0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e", + ), + Topics: []common.ExecutionHash{ + common.NewExecutionHashFromHex( + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ), + common.NewExecutionHashFromHex( + "0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615", + ), + }, + }, + }, + "empty data": { + input: `{"address":"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7","blockHash":"0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056","blockNumber":"0x1ecfa4","data":"0x","logIndex":"0x2","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615"],"transactionHash":"0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e","transactionIndex":"0x3"}`, + want: &engineprimitives.Log{ + Address: common.NewExecutionAddressFromHex( + "0xecf8f87f810ecf450940c9f60066b4a7a501d6a7", + ), + BlockHash: common.NewExecutionHashFromHex( + "0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056", + ), + BlockNumber: 2019236, + Data: []byte{}, + Index: 2, + TxIndex: 3, + TxHash: common.NewExecutionHashFromHex( + "0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e", + ), + Topics: []common.ExecutionHash{ + common.NewExecutionHashFromHex( + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ), + common.NewExecutionHashFromHex( + "0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615", + ), + }, + }, + }, + "missing block fields (pending logs)": { + input: `{"address":"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7","data":"0x","logIndex":"0x0","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"transactionHash":"0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e","transactionIndex":"0x3"}`, + want: &engineprimitives.Log{ + Address: common.NewExecutionAddressFromHex( + "0xecf8f87f810ecf450940c9f60066b4a7a501d6a7", + ), + BlockHash: common.ExecutionHash{}, + BlockNumber: 0, + Data: []byte{}, + Index: 0, + TxIndex: 3, + TxHash: common.NewExecutionHashFromHex( + "0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e", + ), + Topics: []common.ExecutionHash{ + common.NewExecutionHashFromHex( + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ), + }, + }, + }, + "Removed: true": { + input: `{"address":"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7","blockHash":"0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056","blockNumber":"0x1ecfa4","data":"0x","logIndex":"0x2","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"transactionHash":"0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e","transactionIndex":"0x3","removed":true}`, + want: &engineprimitives.Log{ + Address: common.NewExecutionAddressFromHex( + "0xecf8f87f810ecf450940c9f60066b4a7a501d6a7", + ), + BlockHash: common.NewExecutionHashFromHex( + "0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056", + ), + BlockNumber: 2019236, + Data: []byte{}, + Index: 2, + TxIndex: 3, + TxHash: common.NewExecutionHashFromHex( + "0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e", + ), + Topics: []common.ExecutionHash{ + common.NewExecutionHashFromHex( + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ), + }, + Removed: true, + }, + }, + "missing data": { + input: `{"address":"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7","blockHash":"0x656c34545f90a730a19008c0e7a7cd4fb3895064b48d6d69761bd5abad681056","blockNumber":"0x1ecfa4","logIndex":"0x2","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615","0x000000000000000000000000f9dff387dcb5cc4cca5b91adb07a95f54e9f1bb6"],"transactionHash":"0x3b198bfd5d2907285af009e9ae84a0ecd63677110d89d7e030251acb87f6487e","transactionIndex":"0x3"}`, + wantError: errors.New("missing required field 'data' for Log"), + }, +} + +func TestUnmarshalLog(t *testing.T) { + dumper := spew.ConfigState{DisableMethods: true, Indent: " "} + for name, test := range unmarshalLogTests { + var log *engineprimitives.Log + err := json.Unmarshal([]byte(test.input), &log) + checkError(t, name, err, test.wantError) + if test.wantError == nil && err == nil { + if !reflect.DeepEqual(log, test.want) { + t.Errorf( + "test %q:\nGOT %sWANT %s", name, + dumper.Sdump(log), dumper.Sdump(test.want), + ) + } + } + } +} + +func checkError(t *testing.T, testname string, got, want error) bool { + t.Helper() + if got == nil { + if want != nil { + t.Errorf("test %q: got no error, want %q", testname, want) + return false + } + return true + } + if want == nil { + t.Errorf("test %q: unexpected error %q", testname, got) + } else if got.Error() != want.Error() { + t.Errorf("test %q: got error %q, want %q", testname, got, want) + } + return false +} diff --git a/mod/execution/pkg/client/ethclient/eth.go b/mod/execution/pkg/client/ethclient/eth.go index 732b8c77a1..f140844ba2 100644 --- a/mod/execution/pkg/client/ethclient/eth.go +++ b/mod/execution/pkg/client/ethclient/eth.go @@ -48,12 +48,17 @@ func (ec *Client[ExecutionPayloadT, _]) ChainID( // Examples: // {} or nil matches any topic list // {{A}} matches topic A in first position -// {{}, {B}} matches any topic in first position AND B in second -// position -// {{A}, {B}} matches topic A in first position AND B in second -// position -// {{A, B}, {C, D}} matches topic (A OR B) in first position AND (C OR D) in -// second position +// {{}, {B}} matches any topic in first position AND B in second +// +// position +// +// {{A}, {B}} matches topic A in first position AND B in second +// +// position +// +// {{A, B}, {C, D}} matches topic (A OR B) in first position AND (C OR D) in +// +// second position func (ec *Client[ExecutionPayloadT, LogT]) GetLogsAtBlockNumber( ctx context.Context, number math.U64, diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 598b8d12a2..48658e5d8d 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -87,7 +87,8 @@ func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( deposits := make([]DepositT, 0) for _, log := range logs { - if log.GetAddress() != dc.address || log.GetTopics()[0] != DepositEventSignature { + if log.GetAddress() != dc.address || + log.GetTopics()[0] != DepositEventSignature { continue } From 62d6d23d0400ee7d362044d40babf14186dc8dd6 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 13:53:18 -0400 Subject: [PATCH 50/51] bet --- mod/consensus-types/pkg/types/deposit.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index 5f07a81db2..e9b06dbd4c 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -197,6 +197,8 @@ func (d *Deposit[_]) GetTree() (*fastssz.Node, error) { /* -------------------------------------------------------------------------- */ // UnmarshalLog unmarshals the Deposit object from an Ethereum log. +// +// TODO: use abi decoding or constants for reading the bytes. func (d *Deposit[LogT]) UnmarshalLog(log LogT) error { data := log.GetData() if len(data) < 448 { From a7951521bb6de302121204f6b5551eb2b56347e2 Mon Sep 17 00:00:00 2001 From: Cal Bera Date: Wed, 2 Oct 2024 17:39:40 -0400 Subject: [PATCH 51/51] Wipg --- mod/consensus-types/pkg/types/body.go | 1 + mod/consensus-types/pkg/types/deposit.go | 22 ++++++++++++++++++++++ mod/consensus-types/pkg/types/deposits.go | 1 + mod/execution/pkg/deposit/contract.go | 18 ++---------------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/mod/consensus-types/pkg/types/body.go b/mod/consensus-types/pkg/types/body.go index 56a5fc5b80..429154efe0 100644 --- a/mod/consensus-types/pkg/types/body.go +++ b/mod/consensus-types/pkg/types/body.go @@ -69,6 +69,7 @@ func BlockBodyKZGOffset( // BeaconBlockBody represents the body of a beacon block in the Deneb // chain. type BeaconBlockBody[LogT interface { + GetTopics() []common.ExecutionHash GetData() []byte }] struct { // RandaoReveal is the reveal of the RANDAO. diff --git a/mod/consensus-types/pkg/types/deposit.go b/mod/consensus-types/pkg/types/deposit.go index e9b06dbd4c..779526a3e0 100644 --- a/mod/consensus-types/pkg/types/deposit.go +++ b/mod/consensus-types/pkg/types/deposit.go @@ -30,6 +30,7 @@ import ( "github.com/berachain/beacon-kit/mod/primitives/pkg/constraints" "github.com/berachain/beacon-kit/mod/primitives/pkg/crypto" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" + gethcrypto "github.com/ethereum/go-ethereum/crypto" fastssz "github.com/ferranbt/fastssz" "github.com/karalabe/ssz" ) @@ -46,6 +47,7 @@ var ( // Deposit into the consensus layer from the deposit contract in the execution // layer. type Deposit[LogT interface { + GetTopics() []common.ExecutionHash GetData() []byte }] struct { // Public key of the validator specified in the deposit. @@ -63,6 +65,7 @@ type Deposit[LogT interface { // NewDeposit creates a new Deposit instance. func NewDeposit[LogT interface { + GetTopics() []common.ExecutionHash GetData() []byte }]( pubkey crypto.BLSPubkey, @@ -196,10 +199,29 @@ func (d *Deposit[_]) GetTree() (*fastssz.Node, error) { /* EthLog */ /* -------------------------------------------------------------------------- */ +// DepositEventSignatureString is the Deposit event signature human readable +// string that should be keccak256 hashed for the event's topic. +const DepositEventSignatureString = "Deposit(bytes,bytes,uint64,bytes,uint64)" + +//nolint:gochecknoglobals // TODO: remove usage of geth's crypto.Keccak256. +var DepositEventSignature = common.ExecutionHash( + gethcrypto.Keccak256([]byte(DepositEventSignatureString)), +) + // UnmarshalLog unmarshals the Deposit object from an Ethereum log. // // TODO: use abi decoding or constants for reading the bytes. func (d *Deposit[LogT]) UnmarshalLog(log LogT) error { + topics := log.GetTopics() + if len(topics) != 1 { + return fmt.Errorf("expected 1 topic, got %d", len(topics)) + } + if topics[0] != DepositEventSignature { + return fmt.Errorf( + "expected topic %s, got %s", DepositEventSignature, topics[0], + ) + } + data := log.GetData() if len(data) < 448 { return fmt.Errorf( diff --git a/mod/consensus-types/pkg/types/deposits.go b/mod/consensus-types/pkg/types/deposits.go index b60a7863f9..155e7c2f54 100644 --- a/mod/consensus-types/pkg/types/deposits.go +++ b/mod/consensus-types/pkg/types/deposits.go @@ -28,6 +28,7 @@ import ( // Deposits is a typealias for a list of Deposits. type Deposits[LogT interface { + GetTopics() []common.ExecutionHash GetData() []byte }] []*Deposit[LogT] diff --git a/mod/execution/pkg/deposit/contract.go b/mod/execution/pkg/deposit/contract.go index 48658e5d8d..ed1c798e93 100644 --- a/mod/execution/pkg/deposit/contract.go +++ b/mod/execution/pkg/deposit/contract.go @@ -23,18 +23,9 @@ package deposit import ( "context" + "github.com/berachain/beacon-kit/mod/consensus-types/pkg/types" "github.com/berachain/beacon-kit/mod/primitives/pkg/common" "github.com/berachain/beacon-kit/mod/primitives/pkg/math" - "github.com/ethereum/go-ethereum/crypto" -) - -// DepositEventSignatureString is the Deposit event signature human readable -// string that should be keccak256 hashed for the event's topic. -const DepositEventSignatureString = "Deposit(bytes,bytes,uint64,bytes,uint64)" - -//nolint:gochecknoglobals // TODO: remove usage of geth's crypto.Keccak256. -var DepositEventSignature = common.ExecutionHash( - crypto.Keccak256([]byte(DepositEventSignatureString)), ) // WrappedBeaconDepositContract is a struct that holds a pointer to an ABI. @@ -79,7 +70,7 @@ func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( ctx, blkNum, dc.address, - [][]common.ExecutionHash{{DepositEventSignature}}, + [][]common.ExecutionHash{{types.DepositEventSignature}}, ) if err != nil { return nil, err @@ -87,11 +78,6 @@ func (dc *WrappedBeaconDepositContract[DepositT, _, _]) ReadDeposits( deposits := make([]DepositT, 0) for _, log := range logs { - if log.GetAddress() != dc.address || - log.GetTopics()[0] != DepositEventSignature { - continue - } - var d DepositT d = d.Empty() if err = d.UnmarshalLog(log); err != nil {