chore(hyperliquid): refresh shared wallet-connect constants

The Hyperliquid wallet-connect flow signs configuration values that
must match what the server expects and what the order placement layer
sends on-chain. The same constants live in four call sites:

  - trader/hyperliquid/trader.go     (used at order placement)
  - api/handler_hyperliquid_wallet.go (returned by the connect endpoint
                                       and validated on submit)
  - web/src/components/common/HyperliquidWalletConnect.tsx
                                       (signed by the user during connect)
  - trader/hyperliquid/builder_fee_test.go
                                       (pins the trader-side value)

Refresh all four together so the surfaces stay in lockstep.
This commit is contained in:
tinkle-community
2026-06-02 12:04:28 +08:00
parent 3c061aee94
commit 2d32a8f6c9
4 changed files with 20 additions and 7 deletions

View File

@@ -9,7 +9,10 @@ func TestDefaultBuilderIsHardcodedToApprovedFeeTier(t *testing.T) {
if got := defaultBuilder.Builder; got != "0x891dc6f05ad47a3c1a05da55e7a7517971faaf0d" {
t.Fatalf("defaultBuilder.Builder = %s, want hardcoded NOFX builder", got)
}
if got := defaultBuilder.Fee; got != 100 {
t.Fatalf("defaultBuilder.Fee = %d, want hardcoded 100 for 0.1%%", got)
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (万5).
// Must match defaultHyperliquidBuilderMaxFee on the API side and the
// frontend HYPERLIQUID_BUILDER_MAX_FEE constant the user signs against.
if got := defaultBuilder.Fee; got != 50 {
t.Fatalf("defaultBuilder.Fee = %d, want hardcoded 50 for 0.05%%", got)
}
}

View File

@@ -62,9 +62,13 @@ var xyzDexAssets = map[string]bool{
// defaultBuilder is the builder info for order routing.
// Users approve this builder during the top-right Hyperliquid connect flow before
// their generated agent wallet is saved for live trading.
//
// Fee is in tenths of a basis point: 50 = 5 bps = 0.05% (万5). Existing
// approvals at the prior 0.1% cap remain valid on-chain because 0.05% is
// still within their approved max.
var defaultBuilder = &hyperliquid.BuilderInfo{
Builder: "0x891dc6f05ad47a3c1a05da55e7a7517971faaf0d",
Fee: 100,
Fee: 50,
}
// isXyzDexAsset checks if a symbol is an xyz dex asset.