From 18b490b9fd6d52250887b97e598f673c2dc614e2 Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Wed, 21 May 2025 10:10:54 +0200 Subject: [PATCH 1/7] feat(payment-channel-xlm): update stellar contracts Signed-off-by: Minh Huy Tran --- payment-channel-xlm/quickstart.sh | 5 ++++- .../testdata/perun_soroban_contract.wasm | Bin 0 -> 54145 bytes .../testdata/perun_soroban_multi_contract.wasm | Bin 23664 -> 0 bytes .../testdata/perun_soroban_token.wasm | Bin 4 files changed, 4 insertions(+), 1 deletion(-) create mode 100755 payment-channel-xlm/testdata/perun_soroban_contract.wasm delete mode 100644 payment-channel-xlm/testdata/perun_soroban_multi_contract.wasm mode change 100644 => 100755 payment-channel-xlm/testdata/perun_soroban_token.wasm diff --git a/payment-channel-xlm/quickstart.sh b/payment-channel-xlm/quickstart.sh index 229017c..c9751cf 100755 --- a/payment-channel-xlm/quickstart.sh +++ b/payment-channel-xlm/quickstart.sh @@ -19,7 +19,8 @@ esac # this is set to the quickstart `soroban-dev` image annointed as the release # for a given Soroban Release, it is captured on Soroban Releases - https://soroban.stellar.org/docs/reference/releases -QUICKSTART_SOROBAN_DOCKER_SHA=stellar/quickstart:latest@sha256:1a82b17a4fae853d24189dd25d4e6b774fa7a1b6356a993e618c6e9bd2f3e04c +# QUICKSTART_SOROBAN_DOCKER_SHA=stellar/quickstart:soroban-dev +QUICKSTART_SOROBAN_DOCKER_SHA=stellar/quickstart:testing@sha256:274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01 shift @@ -44,6 +45,8 @@ fi currentDir=$(pwd) docker run -d \ --volume ${currentDir}:/workspace \ + --memory="2g" \ + --cpus="2.0" \ --name soroban-preview \ -p 8001:8000 \ --ipc=host \ diff --git a/payment-channel-xlm/testdata/perun_soroban_contract.wasm b/payment-channel-xlm/testdata/perun_soroban_contract.wasm new file mode 100755 index 0000000000000000000000000000000000000000..ab945fbc9a61c98d706485514cda6f206763ae5e GIT binary patch literal 54145 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 literal 0 HcmV?d00001 diff --git a/payment-channel-xlm/testdata/perun_soroban_multi_contract.wasm b/payment-channel-xlm/testdata/perun_soroban_multi_contract.wasm deleted file mode 100644 index 05701f50851a6b9e15273cbc2c2b7d954d058725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23664 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 S)v=+8@u4W19U7gTRsSE%Z0Dl@ diff --git a/payment-channel-xlm/testdata/perun_soroban_token.wasm b/payment-channel-xlm/testdata/perun_soroban_token.wasm old mode 100644 new mode 100755 From 196faf763e92d6c6d9bbb897324a0291def329eb Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Wed, 21 May 2025 10:14:29 +0200 Subject: [PATCH 2/7] feat(payment-channel-xlm): update stellar example to gp 0.13.0 Signed-off-by: Minh Huy Tran --- payment-channel-xlm/client/client.go | 66 +- payment-channel-xlm/client/handle.go | 4 +- payment-channel-xlm/go.mod | 125 +++- payment-channel-xlm/go.sum | 1016 ++++++++++++++++++++++++-- payment-channel-xlm/main.go | 41 +- payment-channel-xlm/util/setup.go | 200 +---- payment-channel-xlm/util/token.go | 195 +---- 7 files changed, 1195 insertions(+), 452 deletions(-) diff --git a/payment-channel-xlm/client/client.go b/payment-channel-xlm/client/client.go index 70a9da3..b14ca4c 100644 --- a/payment-channel-xlm/client/client.go +++ b/payment-channel-xlm/client/client.go @@ -5,55 +5,61 @@ import ( "log" "math/big" - "perun.network/go-perun/wire/net/simple" - "context" "errors" - pchannel "perun.network/go-perun/channel" - pclient "perun.network/go-perun/client" + "perun.network/go-perun/channel" + "perun.network/go-perun/client" + "perun.network/go-perun/wallet" "perun.network/go-perun/watcher/local" "perun.network/go-perun/wire" - "perun.network/perun-stellar-backend/channel" - "perun.network/perun-stellar-backend/wallet" + + stellarwallet "perun.network/perun-stellar-backend/wallet" + "perun.network/perun-stellar-backend/wallet/types" ) type PaymentClient struct { - perunClient *pclient.Client - account *wallet.Account - currencies []pchannel.Asset + perunClient *client.Client + account map[wallet.BackendID]wallet.Address // The account we use for on-chain and off-chain transactions. + waddress map[wallet.BackendID]wire.Address + currencies []channel.Asset channels chan *PaymentChannel Channel *PaymentChannel - wAddr wire.Address balance *big.Int } func SetupPaymentClient( - w *wallet.EphemeralWallet, - acc *wallet.Account, - stellarTokenIDs []pchannel.Asset, - bus *wire.LocalBus, - funder *channel.Funder, - adj *channel.Adjudicator, + w *stellarwallet.EphemeralWallet, + stellarAccount wallet.Account, + wireAddr wire.Address, + stellarTokenIDs []channel.Asset, + bus *wire.LocalBus, + funder channel.Funder, + adj channel.Adjudicator, ) (*PaymentClient, error) { watcher, err := local.NewWatcher(adj) if err != nil { return nil, fmt.Errorf("intializing watcher: %w", err) } // Setup Perun client. - wireAddr := simple.NewAddress(acc.Address().String()) - perunClient, err := pclient.New(wireAddr, bus, funder, adj, w, watcher) + addresses := map[wallet.BackendID]wire.Address{types.StellarBackendID: wireAddr} + stellarWallet := map[wallet.BackendID]wallet.Wallet{types.StellarBackendID: w} + + // Setup Accounts + account := map[wallet.BackendID]wallet.Address{types.StellarBackendID: stellarAccount.Address()} + + perunClient, err := client.New(addresses, bus, funder, adj, stellarWallet, watcher) if err != nil { return nil, errors.New("creating client") } c := &PaymentClient{ perunClient: perunClient, - account: acc, + account: account, + waddress: addresses, currencies: stellarTokenIDs, channels: make(chan *PaymentChannel, 1), - wAddr: wireAddr, balance: big.NewInt(0), } @@ -62,7 +68,7 @@ func SetupPaymentClient( } // startWatching starts the dispute watcher for the specified channel. -func (c *PaymentClient) startWatching(ch *pclient.Channel) { +func (c *PaymentClient) startWatching(ch *client.Channel) { go func() { err := ch.Watch(c) if err != nil { @@ -71,21 +77,25 @@ func (c *PaymentClient) startWatching(ch *pclient.Channel) { }() } -func (c *PaymentClient) OpenChannel(peer wire.Address, balances pchannel.Balances) { +func (c *PaymentClient) OpenChannel(peer map[wallet.BackendID]wire.Address, balances channel.Balances) { // We define the channel participants. The proposer has always index 0. Here // we use the on-chain addresses as off-chain addresses, but we could also // use different ones. - participants := []wire.Address{c.WireAddress(), peer} + participants := []map[wallet.BackendID]wire.Address{c.waddress, peer} - initAlloc := pchannel.NewAllocation(2, c.currencies...) + backends := make([]wallet.BackendID, len(c.currencies)) + for i := range c.currencies { + backends[i] = types.StellarBackendID + } + initAlloc := channel.NewAllocation(2, backends, c.currencies...) initAlloc.Balances = balances // Prepare the channel proposal by defining the channel parameters. challengeDuration := uint64(10) // On-chain challenge duration in seconds. - proposal, err := pclient.NewLedgerChannelProposal( + proposal, err := client.NewLedgerChannelProposal( challengeDuration, - c.account.Address(), + c.account, initAlloc, participants, ) @@ -104,8 +114,8 @@ func (c *PaymentClient) OpenChannel(peer wire.Address, balances pchannel.Balance c.Channel = newPaymentChannel(ch, c.currencies) } -func (p *PaymentClient) WireAddress() wire.Address { - return p.wAddr +func (p *PaymentClient) WireAddress() map[wallet.BackendID]wire.Address { + return p.waddress } func (c *PaymentClient) AcceptedChannel() *PaymentChannel { diff --git a/payment-channel-xlm/client/handle.go b/payment-channel-xlm/client/handle.go index a1d7eee..c382c25 100644 --- a/payment-channel-xlm/client/handle.go +++ b/payment-channel-xlm/client/handle.go @@ -51,7 +51,7 @@ func (c *PaymentClient) HandleProposal(p client.ChannelProposal, r *client.Propo // Create a channel accept message and send it. accept := lcp.Accept( - c.account.Address(), // The account we use in the channel. + c.account, // The account we use in the channel. client.WithRandomNonce(), // Our share of the channel nonce. ) ch, err := r.Accept(context.TODO(), accept) @@ -106,7 +106,7 @@ func (c *PaymentClient) HandleUpdate(cur *channel.State, next client.ChannelUpda // HandleAdjudicatorEvent is the callback for smart contract events. func (c *PaymentClient) HandleAdjudicatorEvent(e channel.AdjudicatorEvent) { - log.Printf("Adjudicator event: type = %T, client = %v", e, c.account.Address()) + log.Printf("Adjudicator event: type = %T, client = %v", e, c.account) } func (c *PaymentClient) GetChannel() (*PaymentChannel, error) { diff --git a/payment-channel-xlm/go.mod b/payment-channel-xlm/go.mod index 77b17f2..afb443e 100644 --- a/payment-channel-xlm/go.mod +++ b/payment-channel-xlm/go.mod @@ -1,33 +1,132 @@ module perun.network/perun-examples/payment-channel-xlm -go 1.22 +go 1.23.0 + +toolchain go1.23.4 require ( - perun.network/go-perun v0.11.0 - perun.network/perun-stellar-backend v0.2.1-0.20240718123359-71880f44c57e + github.com/perun-network/perun-libp2p-wire v1.0.1 + github.com/stellar/go v0.0.0-20241113164517-f09f3e438519 + perun.network/go-perun v0.13.1-0.20250519120217-973104e7b38a + perun.network/perun-stellar-backend v0.3.0 ) require ( - github.com/creachadair/jrpc2 v1.1.0 // indirect - github.com/creachadair/mds v0.0.1 // indirect + github.com/benbjohnson/clock v1.3.5 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/btcsuite/btcd v0.20.1-beta // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/containerd/cgroups v1.1.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/creachadair/jrpc2 v1.2.0 // indirect + github.com/creachadair/mds v0.13.4 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/elastic/gosigar v0.14.3 // indirect + github.com/ethereum/go-ethereum v1.10.12 // indirect + github.com/flynn/noise v1.1.0 // indirect + github.com/francoispqt/gojay v1.2.13 // indirect github.com/go-chi/chi v4.1.2+incompatible // indirect github.com/go-errors/errors v1.5.1 // indirect + github.com/go-task/slim-sprig/v3 v3.0.0 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/google/gopacket v1.1.19 // indirect + github.com/google/pprof v0.0.0-20250208200701-d0013a598941 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/schema v1.2.0 // indirect + github.com/gorilla/schema v1.4.1 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/huin/goupnp v1.3.0 // indirect + github.com/ipfs/go-cid v0.5.0 // indirect + github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect + github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect + github.com/koron/go-ssdp v0.0.5 // indirect + github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/libp2p/go-flow-metrics v0.2.0 // indirect + github.com/libp2p/go-libp2p v0.41.0 // indirect + github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect + github.com/libp2p/go-msgio v0.3.0 // indirect + github.com/libp2p/go-netroute v0.2.2 // indirect + github.com/libp2p/go-reuseport v0.4.0 // indirect + github.com/libp2p/go-yamux/v5 v5.0.0 // indirect github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739 // indirect + github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/miekg/dns v1.1.63 // indirect + github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect + github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect + github.com/minio/sha256-simd v1.0.1 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/multiformats/go-base32 v0.1.0 // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect + github.com/multiformats/go-multiaddr v0.15.0 // indirect + github.com/multiformats/go-multiaddr-dns v0.4.1 // indirect + github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect + github.com/multiformats/go-multibase v0.2.0 // indirect + github.com/multiformats/go-multicodec v0.9.0 // indirect + github.com/multiformats/go-multihash v0.2.3 // indirect + github.com/multiformats/go-multistream v0.6.0 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/onsi/ginkgo/v2 v2.22.2 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect + github.com/pion/datachannel v1.5.10 // indirect + github.com/pion/dtls/v2 v2.2.12 // indirect + github.com/pion/dtls/v3 v3.0.4 // indirect + github.com/pion/ice/v4 v4.0.6 // indirect + github.com/pion/interceptor v0.1.37 // indirect + github.com/pion/logging v0.2.3 // indirect + github.com/pion/mdns/v2 v2.0.7 // indirect + github.com/pion/randutil v0.1.0 // indirect + github.com/pion/rtcp v1.2.15 // indirect + github.com/pion/rtp v1.8.11 // indirect + github.com/pion/sctp v1.8.36 // indirect + github.com/pion/sdp/v3 v3.0.10 // indirect + github.com/pion/srtp/v3 v3.0.4 // indirect + github.com/pion/stun v0.6.1 // indirect + github.com/pion/stun/v3 v3.0.0 // indirect + github.com/pion/transport/v2 v2.2.10 // indirect + github.com/pion/transport/v3 v3.0.7 // indirect + github.com/pion/turn/v4 v4.0.0 // indirect + github.com/pion/webrtc/v4 v4.0.10 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.21.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.62.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/quic-go/qpack v0.5.1 // indirect + github.com/quic-go/quic-go v0.50.0 // indirect + github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66 // indirect + github.com/raulk/go-watchdog v1.3.0 // indirect github.com/segmentio/go-loggly v0.5.1-0.20171222203950-eb91657e62b2 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/stellar/go v0.0.0-20240426134303-a387ffb88fd5 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/stellar/go-xdr v0.0.0-20231122183749-b53fb00bcac2 // indirect - github.com/stretchr/objx v0.5.1 // indirect - github.com/stretchr/testify v1.8.4 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/testify v1.10.0 // indirect + github.com/wlynxg/anet v0.0.5 // indirect + go.uber.org/dig v1.18.0 // indirect + go.uber.org/fx v1.23.0 // indirect + go.uber.org/mock v0.5.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/crypto v0.35.0 // indirect + golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa // indirect + golang.org/x/mod v0.23.0 // indirect + golang.org/x/net v0.35.0 // indirect + golang.org/x/sync v0.11.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/text v0.22.0 // indirect + golang.org/x/tools v0.30.0 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/blake3 v1.4.0 // indirect polycry.pt/poly-go v0.0.0-20220301085937-fb9d71b45a37 // indirect ) diff --git a/payment-channel-xlm/go.sum b/payment-channel-xlm/go.sum index c00ef9b..a5cb879 100644 --- a/payment-channel-xlm/go.sum +++ b/payment-channel-xlm/go.sum @@ -1,127 +1,1051 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.31.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.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= +dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= +dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= +git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= +github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= +github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= +github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f h1:zvClvFQwU++UpIUBGC8YmDlfhUrweEy1R1Fj1gu5iIM= github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/creachadair/jrpc2 v1.1.0 h1:SgpJf0v1rVCZx68+4APv6dgsTFsIHlpgFD1NlQAWA0A= -github.com/creachadair/jrpc2 v1.1.0/go.mod h1:5jN7MKwsm8qvgfTsTzLX3JIfidsAkZ1c8DZSQmp+g38= -github.com/creachadair/mds v0.0.1 h1:2nX6Sww4dXpScx3b6aYjH1n7iuEH715+jj+cKkKw9BY= -github.com/creachadair/mds v0.0.1/go.mod h1:caBACU+n1Q/rZ252FTzfnG0/H+ZUi+UnIQtEOraMv/g= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= +github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= +github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= +github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +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/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/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= +github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/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/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= +github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= +github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creachadair/jrpc2 v1.2.0 h1:SXr0OgnwM0X18P+HccJP0uT3KGSDk/BCSRlJBvE2bMY= +github.com/creachadair/jrpc2 v1.2.0/go.mod h1:66uKSdr6tR5ZeNvkIjDSbbVUtOv0UhjS/vcd8ECP7Iw= +github.com/creachadair/mds v0.13.4 h1:RgU0MhiVqkzp6/xtNWhK6Pw7tDeaVuGFtA0UA2RBYvY= +github.com/creachadair/mds v0.13.4/go.mod h1:4vrFYUzTXMJpMBU+OA292I6IUxKWCCfZkgXg+/kBZMo= +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= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= +github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= +github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8= +github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= +github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= +github.com/elastic/gosigar v0.14.3 h1:xwkKwPia+hSfg9GqrCUKYdId102m9qTJIIr7egmK/uo= +github.com/elastic/gosigar v0.14.3/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ethereum/go-ethereum v1.10.12 h1:el/KddB3gLEsnNgGQ3SQuZuiZjwnFTYHe5TwUet5Om4= +github.com/ethereum/go-ethereum v1.10.12/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/structs v1.0.0 h1:BrX964Rv5uQ3wwS+KRUAJCBBw5PQmgJfJ6v4yly5QwU= github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= +github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= +github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= +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 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gavv/monotime v0.0.0-20161010190848-47d58efa6955 h1:gmtGRvSexPU4B1T/yYo0sLOKzER1YT+b4kPxPpm0Ty4= github.com/gavv/monotime v0.0.0-20161010190848-47d58efa6955/go.mod h1:vmp8DIyckQMXOPl0AQVHt+7n5h7Gb7hS6CUydiV8QeA= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +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-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +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/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-querystring v0.0.0-20160401233042-9235644dd9e5 h1:oERTZ1buOUYlpmKaqlO5fYmz8cZ1rYu5DieJzF4ZVmU= -github.com/google/go-querystring v0.0.0-20160401233042-9235644dd9e5/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20250208200701-d0013a598941 h1:43XjGa6toxLpeksjcxs1jIoIyr+vUfOqY2c6HB4bpoc= +github.com/google/pprof v0.0.0-20250208200701-d0013a598941/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= -github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= +github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E= +github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +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/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg= +github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +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/jarcoal/httpmock v0.0.0-20161210151336-4442edb3db31 h1:Aw95BEvxJ3K6o9GGv5ppCd1P8hkeIeEJ30FO+OhOJpM= github.com/jarcoal/httpmock v0.0.0-20161210151336-4442edb3db31/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= +github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= +github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= +github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/karalabe/usb v0.0.0-20211005121534-4c5740d64559/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/koron/go-ssdp v0.0.5 h1:E1iSMxIs4WqxTbIBLtmNBeOOC+1sCIXQeqTWVnpmwhk= +github.com/koron/go-ssdp v0.0.5/go.mod h1:Qm59B7hpKpDqfyRNWRNr00jGwLdXjDyZh6y7rH6VS0w= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/libp2p/go-flow-metrics v0.2.0 h1:EIZzjmeOE6c8Dav0sNv35vhZxATIXWZg6j/C08XmmDw= +github.com/libp2p/go-flow-metrics v0.2.0/go.mod h1:st3qqfu8+pMfh+9Mzqb2GTiwrAGjIPszEjZmtksN8Jc= +github.com/libp2p/go-libp2p v0.41.0 h1:JRaD39dqf/tBBGapJ0T38N73vOaDCsWgcx3mE6HgXWk= +github.com/libp2p/go-libp2p v0.41.0/go.mod h1:Be8QYqC4JW6Xq8buukNeoZJjyT1XUDcGoIooCHm1ye4= +github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= +github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8= +github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= +github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg= +github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= +github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= +github.com/libp2p/go-netroute v0.2.2 h1:Dejd8cQ47Qx2kRABg6lPwknU7+nBnFRpko45/fFPuZ8= +github.com/libp2p/go-netroute v0.2.2/go.mod h1:Rntq6jUAH0l9Gg17w5bFGhcC9a+vk4KNXs6s7IljKYE= +github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= +github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU= +github.com/libp2p/go-yamux/v5 v5.0.0 h1:2djUh96d3Jiac/JpGkKs4TO49YhsfLopAoryfPmf+Po= +github.com/libp2p/go-yamux/v5 v5.0.0/go.mod h1:en+3cdX51U0ZslwRdRLrvQsdayFt3TSUKvBGErzpWbU= +github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739 h1:ykXz+pRRTibcSjG1yRhpdSHInF8yZY/mfn+Rz2Nd1rE= github.com/manucorporat/sse v0.0.0-20160126180136-ee05b128a739/go.mod h1:zUx1mhth20V3VKgL5jbd1BSQcW4Fy6Qs4PZvQwRFwzM= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= +github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +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-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= +github.com/miekg/dns v1.1.63 h1:8M5aAw6OMZfFXTT7K5V0Eu5YiiL8l7nUAkyN6C9YwaY= +github.com/miekg/dns v1.1.63/go.mod h1:6NGHfjhpmr5lt3XPLuyfDJi5AXbNIPM9PY6H6sF1Nfs= +github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= +github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +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/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/moul/http2curl v0.0.0-20161031194548-4e24498b31db h1:eZgFHVkk9uOTaOQLC6tgjkzdp7Ays8eEVecBcfHZlJQ= github.com/moul/http2curl v0.0.0-20161031194548-4e24498b31db/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= +github.com/multiformats/go-multiaddr v0.15.0 h1:zB/HeaI/apcZiTDwhY5YqMvNVl/oQYvs3XySU+qeAVo= +github.com/multiformats/go-multiaddr v0.15.0/go.mod h1:JSVUmXDjsVFiW7RjIFMP7+Ev+h1DTbiJgVeTV/tcmP0= +github.com/multiformats/go-multiaddr-dns v0.4.1 h1:whi/uCLbDS3mSEUMb1MsoT4uzUeZB0N32yzufqS0i5M= +github.com/multiformats/go-multiaddr-dns v0.4.1/go.mod h1:7hfthtB4E4pQwirrz+J0CcDUfbWzTqEzVyYKKIKpgkc= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= +github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= +github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= +github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= +github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= +github.com/multiformats/go-multistream v0.6.0 h1:ZaHKbsL404720283o4c/IHQXiS6gb8qAN5EIJ4PN5EA= +github.com/multiformats/go-multistream v0.6.0/go.mod h1:MOyoG5otO24cHIg8kf9QW2/NozURlkP/rvi2FQJyCPg= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= +github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= +github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +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.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= 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/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU= +github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +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.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= +github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/perun-network/perun-libp2p-wire v1.0.1 h1:pNeCjGWddD0Fb8y+jdn4XQVoN/UoXdUZbjfBgCI8KzQ= +github.com/perun-network/perun-libp2p-wire v1.0.1/go.mod h1:hIyG3pSboLYcaQr2yzpxNb6izvSsHi6iC50GaAfwvvE= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pion/datachannel v1.5.10 h1:ly0Q26K1i6ZkGf42W7D4hQYR90pZwzFOjTq5AuCKk4o= +github.com/pion/datachannel v1.5.10/go.mod h1:p/jJfC9arb29W7WrxyKbepTU20CFgyx5oLo8Rs4Py/M= +github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= +github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk= +github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE= +github.com/pion/dtls/v3 v3.0.4 h1:44CZekewMzfrn9pmGrj5BNnTMDCFwr+6sLH+cCuLM7U= +github.com/pion/dtls/v3 v3.0.4/go.mod h1:R373CsjxWqNPf6MEkfdy3aSe9niZvL/JaKlGeFphtMg= +github.com/pion/ice/v4 v4.0.6 h1:jmM9HwI9lfetQV/39uD0nY4y++XZNPhvzIPCb8EwxUM= +github.com/pion/ice/v4 v4.0.6/go.mod h1:y3M18aPhIxLlcO/4dn9X8LzLLSma84cx6emMSu14FGw= +github.com/pion/interceptor v0.1.37 h1:aRA8Zpab/wE7/c0O3fh1PqY0AJI3fCSEM5lRWJVorwI= +github.com/pion/interceptor v0.1.37/go.mod h1:JzxbJ4umVTlZAf+/utHzNesY8tmRkM2lVmkS82TTj8Y= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/logging v0.2.3 h1:gHuf0zpoh1GW67Nr6Gj4cv5Z9ZscU7g/EaoC/Ke/igI= +github.com/pion/logging v0.2.3/go.mod h1:z8YfknkquMe1csOrxK5kc+5/ZPAzMxbKLX5aXpbpC90= +github.com/pion/mdns/v2 v2.0.7 h1:c9kM8ewCgjslaAmicYMFQIde2H9/lrZpjBkN8VwoVtM= +github.com/pion/mdns/v2 v2.0.7/go.mod h1:vAdSYNAT0Jy3Ru0zl2YiW3Rm/fJCwIeM0nToenfOJKA= +github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= +github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= +github.com/pion/rtcp v1.2.15 h1:LZQi2JbdipLOj4eBjK4wlVoQWfrZbh3Q6eHtWtJBZBo= +github.com/pion/rtcp v1.2.15/go.mod h1:jlGuAjHMEXwMUHK78RgX0UmEJFV4zUKOFHR7OP+D3D0= +github.com/pion/rtp v1.8.11 h1:17xjnY5WO5hgO6SD3/NTIUPvSFw/PbLsIJyz1r1yNIk= +github.com/pion/rtp v1.8.11/go.mod h1:8uMBJj32Pa1wwx8Fuv/AsFhn8jsgw+3rUC2PfoBZ8p4= +github.com/pion/sctp v1.8.36 h1:owNudmnz1xmhfYje5L/FCav3V9wpPRePHle3Zi+P+M0= +github.com/pion/sctp v1.8.36/go.mod h1:cNiLdchXra8fHQwmIoqw0MbLLMs+f7uQ+dGMG2gWebE= +github.com/pion/sdp/v3 v3.0.10 h1:6MChLE/1xYB+CjumMw+gZ9ufp2DPApuVSnDT8t5MIgA= +github.com/pion/sdp/v3 v3.0.10/go.mod h1:88GMahN5xnScv1hIMTqLdu/cOcUkj6a9ytbncwMCq2E= +github.com/pion/srtp/v3 v3.0.4 h1:2Z6vDVxzrX3UHEgrUyIGM4rRouoC7v+NiF1IHtp9B5M= +github.com/pion/srtp/v3 v3.0.4/go.mod h1:1Jx3FwDoxpRaTh1oRV8A/6G1BnFL+QI82eK4ms8EEJQ= +github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= +github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= +github.com/pion/stun/v3 v3.0.0 h1:4h1gwhWLWuZWOJIJR9s2ferRO+W3zA/b6ijOI6mKzUw= +github.com/pion/stun/v3 v3.0.0/go.mod h1:HvCN8txt8mwi4FBvS3EmDghW6aQJ24T+y+1TKjB5jyU= +github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= +github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= +github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q= +github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E= +github.com/pion/transport/v3 v3.0.7 h1:iRbMH05BzSNwhILHoBoAPxoB9xQgOaJk+591KC9P1o0= +github.com/pion/transport/v3 v3.0.7/go.mod h1:YleKiTZ4vqNxVwh77Z0zytYi7rXHl7j6uPLGhhz9rwo= +github.com/pion/turn/v4 v4.0.0 h1:qxplo3Rxa9Yg1xXDxxH8xaqcyGUtbHYw4QSCvmFWvhM= +github.com/pion/turn/v4 v4.0.0/go.mod h1:MuPDkm15nYSklKpN8vWJ9W2M0PlyQZqYt1McGuxG7mA= +github.com/pion/webrtc/v4 v4.0.10 h1:Hq/JLjhqLxi+NmCtE8lnRPDr8H4LcNvwg8OxVcdv56Q= +github.com/pion/webrtc/v4 v4.0.10/go.mod h1:ViHLVaNpiuvaH8pdiuQxuA9awuE6KVzAXx3vVWilOck= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= +github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +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/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= +github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= +github.com/quic-go/quic-go v0.50.0 h1:3H/ld1pa3CYhkcc20TPIyG1bNsdhn9qZBGN3b9/UyUo= +github.com/quic-go/quic-go v0.50.0/go.mod h1:Vim6OmUvlYdwBhXP9ZVrtGmCMWa3wEqhq3NgYrI8b4E= +github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66 h1:4WFk6u3sOT6pLa1kQ50ZVdm8BQFgJNA117cepZxtLIg= +github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66/go.mod h1:Vp72IJajgeOL6ddqrAhmp7IM9zbTcgkQxD/YdxrVwMw= +github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= +github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/segmentio/go-loggly v0.5.1-0.20171222203950-eb91657e62b2 h1:S4OC0+OBKz6mJnzuHioeEat74PuQ4Sgvbf8eus695sc= github.com/segmentio/go-loggly v0.5.1-0.20171222203950-eb91657e62b2/go.mod h1:8zLRYR5npGjaOXgPSKat5+oOh+UHd8OdbS18iqX9F6Y= -github.com/sergi/go-diff v0.0.0-20161205080420-83532ca1c1ca h1:oR/RycYTFTVXzND5r4FdsvbnBn0HJXSVeNAnwaTXRwk= -github.com/sergi/go-diff v0.0.0-20161205080420-83532ca1c1ca/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= +github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= +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/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= +github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= +github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= +github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= +github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= +github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= +github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= +github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= +github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= +github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= +github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= +github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= +github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= +github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= +github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/stellar/go v0.0.0-20240426134303-a387ffb88fd5 h1:acTkI/sflfu0qZ7lh1oH8G5qdNJhSU6TJIONQe0IZ7k= -github.com/stellar/go v0.0.0-20240426134303-a387ffb88fd5/go.mod h1:akvnE6X/mbM4XFwlbF9D1/Wtgh65neAf5FXXQdcFjmY= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= +github.com/stellar/go v0.0.0-20241113164517-f09f3e438519 h1:ZHwy/zshOdNm0fUCq/FE9LCQ3alrf/n4CGknINgJ+og= +github.com/stellar/go v0.0.0-20241113164517-f09f3e438519/go.mod h1:rrFK7a8i2h9xad9HTfnSN/dTNEqXVHKAbkFeR7UxAgs= github.com/stellar/go-xdr v0.0.0-20231122183749-b53fb00bcac2 h1:OzCVd0SV5qE3ZcDeSFCmOWLZfEWZ3Oe8KtmSOYKEVWE= github.com/stellar/go-xdr v0.0.0-20231122183749-b53fb00bcac2/go.mod h1:yoxyU/M8nl9LKeWIoBrbDPQ7Cy+4jxRcWcOayZ4BMps= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= -github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= +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= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +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.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.34.0 h1:d3AAQJ2DRcxJYHm7OXNXtXt2as1vMDfxeIcFvhmGGm4= github.com/valyala/fasthttp v1.34.0/go.mod h1:epZA5N+7pY6ZaEKRmstzOuYJx9HI8DI1oaCGZpdH4h0= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= +github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= +github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU= +github.com/wlynxg/anet v0.0.5/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/xdrpp/goxdr v0.1.1 h1:E1B2c6E8eYhOVyd7yEpOyopzTPirUeF6mVOfXfGyJyc= github.com/xdrpp/goxdr v0.1.1/go.mod h1:dXo1scL/l6s7iME1gxHWo2XCppbHEKZS7m/KyYWkNzA= -github.com/xeipuuv/gojsonpointer v0.0.0-20151027082146-e0fe6f683076 h1:KM4T3G70MiR+JtqplcYkNVoNz7pDwYaBxWBXQK804So= -github.com/xeipuuv/gojsonpointer v0.0.0-20151027082146-e0fe6f683076/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20150808065054-e02fc20de94c h1:XZWnr3bsDQWAZg4Ne+cPoXRPILrNlPNQfxBuwLl43is= -github.com/xeipuuv/gojsonreference v0.0.0-20150808065054-e02fc20de94c/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v0.0.0-20161231055540-f06f290571ce h1:cVSRGH8cOveJNwFEEZLXtB+XMnRqKLjUP6V/ZFYQCXI= -github.com/xeipuuv/gojsonschema v0.0.0-20161231055540-f06f290571ce/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/yalp/jsonpath v0.0.0-20150812003900-31a79c7593bb h1:06WAhQa+mYv7BiOk13B/ywyTlkoE/S7uu6TBKU6FHnE= github.com/yalp/jsonpath v0.0.0-20150812003900-31a79c7593bb/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v0.0.0-20170107030110-7b1b7adf999d h1:yJIizrfO599ot2kQ6Af1enICnwBD3XoxgX3MrMwot2M= github.com/yudai/gojsondiff v0.0.0-20170107030110-7b1b7adf999d/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20150405163532-d1c525dea8ce h1:888GrqRxabUce7lj4OaoShPxodm3kXOMpSa85wdYzfY= github.com/yudai/golcs v0.0.0-20150405163532-d1c525dea8ce/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= +go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa h1:t2QcU6V556bFjYgu4L6C+6VrCPyJZ+eyRsABUPs1mz4= +golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +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-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/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-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/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= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +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/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/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-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/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-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +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= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= +google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +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= 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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gavv/httpexpect.v1 v1.0.0-20170111145843-40724cf1e4a0 h1:r5ptJ1tBxVAeqw4CrYWhXIMr0SybY3CDHuIbCg5CFVw= gopkg.in/gavv/httpexpect.v1 v1.0.0-20170111145843-40724cf1e4a0/go.mod h1:WtiW9ZA1LdaWqtQRo1VbIL/v4XZ8NDta+O/kSpGgVek= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= 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/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -perun.network/go-perun v0.11.0 h1:25aL0MsyXQ2rHziOnMwJMe70K6NTCbopZMwX67qxt/k= -perun.network/go-perun v0.11.0/go.mod h1:pY/1pJ2OMlCQgEbnfGh9wVfRMJtqN0iAKsiJBLH0/Gc= -perun.network/perun-stellar-backend v0.2.1-0.20240718123359-71880f44c57e h1:ol2v47C/tqq7PvaDTJsevtkQnK1NFb/cU51VoaSdPF4= -perun.network/perun-stellar-backend v0.2.1-0.20240718123359-71880f44c57e/go.mod h1:QN9OM1aOwg/mMnjNs+Fzezqzvkh4Cji0RPY1rGhjl1c= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/blake3 v1.4.0 h1:xDbKOZCVbnZsfzM6mHSYcGRHZ3YrLDzqz8XnV4uaD5w= +lukechampine.com/blake3 v1.4.0/go.mod h1:MQJNQCTnR+kwOP/JEZSxj3MaQjp80FOFSNMMHXcSeX0= +perun.network/go-perun v0.13.1-0.20250519120217-973104e7b38a h1:RO5MV3TqLh+Jya13nztiqtLjOzkZK9w0L7WAYAgsI1c= +perun.network/go-perun v0.13.1-0.20250519120217-973104e7b38a/go.mod h1:uH8iwi75alXDizxxDzH0A+6uqXPbagCpKfl8ECMv/cA= +perun.network/perun-stellar-backend v0.3.0 h1:52Q/D2csJp3RK5Fhs4i89BVh6eoC11tfoyzHXykM4d4= +perun.network/perun-stellar-backend v0.3.0/go.mod h1:owLzEIvpb/ihLt67avTHITH/Hx0WO+dnp7n3/adM3a0= polycry.pt/poly-go v0.0.0-20220301085937-fb9d71b45a37 h1:iA5GzEa/hHfVlQpimEjPV09NATwHXxSjWNB0VVodtew= polycry.pt/poly-go v0.0.0-20220301085937-fb9d71b45a37/go.mod h1:XUBrNtqgEhN3EEOP/5gh7IBd3xVHKidCjXDZfl9+kMU= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/payment-channel-xlm/main.go b/payment-channel-xlm/main.go index 1f6cfa5..60b2943 100644 --- a/payment-channel-xlm/main.go +++ b/payment-channel-xlm/main.go @@ -16,17 +16,26 @@ package main import ( "log" "math/big" + "math/rand" + "time" + "github.com/perun-network/perun-libp2p-wire/p2p" "perun.network/perun-examples/payment-channel-xlm/client" "perun.network/perun-examples/payment-channel-xlm/util" + "perun.network/perun-stellar-backend/wallet/types" "perun.network/go-perun/channel" + "perun.network/go-perun/wallet" "perun.network/go-perun/wire" ) func main() { // Initialize setup (replaces the test setup) log.Println("Starting initial setup") + + // Setup clients. + log.Println("Setting up clients.") + setup, err := util.NewExampleSetup() if err != nil { panic(err) @@ -48,12 +57,33 @@ func payment_example(setup *util.Setup) { log.Println("Initializing a connection between Alice and Bob") bus := wire.NewLocalBus() + + aliceWireAcc := p2p.NewRandomAccount(rand.New(rand.NewSource(time.Now().UnixNano()))) + aliceNet, err := p2p.NewP2PBus(types.StellarBackendID, aliceWireAcc) + if err != nil { + log.Fatalf("creating p2p net: %v", err) + } + aliceBus := aliceNet.Bus + aliceListener := aliceNet.Listener + go aliceBus.Listen(aliceListener) + + bobWireAcc := p2p.NewRandomAccount(rand.New(rand.NewSource(time.Now().UnixNano()))) + bobNet, err := p2p.NewP2PBus(types.StellarBackendID, bobWireAcc) + if err != nil { + log.Fatalf("creating p2p net: %v", err) + } + bobBus := bobNet.Bus + bobListener := bobNet.Listener + go bobBus.Listen(bobListener) + + aliceNet.Dialer.Register(map[wallet.BackendID]wire.Address{types.StellarBackendID: bobWireAcc.Address()}, bobWireAcc.ID().String()) + log.Println("Setup payment clients for Alice and Bob") - alicePerun, err := client.SetupPaymentClient(wAlice, accAlice, setup.GetTokenAsset(), bus, funderAlice, adjAlice) + alicePerun, err := client.SetupPaymentClient(wAlice, accAlice, aliceWireAcc.Address(), setup.GetTokenAsset(), bus, funderAlice, adjAlice) if err != nil { panic(err) } - bobPerun, err := client.SetupPaymentClient(wBob, accBob, setup.GetTokenAsset(), bus, funderBob, adjBob) + bobPerun, err := client.SetupPaymentClient(wBob, accBob, bobWireAcc.Address(), setup.GetTokenAsset(), bus, funderBob, adjBob) if err != nil { panic(err) } @@ -95,12 +125,7 @@ func printBalances(balances channel.Balances) { log.Println("Channel Balances:") // Manually print for Asset 1 - log.Printf("Asset 1:\n") + log.Printf("Asset:\n") log.Printf(" Alice: %s\n", balances[0][0].String()) log.Printf(" Bob: %s\n", balances[0][1].String()) - - // Manually print for Asset 2 - log.Printf("Asset 2:\n") - log.Printf(" Alice: %s\n", balances[1][0].String()) - log.Printf(" Bob: %s\n", balances[1][1].String()) } diff --git a/payment-channel-xlm/util/setup.go b/payment-channel-xlm/util/setup.go index abb3970..c54a707 100644 --- a/payment-channel-xlm/util/setup.go +++ b/payment-channel-xlm/util/setup.go @@ -1,4 +1,4 @@ -// Copyright 2024 PolyCrypt GmbH +// Copyright 2025 PolyCrypt GmbH // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,34 +15,28 @@ package util import ( - "context" - "crypto/rand" - "encoding/binary" "fmt" - "log" mathrand "math/rand" "path/filepath" "runtime" - "time" - "github.com/stellar/go/clients/horizonclient" + pwallet "perun.network/go-perun/wallet" + "github.com/stellar/go/keypair" - "github.com/stellar/go/txnbuild" "github.com/stellar/go/xdr" pchannel "perun.network/go-perun/channel" "perun.network/perun-stellar-backend/channel" + "perun.network/perun-stellar-backend/channel/test" "perun.network/perun-stellar-backend/channel/types" "perun.network/perun-stellar-backend/client" "perun.network/perun-stellar-backend/wallet" - "perun.network/perun-stellar-backend/wire/scval" ) const ( - PerunContractPath = "payment-channel-xlm/testdata/perun_soroban_multi_contract.wasm" - StellarAssetContractPath = "payment-channel-xlm/testdata/perun_soroban_token.wasm" + PerunContractPath = "payment-channel-cc/testdata/perun_soroban_contract.wasm" + StellarAssetContractPath = "payment-channel-cc/testdata/perun_soroban_token.wasm" initLumensBalance = "10000000" initTokenBalance = uint64(2000000) - DefaultTestTimeout = 30 ) type Setup struct { @@ -99,9 +93,9 @@ func getDataFilePath(filename string) (string, error) { func NewExampleSetup() (*Setup, error) { - accs, kpsToFund, ws := MakeRandPerunAccsWallets(5) + accs, kpsToFund, ws := test.MakeRandPerunAccsWallets(5) - if err := CreateFundStellarAccounts(kpsToFund, initLumensBalance); err != nil { + if err := test.CreateFundStellarAccounts(kpsToFund, initLumensBalance); err != nil { return nil, fmt.Errorf("error funding accounts: %w", err) } @@ -110,7 +104,7 @@ func NewExampleSetup() (*Setup, error) { depTokenKps := []*keypair.Full{depTokenOneKp, depTokenTwoKp} - epPerunKp := kpsToFund[4] + depPerunKp := kpsToFund[4] relPathPerun, err := getDataFilePath(PerunContractPath) if err != nil { @@ -121,20 +115,28 @@ func NewExampleSetup() (*Setup, error) { return nil, fmt.Errorf("error getting asset contract path: %w", err) } - perunAddress, _ := Deploy(epPerunKp, relPathPerun) + perunAddress, _ := Deploy(depPerunKp, relPathPerun) tokenAddressOne, _ := Deploy(depTokenOneKp, relPathAsset) tokenAddressTwo, _ := Deploy(depTokenTwoKp, relPathAsset) tokenAddresses := []xdr.ScAddress{tokenAddressOne, tokenAddressTwo} + tokenVector, err := test.MakeCrossAssetVector(tokenAddresses) + if err != nil { + return nil, err + } + + if err = test.InitTokenContract(depTokenOneKp, tokenAddressOne, client.HorizonURL); err != nil { + return nil, err + } - InitTokenContract(depTokenOneKp, tokenAddressOne) - InitTokenContract(depTokenTwoKp, tokenAddressTwo) + if err = test.InitTokenContract(depTokenTwoKp, tokenAddressTwo, client.HorizonURL); err != nil { + return nil, err + } SetupAccountsAndContracts(depTokenKps, kpsToFund[:2], tokenAddresses, initTokenBalance) var assetContractIDs []pchannel.Asset - for _, tokenAddress := range tokenAddresses { assetContractID, err := types.NewStellarAssetFromScAddress(tokenAddress) if err != nil { @@ -143,7 +145,7 @@ func NewExampleSetup() (*Setup, error) { assetContractIDs = append(assetContractIDs, assetContractID) } - cbs := NewContractBackendsFromKeys(kpsToFund[:2]) + cbs := test.NewContractBackendsFromKeys(kpsToFund[:2], []pwallet.Account{accs[0], accs[1]}, client.HorizonURL) aliceCB := cbs[0] aliceWallet := ws[0] @@ -155,7 +157,7 @@ func NewExampleSetup() (*Setup, error) { channelCBs := []*client.ContractBackend{aliceCB, bobCB} channelWallets := []*wallet.EphemeralWallet{aliceWallet, bobWallet} - funders, adjs := CreateFundersAndAdjudicators(channelAccs, cbs, perunAddress, tokenAddresses) + funders, adjs := test.CreateFundersAndAdjudicators(channelAccs, cbs, perunAddress, tokenVector, false) setup := Setup{ accs: channelAccs, @@ -177,161 +179,7 @@ func SetupAccountsAndContracts(deployerKps []*keypair.Full, kps []*keypair.Full, if err != nil { panic(err) } - MintToken(deployerKps[i], tokenAddresses[i], tokenBalance, addr) + test.MintToken(deployerKps[i], tokenAddresses[i], tokenBalance, addr, client.HorizonURL) } } } -func CreateFundersAndAdjudicators(accs []*wallet.Account, cbs []*client.ContractBackend, perunAddress xdr.ScAddress, tokenScAddresses []xdr.ScAddress) ([]*channel.Funder, []*channel.Adjudicator) { - funders := make([]*channel.Funder, len(accs)) - adjs := make([]*channel.Adjudicator, len(accs)) - - tokenVecAddresses := scval.MakeScVecFromScAddresses(tokenScAddresses) - - for i, acc := range accs { - funders[i] = channel.NewFunder(acc, cbs[i], perunAddress, tokenVecAddresses) - adjs[i] = channel.NewAdjudicator(acc, cbs[i], perunAddress, tokenVecAddresses) - } - return funders, adjs -} - -func NewContractBackendsFromKeys(kps []*keypair.Full) []*client.ContractBackend { - cbs := make([]*client.ContractBackend, len(kps)) - // generate Configs - for i, kp := range kps { - cbs[i] = NewContractBackendFromKey(kp) - } - return cbs -} - -func NewContractBackendFromKey(kp *keypair.Full) *client.ContractBackend { - trConfig := client.TransactorConfig{} - trConfig.SetKeyPair(kp) - return client.NewContractBackend(&trConfig) -} - -func MakeRandPerunAccsWallets(count int) ([]*wallet.Account, []*keypair.Full, []*wallet.EphemeralWallet) { - accs := make([]*wallet.Account, count) - kps := make([]*keypair.Full, count) - ws := make([]*wallet.EphemeralWallet, count) - - for i := 0; i < count; i++ { - acc, kp, w := MakeRandPerunAccWallet() - accs[i] = acc - kps[i] = kp - ws[i] = w - } - return accs, kps, ws -} - -func MakeRandPerunAcc() (*wallet.Account, *keypair.Full) { - w := wallet.NewEphemeralWallet() - - var b [8]byte - _, err := rand.Read(b[:]) - if err != nil { - panic(err) - } - - seed := binary.LittleEndian.Uint64(b[:]) - - r := mathrand.New(mathrand.NewSource(int64(seed))) - - acc, kp, err := w.AddNewAccount(r) - if err != nil { - panic(err) - } - return acc, kp -} - -func MakeRandPerunAccWallet() (*wallet.Account, *keypair.Full, *wallet.EphemeralWallet) { - w := wallet.NewEphemeralWallet() - - var b [8]byte - _, err := rand.Read(b[:]) - if err != nil { - panic(err) - } - - seed := binary.LittleEndian.Uint64(b[:]) - - r := mathrand.New(mathrand.NewSource(int64(seed))) - - acc, kp, err := w.AddNewAccount(r) - if err != nil { - panic(err) - } - return acc, kp, w -} - -func CreateFundStellarAccounts(pairs []*keypair.Full, initialBalance string) error { - - numKps := len(pairs) - - masterClient := client.NewHorizonMasterClient() - masterHzClient := masterClient.GetHorizonClient() - sourceKey := keypair.Root(client.NETWORK_PASSPHRASE) - - hzClient := client.NewHorizonClient() - - ops := make([]txnbuild.Operation, numKps) - - accReq := horizonclient.AccountRequest{AccountID: masterClient.GetAddress()} - sourceAccount, err := masterHzClient.AccountDetail(accReq) - if err != nil { - panic(err) - } - - masterAccount := txnbuild.SimpleAccount{ - AccountID: masterClient.GetAddress(), - Sequence: sourceAccount.Sequence, - } - - for i := 0; i < numKps; i++ { - pair := pairs[i] - - ops[i] = &txnbuild.CreateAccount{ - SourceAccount: masterAccount.AccountID, - Destination: pair.Address(), - Amount: initialBalance, - } - } - - txParams := client.GetBaseTransactionParamsWithFee(&masterAccount, txnbuild.MinBaseFee, ops...) - - txSigned, err := client.CreateSignedTransactionWithParams([]*keypair.Full{sourceKey}, txParams) - - if err != nil { - panic(err) - } - _, err = hzClient.SubmitTransaction(txSigned) - if err != nil { - panic(err) - } - - accounts := make([]txnbuild.Account, numKps) - for i, kp := range pairs { - request := horizonclient.AccountRequest{AccountID: kp.Address()} - account, err := hzClient.AccountDetail(request) - if err != nil { - panic(err) - } - - accounts[i] = &account - } - - for _, keys := range pairs { - log.Printf("Funded Stellar L1 account %s (%s) with %s XLM.\n", - keys.Seed(), keys.Address(), initialBalance) - } - - return nil -} - -func (s *Setup) NewCtx(testTimeout float64) context.Context { - timeout := time.Duration(testTimeout * float64(time.Second)) - ctx, cancel := context.WithTimeout(context.Background(), timeout) - if cancel != nil { - return nil - } - return ctx -} diff --git a/payment-channel-xlm/util/token.go b/payment-channel-xlm/util/token.go index 163d06e..1778677 100644 --- a/payment-channel-xlm/util/token.go +++ b/payment-channel-xlm/util/token.go @@ -1,4 +1,4 @@ -// Copyright 2024 PolyCrypt GmbH +// Copyright 2025 PolyCrypt GmbH // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,168 +11,20 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + package util import ( - "errors" - "github.com/stellar/go/clients/horizonclient" "github.com/stellar/go/keypair" "github.com/stellar/go/xdr" "perun.network/perun-stellar-backend/channel" - "perun.network/perun-stellar-backend/channel/types" + "perun.network/perun-stellar-backend/channel/test" "perun.network/perun-stellar-backend/client" - "perun.network/perun-stellar-backend/event" - "perun.network/perun-stellar-backend/wire/scval" ) -const tokenDecimals = uint32(7) -const tokenName = "PerunToken" -const tokenSymbol = "PRN" - -type TokenParams struct { - decimals uint32 - name string - symbol string -} - -func NewTokenParams() *TokenParams { - return &TokenParams{ - decimals: tokenDecimals, - name: tokenName, - symbol: tokenSymbol, - } -} - -func (t *TokenParams) GetDecimals() uint32 { - return t.decimals -} - -func (t *TokenParams) GetName() string { - return t.name -} - -func (t *TokenParams) GetSymbol() string { - return t.symbol -} - -func BuildInitTokenArgs(adminAddr xdr.ScAddress, decimals uint32, tokenName string, tokenSymbol string) (xdr.ScVec, error) { - - adminScAddr, err := scval.WrapScAddress(adminAddr) - if err != nil { - panic(err) - } - - decim := xdr.Uint32(decimals) - scvaltype := xdr.ScValTypeScvU32 - decimSc, err := xdr.NewScVal(scvaltype, decim) - if err != nil { - panic(err) - } - - tokenNameScString := xdr.ScString(tokenName) - tokenNameXdr := scval.MustWrapScString(tokenNameScString) - - tokenSymbolString := xdr.ScString(tokenSymbol) - tokenSymbolXdr := scval.MustWrapScString(tokenSymbolString) - - initTokenArgs := xdr.ScVec{ - adminScAddr, - decimSc, - tokenNameXdr, - tokenSymbolXdr, - } - - return initTokenArgs, nil -} - -func InitTokenContract(kp *keypair.Full, contractIDAddress xdr.ScAddress) error { - - cb := NewContractBackendFromKey(kp) - - adminScAddr, err := types.MakeAccountAddress(kp) - if err != nil { - panic(err) - } - - tokenParams := NewTokenParams() - decimals := tokenParams.GetDecimals() - name := tokenParams.GetName() - symbol := tokenParams.GetSymbol() - - initArgs, err := BuildInitTokenArgs(adminScAddr, decimals, name, symbol) - if err != nil { - panic(err) - } - - txMeta, err := cb.InvokeSignedTx("initialize", initArgs, contractIDAddress) - if err != nil { - return errors.New("error while invoking and processing host function: initialize" + err.Error()) - } - - _, err = event.DecodeEventsPerun(txMeta) - if err != nil { - return err - } - - return nil -} - -func GetTokenName(kp *keypair.Full, contractAddress xdr.ScAddress) error { - - cb := NewContractBackendFromKey(kp) - TokenNameArgs := xdr.ScVec{} - - _, err := cb.InvokeSignedTx("name", TokenNameArgs, contractAddress) - if err != nil { - panic(err) - } - - return nil -} - -func BuildGetTokenBalanceArgs(balanceOf xdr.ScAddress) (xdr.ScVec, error) { - - recScAddr, err := scval.WrapScAddress(balanceOf) - if err != nil { - panic(err) - } - - GetTokenBalanceArgs := xdr.ScVec{ - recScAddr, - } - - return GetTokenBalanceArgs, nil -} - -func BuildTransferTokenArgs(from xdr.ScAddress, to xdr.ScAddress, amount xdr.Int128Parts) (xdr.ScVec, error) { - - fromScAddr, err := scval.WrapScAddress(from) - if err != nil { - panic(err) - } - - toScAddr, err := scval.WrapScAddress(to) - if err != nil { - panic(err) - } - - amountSc, err := scval.WrapInt128Parts(amount) - if err != nil { - panic(err) - } - - GetTokenBalanceArgs := xdr.ScVec{ - fromScAddr, - toScAddr, - amountSc, - } - - return GetTokenBalanceArgs, nil -} - func Deploy(kp *keypair.Full, contractPath string) (xdr.ScAddress, xdr.Hash) { - deployerCB := NewContractBackendFromKey(kp) + deployerCB := test.NewContractBackendFromKey(kp, nil, client.HorizonURL) tr := deployerCB.GetTransactor() hzClient := tr.GetHorizonClient() deployerAccReq := horizonclient.AccountRequest{AccountID: kp.Address()} @@ -182,11 +34,13 @@ func Deploy(kp *keypair.Full, contractPath string) (xdr.ScAddress, xdr.Hash) { } installContractOpInstall := channel.AssembleInstallContractCodeOp(kp.Address(), contractPath) - preFlightOp, _ := client.PreflightHostFunctions(hzClient, &deployerAcc, *installContractOpInstall) + preFlightOp, minFeeInstall, err := client.PreflightHostFunctions(hzClient, &deployerAcc, *installContractOpInstall) + if err != nil { + panic(err) + } - minFeeInstallCustom := 500000 - txParamsInstall := client.GetBaseTransactionParamsWithFee(&deployerAcc, int64(minFeeInstallCustom), &preFlightOp) - txSignedInstall, err := client.CreateSignedTransactionWithParams([]*keypair.Full{kp}, txParamsInstall) + txParamsInstall := client.GetBaseTransactionParamsWithFee(&deployerAcc, int64(100)+minFeeInstall, &preFlightOp) + txSignedInstall, err := client.CreateSignedTransactionWithParams([]*keypair.Full{kp}, txParamsInstall, client.NETWORK_PASSPHRASE) if err != nil { panic(err) } @@ -197,9 +51,12 @@ func Deploy(kp *keypair.Full, contractPath string) (xdr.ScAddress, xdr.Hash) { } createContractOp := channel.AssembleCreateContractOp(kp.Address(), contractPath, "a1", client.NETWORK_PASSPHRASE) - preFlightOpCreate, _ := client.PreflightHostFunctions(hzClient, &deployerAcc, *createContractOp) - txParamsCreate := client.GetBaseTransactionParamsWithFee(&deployerAcc, int64(minFeeInstallCustom), &preFlightOpCreate) - txSignedCreate, err := client.CreateSignedTransactionWithParams([]*keypair.Full{kp}, txParamsCreate) + preFlightOpCreate, minFeeDeploy, err := client.PreflightHostFunctions(hzClient, &deployerAcc, *createContractOp) + if err != nil { + panic(err) + } + txParamsCreate := client.GetBaseTransactionParamsWithFee(&deployerAcc, int64(100)+minFeeDeploy, &preFlightOpCreate) + txSignedCreate, err := client.CreateSignedTransactionWithParams([]*keypair.Full{kp}, txParamsCreate, client.NETWORK_PASSPHRASE) if err != nil { panic(err) } @@ -218,23 +75,3 @@ func Deploy(kp *keypair.Full, contractPath string) (xdr.ScAddress, xdr.Hash) { return contractIDAddress, contractHash } - -func MintToken(kp *keypair.Full, contractAddr xdr.ScAddress, amount uint64, recipientAddr xdr.ScAddress) error { - cb := NewContractBackendFromKey(kp) - - amountTo128Xdr := xdr.Int128Parts{Hi: 0, Lo: xdr.Uint64(amount)} - - amountSc, err := xdr.NewScVal(xdr.ScValTypeScvI128, amountTo128Xdr) - if err != nil { - panic(err) - } - mintTokenArgs, err := client.BuildMintTokenArgs(recipientAddr, amountSc) - if err != nil { - panic(err) - } - _, err = cb.InvokeSignedTx("mint", mintTokenArgs, contractAddr) - if err != nil { - panic(err) - } - return nil -} From a4207d6e151cd848d3c203e8c580f420f5bc7478 Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Wed, 21 May 2025 10:21:28 +0200 Subject: [PATCH 3/7] chore(payment-channel-xlm): update docs Signed-off-by: Minh Huy Tran --- payment-channel-xlm/README.md | 12 ++++++++++++ payment-channel-xlm/client/channel.go | 14 ++++++++++++++ payment-channel-xlm/client/client.go | 14 ++++++++++++++ payment-channel-xlm/client/handle.go | 14 ++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/payment-channel-xlm/README.md b/payment-channel-xlm/README.md index 2dd5c13..f4340e3 100644 --- a/payment-channel-xlm/README.md +++ b/payment-channel-xlm/README.md @@ -4,6 +4,18 @@ This example shows how to set up a payment channel on Stellar, which utilizes th # Setup +To install the docker image, you need to download and build it first, using the build.sh script in testdata/docker: + +```sh +./testdata/docker/build.sh +``` + +or using `Makefile` + +```sh + make +``` + Spin up the local Stellar blockchain, serving as a local testnet for demonstration purposes. ``` diff --git a/payment-channel-xlm/client/channel.go b/payment-channel-xlm/client/channel.go index 81433af..c006c06 100644 --- a/payment-channel-xlm/client/channel.go +++ b/payment-channel-xlm/client/channel.go @@ -1,3 +1,17 @@ +// Copyright 2025 PolyCrypt GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package client import ( diff --git a/payment-channel-xlm/client/client.go b/payment-channel-xlm/client/client.go index b14ca4c..35917bd 100644 --- a/payment-channel-xlm/client/client.go +++ b/payment-channel-xlm/client/client.go @@ -1,3 +1,17 @@ +// Copyright 2025 PolyCrypt GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package client import ( diff --git a/payment-channel-xlm/client/handle.go b/payment-channel-xlm/client/handle.go index c382c25..e12e77f 100644 --- a/payment-channel-xlm/client/handle.go +++ b/payment-channel-xlm/client/handle.go @@ -1,3 +1,17 @@ +// Copyright 2025 PolyCrypt GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package client import ( From 293dc4b27ce8f47c1d848c47c279105cd51308d8 Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Wed, 21 May 2025 11:04:57 +0200 Subject: [PATCH 4/7] feat(ci): update ci for payment-channel-xlm Signed-off-by: Minh Huy Tran --- .github/workflows/ci.yml | 9 ++-- app-channel/contracts/perun-eth-contracts | 2 +- payment-channel-xlm/quickstart.sh | 57 +++++++++++++++-------- 3 files changed, 43 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9889f9..4ff74e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,19 +47,18 @@ jobs: - name: Payment Channel XLM working-directory: payment-channel-xlm run: | - pkill -f quickstart.sh || true + docker stop stellar soroban-preview || true sleep 5 chmod +x ./testdata/docker/build.sh ./testdata/docker/build.sh chmod +x ./quickstart.sh - ./quickstart.sh standalone & + ./quickstart.sh standalone-detached sleep 50 go run ./ - docker stop stellar - sleep 5 + docker stop stellar soroban-preview - name: Payment Channel Cross-Contract working-directory: payment-channel-cc @@ -106,7 +105,7 @@ jobs: ./stopdfx.sh || true # stop any running dfx ./startdeploy.sh - sleep 15 + sleep 5 go run ./ ./stopdfx.sh || true diff --git a/app-channel/contracts/perun-eth-contracts b/app-channel/contracts/perun-eth-contracts index 01699bf..88b3ce2 160000 --- a/app-channel/contracts/perun-eth-contracts +++ b/app-channel/contracts/perun-eth-contracts @@ -1 +1 @@ -Subproject commit 01699bf3e63695a6c6cf8142d0a54c91c97aaa34 +Subproject commit 88b3ce254417b554e1151ff709b72dadac2753ba diff --git a/payment-channel-xlm/quickstart.sh b/payment-channel-xlm/quickstart.sh index c9751cf..48effe9 100755 --- a/payment-channel-xlm/quickstart.sh +++ b/payment-channel-xlm/quickstart.sh @@ -2,36 +2,41 @@ set -e +DETACHED=0 + case "$1" in standalone) echo "Using standalone network" ARGS="--local" ;; +standalone-detached) + echo "Using standalone network (detached mode)" + ARGS="--local" + DETACHED=1 + ;; futurenet) echo "Using Futurenet network" ARGS="--futurenet" ;; *) - echo "Usage: $0 standalone|futurenet" + echo "Usage: $0 standalone|standalone-detached|futurenet" exit 1 ;; esac -# this is set to the quickstart `soroban-dev` image annointed as the release -# for a given Soroban Release, it is captured on Soroban Releases - https://soroban.stellar.org/docs/reference/releases +# This is set to the quickstart `soroban-dev` image annointed as the release +# for a given Soroban Release. See: https://soroban.stellar.org/docs/reference/releases # QUICKSTART_SOROBAN_DOCKER_SHA=stellar/quickstart:soroban-dev QUICKSTART_SOROBAN_DOCKER_SHA=stellar/quickstart:testing@sha256:274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01 shift -# Run the soroban-preview container -# Remember to do: -# make build-docker - +# Create Docker network if it doesn't exist echo "Creating docker soroban network" (docker network inspect soroban-network -f '{{.Id}}' 2>/dev/null) \ || docker network create soroban-network +# Clean up existing soroban-preview container if present echo "Searching for a previous soroban-preview docker container" containerID=$(docker ps --filter="name=soroban-preview" --all --quiet) if [[ ${containerID} ]]; then @@ -42,9 +47,10 @@ else echo "No previous soroban-preview container was found" fi +# Start the soroban-preview container in detached mode currentDir=$(pwd) docker run -d \ - --volume ${currentDir}:/workspace \ + --volume "${currentDir}:/workspace" \ --memory="2g" \ --cpus="2.0" \ --name soroban-preview \ @@ -53,14 +59,27 @@ docker run -d \ --network soroban-network \ soroban-preview:10 -# Run the stellar quickstart image - -docker run --rm \ - --name stellar \ - --pull always \ - --network soroban-network \ - -p 8000:8000 \ - "$QUICKSTART_SOROBAN_DOCKER_SHA" \ - $ARGS \ - --enable-soroban-rpc \ - "$@" # Pass through args from the CLI +# Start the stellar quickstart container +if [[ "$DETACHED" == "1" ]]; then + echo "Running stellar quickstart container in detached mode" + docker run -d \ + --name stellar \ + --pull always \ + --network soroban-network \ + -p 8000:8000 \ + "$QUICKSTART_SOROBAN_DOCKER_SHA" \ + $ARGS \ + --enable-soroban-rpc \ + "$@" +else + echo "Running stellar quickstart container in foreground" + docker run --rm \ + --name stellar \ + --pull always \ + --network soroban-network \ + -p 8000:8000 \ + "$QUICKSTART_SOROBAN_DOCKER_SHA" \ + $ARGS \ + --enable-soroban-rpc \ + "$@" +fi From a2484afb513fc62406806037a1a40e9f923c0f2f Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Wed, 21 May 2025 12:41:35 +0200 Subject: [PATCH 5/7] fix(ci): fix devchain cleanup Signed-off-by: Minh Huy Tran --- .github/workflows/ci.yml | 12 +++++++++--- payment-channel-xlm/quickstart.sh | 5 ++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ff74e9..c6d8b29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,10 +23,17 @@ jobs: restore-keys: | ${{ runner.os }}-go- - - uses: dfinity/setup-dfx@main + - name: Install Internet Computer SDK + uses: dfinity/setup-dfx@main with: dfx-version: 0.25.1 + - name: Build Stellar Devchain Image + working-directory: payment-channel-xlm + run: | + chmod +x ./testdata/docker/build.sh + ./testdata/docker/build.sh + - name: Pull ganache-cli image run: docker pull ${{ env.ganache-image }} @@ -58,7 +65,7 @@ jobs: sleep 50 go run ./ - docker stop stellar soroban-preview + docker stop stellar - name: Payment Channel Cross-Contract working-directory: payment-channel-cc @@ -105,7 +112,6 @@ jobs: ./stopdfx.sh || true # stop any running dfx ./startdeploy.sh - sleep 5 go run ./ ./stopdfx.sh || true diff --git a/payment-channel-xlm/quickstart.sh b/payment-channel-xlm/quickstart.sh index 48effe9..fff1132 100755 --- a/payment-channel-xlm/quickstart.sh +++ b/payment-channel-xlm/quickstart.sh @@ -59,10 +59,13 @@ docker run -d \ --network soroban-network \ soroban-preview:10 +echo "Cleaning up any existing stellar container" +docker rm -f stellar 2>/dev/null || true + # Start the stellar quickstart container if [[ "$DETACHED" == "1" ]]; then echo "Running stellar quickstart container in detached mode" - docker run -d \ + docker run --rm -d \ --name stellar \ --pull always \ --network soroban-network \ From 70efe6fd51f48fb0fe1ff74c6a01fdfa35c1f884 Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Mon, 26 May 2025 17:16:38 +0200 Subject: [PATCH 6/7] chore(payment-channel-xlm): remove local bus Signed-off-by: Minh Huy Tran --- .github/workflows/ci.yml | 2 +- payment-channel-xlm/client/client.go | 2 +- payment-channel-xlm/main.go | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6d8b29..83a73a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: - name: Install Internet Computer SDK uses: dfinity/setup-dfx@main with: - dfx-version: 0.25.1 + dfx-version: 0.24.0 - name: Build Stellar Devchain Image working-directory: payment-channel-xlm diff --git a/payment-channel-xlm/client/client.go b/payment-channel-xlm/client/client.go index 35917bd..676df77 100644 --- a/payment-channel-xlm/client/client.go +++ b/payment-channel-xlm/client/client.go @@ -48,7 +48,7 @@ func SetupPaymentClient( wireAddr wire.Address, stellarTokenIDs []channel.Asset, - bus *wire.LocalBus, + bus wire.Bus, funder channel.Funder, adj channel.Adjudicator, ) (*PaymentClient, error) { diff --git a/payment-channel-xlm/main.go b/payment-channel-xlm/main.go index 60b2943..d74443e 100644 --- a/payment-channel-xlm/main.go +++ b/payment-channel-xlm/main.go @@ -56,7 +56,6 @@ func payment_example(setup *util.Setup) { adjBob := setup.GetAdjudicators()[1] log.Println("Initializing a connection between Alice and Bob") - bus := wire.NewLocalBus() aliceWireAcc := p2p.NewRandomAccount(rand.New(rand.NewSource(time.Now().UnixNano()))) aliceNet, err := p2p.NewP2PBus(types.StellarBackendID, aliceWireAcc) @@ -79,11 +78,11 @@ func payment_example(setup *util.Setup) { aliceNet.Dialer.Register(map[wallet.BackendID]wire.Address{types.StellarBackendID: bobWireAcc.Address()}, bobWireAcc.ID().String()) log.Println("Setup payment clients for Alice and Bob") - alicePerun, err := client.SetupPaymentClient(wAlice, accAlice, aliceWireAcc.Address(), setup.GetTokenAsset(), bus, funderAlice, adjAlice) + alicePerun, err := client.SetupPaymentClient(wAlice, accAlice, aliceWireAcc.Address(), setup.GetTokenAsset(), aliceBus, funderAlice, adjAlice) if err != nil { panic(err) } - bobPerun, err := client.SetupPaymentClient(wBob, accBob, bobWireAcc.Address(), setup.GetTokenAsset(), bus, funderBob, adjBob) + bobPerun, err := client.SetupPaymentClient(wBob, accBob, bobWireAcc.Address(), setup.GetTokenAsset(), bobBus, funderBob, adjBob) if err != nil { panic(err) } From ccde11b54a802da336f8aa1004a625ca83469c8c Mon Sep 17 00:00:00 2001 From: Minh Huy Tran Date: Mon, 26 May 2025 17:54:55 +0200 Subject: [PATCH 7/7] chore(ci): fix dfx version Signed-off-by: Minh Huy Tran --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83a73a5..20d592f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,7 @@ jobs: working-directory: payment-channel-dot run: | docker run --name polkadot --detach --rm -it -p 9944:9944 ghcr.io/perun-network/polkadot-test-node:0.4.0 - sleep 5 + sleep 10 go run . docker stop polkadot