Skip to content

v2.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Oct 23:31
Immutable release. Only release title and notes can be modified.
0f87641

Minor Changes

  • #747 32a4ab2 Thanks @hulk-linus! - Add feedback submit and receipt lookup with explicit submission IDs, account authentication, safe retries, and JSON or human output.

    Explain the agent preference rule in CLI guidance: ask before sending when the saved preference is off, unset or unavailable.

    Explain paused submissions: report the unavailable feature, stop repeated attempts, and preserve the ID and report for a later retry.

    Preserve field-level validation errors and uncertain submissions across session failures, recognize gateway authentication errors, and keep malformed feedback arguments out of telemetry.

  • #755 84ba0b0 Thanks @hulk-linus! - Read account feedback preferences and stop automatic retries when feedback is not enabled for the account.

  • #754 4dddcec Thanks @hulk-linus! - Save feedback submissions before sending when no ID is supplied. Resume the same report after a restart, with account and environment checks, private storage, concurrency protection, and local expiry and erasure.

  • #744 f56cdbb Thanks @kome12! - Removed --gasless from trade execute. The flag never worked. The deprecated broadcast route it posted to validates its request body strictly and has never accepted the gasless or steps fields, so every gasless swap was rejected with Unrecognized keys before anything was broadcast — on Base and on Solana alike. Passing --gasless now fails fast with GASLESS_REMOVED instead of signing, posting and failing; re-run without it and the wallet pays its own gas as usual. There is no replacement flag.

    This corrects the 2.2.0 release note, which said "Gasless swaps stay on the deprecated route". They did, but that route rejected them; there was no working gasless path to keep.

    This removes a published option and its schema.json entry, so anything enumerating trade execute's options will see it disappear and any wrapper still passing it will fail. It is released as a minor rather than a major because the flag never completed a swap on any chain: every call already ended in a failed execution, so no working integration can depend on it.

    Removed the $10 gas-balance bypass. trade quote skipped its native-balance pre-check for any trade worth $10 or more, on the theory that such trades could use a solver-paid route. It never checked whether one was actually in use, so a wallet with no native token passed validation and then failed at broadcast. Gas is now checked on every trade, and the error says to fund the wallet rather than suggesting the removed feature.

    The Solana floor comes down from 0.01 SOL to 0.005 SOL in the same change. It had drifted above the 0.005 SOL the CLI itself holds back when you sell the maximum amount of SOL, so a wallet left sitting on exactly that reserve would have been refused its next quote — a contradiction the $10 bypass had been hiding from every trade worth $10 or more. 0.005 SOL is still a wide margin over a real swap (a 5000-lamport base fee plus at most ~0.00204 SOL of account rent). The Base floor is unchanged.

  • #751 0a87eae Thanks @kome12! - Add NANSEN_X402_SESSION_MAX_AMOUNT to cap the total USD of x402 auto-payments one CLI process can sign

Patch Changes

  • #757 19b7cfc Thanks @hulk-linus! - Report feedback edge blocks as rejections, keep preference failures on the ask-before-sending path, and preserve the actual submission outcome when resuming saved reports.

  • #732 94815d4 Thanks @Ahmett101! - Render profiler perp positions as individual rows in table and CSV output while preserving the original JSON response and account summaries. Table and CSV output also falls back to showing the payload when a response's rows carry no fields, instead of printing blank lines.

  • #742 facbb45 Thanks @gulshngill! - Check EVM token balances before signing automatic x402 payments. Skip unfunded options for local and Privy wallets and continue to a funded token, using exact amounts and bounded RPC checks.

  • #748 fb96a5d Thanks @hulk-linus! - Use stable v1 API routes for ten historical research commands before their beta aliases are retired.

  • #750 2c38b44 Thanks @kome12! - Record x402 auto-payments in a local audit log at ~/.nansen/x402/payments.jsonl: one line when a signed payment is sent and one for its outcome (accepted, rejected or ambiguous), with the amount, network, asset, recipient and request path. Signatures, request and response bodies, and query strings are never written, and a failed write warns without blocking the payment.

  • #745 5a77e0d Thanks @gulshngill! - Skip unfunded x402 payment options on every signing path. WalletConnect payments now try each compatible option cheapest first, check the connected wallet's token balance before asking for approval, and move on to the next option after a clean server rejection instead of failing on the first. Solana payments from local and Privy wallets check the USDC balance before signing. Privy payments now report the token they paid with, so the low-balance warning checks the right token.

  • #749 221371b Thanks @kome12! - x402: report on stderr when the server rejects a payment because the wallet's token balance is too low, and include the network in the "Paid via WalletConnect" log line.