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

feat(promexporter): relayer balances #3016

Merged
merged 11 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from 10 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
17 changes: 10 additions & 7 deletions contrib/promexporter/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,32 @@ package config

import (
"fmt"
"os"
"path/filepath"

"github.com/creasty/defaults"
"github.com/jftuga/ellipsis"
"github.com/synapsecns/sanguine/contrib/promexporter/internal/types"
"gopkg.in/yaml.v2"
"os"
"path/filepath"
)

// Config contains the config for the prometheues exporter.
type Config struct {
// Port is the port of the config
Port int `yaml:"port"`
// DFKApiUrl is the url of the DFK API
DFKUrl string `yaml:"dfk_url" default:"https://defi-kingdoms-community-api-gateway-co06z8vi.uc.gateway.dev/graphql"`
DFKUrl string `default:"https://defi-kingdoms-community-api-gateway-co06z8vi.uc.gateway.dev/graphql" yaml:"dfk_url"`
// DFKPending is the list of pending heroes
DFKPending []DFKPending `yaml:"dfk_pending"`
// SubmitterChecks is the list of gas checks
SubmitterChecks []SubmitterChecks `yaml:"gas_checks"`
OmnirpcURL string `yaml:"omnirpc_url" default:"https://rpc.omnirpc.io"`
// map chainid->address
BridgeChecks map[int]string
// OmniRpcURL is the url of the omnirpc
OmnirpcURL string `default:"https://rpc.omnirpc.io" yaml:"omnirpc_url"`
// VpriceCheckTokens is the list of tokens to check vprice for
VpriceCheckTokens []string `yaml:"vprice_tokens"`
// RFQAPIURL is the url of the RFQ API
RFQAPIUrl string `default:"http://rfq-api.omnirpc.io/quotes" yaml:"rfq_api_url"`
// map chainid->address
BridgeChecks map[int]string
// BridgeConfig is the config for the bridge.
BridgeConfig BridgeConfig
// BatchCallLimit is the limit of batch calls
Expand Down
6 changes: 5 additions & 1 deletion contrib/promexporter/exporters/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,16 @@ func (e *exporter) recordMetrics(ctx context.Context) (err error) {
// nolint: cyclop
func (e *exporter) collectMetrics(ctx context.Context) error {
var errs []error

if err := e.fetchRelayerBalances(ctx, e.cfg.RFQAPIUrl); err != nil {
errs = append(errs, fmt.Errorf("could not fetch relayer balances: %w", err))
}
Comment on lines +124 to +127
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure test coverage for new error handling logic.

The error handling logic for fetching relayer balances in collectMetrics lacks test coverage. Consider adding tests to verify its behavior under different scenarios.

Would you like assistance in creating tests for this error handling logic?

Tools
GitHub Check: codecov/patch

[warning] 124-127: contrib/promexporter/exporters/exporter.go#L124-L127
Added lines #L124 - L127 were not covered by tests


if err := e.getTokenBalancesStats(ctx); err != nil {
errs = append(errs, fmt.Errorf("could not get token balances: %w", err))
}

// TODO: parallelize

for _, pending := range e.cfg.DFKPending {
if err := e.stuckHeroCountStats(ctx, common.HexToAddress(pending.Owner), pending.ChainName); err != nil {
errs = append(errs, fmt.Errorf("could not get stuck hero count: %w", err))
Expand Down
67 changes: 60 additions & 7 deletions contrib/promexporter/exporters/otel.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ type submitterMetadata struct {
balance float64
}

type relayerMetadata struct {
address common.Address
balance float64
}
Comment on lines +23 to +26
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for relayerMetadata.

The new relayerMetadata struct should be covered by tests to ensure its proper usage in the codebase.

Do you want me to generate test cases for this new struct or open a GitHub issue to track this task?


//go:generate go run github.com/vburenin/ifacemaker -f otel.go -s otelRecorder -i iOtelRecorder -p exporters -o otel_generated.go -c "autogenerated file"
type otelRecorder struct {
metrics metrics.Handler
Expand Down Expand Up @@ -48,19 +53,24 @@ type otelRecorder struct {
submitters *hashmap.Map[int, []submitterMetadata]
balanceGauge metric.Float64ObservableGauge
nonceGauge metric.Int64ObservableGauge

// relayer stats
relayerBalance *hashmap.Map[int, []relayerMetadata]
relayerBalanceGauge metric.Float64ObservableGauge
Comment on lines +58 to +59
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for relayerBalance in otelRecorder.

The relayerBalance field in otelRecorder should be covered by tests to ensure its functionality is working as expected.

Do you want me to generate test cases for this new field or open a GitHub issue to track this task?

}

// TODO: unexport all methods.
// nolint: cyclop
func newOtelRecorder(meterHandler metrics.Handler) iOtelRecorder {
otr := otelRecorder{
metrics: meterHandler,
meter: meterHandler.Meter(meterName),
stuckHeroes: hashmap.New[string, int64](),
vPrice: hashmap.New[int, float64](),
gasBalance: hashmap.New[int, float64](),
td: hashmap.New[int, []tokenData](),
submitters: hashmap.New[int, []submitterMetadata](),
metrics: meterHandler,
meter: meterHandler.Meter(meterName),
stuckHeroes: hashmap.New[string, int64](),
vPrice: hashmap.New[int, float64](),
gasBalance: hashmap.New[int, float64](),
td: hashmap.New[int, []tokenData](),
submitters: hashmap.New[int, []submitterMetadata](),
relayerBalance: hashmap.New[int, []relayerMetadata](),
}

var err error
Expand Down Expand Up @@ -96,6 +106,10 @@ func newOtelRecorder(meterHandler metrics.Handler) iOtelRecorder {
log.Warnf("failed to create stuckHeroes gauge: %v", err)
}

if otr.relayerBalanceGauge, err = otr.meter.Float64ObservableGauge("relayer_balance"); err != nil {
log.Warnf("failed to create relayerBalance gauge: %v", err)
}
Comment on lines +109 to +111
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for relayerBalanceGauge.

The creation of relayerBalanceGauge should be covered by tests to ensure it is initialized correctly.

Do you want me to generate test cases for this gauge or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 109-111: contrib/promexporter/exporters/otel.go#L109-L111
Added lines #L109 - L111 were not covered by tests


// Register VPrice callback
if _, err = otr.meter.RegisterCallback(otr.recordVpriceGauge, otr.vpriceGauge); err != nil {
log.Warnf("failed to register callback for vprice metrics: %v", err)
Expand Down Expand Up @@ -125,6 +139,11 @@ func newOtelRecorder(meterHandler metrics.Handler) iOtelRecorder {
log.Warnf("failed to register callback for bridge gas balance metrics: %v", err)
}

// The Relayer code of interest.
if _, err = otr.meter.RegisterCallback(otr.recordRelayerBalance, otr.relayerBalanceGauge); err != nil {
log.Warnf("failed to register callback for relayer balance metrics: %v", err)
}
Comment on lines +143 to +145
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for recordRelayerBalance callback registration.

The registration of the recordRelayerBalance callback should be covered by tests to ensure it is functioning correctly.

Do you want me to generate test cases for this callback registration or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 143-145: contrib/promexporter/exporters/otel.go#L143-L145
Added lines #L143 - L145 were not covered by tests


return &otr
}

Expand Down Expand Up @@ -195,6 +214,7 @@ func (o *otelRecorder) RecordTokenBalance(

o.td.Set(chainID, td)
}

func (o *otelRecorder) recordTokenBalance(
_ context.Context,
observer metric.Observer,
Expand Down Expand Up @@ -310,3 +330,36 @@ func (o *otelRecorder) recordSubmitterStats(
})
return nil
}

// RELAYER CODE.
func (o *otelRecorder) RecordRelayerBalance(chainID int, relayer relayerMetadata) {
relayerBalances, _ := o.relayerBalance.Get(chainID)
relayerBalances = append(relayerBalances, relayer)
o.relayerBalance.Set(chainID, relayerBalances)
}
Comment on lines +335 to +339
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: This method might overwrite existing relayer data for the same chainID. Consider using a map with relayer address as key instead of a slice

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

explain more?

Comment on lines +335 to +339
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for RecordRelayerBalance method.

The RecordRelayerBalance method should be covered by tests to ensure it correctly records relayer balances.

Do you want me to generate test cases for this method or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 335-338: contrib/promexporter/exporters/otel.go#L335-L338
Added lines #L335 - L338 were not covered by tests


func (o *otelRecorder) recordRelayerBalance(
_ context.Context,
observer metric.Observer,
) (err error) {
if o.metrics == nil || o.relayerBalance == nil {
return nil
}

o.relayerBalance.Range(func(chainID int, relayerBalances []relayerMetadata) bool {
for _, relayer := range relayerBalances {
observer.ObserveFloat64(
o.relayerBalanceGauge,
relayer.balance,
metric.WithAttributes(
attribute.Int(metrics.ChainID, chainID),
attribute.String("relayer_address", relayer.address.String()),
),
)
}

return true
})

return nil
}
Comment on lines +341 to +365
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests for recordRelayerBalance method.

The recordRelayerBalance method should be covered by tests to ensure it correctly observes relayer balances.

Do you want me to generate test cases for this method or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 344-347: contrib/promexporter/exporters/otel.go#L344-L347
Added lines #L344 - L347 were not covered by tests


[warning] 349-359: contrib/promexporter/exporters/otel.go#L349-L359
Added lines #L349 - L359 were not covered by tests


[warning] 361-361: contrib/promexporter/exporters/otel.go#L361
Added line #L361 was not covered by tests


[warning] 364-364: contrib/promexporter/exporters/otel.go#L364
Added line #L364 was not covered by tests

3 changes: 3 additions & 0 deletions contrib/promexporter/exporters/otel_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

101 changes: 101 additions & 0 deletions contrib/promexporter/exporters/relayer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package exporters

import (
"context"
"encoding/json"
"fmt"
"io"
"math/big"
"net/http"
"slices"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/params"
"github.com/lmittmann/w3/module/eth"
"github.com/lmittmann/w3/w3types"
rfqAPIModel "github.com/synapsecns/sanguine/services/rfq/api/model"
)

func (e *exporter) fetchRelayerBalances(ctx context.Context, url string) error {
// Fetch relayer addresses
quotes, err := e.fetchAllQuotes(ctx, url)
if err != nil {
return fmt.Errorf("could not fetch relayer addresses: %w", err)
}
Comment on lines +19 to +24
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding test coverage for fetchRelayerBalances.

The function fetchRelayerBalances lacks test coverage, as indicated by static analysis tools. Adding tests will help ensure its reliability and correctness.

Would you like assistance in creating tests for this function?

Tools
GitHub Check: codecov/patch

[warning] 19-24: contrib/promexporter/exporters/relayer.go#L19-L24
Added lines #L19 - L24 were not covered by tests


// chainIDs is a map of chain ID to relayer addresses
chainIDToRelayers := make(map[int][]string)

// Get all chain IDs
for _, quote := range quotes {
if !slices.Contains(chainIDToRelayers[quote.OriginChainID], quote.RelayerAddr) {
chainIDToRelayers[quote.OriginChainID] = append(chainIDToRelayers[quote.OriginChainID], quote.RelayerAddr)
}

if !slices.Contains(chainIDToRelayers[quote.DestChainID], quote.RelayerAddr) {
chainIDToRelayers[quote.DestChainID] = append(chainIDToRelayers[quote.DestChainID], quote.RelayerAddr)
}
}

for chainID, relayers := range chainIDToRelayers {
client, err := e.omnirpcClient.GetConfirmationsClient(ctx, chainID, 1)
if err != nil {
return fmt.Errorf("could not get confirmations client: %w", err)
}

var relayerBalances []*big.Int
for range relayers {
relayerBalances = append(relayerBalances, new(big.Int))
}

var callsForCurrentChainID []w3types.Caller
for i, relayer := range relayers {
callsForCurrentChainID = append(
callsForCurrentChainID,
eth.Balance(common.HexToAddress(relayer), nil).Returns(relayerBalances[i]),
)
}

_ = e.batchCalls(ctx, client, callsForCurrentChainID)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: Ignoring the error returned by e.batchCalls may lead to silent failures. Consider handling or logging this error.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its fine


for i, balanceOfRelayer := range relayerBalances {
balanceFloat, _ := new(big.Float).SetInt(balanceOfRelayer).Float64()
relayerMetadata := relayerMetadata{
address: common.HexToAddress(relayers[i]),
balance: balanceFloat / params.Ether,
}
// the line of interest, where we record each relayer data for the respective chainID
e.otelRecorder.RecordRelayerBalance(chainID, relayerMetadata)
}
}

return nil
}

func (e *exporter) fetchAllQuotes(ctx context.Context, url string) ([]rfqAPIModel.GetQuoteResponse, error) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
if err != nil {
return nil, fmt.Errorf("could not get quotes: %w", err)
}

res, err := e.client.Do(req)
if err != nil {
return nil, fmt.Errorf("could not get quotes: %w", err)
}
defer func() {
_ = res.Body.Close()
}()
Comment on lines +85 to +87
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: Consider using defer res.Body.Close() instead of a defer function for simplicity.


body, err := io.ReadAll(res.Body)
if err != nil {
return nil, fmt.Errorf("could not read body: %w", err)
}

var quotes []rfqAPIModel.GetQuoteResponse
err = json.Unmarshal(body, &quotes)
if err != nil {
return nil, fmt.Errorf("could not unmarshal quotes: %w", err)
}

return quotes, nil
}
Comment on lines +75 to +101
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider adding test coverage for fetchAllQuotes.

The function fetchAllQuotes lacks test coverage, as indicated by static analysis tools. Adding tests will help ensure its reliability and correctness.

Would you like assistance in creating tests for this function?

Tools
GitHub Check: codecov/patch

[warning] 75-79: contrib/promexporter/exporters/relayer.go#L75-L79
Added lines #L75 - L79 were not covered by tests


[warning] 81-87: contrib/promexporter/exporters/relayer.go#L81-L87
Added lines #L81 - L87 were not covered by tests


[warning] 89-92: contrib/promexporter/exporters/relayer.go#L89-L92
Added lines #L89 - L92 were not covered by tests


[warning] 94-98: contrib/promexporter/exporters/relayer.go#L94-L98
Added lines #L94 - L98 were not covered by tests


[warning] 100-100: contrib/promexporter/exporters/relayer.go#L100
Added line #L100 was not covered by tests

1 change: 1 addition & 0 deletions contrib/promexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ require (
github.com/synapsecns/sanguine/ethergo v0.1.0
github.com/synapsecns/sanguine/services/explorer v0.0.0-00010101000000-000000000000
github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000
github.com/synapsecns/sanguine/services/rfq v1.8.0
github.com/urfave/cli/v2 v2.27.2
go.opentelemetry.io/otel v1.28.0
go.opentelemetry.io/otel/metric v1.28.0
Expand Down
2 changes: 2 additions & 0 deletions contrib/promexporter/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,8 @@ github.com/synapsecns/fasthttp-http2 v1.0.0 h1:G1/8AKgAzVImHpGbCGZo8w4c0kUBXb4eR
github.com/synapsecns/fasthttp-http2 v1.0.0/go.mod h1:QM9mQS/FygGB3PdvmW8a0/70FirWmEZVvj6Dlo1pisw=
github.com/synapsecns/gqlgenc v0.10.0-hotfix h1:EkxocO6V/xRcHJ+1sNY+fwDY5l1/jL9qooPEpWzrbLg=
github.com/synapsecns/gqlgenc v0.10.0-hotfix/go.mod h1:OeQhghEgvGWvRwzx9XjMeg3FUQOHnTo5/12iuJSJxLg=
github.com/synapsecns/sanguine/services/rfq v1.8.0 h1:0s5ywpXMbtcoKGD3E00pPWa/OAHQi07l2+tHEpbbNSE=
github.com/synapsecns/sanguine/services/rfq v1.8.0/go.mod h1:1jtien0M/VFz/2hzr/YHCkd8WxPOIWVNZ+47sGB+Gl8=
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM=
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY=
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
Expand Down
1 change: 0 additions & 1 deletion contrib/screener-api/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ require (
require (
dario.cat/mergo v1.0.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: Dependency on github.com/BurntSushi/toml removed. Verify if TOML parsing is still needed and replace with an alternative if necessary.

github.com/BurntSushi/toml v1.4.0 // indirect
github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
Expand Down
3 changes: 3 additions & 0 deletions contrib/screener-api/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww=
github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo=
Expand Down Expand Up @@ -185,6 +186,7 @@ github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
github.com/go-errors/errors v1.4.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
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-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
Expand Down Expand Up @@ -321,6 +323,7 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU=
github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E=
github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
Expand Down
4 changes: 4 additions & 0 deletions core/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww=
github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo=
Expand Down Expand Up @@ -185,6 +186,7 @@ github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
github.com/go-errors/errors v1.4.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
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-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
Expand Down Expand Up @@ -311,6 +313,7 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU=
github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E=
github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
Expand Down Expand Up @@ -814,6 +817,7 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
Expand Down
1 change: 0 additions & 1 deletion ethergo/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ require (
cloud.google.com/go/longrunning v0.5.7 // indirect
dario.cat/mergo v1.0.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/DataDog/zstd v1.5.2 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
Expand Down
Loading