diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 960d1fd..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,279 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:de159229e3cb736ff6a51c904bfdd6fd69c33484832375388de2b640c1594e4d" - name = "github.com/btcsuite/btcd" - packages = [ - "btcec", - "chaincfg", - "chaincfg/chainhash", - "wire", - ] - pruneopts = "UT" - revision = "cff30e1d23fc9e800b2b5b4b41ef1817dda07e9f" - -[[projects]] - digest = "1:d0a31b77988b04afbfa2c5ee38567a7a35d5a95de2266a644a7bc8d5c898e68d" - name = "github.com/btcsuite/btcutil" - packages = [ - ".", - "base58", - "bech32", - ] - pruneopts = "UT" - revision = "ab6388e0c60ae4834a1f57511e20c17b5f78be4b" - -[[projects]] - digest = "1:a138d82090d405fcb3cba3d2f5858b01ad3bbd08832ffa6a6db433d9ad597575" - name = "github.com/btcsuite/btcwallet" - packages = [ - "internal/zero", - "snacl", - ] - pruneopts = "UT" - revision = "8ae4afc70174bacc745e8dd89fc6db2d817909bd" - -[[projects]] - branch = "master" - digest = "1:064d2cebe444ff7907a912c3ee249c70ae7859fd0fb03c25a0240cbcce2adb4c" - name = "github.com/btcsuite/golangcrypto" - packages = [ - "nacl/secretbox", - "pbkdf2", - "poly1305", - "salsa20/salsa", - "scrypt", - ] - pruneopts = "UT" - revision = "53f62d9b43e87a6c56975cf862af7edf33a8d0df" - -[[projects]] - digest = "1:e802928326e2d631840a238c372417c3ade751b79ff491c5f0a4755c912643cd" - name = "github.com/coreos/bbolt" - packages = ["."] - pruneopts = "UT" - revision = "4f5275f4ebbf6fe7cb772de987fa96ee674460a7" - -[[projects]] - digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" - name = "github.com/davecgh/go-spew" - packages = ["spew"] - pruneopts = "UT" - revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" - version = "v1.1.1" - -[[projects]] - branch = "master" - digest = "1:6470f934bf9a7756456e786fa6f29c045ceb9136c827810f772e94bf5188254a" - name = "github.com/golang/crypto" - packages = ["acme/autocert"] - pruneopts = "UT" - revision = "0709b304e793a5edb4a2c0145f281ecdc20838a4" - -[[projects]] - digest = "1:19c3d5be42d5d503b94650e45bb2a01264bb36caff20f708e9cf67a6683b4c04" - name = "github.com/golang/protobuf" - packages = [ - "jsonpb", - "proto", - "protoc-gen-go/descriptor", - "ptypes/any", - "ptypes/struct", - ] - pruneopts = "UT" - revision = "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175" - -[[projects]] - digest = "1:c79fb010be38a59d657c48c6ba1d003a8aa651fa56b579d959d74573b7dff8e1" - name = "github.com/gorilla/context" - packages = ["."] - pruneopts = "UT" - revision = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42" - version = "v1.1.1" - -[[projects]] - digest = "1:e73f5b0152105f18bc131fba127d9949305c8693f8a762588a82a48f61756f5f" - name = "github.com/gorilla/mux" - packages = ["."] - pruneopts = "UT" - revision = "e3702bed27f0d39777b0b37b664b6280e8ef8fbf" - version = "v1.6.2" - -[[projects]] - digest = "1:983bdae4397d2a7c88316865e7de6b76bbedd8c33342004931829eba0975d9ed" - name = "github.com/grpc-ecosystem/grpc-gateway" - packages = [ - "runtime", - "runtime/internal", - "utilities", - ] - pruneopts = "UT" - revision = "f2862b476edcef83412c7af8687c9cd8e4097c0f" - -[[projects]] - branch = "master" - digest = "1:a330103bc9731260ee9fa14764e9e3fce46e02de19d6aca3eeba1d425badfbf0" - name = "github.com/juju/loggo" - packages = ["."] - pruneopts = "UT" - revision = "584905176618da46b895b176c721b02c476b6993" - -[[projects]] - digest = "1:c2b45ecd1f0a0d7d3820c1c75db58ea2f5f6e89452870f1090b1afae1460c96c" - name = "github.com/lightningnetwork/lnd" - packages = [ - "lnrpc", - "macaroons", - ] - pruneopts = "UT" - revision = "fb95858afce6d7129758e7677bcb1552c5be2c51" - -[[projects]] - branch = "master" - digest = "1:d673e95129a1107bfd04e093751a5e1267faabc27d218d824fb013f57ac08f55" - name = "github.com/rogpeppe/fastuuid" - packages = ["."] - pruneopts = "UT" - revision = "6724a57986aff9bff1a1770e9347036def7c89f6" - -[[projects]] - branch = "master" - digest = "1:54af887459541be57ec3de2bdc101f56e9916631d8f78ed65b1c5542fe9680a0" - name = "golang.org/x/crypto" - packages = [ - "acme", - "curve25519", - "internal/subtle", - "nacl/box", - "nacl/secretbox", - "poly1305", - "ripemd160", - "salsa20/salsa", - ] - pruneopts = "UT" - revision = "0709b304e793a5edb4a2c0145f281ecdc20838a4" - -[[projects]] - digest = "1:279284b3cc1429d8ea79402792b17c5dbfadd583ec4963db69f0368762f89be4" - name = "golang.org/x/net" - packages = [ - "context", - "http2", - "http2/hpack", - "idna", - "internal/timeseries", - "lex/httplex", - "trace", - ] - pruneopts = "UT" - revision = "ae89d30ce0c63142b652837da33d782e2b0a9b25" - -[[projects]] - branch = "master" - digest = "1:6eb2645d74b43d9c87b51947df39f7c668a4f422cd512053f7f6f75bfaad0197" - name = "golang.org/x/sys" - packages = ["unix"] - pruneopts = "UT" - revision = "917fdcba135dcbaccd57425db91723541b4427c8" - -[[projects]] - digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" - name = "golang.org/x/text" - packages = [ - "collate", - "collate/build", - "internal/colltab", - "internal/gen", - "internal/tag", - "internal/triegen", - "internal/ucd", - "language", - "secure/bidirule", - "transform", - "unicode/bidi", - "unicode/cldr", - "unicode/norm", - "unicode/rangetable", - ] - pruneopts = "UT" - revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" - version = "v0.3.0" - -[[projects]] - digest = "1:c2dee8dbcc504d1a7858f5dbaed7c8b256c512c5e9e81480158c30185bbd2792" - name = "google.golang.org/genproto" - packages = [ - "googleapis/api/annotations", - "googleapis/rpc/status", - ] - pruneopts = "UT" - revision = "df60624c1e9b9d2973e889c7a1cff73155da81c4" - -[[projects]] - digest = "1:8d9ccf0a790b530f94357a5d27e9c86fb53e862b6e0f9133c792269c0b567218" - name = "google.golang.org/grpc" - packages = [ - ".", - "codes", - "connectivity", - "credentials", - "grpclb/grpc_lb_v1", - "grpclog", - "internal", - "keepalive", - "metadata", - "naming", - "peer", - "stats", - "status", - "tap", - "transport", - ] - pruneopts = "UT" - revision = "b3ddf786825de56a4178401b7e174ee332173b66" - -[[projects]] - digest = "1:9f0c81ca4b497d3723d0a66495d8a1efe277068b77ef3ad2d6460e480bf09bb3" - name = "gopkg.in/errgo.v1" - packages = ["."] - pruneopts = "UT" - revision = "b20caedf0710d0988e92b5f2d76843ad1f231f2d" - version = "v1.0.0" - -[[projects]] - digest = "1:f75654fe9e7a52c9df4c13d3c362a02e9dd0ab5e1ef336212ae68964c05ff53f" - name = "gopkg.in/macaroon-bakery.v2" - packages = [ - "bakery", - "bakery/checkers", - "bakery/internal/macaroonpb", - ] - pruneopts = "UT" - revision = "94012773d2874a067572bd16d7d11ae02968b47b" - -[[projects]] - digest = "1:0622939c131fd6ca6fc9dfb25adda2f195062975045baba7ad94607e6f3c52b7" - name = "gopkg.in/macaroon.v2" - packages = ["."] - pruneopts = "UT" - revision = "bed2a428da6e56d950bed5b41fcbae3141e5b0d0" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/btcsuite/btcd/chaincfg/chainhash", - "github.com/btcsuite/btcd/wire", - "github.com/btcsuite/btcutil", - "github.com/davecgh/go-spew/spew", - "github.com/golang/crypto/acme/autocert", - "github.com/gorilla/mux", - "github.com/lightningnetwork/lnd/lnrpc", - "github.com/lightningnetwork/lnd/macaroons", - "google.golang.org/grpc", - "google.golang.org/grpc/credentials", - "gopkg.in/macaroon.v2", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index b833496..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,62 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[[constraint]] - name = "github.com/btcsuite/btcd" - revision = "cff30e1d23fc9e800b2b5b4b41ef1817dda07e9f" - -[[constraint]] - name = "github.com/btcsuite/btcutil" - revision = "ab6388e0c60ae4834a1f57511e20c17b5f78be4b" - -[[constraint]] - name = "github.com/davecgh/go-spew" - version = "1.1.1" - -[[constraint]] - branch = "master" - name = "github.com/golang/crypto" - -[[constraint]] - name = "github.com/gorilla/mux" - version = "1.6.2" - -[[constraint]] - name = "github.com/lightningnetwork/lnd" - revision = "fb95858afce6d7129758e7677bcb1552c5be2c51" - -[[constraint]] - name = "google.golang.org/grpc" - revision = "b3ddf786825de56a4178401b7e174ee332173b66" - -[[constraint]] - name = "gopkg.in/macaroon.v2" - revision = "bed2a428da6e56d950bed5b41fcbae3141e5b0d0" - -[prune] - go-tests = true - unused-packages = true diff --git a/README.md b/README.md index daaad9e..40d7f18 100644 --- a/README.md +++ b/README.md @@ -2,59 +2,41 @@ [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/lightninglabs/lightning-faucet/blob/master/LICENSE)      -[![Irc](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)](https://webchat.freenode.net/?channels=lnd) The Lightning Network Faucet is a faucet that is currently deployed on the -Bitcoin and Litecoin testnets. +Decred testnet. The following faucets are currently available: -- Bitcoin: https://faucet.lightning.community -- Litecoin: https://ltc.faucet.lightning.community +- https://testnet-dcrln-01.matheusd.com -The Testnet Lightning Faucet (TLF) is similar to other existing Bitcoin -faucets. However, rather then sending bitcoin directly on-chain to a user of +The Testnet Lightning Faucet (TLF) is similar to other existing Decred +faucets. However, rather then sending dcr directly on-chain to a user of the faucet, the TLF will instead open a payment channel with the target user. The user can then either use their new link to the Lightning Network to facilitate payments, or immediately close the channel (which immediately credits them on-chain like regular faucets). -Currently the TLF is only compatible with `lnd`, but in the near future as the -other Lightning implementations ([eclair](https://github.com/ACINQ/eclair/), -[c-lightning](https://github.com/ElementsProject/lightning), -[lit](https://github.com/ElementsProject/lightning), and more) become -compatible, the faucet will also be usable between all the active -implementations. +Currently the TLF is only compatible with `dcrlnd`. ## Installation In order to build from source, the following build dependencies are required: * **Go:** Installation instructions can be found [here](http://golang.org/doc/install). - - It is recommended to add `$GOPATH/bin` to your `PATH` at this point. - **Note:** If you are building with `Go 1.5`, then you'll need to - enable the vendor experiment by setting the `GO15VENDOREXPERIMENT` - environment variable to `1`. If you're using `Go 1.6` or later, then - it is safe to skip this step. - * **Glide:** This project uses `Glide` to manage dependencies as well - as to provide *reproducible builds*. To install `Glide`, execute the - following command (assumes you already have Go properly installed): - ``` - $ go get -u github.com/Masterminds/glide - ``` + Minimum Go version supported is 1.11. This project uses go modules, so either + compile it with GO111MODULES=on or outside of the $GOPATH. With the preliminary steps completed, to install the Testnet Lightning Faucet ``` -$ git clone https://github.com/lightninglabs/lightning-faucet $GOPATH/src/github.com/lightninglabs/lightning-faucet -$ cd $GOPATH/src/github.com/lightninglabs/lightning-faucet -$ glide install +$ git clone https://github.com/decred/lightning-faucet src/github.com/decred/lightning-faucet +$ cd src/github.com/decred/lightning-faucet $ go install -v ``` ## Deploying The Faucet Once you have the faucet installed, you'll need to ensure you have a local -[`lnd`](https://github.com/lightningnetwork/lnd) active and fully synced. +[`dcrlnd`](https://github.com/decred/dcrlnd) active and fully synced. Once the node is synced, execute the following command (from this directory) to deploy the faucet: @@ -62,17 +44,15 @@ deploy the faucet: lightning-faucet --lnd_ip=X.X.X.X ``` -Where `X.X.X.X` is the public, reachable IP address for your active `lnd` node. +Where `X.X.X.X` is the public, reachable IP address for your active `dcrlnd` node. The configuration for the faucet includes a TLS certificate provided by [Let's Encrypt](https://letsencrypt.org) so your faucet will be reachable over `https` by default. +To enable HTTPS support via [Let's Encrypt](https://letsencrypt.org), specify +a few additional options: -### Updating -To update your version of the `TLF` to the latest version run the following -commands: ``` -$ cd $GOPATH/src/github.com/lightninglabs/lightning-faucet -$ git pull && glide install -$ go install -v +lightning-faucet -lnd_ip=X.X.X.X -use_le_https -domain my-faucet-domain.example.com ``` + diff --git a/faucet.go b/faucet.go index 86c96a4..e97fa2b 100644 --- a/faucet.go +++ b/faucet.go @@ -8,7 +8,6 @@ import ( "log" "net/http" "os" - "os/exec" "path/filepath" "strconv" "strings" @@ -17,12 +16,12 @@ import ( macaroon "gopkg.in/macaroon.v2" - "github.com/btcsuite/btcd/chaincfg/chainhash" - "github.com/btcsuite/btcd/wire" - "github.com/btcsuite/btcutil" "github.com/davecgh/go-spew/spew" - "github.com/lightningnetwork/lnd/lnrpc" - "github.com/lightningnetwork/lnd/macaroons" + "github.com/decred/dcrd/chaincfg/chainhash" + "github.com/decred/dcrd/dcrutil" + "github.com/decred/dcrd/wire" + "github.com/decred/dcrlnd/lnrpc" + "github.com/decred/dcrlnd/macaroons" "google.golang.org/grpc" "google.golang.org/grpc/credentials" ) @@ -30,7 +29,7 @@ import ( const ( // maxChannelSize is the larget channel that the faucet will create to // another peer. - maxChannelSize int64 = (1 << 24) + maxChannelSize int64 = (1 << 30) // minChannelSize is the smallest channel that the faucet will extend // to a peer. @@ -38,13 +37,13 @@ const ( ) var ( - lndHomeDir = btcutil.AppDataDir("lnd", false) + lndHomeDir = dcrutil.AppDataDir("dcrlnd", false) defaultTLSCertFilename = "tls.cert" tlsCertPath = filepath.Join(lndHomeDir, defaultTLSCertFilename) defaultMacaroonFilename = "admin.macaroon" defaultMacaroonPath = filepath.Join( - lndHomeDir, "data", "chain", "bitcoin", "testnet", + lndHomeDir, "data", "chain", "decred", "testnet", defaultMacaroonFilename, ) ) @@ -395,16 +394,22 @@ func (l *lightningFaucet) fetchHomeState() (*homePageContext, error) { return nil, err } - cmd := exec.Command("git", "log", "--pretty=format:'%H'", "-n", "1") - cmd.Dir = os.Getenv("GOPATH") + "/src/github.com/lightningnetwork/lnd" - gitHash, err := cmd.Output() - if err != nil { - gitHash = []byte{} - } + /* + cmd := exec.Command("git", "log", "--pretty=format:'%H'", "-n", "1") + cmd.Dir = os.Getenv("GOPATH") + "/src/github.com/lightningnetwork/lnd" + gitHash, err := cmd.Output() + if err != nil { + gitHash = []byte{} + } + */ + + // Fix up. I commented the above because I don't have the code in my + // vps. + gitHash := "0f1927992ec21d73500c81109463fd11cbe98163" nodeAddr := fmt.Sprintf("%v@%v", nodeInfo.IdentityPubkey, *lndIP) return &homePageContext{ - NumCoins: btcutil.Amount(walletBalance.ConfirmedBalance).ToBTC(), + NumCoins: dcrutil.Amount(walletBalance.ConfirmedBalance).ToCoin(), NumChannels: nodeInfo.NumActiveChannels, GitCommitHash: strings.Replace(string(gitHash), "'", "", -1), NodeAddr: nodeAddr, @@ -535,19 +540,23 @@ func (l *lightningFaucet) openChannel(homeTemplate *template.Template, // With the connection established (or already present) with the target // peer, we'll now parse out the rest of the fields, performing // validation and exiting early if any field is invalid. - chanSize, err := strconv.ParseInt(r.FormValue("amt"), 10, 64) + chanSizeFloat, err := strconv.ParseFloat(r.FormValue("amt"), 64) if err != nil { homeState.SubmissionError = ChanAmountNotNumber homeTemplate.Execute(w, homeState) return } - pushAmt, err := strconv.ParseInt(r.FormValue("bal"), 10, 64) + pushAmtFloat, err := strconv.ParseFloat(r.FormValue("bal"), 64) if err != nil { homeState.SubmissionError = PushIncorrect homeTemplate.Execute(w, homeState) return } + // Convert from input (dcr) to api (atoms) units. + chanSize := int64(chanSizeFloat * 1e8) + pushAmt := int64(pushAmtFloat * 1e8) + // With the initial validation complete, we'll now ensure the channel // size and push amt meet our constraints. switch { @@ -577,7 +586,7 @@ func (l *lightningFaucet) openChannel(homeTemplate *template.Template, openChanReq := &lnrpc.OpenChannelRequest{ NodePubkey: nodePub, LocalFundingAmount: chanSize, - PushSat: pushAmt, + PushAtoms: pushAmt, } log.Printf("attempting to create channel with params: %v", spew.Sdump(openChanReq)) diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..abeea8a --- /dev/null +++ b/go.mod @@ -0,0 +1,51 @@ +module github.com/decred/lightning-faucet/main + +go 1.12 + +require ( + github.com/btcsuite/btcd v0.0.0-20180903232927-cff30e1d23fc + github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a + github.com/btcsuite/btcwallet v0.0.0-20180904010540-8ae4afc70174 + github.com/btcsuite/golangcrypto v0.0.0-20150304025918-53f62d9b43e8 + github.com/coreos/bbolt v0.0.0-20180223184059-4f5275f4ebbf + github.com/davecgh/go-spew v1.1.1 + github.com/decred/dcrd/chaincfg/chainhash v1.0.1 + github.com/decred/dcrd/dcrutil v1.2.0 + github.com/decred/dcrd/wire v1.2.0 + github.com/decred/dcrlnd v0.2.1-alpha + github.com/golang/crypto v0.0.0-20180904163835-0709b304e793 + github.com/golang/protobuf v1.2.0 + github.com/gorilla/context v1.1.1 + github.com/gorilla/mux v1.6.2 + github.com/grpc-ecosystem/grpc-gateway v1.6.4 + github.com/juju/loggo v0.0.0-20180524022052-584905176618 + github.com/lightningnetwork/lnd v0.0.0-20180906040142-fb95858afce6 + github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af + golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576 + golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 + golang.org/x/sys v0.0.0-20190318195719-6c81ef8f67ca + golang.org/x/text v0.3.0 + google.golang.org/genproto v0.0.0-20190111180523-db91494dd46c + google.golang.org/grpc v1.18.0 + gopkg.in/errgo.v1 v1.0.0 + gopkg.in/macaroon-bakery.v2 v2.1.0 + gopkg.in/macaroon.v2 v2.0.0 +) + +replace ( + github.com/decred/dcrd => github.com/decred/dcrd v0.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrd/bech32 => github.com/decred/dcrd/bech32 v0.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrd/blockchain => github.com/decred/dcrd/blockchain v0.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrd/connmgr => github.com/matheusd/dcrd/connmgr v0.0.0-20190410055418-133f994b52da + github.com/decred/dcrd/dcrjson/v2 => github.com/decred/dcrd/dcrjson/v2 v2.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrd/peer => github.com/decred/dcrd/peer v0.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrd/rpcclient/v2 => github.com/decred/dcrd/rpcclient/v2 v2.0.0-20190306151227-8cbb5ae69df7 + github.com/decred/dcrlnd => github.com/matheusd/dcrlnd v0.0.0-20190423164340-0f1927992ec2 + github.com/decred/dcrlnd/macaroons => github.com/matheusd/dcrlnd/macaroons v0.0.0-20190423164340-0f1927992ec2 + + github.com/decred/dcrwallet => github.com/decred/dcrwallet v0.0.0-20190322135901-7e0e5a4227d7 + github.com/decred/dcrwallet/wallet/v2 => github.com/decred/dcrwallet/wallet/v2 v2.0.0-20190322135901-7e0e5a4227d7 + + github.com/decred/lightning-onion => github.com/decred/lightning-onion v0.0.0-20190321210301-95556fb4cc37 + +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e9384b4 --- /dev/null +++ b/go.sum @@ -0,0 +1,231 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +git.schwanenlied.me/yawning/bsaes.git v0.0.0-20180720073208-c0276d75487e/go.mod h1:BWqTsj8PgcPriQJGl7el20J/7TuT1d/hSyFDXMEpoEo= +github.com/NebulousLabs/go-upnp v0.0.0-20181203152547-b32978b8ccbf/go.mod h1:GbuBk21JqF+driLX3XtJYNZjGa45YDoa9IqCTzNSfEc= +github.com/Yawning/aez v0.0.0-20180408160647-ec7426b44926/go.mod h1:9pIqrY6SXNL8vjRQE5Hd/OL5GyK/9MrGUWs87z/eFfk= +github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= +github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= +github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= +github.com/btcsuite/btcd v0.0.0-20180903232927-cff30e1d23fc h1:nLRj+ULuRYb0qTAOnuayFXRnLjYXBots5CSp5zH4RqU= +github.com/btcsuite/btcd v0.0.0-20180903232927-cff30e1d23fc/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= +github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a h1:RQMUrEILyYJEoAT34XS/kLu40vC0+po/UfxrBBA4qZE= +github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcwallet v0.0.0-20180904010540-8ae4afc70174 h1:2dXS7UlWMvMmGss6MwAdyCfv7JiMIfUQl0hvUi6OneU= +github.com/btcsuite/btcwallet v0.0.0-20180904010540-8ae4afc70174/go.mod h1:+q7/nPeXqu8jJ0ah0fcMOlWGZ2GeL2QoL6c7nCFUEVA= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/golangcrypto v0.0.0-20150304025918-53f62d9b43e8 h1:nOsAWScwueMVk/VLm/dvQQD7DuanyvAUb6B3P3eT274= +github.com/btcsuite/golangcrypto v0.0.0-20150304025918-53f62d9b43e8/go.mod h1:tYvUd8KLhm/oXvUeSEs2VlLghFjQt9+ZaF9ghH0JNjc= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v0.0.0-20180223184059-4f5275f4ebbf h1:tJpA9/rXV/dIbGH2eWW6Cptwwz5ax6ft2DAuHR/qfNQ= +github.com/coreos/bbolt v0.0.0-20180223184059-4f5275f4ebbf/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dchest/blake256 v1.0.0 h1:6gUgI5MHdz9g0TdrgKqXsoDX+Zjxmm1Sc6OsoGru50I= +github.com/dchest/blake256 v1.0.0/go.mod h1:xXNWCE1jsAP8DAjP+rKw2MbeqLczjI3TRx2VK+9OEYY= +github.com/dchest/siphash v1.2.0/go.mod h1:q+IRvb2gOSrUnYoPqHiyHXS0FOBBOdl6tONBlVnOnt4= +github.com/dchest/siphash v1.2.1/go.mod h1:q+IRvb2gOSrUnYoPqHiyHXS0FOBBOdl6tONBlVnOnt4= +github.com/decred/base58 v1.0.0 h1:BVi1FQCThIjZ0ehG+I99NJ51o0xcc9A/fDKhmJxY6+w= +github.com/decred/base58 v1.0.0/go.mod h1:LLY1p5e3g91byL/UO1eiZaYd+uRoVRarybgcoymu9Ks= +github.com/decred/dcrd v0.0.0-20190306151227-8cbb5ae69df7 h1:IJgFhJSOZB2dAiP6//anJB3tj8IptA1LFssIVY9e3zU= +github.com/decred/dcrd v0.0.0-20190306151227-8cbb5ae69df7/go.mod h1:Va+nvEMk+9sWZwV3o5ioEKLfbfcQtfJ+aPCHnzv5wgk= +github.com/decred/dcrd v1.3.0 h1:EEXm7BdiROfazDtuFsOu9mfotnyy00bgCuVwUqaszFo= +github.com/decred/dcrd/addrmgr v1.0.2/go.mod h1:gNnmTuf/Xkg8ZX3j5GXbajzPrSdf5bA7HitO2bjmq0Q= +github.com/decred/dcrd/bech32 v0.0.0-20190306151227-8cbb5ae69df7/go.mod h1:5Eng/MFsKR8KKDeSxGZdYpGs8CIKxiedcqYddVqQuj0= +github.com/decred/dcrd/blockchain v0.0.0-20190306151227-8cbb5ae69df7/go.mod h1:BDemivIs298g6jk3K9OdABoxkJrn0TZ4c/Fkwkh7NBk= +github.com/decred/dcrd/blockchain/stake v1.0.1/go.mod h1:hgoGmWMIu2LLApBbcguVpzCEEfX7M2YhuMrQdpohJzc= +github.com/decred/dcrd/blockchain/stake v1.1.0/go.mod h1:WRuaml4bcyZYza1NT3qizlLcQwMIcAQRENvZVb2t884= +github.com/decred/dcrd/certgen v1.0.2/go.mod h1:NxEyGwzPHak+h3tNLYAXU4vWuL98HrY9Z59hc1E3SGI= +github.com/decred/dcrd/chaincfg v1.1.1/go.mod h1:UlGtnp8Xx9YK+etBTybGjoFGoGXSw2bxZQuAnwfKv6I= +github.com/decred/dcrd/chaincfg v1.2.0 h1:Vj0xr85wmqOdQDxKLkpP9TqwK1RykqY2eC0fWcCsl0k= +github.com/decred/dcrd/chaincfg v1.2.0/go.mod h1:kpoGTMIriKn5hHRSu5b65+Q9LlGUdbQcMzGujac1BVs= +github.com/decred/dcrd/chaincfg v1.3.0 h1:DEysyX1/kxlWbY97PTIPpGbMOp3+n2iixi3m9d27A6c= +github.com/decred/dcrd/chaincfg v1.3.0/go.mod h1:kpoGTMIriKn5hHRSu5b65+Q9LlGUdbQcMzGujac1BVs= +github.com/decred/dcrd/chaincfg/chainhash v1.0.1 h1:0vG7U9+dSjSCaHQKdoSKURK2pOb47+b+8FK5q4+Je7M= +github.com/decred/dcrd/chaincfg/chainhash v1.0.1/go.mod h1:OVfvaOsNLS/A1y4Eod0Ip/Lf8qga7VXCQjUQLbkY0Go= +github.com/decred/dcrd/database v1.0.1/go.mod h1:ILCeyOHFew3fZ7K2B9jl+tp5qFOap/pEGoo6Yy6Wk0g= +github.com/decred/dcrd/database v1.0.3/go.mod h1:TLxRwIV8x85+dxPTLAWu4mHg45TkKrrza5xzwOS1QtA= +github.com/decred/dcrd/dcrec v0.0.0-20180721005212-59fe2b293f69 h1:0JYiZpiXU60VHfyq22xJUJR/IpTzjrasWWK1b6Fw76c= +github.com/decred/dcrd/dcrec v0.0.0-20180721005212-59fe2b293f69/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec v0.0.0-20180721005914-d26200ec716b/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec v0.0.0-20180721031028-5369a485acf6/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec v0.0.0-20180801202239-0761de129164/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec v0.0.0-20190130161649-59ed4247a1d5/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec v0.0.0-20190214012338-9265b4051009 h1:+VNyY6U5yMZCPE2UqHgJSOmKDjD6WYB+NlDCEj7ZYJg= +github.com/decred/dcrd/dcrec v0.0.0-20190214012338-9265b4051009/go.mod h1:cRAH1SNk8Mi9hKBc/DHbeiWz/fyO8KWZR3H7okrIuOA= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20180721005212-59fe2b293f69/go.mod h1:+ehP0Hk/mesyZXttxCtBbhPX23BMpZJ1pcVBqUfbmvU= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20180721031028-5369a485acf6/go.mod h1:+ehP0Hk/mesyZXttxCtBbhPX23BMpZJ1pcVBqUfbmvU= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20181208004914-a0816cf4301f h1:NF7vp3nZ4MsAiXswGmE//m83jCN0lDsQrLI7IwLCTlo= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20181208004914-a0816cf4301f/go.mod h1:+ehP0Hk/mesyZXttxCtBbhPX23BMpZJ1pcVBqUfbmvU= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20190130161649-59ed4247a1d5 h1:qA+q5URxOMLCts1hTsNlXfOOtT2d83b3Z597yupIn5A= +github.com/decred/dcrd/dcrec/edwards v0.0.0-20190130161649-59ed4247a1d5/go.mod h1:+ehP0Hk/mesyZXttxCtBbhPX23BMpZJ1pcVBqUfbmvU= +github.com/decred/dcrd/dcrec/secp256k1 v1.0.0/go.mod h1:JPMFscGlgXTV684jxQNDijae2qrh0fLG7pJBimaYotE= +github.com/decred/dcrd/dcrec/secp256k1 v1.0.1 h1:EFWVd1p0t0Y5tnsm/dJujgV0ORogRJ6vo7CMAjLseAc= +github.com/decred/dcrd/dcrec/secp256k1 v1.0.1/go.mod h1:lhu4eZFSfTJWUnR3CFRcpD+Vta0KUAqnhTsTksHXgy0= +github.com/decred/dcrd/dcrjson v1.0.0/go.mod h1:ozddIaeF+EAvZZvFuB3zpfxhyxBGfvbt22crQh+PYuI= +github.com/decred/dcrd/dcrjson v1.1.0/go.mod h1:ozddIaeF+EAvZZvFuB3zpfxhyxBGfvbt22crQh+PYuI= +github.com/decred/dcrd/dcrjson/v2 v2.0.0-20190306151227-8cbb5ae69df7/go.mod h1:x4dY9EiT+awLvXz4wNzGlVtzR9EXYkZglXlrnDoLI6g= +github.com/decred/dcrd/dcrutil v1.1.1/go.mod h1:Jsttr0pEvzPAw+qay1kS1/PsbZYPyhluiNwwY6yBJS4= +github.com/decred/dcrd/dcrutil v1.2.0 h1:Pd5Wf650g6Xu6luYDfGkh1yiUoPUAgqzRu6K+BGyJGg= +github.com/decred/dcrd/dcrutil v1.2.0/go.mod h1:tUNHS2gj7ApeEVS8gb6O+4wJW7w3O2MSRyRdcjW1JxU= +github.com/decred/dcrd/fees v1.0.0/go.mod h1:GyvtsN04nQtIY5xW0NOQM06droJOcVCgvjJuv1xMklI= +github.com/decred/dcrd/gcs v1.0.2/go.mod h1:eLCvrzUsWro48TlTyrmFcZAZqnllYFz0vEv5VZtufF4= +github.com/decred/dcrd/hdkeychain v1.1.1/go.mod h1:CLBVXLoO63fIiqkv38KR23zXGSgrfiAWOybOKTneLhA= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/decred/dcrd/mempool v1.1.1/go.mod h1:u1I2KRv9UHhx2crlbZXYoLDabWyQ8VnnHDSG53UdhCA= +github.com/decred/dcrd/mempool/v2 v2.0.0/go.mod h1:/AH0mFOKCglSdEDubF3oRDbWUmDj26gwnrIlFsr+lbM= +github.com/decred/dcrd/mining v1.1.0/go.mod h1:NQEtX604XgNwKcPFId1hVTTiBqmVQDlnqV1yNqGl4oU= +github.com/decred/dcrd/peer v0.0.0-20190306151227-8cbb5ae69df7/go.mod h1:5aT5oTf+/8DixHrsQ8fhpD1uqvlUzmvVStBEs7NfsGw= +github.com/decred/dcrd/rpcclient/v2 v2.0.0-20190306151227-8cbb5ae69df7/go.mod h1:M9vimgZXZ2E46MdMnzdlBaz22F7+oImLD8+5qRgFr70= +github.com/decred/dcrd/txscript v1.0.1/go.mod h1:FqUX07Y+u3cJ1eIGPoyWbJg+Wk1NTllln/TyDpx9KnY= +github.com/decred/dcrd/txscript v1.0.2/go.mod h1:hmUOHFlOjU7H6T/czt6kurWwXJvGPGKKGtXoft6w/qY= +github.com/decred/dcrd/wire v1.1.0/go.mod h1:/JKOsLInOJu6InN+/zH5AyCq3YDIOW/EqcffvU8fJHM= +github.com/decred/dcrd/wire v1.2.0 h1:HqJVB7vcklIguzFWgRXw/WYCQ9cD3bUC5TKj53i1Hng= +github.com/decred/dcrd/wire v1.2.0/go.mod h1:/JKOsLInOJu6InN+/zH5AyCq3YDIOW/EqcffvU8fJHM= +github.com/decred/dcrlnd v0.2.1-alpha h1:DHLWeBpvZT8EHHHQk7oQHSOmwz+J9mdoqU5l7rYG2VI= +github.com/decred/dcrlnd v0.2.1-alpha/go.mod h1:hEZQldwSHjQEHYZhueA2LXaJOzRtMYU2KkapJi4GRCw= +github.com/decred/dcrwallet v0.0.0-20190322135901-7e0e5a4227d7/go.mod h1:+vzDWHEei0sl7+UjyuHn9Ldmcro+SgL+f4PpoMPM+CY= +github.com/decred/dcrwallet/chain/v2 v2.0.0/go.mod h1:xWVdMP0lbZbArXa56NsxPXYScjQ47VSQA6FWrRkZcHE= +github.com/decred/dcrwallet/deployments v1.1.0/go.mod h1:8Sasryu8SX23Jvqr6maZ7MoS7wFIGXupWzbsVtcZsUg= +github.com/decred/dcrwallet/errors v1.0.0/go.mod h1:XUm95dWmm9XmQGvneBXJkkIaFeRsQVBB6ni/KTy1hrY= +github.com/decred/dcrwallet/errors v1.0.1/go.mod h1:XUm95dWmm9XmQGvneBXJkkIaFeRsQVBB6ni/KTy1hrY= +github.com/decred/dcrwallet/internal/helpers v1.0.1/go.mod h1:qIXcze8VZ+A3sEgZou7PTOe4Vsnmks54SGTSGZ6084g= +github.com/decred/dcrwallet/internal/zero v1.0.1/go.mod h1:mXUIsKATE1pIaNAJQ4lhSTX6c9N5sYoSrlScgRCaMJs= +github.com/decred/dcrwallet/lru v1.0.0/go.mod h1:jEty7mdT5VaaV06DEV2Avv0R3HpGvUwvDW4lw8ECtiY= +github.com/decred/dcrwallet/p2p v1.0.1/go.mod h1:FsoAR0cBOLW3VKMg+Tdx+wdSezR7g8NGOdz4fx6gtpM= +github.com/decred/dcrwallet/pgpwordlist v1.0.0/go.mod h1:Fek3uYn+9DnEFIreA/8PnTIXUl2lBO64JpEBkL9BXtk= +github.com/decred/dcrwallet/rpc/jsonrpc/types v1.0.0/go.mod h1:k+IOPnUY0YqlwhSDhczzaUN17NX/gMtztwl3UxKgVZY= +github.com/decred/dcrwallet/rpc/walletrpc v0.2.0/go.mod h1:uhjgcju9lSb/+42Ms4VY1zpBOxstCLM5wVlL3mq/SYc= +github.com/decred/dcrwallet/spv/v2 v2.0.0/go.mod h1:2usXom73CRn2wjPJAEPtn+RiXLJPcIlb4aqgjn3+Dog= +github.com/decred/dcrwallet/ticketbuyer/v3 v3.0.0/go.mod h1:gVrHqQSymQsOz4IkFv7Z8s+c3o7gyw2EBS5j+arrzlg= +github.com/decred/dcrwallet/validate v1.0.2/go.mod h1:1ur2sRZkQ23ECalUKdwgx6rdIiP8rIiaSQAz1Y9LQsI= +github.com/decred/dcrwallet/version v1.0.1/go.mod h1:rXeMsUaI03WtlQrSol7Q7sJ8HBOB+tZvT7YQRXD5Y7M= +github.com/decred/dcrwallet/wallet/v2 v2.0.0-20190322135901-7e0e5a4227d7/go.mod h1:/nNjau7GMVEfduKPRwEt0aCGBvriVsslFaMAsdl8m5Q= +github.com/decred/dcrwallet/walletseed v1.0.1/go.mod h1:ENlwTabC2JVmT4S1eCP44fnwX4+9y2RLsnfSU21CJ+4= +github.com/decred/lightning-onion v0.0.0-20190321210301-95556fb4cc37/go.mod h1:TwyhUe01c1CXfXO8DfJVFHVx38IbK7c77VFbG38UNhM= +github.com/decred/slog v1.0.0/go.mod h1:zR98rEZHSnbZ4WHZtO0iqmSZjDLKhkXfrPTZQKtAonQ= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/golang/crypto v0.0.0-20180904163835-0709b304e793 h1:5UkN9wgtgT071jowYuBxnF8+4tXVRVbaH2Z18AnH6gQ= +github.com/golang/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:uZvAcrsnNaCxlh1HorK5dUQHGmEKPh2H/Rl1kehswPo= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +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/protobuf v0.0.0-20180202184318-bbd03ef6da3a h1:9xtEQaWwpPa1IeJROAONpl9Q0rXujyf4RISq8tRGQFo= +github.com/golang/protobuf v0.0.0-20180202184318-bbd03ef6da3a/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/grpc-gateway v0.0.0-20170724004829-f2862b476edc h1:3NXdOHZ1YlN6SGP3FPbn4k73O2MeEp065abehRwGFxI= +github.com/grpc-ecosystem/grpc-gateway v0.0.0-20170724004829-f2862b476edc/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/grpc-ecosystem/grpc-gateway v1.6.4 h1:xlu6C2WU6gvXt3XLyVpsgweaIL4VCmTjEsEAIt7qFqQ= +github.com/grpc-ecosystem/grpc-gateway v1.6.4/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= +github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/bitset v1.0.0/go.mod h1:ZOYB5Uvkla7wIEY4FEssPVi3IQXa02arznRaYaAEPe4= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/juju/clock v0.0.0-20180808021310-bab88fc67299/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20180524022052-584905176618 h1:MK144iBQF9hTSwBW/9eJm034bVoG30IshVm688T2hi8= +github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/retry v0.0.0-20180821225755-9058e192b216/go.mod h1:OohPQGsr4pnxwD5YljhQ+TZnuVRYpa5irjugL1Yuif4= +github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/juju/utils v0.0.0-20180820210520-bf9cc5bdd62d/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= +github.com/juju/version v0.0.0-20180108022336-b64dbd566305/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20181106074824-b3251f7901ec/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lightningnetwork/lnd v0.0.0-20180906040142-fb95858afce6 h1:go3uAc9uVk+6CklGyFF8Wuwyjcq6767Ic34XnJ7L8HM= +github.com/lightningnetwork/lnd v0.0.0-20180906040142-fb95858afce6/go.mod h1:wpCSmoRQxoM/vXLtTETeBp08XnB/9/f+sjPvCJZPyA0= +github.com/matheusd/dcrd/connmgr v0.0.0-20190410055418-133f994b52da/go.mod h1:sJDmSqQ08wx/aMGtGkLEoq/U268Yr0ry7+ncsAl7yyQ= +github.com/matheusd/dcrlnd v0.0.0-20190423164340-0f1927992ec2 h1:kgtVIvU80VipTlHjBsOx+uw5jSyBDLPVUI2y2oSCOlg= +github.com/matheusd/dcrlnd v0.0.0-20190423164340-0f1927992ec2/go.mod h1:xEW7PWl798g5SyBo84n1hvyDUyOG8xWJXpW2yiSQXmE= +github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +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/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af h1:gu+uRPtBe88sKxUCEXRoeCvVG90TJmwhiqRpvdhQFng= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/tv42/zbase32 v0.0.0-20160707012821-501572607d02/go.mod h1:tHlrkM198S068ZqfrO6S8HsoJq2bF3ETfTL+kt4tInY= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +gitlab.com/NebulousLabs/fastrand v0.0.0-20181126182046-603482d69e40/go.mod h1:rOnSnoRyxMI3fe/7KIbVcsHRGxe30OONv8dEgo+vCfA= +gitlab.com/NebulousLabs/go-upnp v0.0.0-20181011194642-3a71999ed0d3/go.mod h1:sleOmkovWsDEQVYXmOJhx69qheoMTmCuPYyiCFCihlg= +go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +golang.org/x/crypto v0.0.0-20180718160520-a2144134853f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576 h1:aUX/1G2gFSs4AsJJg2cL3HuoRhCSCz733FE5GUSuaT4= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +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/net v0.0.0-20180311174755-ae89d30ce0c6 h1:VNwI0l6D6+cM79+3XBbvypTLyFJtQP1GEgUNsEadLdY= +golang.org/x/net v0.0.0-20180311174755-ae89d30ce0c6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180808004115-f9ce57c11b24/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-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 h1:ulvT7fqt0yHWzpJwI57MezWnYDVpCAYBVuYst/L+fAY= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +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/sys v0.0.0-20180816055513-1c9583448a9c/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-20180831094639-fa5fdf94c789/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180907202204-917fdcba135d/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-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181212120007-b05ddf57801d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190203050204-7ae0202eb74c/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-20190318195719-6c81ef8f67ca h1:o2TLx1bGN3W+Ei0EMU5fShLupLmTOU95KvJJmfYhAzM= +golang.org/x/sys v0.0.0-20190318195719-6c81ef8f67ca/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180306020942-df60624c1e9b h1:XeiFoG4FHSBJUL3qKCkMrkwBFRXB+hyQiTPg82JUssI= +google.golang.org/genproto v0.0.0-20180306020942-df60624c1e9b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190111180523-db91494dd46c h1:LZllHYjdJnynBfmwysp+s4yhMzfc+3BzhdqzAMvwjoc= +google.golang.org/genproto v0.0.0-20190111180523-db91494dd46c/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= +google.golang.org/grpc v1.5.2 h1:b6oAqMSH36Omv3KU5KuN6qB2jaJClahvIWSmfQtfyFw= +google.golang.org/grpc v1.5.2/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.18.0 h1:IZl7mfBGfbhYx2p2rKRtYgDFw6SBz+kclmxYrCksPPA= +google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +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/errgo.v1 v1.0.0 h1:n+7XfCyygBFb8sEjg6692xjC6Us50TFRO54+xYUEwjE= +gopkg.in/errgo.v1 v1.0.0/go.mod h1:CxwszS/Xz1C49Ucd2i6Zil5UToP1EmyrFhKaMVbg1mk= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/macaroon-bakery.v2 v2.0.1 h1:0N1TlEdfLP4HXNCg7MQUMp5XwvOoxk+oe9Owr2cpvsc= +gopkg.in/macaroon-bakery.v2 v2.0.1/go.mod h1:B4/T17l+ZWGwxFSZQmlBwp25x+og7OkhETfr3S9MbIA= +gopkg.in/macaroon-bakery.v2 v2.1.0 h1:9Jw/+9XHBSutkaeVpWhDx38IcSNLJwWUICkOK98DHls= +gopkg.in/macaroon-bakery.v2 v2.1.0/go.mod h1:B4/T17l+ZWGwxFSZQmlBwp25x+og7OkhETfr3S9MbIA= +gopkg.in/macaroon.v2 v2.0.0 h1:LVWycAfeJBUjCIqfR9gqlo7I8vmiXRr51YEOZ1suop8= +gopkg.in/macaroon.v2 v2.0.0/go.mod h1:+I6LnTMkm/uV5ew/0nsulNjL16SK4+C8yDmRUzHR17I= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +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= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/main.go b/main.go index df7f18c..6e3147f 100644 --- a/main.go +++ b/main.go @@ -20,7 +20,7 @@ import ( var ( // netParams is the Bitcoin network that the faucet is operating on. - netParams = flag.String("net", "testnet", "bitcoin network to operate on") + netParams = flag.String("net", "testnet", "decred network to operate on") // lndNodes is a list of lnd nodes that the faucet should connect out // to. @@ -36,8 +36,12 @@ var ( lndIP = flag.String("lnd_ip", "10.0.0.9", "the public IP address of "+ "the faucet's node") - // port is the port that the http server should listen on. - port = flag.String("port", "8080", "port to list for http") + // bindAddr is the port that the http server should listen on. + bindAddr = flag.String("bind_addr", ":80", "port to list for http") + + // useLeHTTPS indicates whether we should bind to the https port and + // use the lets encrypt service to get a certificate for it. + useLeHTTPS = flag.Bool("use_le_https", false, "use https via lets encrypt") // wipeChannels is a bool that indicates if all channels should be // closed (either cooperatively or forcibly) on startup. If all @@ -55,7 +59,7 @@ var ( // network is the network the faucet is running on. This value must // either be "litecoin" or "bitcoin". - network = flag.String("network", "bitcoin", "the network of the "+ + network = flag.String("network", "decred", "the network of the "+ "faucet") ) @@ -142,33 +146,37 @@ func main() { // the global http handler. http.Handle("/", r) - // Create a directory cache so the certs we get from Let's Encrypt are - // cached locally. This avoids running into their rate-limiting by - // requesting too many certs. - certCache := autocert.DirCache("certs") - - // Create the auto-cert manager which will automatically obtain a - // certificate provided by Let's Encrypt. - m := autocert.Manager{ - Prompt: autocert.AcceptTOS, - Cache: certCache, - HostPolicy: autocert.HostWhitelist(*domain), - } + if !*useLeHTTPS { + go http.ListenAndServe(*bindAddr, r) + } else { + // Create a directory cache so the certs we get from Let's + // Encrypt are cached locally. This avoids running into their + // rate-limiting by requesting too many certs. + certCache := autocert.DirCache("certs") + + // Create the auto-cert manager which will automatically obtain a + // certificate provided by Let's Encrypt. + m := autocert.Manager{ + Prompt: autocert.AcceptTOS, + Cache: certCache, + HostPolicy: autocert.HostWhitelist(*domain), + } - // As we'd like all requests to default to https, redirect all regular - // http requests to the https version of the faucet. - go http.ListenAndServe(":80", m.HTTPHandler(nil)) - - // Finally, create the http server, passing in our TLS configuration. - httpServer := &http.Server{ - Handler: r, - WriteTimeout: 30 * time.Second, - ReadTimeout: 30 * time.Second, - Addr: ":https", - TLSConfig: &tls.Config{GetCertificate: m.GetCertificate}, - } - if err := httpServer.ListenAndServeTLS("", ""); err != nil { - log.Fatal(err) + // As we'd like all requests to default to https, redirect all regular + // http requests to the https version of the faucet. + go http.ListenAndServe(*bindAddr, m.HTTPHandler(nil)) + + // Finally, create the http server, passing in our TLS configuration. + httpServer := &http.Server{ + Handler: r, + WriteTimeout: 30 * time.Second, + ReadTimeout: 30 * time.Second, + Addr: ":https", + TLSConfig: &tls.Config{GetCertificate: m.GetCertificate}, + } + if err := httpServer.ListenAndServeTLS("", ""); err != nil { + log.Fatal(err) + } } c := make(chan os.Signal, 1) diff --git a/static/index.html b/static/index.html index ecf332c..7233088 100644 --- a/static/index.html +++ b/static/index.html @@ -5,11 +5,11 @@
-

{{ if eq .Network "bitcoin" }} Bitcoin {{else}} Litecoin {{end}} Testnet Lightning Network Faucet

+

{{ if eq .Network "bitcoin" }} Bitcoin {{else}} Decred {{end}} Testnet Lightning Network Faucet

@@ -22,9 +22,9 @@

{{ if eq .Network "bitcoin" }} Bitcoin {{else}}
{{if eq .ChannelTxid ""}} -
{{ .NumCoins }} {{ if eq .Network "bitcoin" }} BTC {{else}} LTC {{end}} are available for channel creation.
+
{{ .NumCoins }} {{ if eq .Network "bitcoin" }} BTC {{else}} DCR {{end}} are available for channel creation.
The faucet has {{ .NumChannels }} active {{if eq .NumChannels 1}} channel {{else}} channels {{end}} on the network.
-
The max channel size is 16 million satoshis.
+
The max channel size is 10 DCR.
{{ if eq .SubmissionError 8 }}
Channel already open with node.
@@ -57,7 +57,7 @@
Channel Creation Parameters
id="amt" name="amt" type="text">
@@ -70,7 +70,7 @@

Channel Creation Parameters
{{end}} id="bal" name="bal" type="text"> @@ -84,7 +84,7 @@
Channel Creation Parameters
{{else}} Channel successfully created!
The broadcast funding transaction can be found - + here.
diff --git a/vendor/github.com/davecgh/go-spew b/vendor/github.com/davecgh/go-spew deleted file mode 160000 index 346938d..0000000 --- a/vendor/github.com/davecgh/go-spew +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 346938d642f2ec3594ed81d874461961cd0faa76 diff --git a/vendor/github.com/golang/protobuf b/vendor/github.com/golang/protobuf deleted file mode 160000 index 8ee7999..0000000 --- a/vendor/github.com/golang/protobuf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8ee79997227bf9b34611aee7946ae64735e6fd93 diff --git a/vendor/github.com/gorilla/context b/vendor/github.com/gorilla/context deleted file mode 160000 index 08b5f42..0000000 --- a/vendor/github.com/gorilla/context +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 08b5f424b9271eedf6f9f0ce86cb9396ed337a42 diff --git a/vendor/github.com/gorilla/mux b/vendor/github.com/gorilla/mux deleted file mode 160000 index 392c28f..0000000 --- a/vendor/github.com/gorilla/mux +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 392c28fe23e1c45ddba891b0320b3b5df220beea diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway b/vendor/github.com/grpc-ecosystem/grpc-gateway deleted file mode 160000 index a8f25bd..0000000 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a8f25bd1ab549f8b87afd48aa9181221e9d439bb diff --git a/vendor/github.com/lightningnetwork/lnd b/vendor/github.com/lightningnetwork/lnd deleted file mode 160000 index 40c7bac..0000000 --- a/vendor/github.com/lightningnetwork/lnd +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 40c7bac3aa280fade7e5a1d4746002cd5077e42b diff --git a/vendor/golang.org/x/crypto b/vendor/golang.org/x/crypto deleted file mode 160000 index b8a2a83..0000000 --- a/vendor/golang.org/x/crypto +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b8a2a83acfe6e6770b75de42d5ff4c67596675c0 diff --git a/vendor/golang.org/x/net b/vendor/golang.org/x/net deleted file mode 160000 index f249948..0000000 --- a/vendor/golang.org/x/net +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f2499483f923065a842d38eb4c7f1927e6fc6e6d diff --git a/vendor/google.golang.org/grpc b/vendor/google.golang.org/grpc deleted file mode 160000 index 708a7f9..0000000 --- a/vendor/google.golang.org/grpc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 708a7f9f3283aa2d4f6132d287d78683babe55c8