Skip to content
Merged
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
33 changes: 17 additions & 16 deletions core/types/data_blob.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"fmt"
"io"

"github.com/crate-crypto/go-proto-danksharding-crypto/serialization"
gokzg4844 "github.com/crate-crypto/go-kzg-4844"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/crypto/kzg"
Expand Down Expand Up @@ -51,7 +51,7 @@ func (p *KZGCommitment) UnmarshalText(text []byte) error {
}

func (c KZGCommitment) ComputeVersionedHash() common.Hash {
return common.Hash(kzg.KZGToVersionedHash(serialization.KZGCommitment(c)))
return common.Hash(kzg.KZGToVersionedHash(gokzg4844.KZGCommitment(c)))
}

// Compressed BLS12-381 G1 element
Expand Down Expand Up @@ -267,41 +267,41 @@ func (blobs Blobs) ComputeCommitmentsAndProofs() (commitments []KZGCommitment, v

cryptoCtx := kzg.CrpytoCtx()
for i, blob := range blobs {
commitment, err := cryptoCtx.BlobToKZGCommitment(serialization.Blob(blob))
commitment, err := cryptoCtx.BlobToKZGCommitment(gokzg4844.Blob(blob))
if err != nil {
return nil, nil, nil, fmt.Errorf("could not convert blob to commitment: %v", err)
}

proof, err := cryptoCtx.ComputeBlobKZGProof(serialization.Blob(blob), commitment)
proof, err := cryptoCtx.ComputeBlobKZGProof(gokzg4844.Blob(blob), commitment)
if err != nil {
return nil, nil, nil, fmt.Errorf("could not compute proof for blob: %v", err)
}
commitments[i] = KZGCommitment(commitment)
proofs[i] = KZGProof(proof)
versionedHashes[i] = common.Hash(kzg.KZGToVersionedHash(serialization.KZGCommitment(commitment)))
versionedHashes[i] = common.Hash(kzg.KZGToVersionedHash(gokzg4844.KZGCommitment(commitment)))
}

return commitments, versionedHashes, proofs, nil
}

func toBlobs(_blobs Blobs) []serialization.Blob {
blobs := make([]serialization.Blob, len(_blobs))
func toBlobs(_blobs Blobs) []gokzg4844.Blob {
blobs := make([]gokzg4844.Blob, len(_blobs))
for i, _blob := range _blobs {
blobs[i] = serialization.Blob(_blob)
blobs[i] = gokzg4844.Blob(_blob)
}
return blobs
}
func toComms(_comms BlobKzgs) []serialization.KZGCommitment {
comms := make([]serialization.KZGCommitment, len(_comms))
func toComms(_comms BlobKzgs) []gokzg4844.KZGCommitment {
comms := make([]gokzg4844.KZGCommitment, len(_comms))
for i, _comm := range _comms {
comms[i] = serialization.KZGCommitment(_comm)
comms[i] = gokzg4844.KZGCommitment(_comm)
}
return comms
}
func toProofs(_proofs KZGProofs) []serialization.KZGProof {
proofs := make([]serialization.KZGProof, len(_proofs))
func toProofs(_proofs KZGProofs) []gokzg4844.KZGProof {
proofs := make([]gokzg4844.KZGProof, len(_proofs))
for i, _proof := range _proofs {
proofs[i] = serialization.KZGProof(_proof)
proofs[i] = gokzg4844.KZGProof(_proof)
}
return proofs
}
Expand Down Expand Up @@ -349,8 +349,9 @@ func (b *BlobTxWrapData) validateBlobTransactionWrapper(inner TxData) error {
l1 := len(b.BlobKzgs)
l2 := len(blobTx.Message.BlobVersionedHashes)
l3 := len(b.Blobs)
if l1 != l2 || l2 != l3 {
return fmt.Errorf("lengths don't match %v %v %v", l1, l2, l3)
l4 := len(b.Proofs)
if l1 != l2 || l1 != l3 || l1 != l4 {
return fmt.Errorf("lengths don't match %v %v %v %v", l1, l2, l3, l4)
}
// the following check isn't strictly necessary as it would be caught by data gas processing
// (and hence it is not explicitly in the spec for this function), but it doesn't hurt to fail
Expand Down
30 changes: 12 additions & 18 deletions core/types/transaction_signing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"math/big"
"testing"

"github.com/crate-crypto/go-proto-danksharding-crypto/api"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/rlp"
Expand Down Expand Up @@ -85,23 +84,18 @@ func TestEIP4844Signing(t *testing.T) {
addr := crypto.PubkeyToAddress(key.PublicKey)

signer := NewDankSigner(big.NewInt(18))
txdata := &SignedBlobTx{
Message: BlobTxMessage{
Nonce: view.Uint64View(0),
Gas: view.Uint64View(123457),
To: AddressOptionalSSZ{Address: (*AddressSSZ)(&addr)},
GasTipCap: view.Uint256View(*uint256.NewInt(42)),
GasFeeCap: view.Uint256View(*uint256.NewInt(10)),
MaxFeePerDataGas: view.Uint256View(*uint256.NewInt(10)),
Value: view.Uint256View(*uint256.NewInt(10)),
BlobVersionedHashes: VersionedHashesView{common.HexToHash("0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014")},
},
}
wrapData := &BlobTxWrapData{
BlobKzgs: BlobKzgs{KZGCommitment{0: 0xc0}},
Blobs: Blobs{Blob{}},
Proofs: KZGProofs{api.ZERO_POINT},
}
msg := BlobTxMessage{
Nonce: view.Uint64View(0),
Gas: view.Uint64View(123457),
To: AddressOptionalSSZ{Address: (*AddressSSZ)(&addr)},
GasTipCap: view.Uint256View(*uint256.NewInt(42)),
GasFeeCap: view.Uint256View(*uint256.NewInt(10)),
MaxFeePerDataGas: view.Uint256View(*uint256.NewInt(10)),
Value: view.Uint256View(*uint256.NewInt(10)),
}
var wrapData TxWrapData
wrapData, msg.BlobVersionedHashes = oneEmptyBlobWrapData()
txdata := &SignedBlobTx{Message: msg}
tx := NewTx(txdata, WithTxWrapData(wrapData))
tx, err := SignTx(tx, signer, key)
if err != nil {
Expand Down
42 changes: 26 additions & 16 deletions core/types/transaction_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ import (
"testing"
"time"

"github.com/crate-crypto/go-proto-danksharding-crypto/api"
gokzg4844 "github.com/crate-crypto/go-kzg-4844"
"github.com/holiman/uint256"
"github.com/protolambda/ztyp/view"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto/kzg"
"github.com/ethereum/go-ethereum/rlp"
)

Expand Down Expand Up @@ -77,6 +78,21 @@ var (
)
)

// Returns a wrapper consisting of a single blob of all zeros that passes validation along with its
// versioned hash.
func oneEmptyBlobWrapData() (wrap *BlobTxWrapData, versionedHashes VersionedHashesView) {
cryptoCtx := kzg.CrpytoCtx()
blob := Blob{}
commitment, _ := cryptoCtx.BlobToKZGCommitment(gokzg4844.Blob(blob))
proof, _ := cryptoCtx.ComputeBlobKZGProof(gokzg4844.Blob(blob), commitment)
wrapData := &BlobTxWrapData{
BlobKzgs: BlobKzgs{KZGCommitment(commitment)},
Blobs: Blobs{Blob(blob)},
Proofs: KZGProofs{KZGProof(proof)},
}
return wrapData, VersionedHashesView{common.Hash(kzg.KZGToVersionedHash(gokzg4844.KZGCommitment(wrapData.BlobKzgs[0])))}
}

func TestDecodeEmptyTypedTx(t *testing.T) {
input := []byte{0x80}
var tx Transaction
Expand Down Expand Up @@ -482,22 +498,16 @@ func TestTransactionCoding(t *testing.T) {
AccessList: accesses,
}
case 6:
txdata = &SignedBlobTx{
Message: BlobTxMessage{
ChainID: view.Uint256View(*uint256.NewInt(1)),
Nonce: view.Uint64View(i),
Gas: view.Uint64View(123457),
GasTipCap: view.Uint256View(*uint256.NewInt(42)),
GasFeeCap: view.Uint256View(*uint256.NewInt(10)),
AccessList: AccessListView(accesses),
BlobVersionedHashes: VersionedHashesView{common.HexToHash("0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014")},
},
}
wrapData = &BlobTxWrapData{
BlobKzgs: BlobKzgs{KZGCommitment{0: 0xc0}},
Blobs: Blobs{Blob{}},
Proofs: KZGProofs{api.ZERO_POINT},
msg := BlobTxMessage{
ChainID: view.Uint256View(*uint256.NewInt(1)),
Nonce: view.Uint64View(i),
Gas: view.Uint64View(123457),
GasTipCap: view.Uint256View(*uint256.NewInt(42)),
GasFeeCap: view.Uint256View(*uint256.NewInt(10)),
AccessList: AccessListView(accesses),
}
wrapData, msg.BlobVersionedHashes = oneEmptyBlobWrapData()
txdata = &SignedBlobTx{Message: msg}
}
tx, err := SignNewTx(key, signer, txdata, WithTxWrapData(wrapData))
if err != nil {
Expand Down
27 changes: 13 additions & 14 deletions crypto/kzg/kzg.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ import (
"math/big"
"sync"

"github.com/crate-crypto/go-proto-danksharding-crypto/api"
"github.com/crate-crypto/go-proto-danksharding-crypto/serialization"
gokzg4844 "github.com/crate-crypto/go-kzg-4844"
)

const (
Expand All @@ -23,8 +22,8 @@ type Slot uint64
type BlobsSidecar struct {
BeaconBlockRoot Root
BeaconBlockSlot Slot
Blobs []serialization.Blob
Proofs []serialization.KZGProof
Blobs []gokzg4844.Blob
Proofs []gokzg4844.KZGProof
}

const (
Expand All @@ -40,30 +39,30 @@ var (
// The value that gets returned when the `verify_kzg_proof“ precompile is called
var precompileReturnValue [64]byte

var gCryptoCtx api.Context
var gCryptoCtx gokzg4844.Context
var initCryptoCtx sync.Once

// InitializeCrypytoCtx initializes the global context object returned via CryptoCtx
func InitializeCrypytoCtx() {
initCryptoCtx.Do(func() {
// Initialize context to match the configurations that the
// specs are using.
ctx, err := api.NewContext4096Insecure1337()
ctx, err := gokzg4844.NewContext4096Insecure1337()
if err != nil {
panic(fmt.Sprintf("could not create context, err : %v", err))
}
gCryptoCtx = *ctx
// Initialize the precompile return value
new(big.Int).SetUint64(serialization.ScalarsPerBlob).FillBytes(precompileReturnValue[:32])
copy(precompileReturnValue[32:], api.MODULUS[:])
new(big.Int).SetUint64(gokzg4844.ScalarsPerBlob).FillBytes(precompileReturnValue[:32])
copy(precompileReturnValue[32:], gokzg4844.BlsModulus[:])
})
}

// CryptoCtx returns a context object stores all of the necessary configurations
// to allow one to create and verify blob proofs.
// This function is expensive to run if the crypto context isn't initialized, so it is recommended to
// pre-initialize by calling InitializeCryptoCtx
func CrpytoCtx() api.Context {
func CrpytoCtx() gokzg4844.Context {
InitializeCrypytoCtx()
return gCryptoCtx
}
Expand All @@ -77,7 +76,7 @@ func PointEvaluationPrecompile(input []byte) ([]byte, error) {
var versionedHash [32]byte
copy(versionedHash[:], input[:32])

var x, y [32]byte
var x, y gokzg4844.Scalar
// Evaluation point: next 32 bytes
copy(x[:], input[32:64])
// Expected output: next 32 bytes
Expand All @@ -86,16 +85,16 @@ func PointEvaluationPrecompile(input []byte) ([]byte, error) {
// input kzg point: next 48 bytes
var dataKZG [48]byte
copy(dataKZG[:], input[96:144])
if KZGToVersionedHash(serialization.KZGCommitment(dataKZG)) != VersionedHash(versionedHash) {
if KZGToVersionedHash(gokzg4844.KZGCommitment(dataKZG)) != VersionedHash(versionedHash) {
return nil, errors.New("mismatched versioned hash")
}

// Quotient kzg: next 48 bytes
var quotientKZG [48]byte
var quotientKZG gokzg4844.KZGProof
copy(quotientKZG[:], input[144:PrecompileInputLength])

cryptoCtx := CrpytoCtx()
err := cryptoCtx.VerifyKZGProof(dataKZG, quotientKZG, x, y)
err := cryptoCtx.VerifyKZGProof(dataKZG, x, y, quotientKZG)
if err != nil {
return nil, fmt.Errorf("verify_kzg_proof error: %v", err)
}
Expand All @@ -106,7 +105,7 @@ func PointEvaluationPrecompile(input []byte) ([]byte, error) {
}

// KZGToVersionedHash implements kzg_to_versioned_hash from EIP-4844
func KZGToVersionedHash(kzg serialization.KZGCommitment) VersionedHash {
func KZGToVersionedHash(kzg gokzg4844.KZGCommitment) VersionedHash {
h := sha256.Sum256(kzg[:])
h[0] = BlobCommitmentVersionKZG

Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ require (
github.com/cespare/cp v0.1.0
github.com/cloudflare/cloudflare-go v0.14.0
github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811
github.com/consensys/gnark-crypto v0.9.1-0.20230105202408-1a7a29904a7c
github.com/consensys/gnark-crypto v0.10.0
github.com/crate-crypto/go-kzg-4844 v0.1.0
github.com/davecgh/go-spew v1.1.1
github.com/deckarep/golang-set/v2 v2.1.0
github.com/docker/docker v1.6.2
Expand Down Expand Up @@ -62,15 +63,13 @@ require (
golang.org/x/crypto v0.1.0
golang.org/x/exp v0.0.0-20230206171751-46f607a40771
golang.org/x/sync v0.1.0
golang.org/x/sys v0.5.0
golang.org/x/sys v0.6.0
golang.org/x/text v0.7.0
golang.org/x/time v0.0.0-20220922220347-f3bd1da661af
golang.org/x/tools v0.2.0
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce
)

require github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230325161441-829bf646183d

require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3 // indirect
Expand All @@ -82,6 +81,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 // indirect
github.com/aws/smithy-go v1.1.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.5.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/cockroachdb/errors v1.9.1 // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
Expand Down
22 changes: 8 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
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.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8=
github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k=
Expand Down Expand Up @@ -105,8 +107,8 @@ github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
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.9.1-0.20230105202408-1a7a29904a7c h1:llSLg4o9EgH3SrXky+Q5BqEYqV76NGKo07K5Ps2pIKo=
github.com/consensys/gnark-crypto v0.9.1-0.20230105202408-1a7a29904a7c/go.mod h1:CkbdF9hbRidRJYMRzmfX8TMOr95I2pYXRHF18MzRrvA=
github.com/consensys/gnark-crypto v0.10.0 h1:zRh22SR7o4K35SoNqouS9J/TKHTyU2QWaj5ldehyXtA=
github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
Expand All @@ -116,16 +118,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7 h1:6IrxszG5G+O7zhtkWxq6+unVvnrm1fqV2Pe+T95DUzw=
github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230312204821-9a244123c812 h1:fvpzeIO449sb44y2Nqd0MVziJHvp0OFCG66t3ZjuYqU=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230312204821-9a244123c812/go.mod h1:ZNzUrSnC7IXKtQWnROzWVfQSivVSCPkMtwXekLDj4qI=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322232037-070b0b94db8a h1:LWAQVosZamsfhvO14tfYNMluSHTWXF6AKa+9DmaK7Q0=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322232037-070b0b94db8a/go.mod h1:ZNzUrSnC7IXKtQWnROzWVfQSivVSCPkMtwXekLDj4qI=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322232628-fbbf54e10131 h1:/ZBvP82vNl+xWYfcAHewbjRkq1MS2l0DKyeIWO4wgME=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322232628-fbbf54e10131/go.mod h1:ZNzUrSnC7IXKtQWnROzWVfQSivVSCPkMtwXekLDj4qI=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322233247-22e22c6f68e6 h1:KguBkZjb4BXvSmVxjugrmJQyGjZqZHJfGHMmHgZn6ls=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230322233247-22e22c6f68e6/go.mod h1:ZNzUrSnC7IXKtQWnROzWVfQSivVSCPkMtwXekLDj4qI=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230325161441-829bf646183d h1:rFbq+iU1Evnzs//EjFY7bUcIn4+/gdczDfx+PSMmvTE=
github.com/crate-crypto/go-proto-danksharding-crypto v0.0.0-20230325161441-829bf646183d/go.mod h1:ZNzUrSnC7IXKtQWnROzWVfQSivVSCPkMtwXekLDj4qI=
github.com/crate-crypto/go-kzg-4844 v0.1.0 h1:2PXr2wKBNTmSsoYLCmaNg5Z6uQUf7LiUAsnDbTfq+0M=
github.com/crate-crypto/go-kzg-4844 v0.1.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
Expand Down Expand Up @@ -732,8 +726,8 @@ golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/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.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down