Repository navigation
Version Packages - #655
Version Packages#655
Conversation
c945b29 to
45deedf
Compare
pr-reviewer Summary for #62dd378✅ No issues found The code review completed successfully with no findings. Review effort: 1/5 (Trivial) SummaryThis is an automated Changesets release PR bumping The diff is exactly what is expected from the Changesets GitHub Action:
The semver bump is correct: 3 of the consumed changesets were typed Token usage: 118 input, 2,093 output, 213,241 cache read, 26,641 cache write | Usage Guide New pushes are reviewed automatically with a 10-minute cooldown between reviews. To request a review at any time, comment |
pr-reviewer Summary for #45deedf📝 1 finding Review completed. Please address the findings below. Findings by Severity
Review effort: 1/5 (Trivial) SummaryThis is a standard Changesets-generated release PR bumping Findings (1)
|
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
- Review comment contains non-blocking feedback
If you have any concerns, please request a manual review.
a14538a
a14538a to
c49b3b5
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
b319b70
b319b70 to
4c7d455
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
6389266
4c7d455 to
6389266
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
c73f3bf
6389266 to
c73f3bf
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
3436279
c73f3bf to
3436279
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
565a922
3436279 to
565a922
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
efb8a68
565a922 to
efb8a68
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
415840d
efb8a68 to
415840d
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
8022f6b to
9376519
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
bb3c917
9376519 to
bb3c917
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
fb3925f
bb3c917 to
fb3925f
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
68a99b0
fb3925f to
68a99b0
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
d6d4523
68a99b0 to
d6d4523
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
6491ea2
d6d4523 to
6491ea2
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
e2101b4
6491ea2 to
e2101b4
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
|
@nansen-pr-reviewer re-review |
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
62dd378
e2101b4 to
62dd378
Compare
There was a problem hiding this comment.
Auto-approved
This PR was automatically approved because:
- Claude recommends approval
- Claude assessed this as a minimal effort change
- The effort level is within the auto-approval threshold of 2
- No high or critical issues were detected
If you have any concerns, please request a manual review.
|
Resolved by Changesets regeneration at |
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
nansen-cli@1.46.0
Minor Changes
#667
8dad3b9Thanks @gulshngill! -trade executeandbridge executenow take--dry-runand--yes.--dry-runruns the sign-free preflight available from the cached quote, its public signer address, and read-only RPC calls; prints the trade or transfer that would be sent (chain, tokens, amounts, recipient, approvals, fees — plus the current allowance and revert simulation on EVM); and stops before wallet credentials or signing: no wallet password needed, the quote is not consumed, exit code 0. Real execution still resolves and revalidates the live signer. When stdin is an interactive terminal, both commands now print that plan and askBroadcast this transaction? [y/N]before broadcasting; declining exits 1 with nothing signed.--yes(-y) orNANSEN_YES=1skips the prompt. Non-interactive callers — agents, CI, pipes — are unchanged: they proceed without prompting, and--yesis accepted there as a no-op.#501
5a79f9dThanks @gulshngill! - Guardwallet exportagainst accidental plaintext key disclosure. The default output is now redacted (addresses only — no decryption, no password needed). Printing private keys to stdout requires explicit acknowledgement via--reveal(which also warns on stderr when stdout is an interactive terminal), and the new--file <path>writes keys to a file created with 0600 permissions (refusing to overwrite) while keeping stdout clean. Scripts that parsedwallet exportoutput must add--revealor switch to--file.--filefailures carry machine-readable codes:FILE_EXISTSwhen the path already exists,FILE_WRITE_FAILEDfor any other create/write error.This safety hardening is intentionally classified as a minor change rather than a major release: it changes an unsafe default to prevent accidental private-key disclosure while preserving explicit export through
--revealand--file.#669
b821104Thanks @gulshngill! - Show the real subcommand help fornansen research perp screener --helpandnansen research perp leaderboard --help. Becauseperpis also a top-level trading command, the help lookup stopped at the trading command's subcommand list and fell back to printing the category listing — "Use: nansen research perp --help", the command that had just been run — so the parameters, credit cost and example were unreachable.nansen perp screener --helpnow resolves to the same help, with an example pointing at theresearchpath. Boolean options now accept--flag=falseand reject invalid or repeated values instead of silently falling back to the server default; value-taking options also accept the conventional--key=valuespelling, while valueless switches reject inline values instead of creating unusable stale flags. Invalidchangelog --sincevalues now return a structured error and a non-zero exit status.The stricter validation intentionally rejects invalid, previously undocumented inputs that only appeared to succeed while being ignored; relying on that quiet fallback was relying on a bug, so this is classified as a minor change rather than a major breaking release.
Patch Changes
#682
3e172f2Thanks @Bruce039! -alerts updateno longer resends a PATCH through the retry loop after a transient failure, matchingalerts create#649
66152afThanks @kriss39! -research profiler compareno longer turns failed API requests into an empty comparison. When every request fails the command errors with the underlying code (for exampleUNAUTHORIZEDorRATE_LIMITED); when some fail the result carriesincomplete: true, anerrorslist, andnullfor the fields that could not be computed. Shared tokens are now matched on the token address when both wallets report one, falling back to the symbol when either side omits it, so two different contracts with the same symbol are no longer reported as shared.#674
ad178dbThanks @0xShadowX! - A repeated list option whose values are themselves comma-separated (--tags defi,nft --tags sports) is now flattened todefi, nft, sports. Previously the first value was kept as the literaldefi,nft, so the same list was read differently depending on whether it was passed once or as repeated flags.#652
d0433d4Thanks @Bruce039! - Resolve ENS names when the profiler chain isall. The profiler commands default--chaintoall, but the resolver only accepted explicit EVM chains, soresearch profiler labels --address vitalik.eth(and every other profiler subcommand exceptfirst-funder) failed withENS names can only be resolved on EVM chains, not allunless--chain ethereumwas passed.#654
0aad196Thanks @Bruce039! ---fieldsnow supports dotted paths.--fields data.results.addressselects that field at that position only (array elements do not add a segment), while a bare name such as--fields addresskeeps matching at any depth. Dotted paths were mentioned in the code but matched nothing, so--fields data.resultsreturned an empty object.#672
b10dc31Thanks @0xShadowX! ---filtersis validated as a JSON object before the request is sent. A value such as--filters '[]',--filters abcor a repeated--filtersflag used to be forwarded to the API as-is and only failed there with a 422; it now fails with anINVALID_PARAMSerror that shows the expected form.#660
42db750Thanks @Ahmett101! - Parse SSEdata:fields with or without the optional space after the colon so standards-compliant agent streams do not produce an empty response.#651
ab784a3Thanks @kriss39! - Respect the server'sRetry-Afterheader when retrying rate-limited (429) requests. The wait was capped at the local backoff ceiling (30s), so aRetry-After: 60led to a retry after 30s that could only hit the limiter again. The client now waits at least as long as the header asks, and if the server asks for more thanmaxRetryAfterMs(default 120s) it fails immediately with theretryAfterMsin the error details instead of retrying too early. ARetry-Afteron a 5xx response is still treated as advisory and capped at the backoff ceiling as before.#663
bc4ecc8Thanks @gulshngill! - Option values that spell a JSON keyword (--sort true,--search false,--label null) are now kept as the literal stringstrue/false/nullinstead of being converted to a boolean or null, so string options no longer crash or silently drop the value;--filters '{}'and--order-by '[...]'still parse as JSON, and--sortnow rejects a repeated or non-text value with--sort must be "field" or "field:direction".#671
8a4e98fThanks @0xShadowX! - Keep the body of a non-JSON error response (gateway HTML, plain text) in the error details instead of reportingbody: null, and apply the same retry policy to it as to a JSON error: a plain-text429is now retried, with itsRetry-Afterrespected, instead of failing on the first attempt.#676
0112fa1Thanks @0xShadowX! - Refuse to sign EVM approval, revoke, and Privy swap transactions when the quote carries no gas price, instead of defaulting to an unmineable 0.001 gwei fee that left the wallet's nonce stuck#681
c82492dThanks @kriss39! -wallet sendandtrade limit-order createreject an amount of zero, or one that truncates to zero base units at the token's precision, instead of broadcasting a transfer of nothing or creating a limit order withinputAmount: "0"#650
d4b4925Thanks @kriss39! -research token screener --searchnow honours--page. The search filter runs client-side, and previously every page returned the same first slice of matches; the candidate fetch is now widened to cover the requested page and the filtered list is sliced at the page offset.#661
fe5b294Thanks @gulshngill! - Recognise the API's full set of structured error codes. A 401unauthenticatedresponse once again showsNot logged in. Run: nansen login,insufficient_creditsgets its do-not-retry hint, and codes that previously leaked through as raw server strings now surface as CLI codes, including the newPLAN_UPGRADE_REQUIRED,GEO_BLOCKED,QUERY_TOO_LARGE,PAYLOAD_TOO_LARGE,METHOD_NOT_ALLOWED, andCONFLICT. Retry behaviour is unchanged: it stays keyed on the HTTP status.#679
5c8d22bThanks @0xShadowX! - Fail with an actionable error when a Solana RPC cannot return an SPL mint's decimals, instead of silently assuming 9 and building a transfer or limit order with a mis-scaled amount#675
938a011Thanks @kome12! - Reject malformed or negative profiler--delayand tokentop-tokens --limitvalues instead of partially parsing them.#646
3290e3cThanks @gulshngill! ---tableand--format csverror output now includes the errorcode, HTTPstatus, anddetailsinstead of only the message. CSV errors are emitted as a header row plus one record; table errors keep the leadingError:line and add onekey: valueline per field.#662
7fd923fThanks @gulshngill! - Sync thechainslist reported bynansen schema(and mirrored in--helpand the README) with the chains the Nansen API actually accepts. Dropsscrollandronin, which no endpoint serves any more, and adds the chains that were missing:algorand,aptos,arc,bitcoin,bitlayer,chiliz,citrea,gravity,hyperliquid,injective,mantra,near,robinhood,stacks,starknet,stellar,sui,ton,tron,viction. Not every chain is served by every endpoint; the API still validates--chainper endpoint.#664
d034ae1Thanks @gulshngill! -trade quoteandtrade executenow screen the signing wallet (and any distinct--to-walletdestination) against the compliance blocklist before requesting a quote or signing — the same fail-closed checkbridgeandperpalready run — so a flagged address, or a screening call that fails, aborts the command before anything is signed or broadcast. Both commands now require API access for this check; authenticate withnansen loginorNANSEN_API_KEYbefore trading.#653
337271dThanks @Bruce039! ---sortnow rejects a direction other thanasc/descand an empty field name with anINVALID_PARAMSerror. Previously--sort pnl_usd:sidewayswas uppercased and sent to the API asdirection: SIDEWAYS, which only failed later with an upstream 422.#648
0514c76Thanks @kriss39! - Validatetoken screener --searchandtoken who-bought-sold --buy-or-sellbefore the request is sent, so a JSON array/object or a repeated flag (--search '[]',--buy-or-sell '{}') and values outside theBUY/SELLenum produce an actionableINVALID_PARAMSerror instead of a raw.toLowerCase()/.toUpperCase()TypeError.#666
6539558Thanks @gulshngill! - Make every wallet subcommand discoverable from the places agents look first.nansen --helpnow listssend,forget-passwordandsecureon the wallet line (previously only seven of the nine were shown) and the full perp subcommand set (transfer,approve-builder-fee,orders,account,meta,screenerandleaderboardwere missing). It also stops describing the combined top-levelperpcommand as a deprecated analytics alias. README lists the same wallet set, andnansen schema walletnow documentsforget-passwordandsecurewith descriptions plus an example for every wallet subcommand. Help text, README, runtime command help and schema are pinned together by a new drift-guard test.#677
b91e108Thanks @0xShadowX! - Read a pretty-printed WalletConnectsign-typed-dataresult on the x402 payment path instead of failing after the user has already approved the payment in their wallet#673
05a2056Thanks @0xShadowX! -web search --num-resultsnow rejects a malformed value (5abc,2.5,abc, a repeated or valueless flag) withINVALID_PARAMS. Previously5abcwas silently truncated to 5,2.5to 2, and a non-numeric value fell back to the API default instead of reporting the mistake.