Skip to content
This repository has been archived by the owner on Jun 9, 2024. It is now read-only.

chore: Fix Module Accounts for Precompile Contracts #653

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions cosmos/precompile/auth/auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (
cosmlib "pkg.berachain.dev/polaris/cosmos/lib"
"pkg.berachain.dev/polaris/cosmos/precompile"
"pkg.berachain.dev/polaris/cosmos/precompile/auth"
"pkg.berachain.dev/polaris/cosmos/runtime/config"
"pkg.berachain.dev/polaris/eth/accounts/abi"
"pkg.berachain.dev/polaris/eth/common"
"pkg.berachain.dev/polaris/lib/utils"
Expand All @@ -48,6 +49,7 @@ var _ = Describe("Address Precompile", func() {
var contract *auth.Contract

BeforeEach(func() {
config.SetupCosmosConfig()
contract = utils.MustGetAs[*auth.Contract](auth.NewPrecompileContract())
})

Expand Down
4 changes: 3 additions & 1 deletion cosmos/precompile/distribution/distribution.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ import (
"math/big"

sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types"

generated "pkg.berachain.dev/polaris/contracts/bindings/cosmos/precompile"
cosmlib "pkg.berachain.dev/polaris/cosmos/lib"
"pkg.berachain.dev/polaris/cosmos/precompile"
"pkg.berachain.dev/polaris/cosmos/x/evm/plugins/precompile/log"
"pkg.berachain.dev/polaris/eth/common"
Expand All @@ -50,7 +52,7 @@ func NewPrecompileContract(
return &Contract{
BaseContract: ethprecompile.NewBaseContract(
generated.DistributionModuleMetaData.ABI,
common.BytesToAddress([]byte{0x69}),
cosmlib.AccAddressToEthAddress(authtypes.NewModuleAddress(distributiontypes.ModuleName)),
),
msgServer: m,
querier: q,
Expand Down
8 changes: 4 additions & 4 deletions cosmos/precompile/erc20/erc20.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"math/big"

sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"

cpbindings "pkg.berachain.dev/polaris/contracts/bindings/cosmos/precompile"
pbindings "pkg.berachain.dev/polaris/contracts/bindings/polaris"
Expand Down Expand Up @@ -53,10 +54,9 @@ func NewPrecompileContract(bk cosmlib.BankKeeper, em ERC20Module) ethprecompile.
return &Contract{
BaseContract: ethprecompile.NewBaseContract(
cpbindings.ERC20ModuleMetaData.ABI,
// cosmlib.AccAddressToEthAddress(
// authtypes.NewModuleAddress(erc20types.ModuleName),
// ),
common.HexToAddress("0x696969"), // TODO: module addresses are broken
cosmlib.AccAddressToEthAddress(
authtypes.NewModuleAddress(erc20types.ModuleName),
),
),
bk: bk,
em: em,
Expand Down
1 change: 1 addition & 0 deletions cosmos/runtime/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ import (
evmmempool "pkg.berachain.dev/polaris/cosmos/x/evm/plugins/txpool/mempool"

_ "embed"

_ "github.com/cosmos/cosmos-sdk/x/auth/tx/config" // import for side-effects
)

Expand Down
1 change: 1 addition & 0 deletions cosmos/runtime/baseapp/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ func (app *PolarisBaseApp) PrepForZeroHeightGenesis(ctx sdk.Context, jailAllowed
// donate any unwithdrawn outstanding reward fraction tokens to the community pool
scraps := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, val.GetOperator())
feePool := app.DistrKeeper.GetFeePool(ctx)

feePool.CommunityPool = feePool.CommunityPool.Add(scraps...)
app.DistrKeeper.SetFeePool(ctx, feePool)

Expand Down
12 changes: 12 additions & 0 deletions cosmos/runtime/localnode/init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
# TITLE.


PRECOMPILES[0]="staking" # "polar1mx5e3jkxvzf8frl7cl8m69264ctn0shlz6zxjx" # staking
PRECOMPILES[1]="bank" # "polar1gwqac243g2z3vryqsev6acq965f9ttwhjgk226" # bank
PRECOMPILES[2]="gov" # "polar10d07y265gmmuvt4z0w9aw880jnsr700j33u8zp" # governance
PRECOMPILES[3]="auth" # "polar1hh6fc0pcsggzlsqhl7mxzyyvvw5rd5r9vff2ea" # auth
PRECOMPILES[4]="distribution" # "polar1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8vvt7ad" # distribution
PRECOMPILES[5]="erc20" # "polar1glht96kr2rseywuvhhay894qw7ekuc4qphuca5" # erc20

KEYS[0]="dev0"
KEYS[1]="dev1"
KEYS[2]="dev2"
Expand Down Expand Up @@ -99,6 +106,11 @@ if [[ $overwrite == "y" || $overwrite == "Y" ]]; then
# 0xfffdbb37105441e14b0ee6330d855d8504ff39e705c3afa8f859ac9865f99306
./bin/polard genesis add-genesis-account polar1yrene6g2zwjttemf0c65fscg8w8c55w5vhc9hd 69000000000000000000000000abera --keyring-backend $KEYRING --home "$HOMEDIR"

## Fund all precompile addresses with 1abera (https://ethereum.stackexchange.com/questions/68056/puppeth-precompile-addresses)
for PRECOMPILE in "${PRECOMPILES[@]}"; do
./bin/polard genesis add-genesis-account $PRECOMPILE 1abera --keyring-backend $KEYRING --home "$HOMEDIR" --module-name $PRECOMPILE
done

# Sign genesis transaction
./bin/polard genesis gentx ${KEYS[0]} 1000000000000000000000abera --keyring-backend $KEYRING --chain-id $CHAINID --home "$HOMEDIR"
## In case you want to create multiple validators at genesis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ import (
"testing"

sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"

bindings "pkg.berachain.dev/polaris/contracts/bindings/cosmos/precompile"
tbindings "pkg.berachain.dev/polaris/contracts/bindings/testing"
Expand Down Expand Up @@ -54,12 +57,14 @@ var _ = SynchronizedBeforeSuite(func() []byte {
tf = integration.NewTestFixture(GinkgoT())
// Setup the governance precompile.
precompile, _ = bindings.NewDistributionModule(
common.HexToAddress("0x69"),
cosmlib.AccAddressToEthAddress(authtypes.NewModuleAddress(distributiontypes.ModuleName)),
tf.EthClient,
)
// Setup the staking precompile.
stakingPrecompile, _ = bindings.NewStakingModule(
common.HexToAddress("0xd9A998CaC66092748FfEc7cFBD155Aae1737C2fF"), tf.EthClient)
cosmlib.AccAddressToEthAddress(authtypes.NewModuleAddress(stakingtypes.ModuleName)),
tf.EthClient,
)
// Set the validator address.
validator = common.Address(tf.Network.Validators[0].Address.Bytes())
return nil
Expand Down
14 changes: 8 additions & 6 deletions cosmos/testing/integration/precompile/erc20/erc20_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,16 @@ import (
"math/big"
"testing"

"github.com/ethereum/go-ethereum/common"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"

bindings "pkg.berachain.dev/polaris/contracts/bindings/cosmos/precompile"
pbindings "pkg.berachain.dev/polaris/contracts/bindings/polaris"
tbindings "pkg.berachain.dev/polaris/contracts/bindings/testing"
cosmlib "pkg.berachain.dev/polaris/cosmos/lib"
"pkg.berachain.dev/polaris/cosmos/testing/integration"
erc20types "pkg.berachain.dev/polaris/cosmos/x/erc20/types"
"pkg.berachain.dev/polaris/eth/common"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
Expand All @@ -47,17 +49,17 @@ var (
tf *integration.TestFixture
erc20Precompile *bindings.ERC20Module
bankPrecompile *bindings.BankModule
erc20ModuleAddress = common.HexToAddress("0x696969")
// cosmlib.AccAddressToEthAddress(
// authtypes.NewModuleAddress(erc20types.ModuleName),
// ).
erc20ModuleAddress = cosmlib.AccAddressToEthAddress(
authtypes.NewModuleAddress(erc20types.ModuleName),
)
)

var _ = SynchronizedBeforeSuite(func() []byte {
// Setup the network and clients here.
tf = integration.NewTestFixture(GinkgoT())
bankPrecompile, _ = bindings.NewBankModule(
common.HexToAddress("0x4381dC2aB14285160c808659aEe005D51255adD7"), tf.EthClient,
cosmlib.AccAddressToEthAddress(authtypes.NewModuleAddress(banktypes.ModuleName)),
tf.EthClient,
)
erc20Precompile, _ = bindings.NewERC20Module(erc20ModuleAddress, tf.EthClient)
return nil
Expand Down
5 changes: 2 additions & 3 deletions docs/web/pages/docs/precompile-cosmos-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ A Stateful Precompile is a precompiled contract that can alter chain state.
| Precompile Contract | Contract Address | Solidity Interface | Associated Module |
| :----------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------- |
| Staking Precompile | `0xd9A998CaC66092748FfEc7cFBD155Aae1737C2fF` | [staking.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/staking.sol) | [Staking Module](https://docs.cosmos.network/v0.47/modules/staking) |
| Multicall Precompile | Coming soon | [multicall.sol]() | [Ethereum Multicall](https://github.com/mds1/multicall) |
| Bank Precompile | `0x4381dC2aB14285160c808659aEe005D51255adD7` | [bank.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/bank.sol) | [Bank Module](https://docs.cosmos.network/v0.47/modules/bank) |
| IBC Precompile | Coming soon | [ibc.sol]() | [IBC](https://ibc.cosmos.network/) |
| Governance Module Precompile | `0x7b5Fe22B5446f7C62Ea27B8BD71CeF94e03f3dF2` | [governance.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/governance.sol) | [Governance Module](https://docs.cosmos.network/v0.47/modules/gov) |
| Auth Module Precompile | `0xBDF49C3C3882102fc017FFb661108c63a836D065` | [address.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/auth.sol) | [Auth Module](https://docs.cosmos.network/main/modules/auth) |
| Distribution Module Precompile | `0x0000000000000000000000000000000000000069` | [distribution.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/distribution.sol) | [Distribution Module](https://docs.cosmos.network/v0.47/modules/distribution) |
| ERC20 Module Precompile | `0x0000000000000000000000000000000000696969` | [erc20.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/erc20.sol) | [ERC20 Module](./erc20-middleware) |
| Distribution Module Precompile | `0x93354845030274cD4bf1686Abd60AB28EC52e1a7` | [distribution.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/distribution.sol) | [Distribution Module](https://docs.cosmos.network/v0.47/modules/distribution) |
| ERC20 Module Precompile | `0x47EeB2eac350E1923b8CBDfA4396A077b36E62a0` | [erc20.sol](https://github.com/berachain/polaris/blob/main/contracts/src/cosmos/precompile/erc20.sol) | [ERC20 Module](./erc20-middleware) |

## Stateful Precompile ABI Generation

Expand Down
34 changes: 32 additions & 2 deletions go.work.sum
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,18 @@ cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72
cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng=
cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw=
contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc=
cosmossdk.io/api v0.4.1-0.20230423204932-f0018246f107 h1:S1rjKqH6vh2AyaVtkhQBitpnPjv2hU6INTp/rLGNkus=
cosmossdk.io/api v0.4.1-0.20230423204932-f0018246f107/go.mod h1:jR7k5ok90LxW2lFUXvd8Vpo/dr4PpiyVegxdm7b1ZdE=
cosmossdk.io/core v0.6.1 h1:OBy7TI2W+/gyn2z40vVvruK3di+cAluinA6cybFbE7s=
cosmossdk.io/core v0.6.1/go.mod h1:g3MMBCBXtxbDWBURDVnJE7XML4BG5qENhs0gzkcpuFA=
cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w=
cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE=
cosmossdk.io/log v1.0.0 h1:NGKZ/A5rd4PduDfoscgABklX557PWjQINbosZy/m3Jk=
cosmossdk.io/log v1.0.0/go.mod h1:CwX9BLiBruZb7lzLlRr3R231d/fVPUXk8gAdV4LQap0=
cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc h1:9piuA+NYmhe+SyMPtMoboLw/djgDbrI3dD5TG020Tnk=
cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc/go.mod h1:UFF5rmjN7WYVfxo6ArdY/l1+yyWMURBWOmSJypGqFHQ=
cosmossdk.io/x/tx v0.5.5 h1:9XG3KOrqObt7Rw7KhT7fiqRd6EepUfmA9ERa8CHj1WM=
cosmossdk.io/x/tx v0.5.5/go.mod h1:Oh3Kh+IPOfMEILNxVd2e8SLqRrIjYHpdGBfDg4ghU/k=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
github.com/Abirdcfly/dupword v0.0.7/go.mod h1:K/4M1kj+Zh39d2aotRwypvasonOyAMH1c/IZJzE0dmk=
Expand Down Expand Up @@ -181,8 +193,10 @@ github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi
github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/berachain/polaris-geth v0.0.0-20230425211649-bf6ba6cc2df6 h1:RwXAVUBO1Q+ocDstB59UjlpWXrhcVuxMQsW5SBXe6ZI=
github.com/berachain/polaris-geth v0.0.0-20230425211649-bf6ba6cc2df6/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo=
github.com/berachain/cosmos-sdk/core v0.3.5-0.20230505182650-75abb1b42e42/go.mod h1:5EdKhmeOVhUk4breDcuzf5QWv7jBbYNKSDqgbWb4/cI=
github.com/berachain/cosmos-sdk/x/evidence v0.0.0-20230505182650-75abb1b42e42/go.mod h1:PHPkbm0LF/TG1qG7x6KCiA99FSt6Io0drbcI2xFuwro=
github.com/bits-and-blooms/bitset v1.6.0 h1:FVfaUsleKAUTJnaN9Fd1YFFi1S8vAX5xeXnXHFYOojM=
github.com/bits-and-blooms/bitset v1.6.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
Expand Down Expand Up @@ -214,6 +228,10 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9
github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0=
github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ=
github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664 h1:BbCkbnaU3R603XpnbqvuDU8Kfv+hjhiFILOHhVFntsw=
github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs=
github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4=
github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak=
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
github.com/containerd/containerd v1.6.8/go.mod h1:By6p5KqPK0/7/CgO/A6t/Gz+CUYUu2zf1hUaaymVXB0=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
Expand All @@ -226,8 +244,18 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV
github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/cosmos-db v0.0.0-20220822060143-23a8145386c0/go.mod h1:n5af5ISKZ7tP0q9hP1TW6MnWh7GrVrNfCLZhg+22gzg=
github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230423204932-f0018246f107 h1:QnI7yhZo5NyMle8RessfmwDHiQm2zZfHREEq3Vhn5C8=
github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230423204932-f0018246f107/go.mod h1:N+cepvNkDMAMcQsJTuo/219pW2PhaZVrVYAAZlFvXmc=
github.com/cosmos/cosmos-sdk/x/evidence v0.0.0-20230423204932-f0018246f107 h1:mARRQ7dfD6UUKssS/rCg6CnE2w4wggGtAwOuVm9d1go=
github.com/cosmos/cosmos-sdk/x/evidence v0.0.0-20230423204932-f0018246f107/go.mod h1:LAmyQCN/EGliVmsrXKq1a2qcLI05WJdrmGoysjZRp3Q=
github.com/cosmos/cosmos-sdk/x/feegrant v0.0.0-20230423204932-f0018246f107 h1:116PaXiRu2RCqnhRJ7Z+n3xepNGywvA2rpXKvuJw8eY=
github.com/cosmos/cosmos-sdk/x/feegrant v0.0.0-20230423204932-f0018246f107/go.mod h1:nBDO1xfHfgaHj0ZmEu8h4+flvoXcUtiW32g/GDa4NhA=
github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q9p+LoCr4=
github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU=
github.com/cosmos/gogoproto v1.4.8 h1:BrHKc6WFZt8+jRV71vKSQE+JrfF+JAnzrKo2VP7wIZ4=
github.com/cosmos/gogoproto v1.4.8/go.mod h1:hnb0DIEWTv+wdNzNcqus5xCQXq5+CXauq1FJuurRfVY=
github.com/cosmos/iavl v0.21.0-beta.1 h1:fBQeBc8HLZ14plJNcmGfaOXSSMLVEHvEQXiTXSD76m0=
github.com/cosmos/iavl v0.21.0-beta.1/go.mod h1:25YJYzilTErJ2mKfNB3xyWL9IsCwEQdNzdIutg2mh3U=
github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
Expand Down Expand Up @@ -810,4 +838,6 @@ gotest.tools/v3 v3.2.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A=
honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw=
mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk=
pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=