Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@
/logs
/gateway.level
/transactions.level
node_modules
dist
coverage
.git
11 changes: 6 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Set the base image
FROM node:20-bookworm-slim
# Node 20 reached EOL in April 2026; using Node 22 LTS.
FROM node:22-bookworm-slim

# WORKDIR /usr/src/app/
WORKDIR /home/gateway
Expand All @@ -16,11 +17,11 @@ RUN mkdir -p /home/gateway/conf \
/home/gateway/logs \
/home/gateway/certs

# Install pnpm
RUN npm install -g pnpm@latest
# Install pnpm (pinned to major to keep Docker builds reproducible)
RUN npm install -g pnpm@11

# Copy package files first
COPY package.json pnpm-lock.yaml ./
# Copy package files first (pnpm-workspace.yaml carries overrides + allowBuilds, needed at install time)
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./

# Dockerfile author / maintainer
LABEL maintainer="Michael Feng <mike@hummingbot.org>"
Expand Down
13 changes: 1 addition & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": "Apache-2.0",
"repository": "https://github.com/hummingbot/gateway",
"engines": {
"node": ">=20.0.0"
"node": ">=22.0.0"
},
"imports": {
"#src": "./src/index.ts",
Expand Down Expand Up @@ -161,17 +161,6 @@
"typescript": "^5.8.2",
"ws": "^8.18.3"
},
"resolutions": {
"@types/bn.js": "5.1.6",
"bn.js": "5.2.1",
"web3-utils": "1.7.3",
"brotli": "1.3.2",
"minimist": "^0.2.4",
"mkdirp": "^1.0.4",
"@openzeppelin/contracts": "^4.9.6",
"pbkdf2": "^3.1.3",
"axios": "^1.8.4"
},
"files": [
"/dist"
],
Expand Down
36 changes: 36 additions & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# pnpm workspace configuration
# https://pnpm.io/pnpm-workspace_yaml

# Disable blocking of exotic subdependencies (required for pnpm v11+).
# Dependency chain that needs this: @solflare-wallet/utl-sdk -> @metaplex-foundation/js ->
# @bundlr-network/client -> arbundles -> avsc (git-hosted tarball).
# See: https://github.com/hummingbot/gateway/issues/633
blockExoticSubdeps: false

# Dependency version pins (migrated from package.json `resolutions` for pnpm v11
# compatibility — `resolutions` is yarn-style and pnpm v11 requires these here).
overrides:
'@types/bn.js': 5.1.6
bn.js: 5.2.1
web3-utils: 1.7.3
brotli: 1.3.2
minimist: ^0.2.4
mkdirp: ^1.0.4
'@openzeppelin/contracts': ^4.9.6
pbkdf2: ^3.1.3
axios: ^1.8.4

# Native modules whose postinstall build scripts must run for the gateway to function.
# pnpm v11+ blocks these by default (ERR_PNPM_IGNORED_BUILDS) unless explicitly allowed.
allowBuilds:
bigint-buffer: true
bufferutil: true
classic-level: true
dtrace-provider: true
esbuild: true
keccak: true
node-hid: true
secp256k1: true
unrs-resolver: true
usb: true
utf-8-validate: true
Loading