diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index e76f481..19a57db 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -15,7 +15,7 @@ jobs: - name: Check out source uses: actions/checkout@v2 - name: Install Linters - run: "curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.30.0" + run: "curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.31.0" - name: Build env: GO111MODULE: "on" diff --git a/docs/deployment.md b/docs/deployment.md index 946526f..6257dc6 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -29,8 +29,12 @@ locations. Each voting server should be running an instance of dcrd and dcrwallet. The wallet on these servers should be completely empty and not used for any other purpose. dcrwallet should be permenantly unlocked and have voting enabled -(`--enablevoting`). vspd on the front-end server must be able to reach each -instance of dcrwallet over RPC. +(`--enablevoting`). dcrwallet is also required to have the manual tickets +option (`--manualtickets`) enabled which disables dcrwallet adding tickets +arriving over the network. Without this option set, a user could reuse +voting addresses the VSP's voting wallets already have private keys for, +resulting in the VSP voting tickets without a fee paid. vspd on the +front-end server must be able to reach each instance of dcrwallet over RPC. ## Front-end Server diff --git a/go.mod b/go.mod index df5f29f..fe697b9 100644 --- a/go.mod +++ b/go.mod @@ -3,23 +3,23 @@ module github.com/decred/vspd go 1.13 require ( - decred.org/dcrwallet v1.2.3-0.20200727154839-096e3bee25f2 - github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200616182840-3baf1f590cb1 - github.com/decred/dcrd/blockchain/v3 v3.0.0-20200608124004-b2f67c2dc475 - github.com/decred/dcrd/chaincfg/chainhash v1.0.2 - github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200616182840-3baf1f590cb1 - github.com/decred/dcrd/dcrec v1.0.0 - github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200616182840-3baf1f590cb1 - github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200616182840-3baf1f590cb1 - github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200527025017-6fc98347d984 - github.com/decred/dcrd/txscript/v3 v3.0.0-20200616182840-3baf1f590cb1 - github.com/decred/dcrd/wire v1.3.0 - github.com/decred/slog v1.0.0 + decred.org/dcrwallet v1.2.3-0.20200923171514-415df743f7f3 + github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/blockchain/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/chaincfg/chainhash v1.0.3-0.20200921185235-6d75c7ec1199 + github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/dcrec v1.0.1-0.20200921185235-6d75c7ec1199 + github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200923190130-3fbdfea7393c + github.com/decred/dcrd/txscript/v3 v3.0.0-20200923190130-3fbdfea7393c + github.com/decred/dcrd/wire v1.3.1-0.20200921185235-6d75c7ec1199 + github.com/decred/slog v1.1.0 github.com/gin-gonic/gin v1.6.3 - github.com/gorilla/sessions v1.2.0 + github.com/gorilla/sessions v1.2.1 github.com/jessevdk/go-flags v1.4.1-0.20200711081900-c17162fe8fd7 github.com/jrick/bitset v1.0.0 github.com/jrick/logrotate v1.0.0 - github.com/jrick/wsrpc/v2 v2.3.3 + github.com/jrick/wsrpc/v2 v2.3.4 go.etcd.io/bbolt v1.3.5 ) diff --git a/go.sum b/go.sum index 22498fe..ce77843 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= decred.org/cspp v0.3.0 h1:2AkSsWzA7HIMZImfw0gT82Gdp8OXIM4NsBn7vna22uE= decred.org/cspp v0.3.0/go.mod h1:UygjYilC94dER3BEU65Zzyoqy9ngJfWCD2rdJqvUs2A= -decred.org/dcrwallet v1.2.3-0.20200727154839-096e3bee25f2 h1:iwsnZPdoo1ownS4T2asE3rZAwkDwfufQ+LanREPsFBY= -decred.org/dcrwallet v1.2.3-0.20200727154839-096e3bee25f2/go.mod h1:3cZSQAgJzWXeSKMxWuyAPjxcheBYOB5fwTzD5exhvgs= +decred.org/dcrwallet v1.2.3-0.20200923171514-415df743f7f3 h1:/fNwTrrhsueCQVfg0Sc0lep3pin6U2/8/I96EFhR7FI= +decred.org/dcrwallet v1.2.3-0.20200923171514-415df743f7f3/go.mod h1:Y9gOu+kdzy5exoPsWto2qPZMkgUOeZCaToCY/0MPlq8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0= @@ -23,38 +23,45 @@ github.com/decred/base58 v1.0.3 h1:KGZuh8d1WEMIrK0leQRM47W85KqCAdl2N+uagbctdDI= github.com/decred/base58 v1.0.3/go.mod h1:pXP9cXCfM2sFLb2viz2FNIdeMWmZDBKG3ZBYbiSM78E= github.com/decred/dcrd/addrmgr v1.1.0 h1:VQkn1qmafZypfN2u7yi7J/girwz4ZDicquo7JzsoxdQ= github.com/decred/dcrd/addrmgr v1.1.0/go.mod h1:exghL+0+QeVvO4MXezWJ1C2tcpBn3ngfuP6S1R+adB8= -github.com/decred/dcrd/blockchain/stake/v2 v2.0.2/go.mod h1:o2TT/l/YFdrt15waUdlZ3g90zfSwlA0WgQqHV9UGJF4= github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200215031403-6b2ce76f0986/go.mod h1:aDL94kcVJfaaJP+acWUJrlK7g7xEOqTSiFe6bSN3yRQ= -github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:4zE60yDWlfCDtmqnyP5o1k1K0oyhNn3Tvqo6F93/+RU= -github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200616182840-3baf1f590cb1 h1:7fg/+PpoT/ecAnA/uvccRQQk7+JZ7gSOgcIHHqqZtIM= -github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200616182840-3baf1f590cb1/go.mod h1:1e94ovQXEcOjIn7BRzkXpswA7pWQXqB2el5l0w0Srf8= -github.com/decred/dcrd/blockchain/standalone v1.1.0 h1:yclvVGEY09Gf8A4GSAo+NCtL1dW2TYJ4OKp4+g0ICI0= -github.com/decred/dcrd/blockchain/standalone v1.1.0/go.mod h1:6K8ZgzlWM1Kz2TwXbrtiAvfvIwfAmlzrtpA7CVPCUPE= -github.com/decred/dcrd/blockchain/v3 v3.0.0-20200608124004-b2f67c2dc475 h1:4VxMHgkwn9YTglLQyp7fvuP2/TWqBrvonjaOJComPIs= -github.com/decred/dcrd/blockchain/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:Jh6HF5q9YQHjV+0PHcwCWL7NCYj0LFyjnKlzPFO8/Zc= -github.com/decred/dcrd/certgen v1.1.0 h1:lAPE2OLYdYeXDCaji/+KC53j7/s7wF7RVGeQbXK//XA= -github.com/decred/dcrd/certgen v1.1.0/go.mod h1:ivkPLChfjdAgFh7ZQOtl6kJRqVkfrCq67dlq3AbZBQE= +github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200921173733-67245079e9fb/go.mod h1:hTZ0gccxXFLZRKZ1wjJ7eEAbLDJAxQJ+BM0qvzHsRmo= +github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:hTZ0gccxXFLZRKZ1wjJ7eEAbLDJAxQJ+BM0qvzHsRmo= +github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200923190130-3fbdfea7393c h1:mGRb2B8JG2EXyxU4q8owSfDSXjiCtg+aPAiGbaU1nsg= +github.com/decred/dcrd/blockchain/stake/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:hTZ0gccxXFLZRKZ1wjJ7eEAbLDJAxQJ+BM0qvzHsRmo= +github.com/decred/dcrd/blockchain/standalone/v2 v2.0.0-20200921173733-67245079e9fb/go.mod h1:CX3bXotWZwGOt5PBeFn7jT3dg2wWgsWMSlah82q9YAA= +github.com/decred/dcrd/blockchain/standalone/v2 v2.0.0-20200921185235-6d75c7ec1199 h1:Y5ne7hlyIl6nfDb6A1g6NaNunkYR94Vn7uQncgTIdwY= +github.com/decred/dcrd/blockchain/standalone/v2 v2.0.0-20200921185235-6d75c7ec1199/go.mod h1:CX3bXotWZwGOt5PBeFn7jT3dg2wWgsWMSlah82q9YAA= +github.com/decred/dcrd/blockchain/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:XaT0SnbTXzvhWlhTsAUkHbuq15yIQIYtKlRX0N2ttm0= +github.com/decred/dcrd/blockchain/v3 v3.0.0-20200923190130-3fbdfea7393c h1:zvCnvxiD7fH8019sceUKDHKzTed5QlGvdpv3MRK1PXs= +github.com/decred/dcrd/blockchain/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:XaT0SnbTXzvhWlhTsAUkHbuq15yIQIYtKlRX0N2ttm0= +github.com/decred/dcrd/certgen v1.1.1-0.20200921185235-6d75c7ec1199/go.mod h1:ivkPLChfjdAgFh7ZQOtl6kJRqVkfrCq67dlq3AbZBQE= github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyLRN07EO0cNBV6DGU= github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= +github.com/decred/dcrd/chaincfg/chainhash v1.0.3-0.20200921185235-6d75c7ec1199 h1:G6L0a9sBulqryyyWmin7cHorxfIdg2J+xHQeJaDdNyc= +github.com/decred/dcrd/chaincfg/chainhash v1.0.3-0.20200921185235-6d75c7ec1199/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60= github.com/decred/dcrd/chaincfg/v2 v2.3.0 h1:ItmU+7DeUtyiabrcW+16MJFgY/BBeeYaPfkBLrFLyjo= github.com/decred/dcrd/chaincfg/v2 v2.3.0/go.mod h1:7qUJTvn+y/kswSRZ4sT2+EmvlDTDyy2InvNFtX/hxk0= github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200214194519-928737b3e580/go.mod h1:v4oyBPQ/ZstYCV7+B0y6HogFByW76xTjr+72fOm66Y8= github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200215015031-3283587e6add/go.mod h1:v4oyBPQ/ZstYCV7+B0y6HogFByW76xTjr+72fOm66Y8= github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200215023918-6247af01d5e3/go.mod h1:v4oyBPQ/ZstYCV7+B0y6HogFByW76xTjr+72fOm66Y8= github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200215031403-6b2ce76f0986/go.mod h1:v4oyBPQ/ZstYCV7+B0y6HogFByW76xTjr+72fOm66Y8= -github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:OHbKBa6UZZOXCU1Y8f9Ta3O+GShto7nB1O0nuEutKq4= -github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200616182840-3baf1f590cb1 h1:IfBqlTemNgX3Yax/lBBQSxDiVin1IitIXY6zegtXMps= -github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200616182840-3baf1f590cb1/go.mod h1:OHbKBa6UZZOXCU1Y8f9Ta3O+GShto7nB1O0nuEutKq4= -github.com/decred/dcrd/connmgr/v3 v3.0.0-20200608124004-b2f67c2dc475 h1:jOEkyTB8KqKrYRNS4PZUs13tf7UbiWspsNYix+eKbis= -github.com/decred/dcrd/connmgr/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:UWFfZ1MbPzBgNA3bRCkF0woOlXkv1EIFEkwD+mdUW5Y= +github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200921173733-67245079e9fb/go.mod h1:OHbKBa6UZZOXCU1Y8f9Ta3O+GShto7nB1O0nuEutKq4= +github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:OHbKBa6UZZOXCU1Y8f9Ta3O+GShto7nB1O0nuEutKq4= +github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200923190130-3fbdfea7393c h1:5vU2Fz6+uXRjyj5WnBGVMCgmZhhhgfWL5mY8QQPi5P0= +github.com/decred/dcrd/chaincfg/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:OHbKBa6UZZOXCU1Y8f9Ta3O+GShto7nB1O0nuEutKq4= +github.com/decred/dcrd/connmgr/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:UWFfZ1MbPzBgNA3bRCkF0woOlXkv1EIFEkwD+mdUW5Y= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/crypto/blake256 v1.0.1-0.20200921185235-6d75c7ec1199 h1:sqVg68MjCKwsahuL7AbbdkUSULnZF0vGFOM8FDGscjo= +github.com/decred/dcrd/crypto/blake256 v1.0.1-0.20200921185235-6d75c7ec1199/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/ripemd160 v1.0.0 h1:MciTnR4NfBqDFRFjFkrn8WPLP4Vo7t6ww6ghfn6wcXQ= github.com/decred/dcrd/crypto/ripemd160 v1.0.0/go.mod h1:F0H8cjIuWTRoixr/LM3REB8obcWkmYx0gbxpQWR8RPg= github.com/decred/dcrd/database/v2 v2.0.1 h1:ghLzkKpVpwvjrdRv3njrEfkvygQpYQX66sGVs8ha+E8= github.com/decred/dcrd/database/v2 v2.0.1/go.mod h1:ZOaWTv3IlNqCA+y7q3q5EozgmiDOmNwCSq3ntZn2CDo= github.com/decred/dcrd/dcrec v1.0.0 h1:W+z6Es+Rai3MXYVoPAxYr5U1DGis0Co33scJ6uH2J6o= github.com/decred/dcrd/dcrec v1.0.0/go.mod h1:HIaqbEJQ+PDzQcORxnqen5/V1FR3B4VpIfmePklt8Q8= +github.com/decred/dcrd/dcrec v1.0.1-0.20200921185235-6d75c7ec1199 h1:MkfApk/KhuIh3llbjdnTFY5G4lb7zA+EEKVKIRgAfmg= +github.com/decred/dcrd/dcrec v1.0.1-0.20200921185235-6d75c7ec1199/go.mod h1:HIaqbEJQ+PDzQcORxnqen5/V1FR3B4VpIfmePklt8Q8= github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.0 h1:3GIJYXQDAKpLEFriGFN8SbSffak10UXHGdIcFaMPykY= @@ -65,37 +72,49 @@ github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200215023918-6247af01d5e3/go. github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200215031403-6b2ce76f0986/go.mod h1:Ej0/gOv8NpFfaczyXGndw7eRMJFVhmY2faSeyxztSUw= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200608124004-b2f67c2dc475 h1:N4p2A5SPMXm97Vc8LazxchwudeE5GDs6S0WxwcrRmog= github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:J70FGZSbzsjecRTiTzER+3f1KZLNaXkuv+yeFTKoxM8= +github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200921173733-67245079e9fb/go.mod h1:J70FGZSbzsjecRTiTzER+3f1KZLNaXkuv+yeFTKoxM8= +github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200921185235-6d75c7ec1199 h1:dxEmMsGEKY6PmkR5tG40vgE+uFYaPhJf1UuYTUaezpU= +github.com/decred/dcrd/dcrec/secp256k1/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:J70FGZSbzsjecRTiTzER+3f1KZLNaXkuv+yeFTKoxM8= github.com/decred/dcrd/dcrjson/v3 v3.0.1 h1:b9cpplNJG+nutE2jS8K/BtSGIJihEQHhFjFAsvJF/iI= github.com/decred/dcrd/dcrjson/v3 v3.0.1/go.mod h1:fnTHev/ABGp8IxFudDhjGi9ghLiXRff1qZz/wvq12Mg= +github.com/decred/dcrd/dcrjson/v3 v3.0.2-0.20200921185235-6d75c7ec1199 h1:uyKHTXuRqoXn685BEgiJIrdA75tutHau984i2iMtHQA= +github.com/decred/dcrd/dcrjson/v3 v3.0.2-0.20200921185235-6d75c7ec1199/go.mod h1:fnTHev/ABGp8IxFudDhjGi9ghLiXRff1qZz/wvq12Mg= github.com/decred/dcrd/dcrutil/v2 v2.0.1 h1:aL+c7o7Q66HV1gIif+XkNYo9DeorN3l01Vns8mh0mqs= github.com/decred/dcrd/dcrutil/v2 v2.0.1/go.mod h1:JdEgF6eh0TTohPeiqDxqDSikTSvAczq0J7tFMyyeD+k= github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200215015031-3283587e6add/go.mod h1:CibwaHcCfz1sedFseBYKt+1hSbqnWC4Oe95DM8dAOlA= github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200215023918-6247af01d5e3/go.mod h1:48ZLpNNrRIYfqYxmvzMgOZrnTZUU3aTJveWtamCkOxo= github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200215031403-6b2ce76f0986/go.mod h1:jFxEd2LWDLvrWlrIiyx9ZGTQjvoFHZ0OVfBdyIX7jSw= -github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:WyoYp6FRgNAQL33CdcpvSnKcujH8wMzIRBSMCg64Egw= -github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200616182840-3baf1f590cb1 h1:uiMnZy+YBJt0ZzTXHk0TZgIPTlOGgrIYrRoFET0kUwg= -github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200616182840-3baf1f590cb1/go.mod h1:WyoYp6FRgNAQL33CdcpvSnKcujH8wMzIRBSMCg64Egw= -github.com/decred/dcrd/gcs/v2 v2.0.0/go.mod h1:3XjKcrtvB+r2ezhIsyNCLk6dRnXRJVyYmsd1P3SkU3o= -github.com/decred/dcrd/gcs/v2 v2.0.2-0.20200608124004-b2f67c2dc475 h1:5Qd0LWsOKVAmZyFRI/enaIsPpD8NsIPSxYwJ7uywMqo= -github.com/decred/dcrd/gcs/v2 v2.0.2-0.20200608124004-b2f67c2dc475/go.mod h1:JJGd1m0DrFgV4J2J8HKNB9YVkM06ewQHT6iINis39Z4= -github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:OQQKlU+hzvOHVZfUJq1iqQ5IfyycGaSPm1lmqMOyMaQ= -github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200616182840-3baf1f590cb1 h1:kKZVUO9qWWWq5mJuKy9jiBPUMT6lFyY9MX1xOIaQn5c= -github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200616182840-3baf1f590cb1/go.mod h1:OQQKlU+hzvOHVZfUJq1iqQ5IfyycGaSPm1lmqMOyMaQ= -github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.0/go.mod h1:c5S+PtQWNIA2aUakgrLhrlopkMadcOv51dWhCEdo49c= -github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200527025017-6fc98347d984 h1:xfdiilBsDinOLbglqzHH98fOO1iBtVrpSHMVpNK/2lg= -github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200527025017-6fc98347d984/go.mod h1:c5S+PtQWNIA2aUakgrLhrlopkMadcOv51dWhCEdo49c= -github.com/decred/dcrd/txscript/v2 v2.1.0/go.mod h1:XaJAVrZU4NWRx4UEzTiDAs86op1m8GRJLz24SDBKOi0= +github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200921173733-67245079e9fb/go.mod h1:WyoYp6FRgNAQL33CdcpvSnKcujH8wMzIRBSMCg64Egw= +github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:WyoYp6FRgNAQL33CdcpvSnKcujH8wMzIRBSMCg64Egw= +github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200923190130-3fbdfea7393c h1:oYfgbJnQ5DLE/9aMQ8uUDE6+ZpQawLYph1sF3I1UB5E= +github.com/decred/dcrd/dcrutil/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:WyoYp6FRgNAQL33CdcpvSnKcujH8wMzIRBSMCg64Egw= +github.com/decred/dcrd/gcs/v2 v2.0.2-0.20200921173733-67245079e9fb/go.mod h1:TVg7eYR0QPpLAvePyQEbAFpPQ7CbRpJVnI07Dj9Tsig= +github.com/decred/dcrd/gcs/v2 v2.0.2-0.20200921185235-6d75c7ec1199 h1:8dLG00ACKrtomxv7YKnAErJ00V5YlagNlDYJiO2cUkM= +github.com/decred/dcrd/gcs/v2 v2.0.2-0.20200921185235-6d75c7ec1199/go.mod h1:TVg7eYR0QPpLAvePyQEbAFpPQ7CbRpJVnI07Dj9Tsig= +github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:OQQKlU+hzvOHVZfUJq1iqQ5IfyycGaSPm1lmqMOyMaQ= +github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200923190130-3fbdfea7393c h1:cicGs6/L2hR9ARSJ97dt4BHDSx0c1HA1niUIGmM8e+4= +github.com/decred/dcrd/hdkeychain/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:OQQKlU+hzvOHVZfUJq1iqQ5IfyycGaSPm1lmqMOyMaQ= +github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200921185235-6d75c7ec1199/go.mod h1:c5S+PtQWNIA2aUakgrLhrlopkMadcOv51dWhCEdo49c= +github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200923190130-3fbdfea7393c h1:mA9sCyBRGGZplkXLxV5ZWKLImblO4hVpJDWYC2bt0AY= +github.com/decred/dcrd/rpc/jsonrpc/types/v2 v2.0.1-0.20200923190130-3fbdfea7393c/go.mod h1:c5S+PtQWNIA2aUakgrLhrlopkMadcOv51dWhCEdo49c= github.com/decred/dcrd/txscript/v3 v3.0.0-20200215023918-6247af01d5e3/go.mod h1:ATMA8K0SOo+M9Wdbr6dMnAd8qICJi6pXjGLlKsJc99E= github.com/decred/dcrd/txscript/v3 v3.0.0-20200215031403-6b2ce76f0986/go.mod h1:KsDS7McU1yFaCYR9LCIwk6YnE15YN3wJUDxhKdFqlsc= -github.com/decred/dcrd/txscript/v3 v3.0.0-20200608124004-b2f67c2dc475/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= -github.com/decred/dcrd/txscript/v3 v3.0.0-20200616182840-3baf1f590cb1 h1:ZvPldwEQn42X4Wr2YkaOLNOkKMgtW8hS1mlRHnYfcQc= -github.com/decred/dcrd/txscript/v3 v3.0.0-20200616182840-3baf1f590cb1/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= +github.com/decred/dcrd/txscript/v3 v3.0.0-20200611204838-4c5825cf9054/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= +github.com/decred/dcrd/txscript/v3 v3.0.0-20200921173733-67245079e9fb/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= +github.com/decred/dcrd/txscript/v3 v3.0.0-20200921185235-6d75c7ec1199/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= +github.com/decred/dcrd/txscript/v3 v3.0.0-20200923190130-3fbdfea7393c h1:zw6QsR5gpeknt6A/M4EMUrRWfrKYkIEDd79eRJW/UMo= +github.com/decred/dcrd/txscript/v3 v3.0.0-20200923190130-3fbdfea7393c/go.mod h1:vrm3R/AesmA9slTf0rFcwhD0SduAJAWxocyaWVi8dM0= github.com/decred/dcrd/wire v1.3.0 h1:X76I2/a8esUmxXmFpJpAvXEi014IA4twgwcOBeIS8lE= github.com/decred/dcrd/wire v1.3.0/go.mod h1:fnKGlUY2IBuqnpxx5dYRU5Oiq392OBqAuVjRVSkIoXM= +github.com/decred/dcrd/wire v1.3.1-0.20200921173733-67245079e9fb/go.mod h1:WxC/0K+cCAnBh+SKsRjIX9YPgvrjhmE+6pZlel1G7Ro= +github.com/decred/dcrd/wire v1.3.1-0.20200921185235-6d75c7ec1199 h1:tznPip3iz0HKDJJABdYkHUqFoLjztlHzQ19zVMkPJSo= +github.com/decred/dcrd/wire v1.3.1-0.20200921185235-6d75c7ec1199/go.mod h1:WxC/0K+cCAnBh+SKsRjIX9YPgvrjhmE+6pZlel1G7Ro= github.com/decred/go-socks v1.1.0 h1:dnENcc0KIqQo3HSXdgboXAHgqsCIutkqq6ntQjYtm2U= github.com/decred/go-socks v1.1.0/go.mod h1:sDhHqkZH0X4JjSa02oYOGhcGHYp12FsY1jQ/meV8md0= github.com/decred/slog v1.0.0 h1:Dl+W8O6/JH6n2xIFN2p3DNjCmjYwvrXsjlSJTQQ4MhE= github.com/decred/slog v1.0.0/go.mod h1:zR98rEZHSnbZ4WHZtO0iqmSZjDLKhkXfrPTZQKtAonQ= +github.com/decred/slog v1.1.0 h1:uz5ZFfmaexj1rEDgZvzQ7wjGkoSPjw2LCh8K+K1VrW4= +github.com/decred/slog v1.1.0/go.mod h1:kVXlGnt6DHy2fV5OjSeuvCJ0OmlmTF6LFpEPMu/fOY0= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= @@ -115,6 +134,7 @@ github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GO github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= @@ -122,8 +142,8 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= -github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= +github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= @@ -139,8 +159,8 @@ github.com/jrick/bitset v1.0.0/go.mod h1:ZOYB5Uvkla7wIEY4FEssPVi3IQXa02arznRaYaA github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/jrick/wsrpc/v2 v2.3.2/go.mod h1:XPYs8BnRWl99lCvXRM5SLpZmTPqWpSOPkDIqYTwDPfU= -github.com/jrick/wsrpc/v2 v2.3.3 h1:cGM2YUPrG8crjXFWw3b6IMcwqYHJMkteLqEb/WlDSP4= -github.com/jrick/wsrpc/v2 v2.3.3/go.mod h1:XPYs8BnRWl99lCvXRM5SLpZmTPqWpSOPkDIqYTwDPfU= +github.com/jrick/wsrpc/v2 v2.3.4 h1:+GzRtp/TyXaSB61pN92lIAVyvdVv0RSqniIEB/rPx1Q= +github.com/jrick/wsrpc/v2 v2.3.4/go.mod h1:XPYs8BnRWl99lCvXRM5SLpZmTPqWpSOPkDIqYTwDPfU= github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= @@ -205,8 +225,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm 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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -222,6 +240,7 @@ gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= 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/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= 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.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= diff --git a/harness.sh b/harness.sh index 55ad1f9..911fb50 100755 --- a/harness.sh +++ b/harness.sh @@ -110,6 +110,7 @@ pass=${WALLET_PASS} grpclisten=127.0.0.1:2010${i} rpclisten=${WALLET_RPC_LISTEN} enablevoting=true +manualtickets=true testnet=true debuglevel=info EOF @@ -166,4 +167,4 @@ tmux send-keys "vspd --configfile=${HARNESS_ROOT}/vspd/vspd.conf --homedir=${HAR # All done - attach to tmux session. ################################################# -tmux attach-session -t $TMUX_SESSION \ No newline at end of file +tmux attach-session -t $TMUX_SESSION diff --git a/rpc/dcrwallet.go b/rpc/dcrwallet.go index 1039bd5..007edf6 100644 --- a/rpc/dcrwallet.go +++ b/rpc/dcrwallet.go @@ -121,6 +121,12 @@ func (w *WalletConnect) Clients(ctx context.Context, netParams *chaincfg.Params) continue } + if !walletInfo.ManualTickets { + // All wallet should not be adding tickets found via the network. This + // misconfiguration should not have a negative impact on users, so just + // log an error here. Don't count this as a failed connection. + log.Errorf("wallet does not have manual tickets enabled (wallet=%s)", c.String()) + } if !walletInfo.Voting { // All wallet RPCs can still be used if voting is disabled, so just // log an error here. Don't count this as a failed connection. diff --git a/webapi/payfee.go b/webapi/payfee.go index d2f8e9e..73de18a 100644 --- a/webapi/payfee.go +++ b/webapi/payfee.go @@ -17,6 +17,11 @@ import ( "github.com/gin-gonic/gin/binding" ) +const ( + // Assume the treasury is enabled + isTreasuryEnabled = true +) + // payFee is the handler for "POST /api/v3/payfee". func payFee(c *gin.Context) { const funcName = "payFee" @@ -114,7 +119,7 @@ func payFee(c *gin.Context) { return } - err = blockchain.CheckTransactionSanity(feeTx, cfg.NetParams) + err = blockchain.CheckTransactionSanity(feeTx, cfg.NetParams, isTreasuryEnabled) if err != nil { log.Warnf("%s: Fee tx failed sanity check (clientIP=%s, ticketHash=%s): %v", funcName, c.ClientIP(), ticket.Hash, err) @@ -136,7 +141,7 @@ findAddress: return } _, addresses, _, err := txscript.ExtractPkScriptAddrs(scriptVersion, - txOut.PkScript, cfg.NetParams) + txOut.PkScript, cfg.NetParams, isTreasuryEnabled) if err != nil { log.Errorf("%s: Extract PK error (clientIP=%s, ticketHash=%s): %v", funcName, c.ClientIP(), ticket.Hash, err) @@ -177,7 +182,7 @@ findAddress: } // Get ticket voting address. - _, votingAddr, _, err := txscript.ExtractPkScriptAddrs(scriptVersion, ticketTx.TxOut[0].PkScript, cfg.NetParams) + _, votingAddr, _, err := txscript.ExtractPkScriptAddrs(scriptVersion, ticketTx.TxOut[0].PkScript, cfg.NetParams, isTreasuryEnabled) if err != nil { log.Errorf("%s: ExtractPK error (ticketHash=%s): %v", funcName, ticket.Hash, err) sendError(errInternalError, c)