Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Astria named forks #59

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
43b5a98
WIP on "astria forks" config changes
mycodecrafting Dec 4, 2024
a63cd80
fix logic for BaseCelestiaHeight changing at forks
mycodecrafting Dec 5, 2024
a85e7ee
move astria config to separate file, add some validation
mycodecrafting Dec 5, 2024
6610cb0
simplify and correct some logic
mycodecrafting Dec 5, 2024
3aae19a
fix some tests and issues with astria forks
mycodecrafting Dec 13, 2024
69cc309
Add HaltAtStopHeight to genesis info
mycodecrafting Jan 14, 2025
5886c66
fixing tests
mycodecrafting Jan 14, 2025
6bdcf95
resolved bug with GetNextForkAtHeight; added clarity; added some tests
mycodecrafting Jan 16, 2025
b7a6184
finalized changes for conductor
mycodecrafting Feb 7, 2025
1f1aacd
Merge remote-tracking branch 'origin/main' into mycodecrafting/astria…
mycodecrafting Feb 7, 2025
8497d10
add precompiles to named fork config; fix issue with maps on fork con…
mycodecrafting Feb 7, 2025
17e5dab
first fork should initially start with default values
mycodecrafting Feb 7, 2025
14592f0
update extraData to be a keccak-256 hash of the fork config unless ov…
mycodecrafting Feb 8, 2025
293bcb1
Merge remote-tracking branch 'origin/main' into mycodecrafting/astria…
mycodecrafting Mar 3, 2025
def0e17
exec api v2 changes
mycodecrafting Mar 4, 2025
6de3a60
remove redundant start height from AstriaBridgeAddressConfig
mycodecrafting Mar 4, 2025
95325a1
remove redundant start height from AstriaBridgeAddressConfig
mycodecrafting Mar 4, 2025
7f60281
remove invalid validation
mycodecrafting Mar 4, 2025
22db36b
fix validateStaticCommitmentState
mycodecrafting Mar 4, 2025
0a597a0
fix validateStaticCommitmentState
mycodecrafting Mar 4, 2025
21b10b3
fix firm commitment checks
mycodecrafting Mar 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions cmd/geth/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@ import (
"bufio"
"errors"
"fmt"
"github.com/ethereum/go-ethereum/eth/catalyst"
"os"
"reflect"
"runtime"
"strings"
"unicode"

"github.com/ethereum/go-ethereum/eth/catalyst"

"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/external"
"github.com/ethereum/go-ethereum/accounts/keystore"
Expand Down Expand Up @@ -206,11 +207,11 @@ func makeFullNode(ctx *cli.Context) *node.Node {

// Configure gRPC if requested.
if ctx.IsSet(utils.GRPCEnabledFlag.Name) {
serviceV1, err := execution.NewExecutionServiceServerV1(eth)
serviceV2, err := execution.NewExecutionServiceServerV2(eth, ctx.Bool(utils.ExecutionSoftAsFirmFlag.Name))
if err != nil {
utils.Fatalf("failed to create execution service: %v", err)
}
utils.RegisterGRPCExecutionService(stack, serviceV1, &cfg.Node)
utils.RegisterGRPCExecutionService(stack, serviceV2, &cfg.Node)
}

// Add the Ethereum Stats daemon if requested.
Expand Down
1 change: 1 addition & 0 deletions cmd/geth/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ var (
utils.BeaconGenesisRootFlag,
utils.BeaconGenesisTimeFlag,
utils.BeaconCheckpointFlag,
utils.ExecutionSoftAsFirmFlag,
}, utils.NetworkFlags, utils.DatabaseFlags)

rpcFlags = []cli.Flag{
Expand Down
9 changes: 8 additions & 1 deletion cmd/utils/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import (
"strings"
"time"

astriaGrpc "buf.build/gen/go/astria/execution-apis/grpc/go/astria/execution/v1/executionv1grpc"
astriaGrpc "buf.build/gen/go/astria/execution-apis/grpc/go/astria/execution/v2/executionv2grpc"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/keystore"
bparams "github.com/ethereum/go-ethereum/beacon/params"
Expand Down Expand Up @@ -885,6 +885,13 @@ var (
Category: flags.GasPriceCategory,
}

// ExecutionService flags
ExecutionSoftAsFirmFlag = &cli.BoolFlag{
Name: "execution.soft-as-firm",
Usage: "Use soft commitment as firm commitment",
Category: flags.ExecutionCategory,
}

// Metrics flags
MetricsEnabledFlag = &cli.BoolFlag{
Name: "metrics",
Expand Down
13 changes: 5 additions & 8 deletions consensus/misc/eip1559/eip1559.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func VerifyEIP1559Header(config *params.ChainConfig, parent, header *types.Heade
// Verify that the gas limit remains within allowed bounds
parentGasLimit := parent.GasLimit
if !config.IsLondon(parent.Number) {
parentGasLimit = parent.GasLimit * config.ElasticityMultiplier(parent.Number.Uint64())
parentGasLimit = parent.GasLimit * config.GetAstriaForks().ElasticityMultiplierAt(parent.Number.Uint64())
}
if err := misc.VerifyGaslimit(parentGasLimit, header.GasLimit); err != nil {
return err
Expand All @@ -60,7 +60,7 @@ func CalcBaseFee(config *params.ChainConfig, parent *types.Header) *big.Int {
return new(big.Int).SetUint64(params.InitialBaseFee)
}

parentGasTarget := parent.GasLimit / config.ElasticityMultiplier(parent.Number.Uint64()+1)
parentGasTarget := parent.GasLimit / config.GetAstriaForks().ElasticityMultiplierAt(parent.Number.Uint64()+1)
// If the parent gasUsed is the same as the target, the baseFee remains unchanged.
if parent.GasUsed == parentGasTarget {
return new(big.Int).Set(parent.BaseFee)
Expand All @@ -77,7 +77,7 @@ func CalcBaseFee(config *params.ChainConfig, parent *types.Header) *big.Int {
num.SetUint64(parent.GasUsed - parentGasTarget)
num.Mul(num, parent.BaseFee)
num.Div(num, denom.SetUint64(parentGasTarget))
num.Div(num, denom.SetUint64(config.BaseFeeChangeDenominator(parent.Number.Uint64()+1)))
num.Div(num, denom.SetUint64(config.GetAstriaForks().BaseFeeChangeDenominatorAt(parent.Number.Uint64()+1)))
baseFeeDelta := math.BigMax(num, common.Big1)

return num.Add(parent.BaseFee, baseFeeDelta)
Expand All @@ -87,13 +87,10 @@ func CalcBaseFee(config *params.ChainConfig, parent *types.Header) *big.Int {
num.SetUint64(parentGasTarget - parent.GasUsed)
num.Mul(num, parent.BaseFee)
num.Div(num, denom.SetUint64(parentGasTarget))
num.Div(num, denom.SetUint64(config.BaseFeeChangeDenominator(parent.Number.Uint64()+1)))
num.Div(num, denom.SetUint64(config.GetAstriaForks().BaseFeeChangeDenominatorAt(parent.Number.Uint64()+1)))
baseFee := num.Sub(parent.BaseFee, num)

lowerBound := common.Big0
if config.AstriaEIP1559Params != nil {
lowerBound = config.AstriaEIP1559Params.MinBaseFeeAt(parent.Number.Uint64() + 1)
}
lowerBound := config.GetAstriaForks().MinBaseFeeAt(parent.Number.Uint64() + 1)

return math.BigMax(baseFee, lowerBound)
}
Expand Down
2 changes: 1 addition & 1 deletion core/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, genesis *Genesis
bc.currentBlock.Store(bc.genesisBlock.Header())
bc.currentFinalBlock.Store(bc.genesisBlock.Header())
bc.currentSafeBlock.Store(bc.genesisBlock.Header())
bc.currentBaseCelestiaHeight.Store(bc.Config().AstriaCelestiaInitialHeight)
bc.currentBaseCelestiaHeight.Store(bc.Config().GetAstriaForks().GetForkAtHeight(1).Celestia.StartHeight)

// Update chain info data metrics
chainInfoGauge.Update(metrics.GaugeInfoValue{"chain_id": bc.chainConfig.ChainID.String()})
Expand Down
4 changes: 2 additions & 2 deletions core/chain_makers.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ func (b *BlockGen) AddUncle(h *types.Header) {
if b.cm.config.IsLondon(h.Number) {
h.BaseFee = eip1559.CalcBaseFee(b.cm.config, parent)
if !b.cm.config.IsLondon(parent.Number) {
parentGasLimit := parent.GasLimit * b.cm.config.ElasticityMultiplier(parent.Number.Uint64())
parentGasLimit := parent.GasLimit * b.cm.config.GetAstriaForks().ElasticityMultiplierAt(parent.Number.Uint64())
h.GasLimit = CalcGasLimit(parentGasLimit, parentGasLimit)
}
}
Expand Down Expand Up @@ -540,7 +540,7 @@ func (cm *chainMaker) makeHeader(parent *types.Block, state *state.StateDB, engi
if cm.config.IsLondon(header.Number) {
header.BaseFee = eip1559.CalcBaseFee(cm.config, parent.Header())
if !cm.config.IsLondon(parent.Number()) {
parentGasLimit := parent.GasLimit() * cm.config.ElasticityMultiplier(parent.Number().Uint64())
parentGasLimit := parent.GasLimit() * cm.config.GetAstriaForks().ElasticityMultiplierAt(parent.Number().Uint64())
header.GasLimit = CalcGasLimit(parentGasLimit, parentGasLimit)
}
}
Expand Down
2 changes: 1 addition & 1 deletion core/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ func (g *Genesis) ToBlock() *types.Block {

extraData := g.ExtraData
if g.Config.AstriaOverrideGenesisExtraData {
extraData = g.Config.AstriaExtraData()
extraData = g.Config.AstriaExtraData(1)
}

head := &types.Header{
Expand Down
2 changes: 1 addition & 1 deletion core/vm/evm.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ func NewEVM(blockCtx BlockContext, txCtx TxContext, statedb StateDB, chainConfig

// Set up precompiles
evm.precompileManager = NewPrecompileManager(evm)
evm.precompileManager.RegisterMap(pconfig.PrecompileConfig(chainConfig, blockCtx.BlockNumber.Uint64(), blockCtx.Time))
evm.precompileManager.RegisterMap(pconfig.GetPrecompiles(chainConfig, blockCtx.BlockNumber.Uint64(), blockCtx.Time))

return evm
}
Expand Down
27 changes: 16 additions & 11 deletions dev/geth-genesis-local.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,22 @@
"ethash": {},
"astriaRollupName": "astria-test-chain-1",
"astriaOverrideGenesisExtraData": true,
"astriaSequencerInitialHeight": 2,
"astriaSequencerAddressPrefix": "astria",
"astriaCelestiaInitialHeight": 2,
"astriaCelestiaHeightVariance": 10,
"astriaBridgeAddresses": [],
"astriaBridgeSenderAddress": "0x0000000000000000000000000000000000000000",
"astriaFeeCollectors": {
"1": "0xaC21B97d35Bf75A7dAb16f35b111a50e78A72F30"
},
"astriaEIP1559Params": {
"1": { "minBaseFee": 0, "elasticityMultiplier": 2, "BaseFeeChangeDenominator": 8 }
"astriaForks": {
"testLaunch": {
"height": 1,
"feeCollector": "0xaC21B97d35Bf75A7dAb16f35b111a50e78A72F30",
"eip1559Params": { "minBaseFee": 0, "elasticityMultiplier": 2, "baseFeeChangeDenominator": 8 },
"sequencer": {
"chainId": "sequencer-test-chain-0",
"addressPrefix": "astria",
"startHeight": 2
},
"celestia": {
"chainId": "mocha-4",
"startHeight": 2,
"searchHeightMaxLookAhead": 10
}
}
}
},
"difficulty": "10000000",
Expand Down
1 change: 0 additions & 1 deletion eth/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) {
}

eth.miner = miner.New(eth, config.Miner, eth.engine)
eth.miner.SetExtra(chainConfig.AstriaExtraData())

eth.APIBackend = &EthAPIBackend{stack.Config().ExtRPCEnabled(), stack.Config().AllowUnprotectedTxs, eth, nil}
if eth.APIBackend.allowUnprotectedTxs {
Expand Down
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module github.com/ethereum/go-ethereum
go 1.21

require (
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20241017141511-7e4bcc0ebba5.1
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.35.1-20241017141511-7e4bcc0ebba5.1
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.35.1-20240911152449-eeebd3decdce.1
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.35.1-20241017141511-71aab1871615.1
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20250226175104-f767d74e0c4b.2
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-20250226175104-f767d74e0c4b.1
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.36.5-20240911152449-eeebd3decdce.1
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-20241119063831-ef9b9e094edb.1
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0
github.com/Microsoft/go-winio v0.6.1
github.com/VictoriaMetrics/fastcache v1.12.1
Expand Down Expand Up @@ -79,7 +79,7 @@ require (
golang.org/x/time v0.5.0
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d
google.golang.org/grpc v1.64.1
google.golang.org/protobuf v1.35.1
google.golang.org/protobuf v1.36.5
gopkg.in/natefinch/lumberjack.v2 v2.0.0
gopkg.in/yaml.v3 v3.0.1
)
Expand Down
34 changes: 24 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20241017141511-7e4bcc0ebba5.1 h1:v7QnrDjNmG7I/0aqZdtlP3cBPQGd62w4AYVF8TfAcHM=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20241017141511-7e4bcc0ebba5.1/go.mod h1:T5EsLvEE5UMk62gVSwNY/7XlxknAP3sL8tYRsU68b4s=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.35.1-20241017141511-7e4bcc0ebba5.1 h1:3G2O21DuY5Y/G32tP1mAI16AxwDYTscG2YaOb/WQty0=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.35.1-20241017141511-7e4bcc0ebba5.1/go.mod h1:U4LUlabiYNYBd1pqYS9o8SsHjBRoEBysrfRVnebzJH0=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.35.1-20240911152449-eeebd3decdce.1 h1:kG4riHqlF9X6iZ1Oxs5/6ul6aue7MS+A6DK6HAchuTk=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.35.1-20240911152449-eeebd3decdce.1/go.mod h1:n9L7X3VAj4od4VHf2ScJuHARUUQTSxJqtRHZk/7Ptt0=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.35.1-20241017141511-71aab1871615.1 h1:hPMoxTiT7jJjnIbWqneBbL05VeVOTD9UeC/qdvzHL8g=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.35.1-20241017141511-71aab1871615.1/go.mod h1:2uasRFMH+a3DaF34c1o+w7/YtYnoknmARyYpb9W2QIc=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-00000000000000-000acc99835d.2 h1:4/8fPnl5TMRTMVFLYbbV6ydF2iHVHAne59g8n7Gc5HE=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-00000000000000-000acc99835d.2/go.mod h1:0hRaAtELfUy1TJRk8xC0NrRAfYnWz8n9Oxi0+tmiTDE=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-00000000000000-38df36d65d40.2 h1:S/ekPP+TVZGxT9vm2u0OvvmA+ng1Fczi3mJwq320Wkk=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-00000000000000-38df36d65d40.2/go.mod h1:E6LpLVbNfib51EIhJ3HfkZljhrAS16jgkyAODe7qG90=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20250226175104-f767d74e0c4b.2 h1:vYvjOfLm3pTUs2Ax5Mwdr5FRIDlHgkybX18zIQQjsRE=
buf.build/gen/go/astria/execution-apis/grpc/go v1.5.1-20250226175104-f767d74e0c4b.2/go.mod h1:pPz4yIKymVyJydPAabgDpSSrMJrDgRNP3SPJ9/r4OrY=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-00000000000000-000acc99835d.1 h1:H59mAQwZWpL09jtRy8X1ZiIVHT8xy78E/G9MqK2U8oI=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-00000000000000-000acc99835d.1/go.mod h1:qRn+inLSaOctJRFezWQNhWVtJUD+v92SqW7wBcIAraQ=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-00000000000000-38df36d65d40.1 h1:ahL5zKQmUHuwLu2EdDagzSmftZ8gbR3refGAaI0fG2c=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-00000000000000-38df36d65d40.1/go.mod h1:3xoZizCqbe2u23E0HMvNaDgwPAwY+MLsp4Sv29xCIrI=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-20250226175104-f767d74e0c4b.1 h1:OyJWVmXDjkUHBOWb6QEVEHN1XSz2jtTaYfQeE0l62Oo=
buf.build/gen/go/astria/execution-apis/protocolbuffers/go v1.36.5-20250226175104-f767d74e0c4b.1/go.mod h1:GN0tQ/QFTGpUk0QBJGnRndF1qBMvFIEJ9Ng4qzvCXE8=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.36.5-00000000000000-43fac4060faa.1 h1:+ujbh3s70Q8Ol38rh4ypZU0K24xUExjOri28WBRvYRs=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.36.5-00000000000000-43fac4060faa.1/go.mod h1:1Yy42OW1qdHTCWq9sfiJD8ZJCRqEL6xc2fBppEyNF0k=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.36.5-20240911152449-eeebd3decdce.1 h1:u/+bxYTPNFvhSZN1lCirgi8qlkw6Df+FNAksJcLCxkA=
buf.build/gen/go/astria/primitives/protocolbuffers/go v1.36.5-20240911152449-eeebd3decdce.1/go.mod h1:1Yy42OW1qdHTCWq9sfiJD8ZJCRqEL6xc2fBppEyNF0k=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-00000000000000-460c09199479.1 h1:4DIdccREjdKMiTaNTGBqf4CyuNjJInwYh3MFyCjR3hI=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-00000000000000-460c09199479.1/go.mod h1:oJ5ZsJPnuwq8FTAB2/C107jxbKUmOOJvpXvjUE4fAN0=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-00000000000000-91f03f3d1e08.1 h1:40Y5ddNhF3UiJJ7KNTEH8lrE2wcBOV6n1JSzURURibU=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-00000000000000-91f03f3d1e08.1/go.mod h1:sjc7wnoIKhrBmAM3CeqHApXDzopsmJ8hy4sqxRC0eEA=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-20241119063831-ef9b9e094edb.1 h1:/YPfFjbtCdnGuMvct9Dede45Po0pF1pt15cXvZHM7GU=
buf.build/gen/go/astria/sequencerblock-apis/protocolbuffers/go v1.36.5-20241119063831-ef9b9e094edb.1/go.mod h1:RnnqjqOvpAqIWEIGQrsBcYQ7FxV8e6Y7w0nNVVz3cjY=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
Expand Down Expand Up @@ -895,8 +909,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
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.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
Loading
Loading