Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
74126f7
client: Use the app build version as Version in UI in hamburger menu.…
dev-warrior777 Feb 3, 2025
bc27278
mm: Handle market params update (#2846)
martonp Mar 26, 2025
6c86dae
client/dcr: Create new syncer on Run error. (#3215)
JoeGruffins Apr 1, 2025
32ac0b9
deps: Update btcwallet to v0.16.10. (#3206)
JoeGruffins Apr 1, 2025
3a655c5
change html titles to Bison Wallet (#3223)
buck54321 Apr 2, 2025
cff3157
client/btc: More correct error return from ReturnCoins(coins) (#3224)
JoeGruffins Apr 2, 2025
8e93dcc
webview: Use bisoncraft import. (#3230)
JoeGruffins Apr 9, 2025
b144bac
client/site: Hide copy button on unsecure connection. (#3226)
JoeGruffins Apr 9, 2025
67b0a67
multi: check for used addresses (#2690)
buck54321 Apr 9, 2025
4b213b3
firo: Fix electrum wallet tx db panic (#3248)
martonp Apr 18, 2025
2881b76
multi: Add ` ExchangeWalletCustom` to support external btc-clone wall…
ukane-philemon Mar 26, 2025
76e7592
electrum: Fix GetBlockHash for Firo compatibility (#3251)
martonp Apr 23, 2025
314fa41
multi: Check book feed isn't closed. (#3254)
JoeGruffins Apr 30, 2025
d5c570a
multi: house cleaning and bug fixes (#3235)
ukane-philemon May 6, 2025
319c044
client: Deserialize Firo blocks from wire bytes (#3263)
dev-warrior777 May 12, 2025
ee76c4c
multi: Update macdrive -> Darwinkit (#3264)
ukane-philemon May 19, 2025
9f6e5ce
client: Always set default config values. (#3272)
JoeGruffins May 19, 2025
401934c
multi: send notifications for change in DEX account status (#3280)
ukane-philemon May 21, 2025
36511c0
multi: add /buildinfo endpoint and refactor (#3287)
ukane-philemon May 23, 2025
675c2c6
multi: show upgrade banner if newer version is available on GitHub (#…
ukane-philemon Jun 24, 2025
757e450
libxc: VWAP overflow fix (#3299)
martonp Jun 27, 2025
a134e4e
client/webserver: Pass cert as []byte to RedeemPrepaidBond (#3312)
martonp Jul 22, 2025
05c21a2
libxc/binance: MATIC -> POL update (#3311)
martonp Jul 22, 2025
fc79e95
mm: Update run end time after each event (#3305)
martonp Jul 10, 2025
764ad81
core: Fix panic on nil dex connection config (#3345)
martonp Sep 18, 2025
3369332
Update docker base images (buster EOL) (#3341)
peterzen Sep 9, 2025
a3105c0
Add Umbrel app store (#3340)
peterzen Oct 4, 2025
22b3882
web: Fix error enums and update deps.
JoeGruffins Oct 6, 2025
90f9f00
deps: Use go 1.24.8 and update dcrwallet.
JoeGruffins Oct 13, 2025
46e1f4e
build: Update golangci-lint to v2.0.2 (#3241)
jholdstock Apr 14, 2025
0c6d08f
bisonw-desktop: follow-up upgrade changes (#3281)
ukane-philemon Sep 22, 2025
0db4225
Update libwebkitgtk deps (#3232)
peterzen Apr 10, 2025
bf7f9ea
Implemented snap package (#2580)
martonp Oct 15, 2025
a2257f6
bisonw-darwin: Fix seg fault on window close (#3366)
martonp Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

# Build and Publish Snap Package workflow

This workflow builds a `snap` package and uploads it to the [Snap Store](https://snapcraft.io/store). It has a `workflow_dispatch` trigger so it can be triggered manually only, it is not hooked up to any other GH event.

The store upload requires the `SNAPCRAFT_STORE_CREDENTIALS` variable to be set in [Github Secrets](https://github.com/decred/dcrdex/settings/secrets/actions).
See https://github.com/snapcore/action-publish for details.

More information on Snapcraft authentication: [https://snapcraft.io/docs/snapcraft-authentication]
48 changes: 48 additions & 0 deletions .github/workflows/build-snap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and Publish Snap Package

on:
# manually trigger the workflow from the Actions tab
workflow_dispatch:

jobs:
build-snap:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
with:
fetch-depth: 0

- name: Compile frontend
working-directory: client/webserver/site
run: |
npm install
npm run build

- name: Install deb deps
run: |
sudo apt-get update
sudo apt-get -y install libgtk-3-dev libwebkit2gtk-4.1-dev build-essential

- name: Build deb package
working-directory: client/cmd/bisonw-desktop
run: pkg/pkg-debian.sh

- name: Prepare snapcraft.yml
working-directory: client/cmd/bisonw-desktop
run: pkg/prepare-snap.sh

- name: Build snap package
uses: snapcore/action-build@3bdaa03e1ba6bf59a65f84a751d943d549a54e79 # v1.3.0
id: build
with:
path: client/cmd/bisonw-desktop

- name: Publish snap to Snap Store
uses: snapcore/action-publish@214b86e5ca036ead1668c79afb81e550e6c54d40 # v1.2.0
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ permissions:
jobs:
build-go:
name: Go CI
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
matrix:
go: ['1.22', '1.23']
go: ['1.23', '1.24']
steps:
- uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 #v1.4.3
with:
packages: git-restore-mtime libgtk-3-dev libwebkit2gtk-4.0-dev
packages: git-restore-mtime libgtk-3-dev libwebkit2gtk-4.1-dev
version: 1.0

- name: Set up Go
Expand All @@ -28,7 +28,7 @@ jobs:
- name: restore timestamps
run: git restore-mtime
- name: Install Linters
run: "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.60.2"
run: "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.0.2"
- name: Use test and module cache
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 #v4.2.0
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ client/cmd/bisonw-desktop/pkg/installers
client/cmd/testbinance/testbinance
client/cmd/mmbaltracker/mmbaltracker
server/noderelay/cmd/sourcenode/sourcenode
client/cmd/bisonw-desktop/snap/snapcraft.yaml
tatanka/cmd/demo/demo
server/cmd/validatemarkets
client/cmd/translationsreport/translationsreport
Expand Down
28 changes: 18 additions & 10 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
version: "2"
run:
deadline: 10m

output:
formats: colored-line-number

timeout: 10m
linters:
disable-all: true
default: none
enable:
- asciicheck
- bidichk
- durationcheck
- gofmt
- goimports
- gosimple
- govet
- grouper
- ineffassign
Expand All @@ -21,6 +15,20 @@ linters:
- reassign
- rowserrcheck
- sqlclosecheck
- staticcheck
- tparallel
- typecheck
- unconvert
settings:
staticcheck:
checks:
- S1*
exclusions:
paths:
- docs/examples
formatters:
enable:
- gofmt
- goimports
exclusions:
paths:
- docs/examples
2 changes: 1 addition & 1 deletion client/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ WORKDIR /root/dex/client/cmd/bwctl/
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build

# Final image
FROM debian:buster-slim
FROM debian:bookworm-slim
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
WORKDIR /dex
ENV HOME /dex
Expand Down
2 changes: 1 addition & 1 deletion client/Dockerfile.release
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ WORKDIR /root/dex/client/cmd/bwctl/
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build

# Final image
FROM debian:buster-slim
FROM debian:bookworm-slim
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
WORKDIR /dex
ENV HOME /dex
Expand Down
8 changes: 8 additions & 0 deletions client/app/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ func (cfg *Config) Web(c *core.Core, mm *mm.MarketMaker, log dex.Logger, utc boo
KeyFile: keyFile,
NoEmbed: cfg.NoEmbedSite,
HttpProf: cfg.HTTPProfile,
AppVersion: userAppVersion(Version),
Language: cfg.Language,
}
}
Expand Down Expand Up @@ -352,9 +353,16 @@ func ResolveConfig(appData string, cfg *Config) error {
if cfg.MMConfig.EventLogDBPath == "" {
cfg.MMConfig.EventLogDBPath = defaultMMEventLogDBPath
}

return nil
}

// userAppVersion returns a simple user-facing version: maj.min.patch.
func userAppVersion(fullVersion string) string {
parts := strings.Split(fullVersion, "-")
return parts[0]
}

// setNet sets the filepath for the network directory and some network specific
// files. It returns a suggested path for the database file and a log file. If
// using a file rotator, the directory of the log filepath as parsed by
Expand Down
30 changes: 16 additions & 14 deletions client/asset/bch/spv.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,10 @@ import (
)

const (
DefaultM uint64 = 784931 // From bchutil. Used for gcs filters.
logDirName = "logs"
neutrinoDBName = "neutrino.db"
defaultAcctNum = 0
defaultAcctName = "default"
DefaultM uint64 = 784931 // From bchutil. Used for gcs filters.
logDirName = "logs"
neutrinoDBName = "neutrino.db"
defaultAcctNum = 0
)

var (
Expand Down Expand Up @@ -248,15 +247,6 @@ func (w *bchSPVWallet) txDetails(txHash *bchchainhash.Hash) (*bchwtxmgr.TxDetail

var _ btc.BTCWallet = (*bchSPVWallet)(nil)

// AccountInfo returns the account information of the wallet for use by the
// exchange wallet.
func (w *bchSPVWallet) AccountInfo() btc.XCWalletAccount {
return btc.XCWalletAccount{
AccountName: defaultAcctName,
AccountNumber: defaultAcctNum,
}
}

func (w *bchSPVWallet) PublishTransaction(btcTx *wire.MsgTx, label string) error {
bchTx, err := convertMsgTxToBCH(btcTx)
if err != nil {
Expand Down Expand Up @@ -802,6 +792,18 @@ func (w *bchSPVWallet) RemovePeer(addr string) error {
return w.peerManager.RemovePeer(addr)
}

func (w *bchSPVWallet) TotalReceivedForAddr(btcAddr btcutil.Address, minConf int32) (btcutil.Amount, error) {
bchAddr, err := dexbch.BTCAddrToBCHAddr(btcAddr, w.btcParams)
if err != nil {
return 0, err
}
amt, err := w.Wallet.TotalReceivedForAddr(bchAddr, 0)
if err != nil {
return 0, err
}
return btcutil.Amount(amt), nil
}

// secretSource is used to locate keys and redemption scripts while signing a
// transaction. secretSource satisfies the txauthor.SecretsSource interface.
type secretSource struct {
Expand Down
Loading