Skip to content

chore(root): publish modules (merge conflict resolution) - #9678

Merged
zahin-mohammad merged 35 commits into
rel/latestfrom
zahinmohammad/rel-latest-merge-9665
Sep 8, 2026
Merged

chore(root): publish modules (merge conflict resolution)#9678
zahin-mohammad merged 35 commits into
rel/latestfrom
zahinmohammad/rel-latest-merge-9665

Conversation

@zahin-mohammad

Copy link
Copy Markdown
Contributor

Conflict-resolution replacement for #9665. This branch was created from rel/latest and merges origin/master with an explicit merge commit, while leaving rel/latest unchanged. The dependency conflicts retain rel/latest release versions and use @bitgo/wasm-utxo ^5.1.0 from master. Commit 46387be has rel/latest as its first parent and master as its second parent. Commit hooks, JSON validation, and merge checks passed.

kamleshmugdiya and others added 30 commits September 3, 2026 16:55
Expose ETH -> WETH wrap and WETH -> ETH unwrap on wallet.defi so the UI can
call them directly. Both are thin orchestrators over a single wallet.sendMany,
modelled on the existing withdrawFromVault; WP builds the WETH9 calldata and
resolves the contract address from the vault binding.

- iDefiVault: WrapOptions / WrapResult, plus wrap/unwrap on IDefiVault.
  operationId is declared optional now even though nothing populates it, so
  that adding operation tracking in M5 is not a breaking change to a published
  SDK type.
- defiVault: wrap/unwrap share sendWrapIntent, which deliberately does not call
  extractOperationId - no operation is minted in v1. sendWrapIntent validates
  the amount as a positive unsigned decimal integer string (zero, negative
  and hex forms are rejected since they forward straight into a value-moving
  WETH9 deposit()/withdraw() call), trims vaultId so whitespace-only values
  are rejected, and fails fast with a clear client-side error for non-EVM
  wallets (CoinFeature.EVM_COIN guard) instead of an opaque prebuild error.
- wallet: wrapNative / unwrapNative cases map to the wrap-native /
  unwrap-native intents, decoding defiParams with decodeWithCodec rather than
  a bare cast so an 18dp amount stays a string.
- mpcUtils: both sites - the recipients-required exemption list and the EVM
  intent-shape switch. Omitting the first makes the recipients assertion throw
  before the switch is reached. Resolved against master's ERC-7984
  wrapApprove/wrap intents by keeping both side by side.
- recipientUtils: register both the camelCase and kebab-case spellings.
  NO_RECIPIENT_TX_TYPES is matched against txParams.type (camelCase, from
  buildParams) and against intent.intentType (kebab-case, as WP persists it);
  signing paths that carry no txParams only ever see the latter.
- tests: boundary tests for amount/vaultId validation and the non-EVM guard
  in defiVault; an end-to-end regression test through signRequestBase ->
  resolveEffectiveTxParams -> verifyTransaction pinning the kebab-case
  no-recipients wiring for pendingApproval.approve() style signing paths.

@bitgo/public-types is intentionally left at 6.58.0: sdk-core imports no
intent codec from it, so the 6.60.0 publish carrying WrapNativeIntent /
UnwrapNativeIntent is only needed by wallet-platform.

DEFI-661
Safe-minted wallets have pub-only children (owner material stays on the
root), so the share path's scan for an encrypted user key wrongly
treated them as cold and sent skipKeychain=true

This PR fixes the issue to derive the key correctly and account for
safe shared wallets.

Ticket: WCN-2429
Update the UTXO workspaces to @bitgo/wasm-utxo 5.1.0, which includes
native classified PSBT input metadata for PoX-5 recovery support.

Refs: WAL-2025
fix: derive safe child key for spend sharing
Keep the compatibility matrix on explicit Node.js major lines.
Use .nvmrc for the release gate and single-version CI jobs and cache keys.

TICKET: WCN-2596
feat(sdk-core): add wrap() and unwrap() to DefiVault
feat: PR from asset-metadata-service for token onboardings
Zec.isValidAddress previously only accepted transparent (base58check)
addresses. Extend it to also recognize well-formed ZIP-316 Unified
Addresses (Sapling/Orchard), and expose standalone helpers
(getZcashAddressKind, isShieldedZcashAddress, isValidZcashAddress) for
callers that need to classify or validate addresses without a coin/SDK
instance.

Ticket: CSHLD-1652
Add canonical PoX-5 lockup descriptor construction, parsing, native input
resolution, and descriptor-bound principal-preimage validation.

BREAKING CHANGE: PoX-5 descriptor APIs now return native descriptors and undefined for non-matches.

Refs: WAL-2025
Move native PoX-5 recovery validation and witness finalization into @bitgo/utxo-staking.

BREAKING CHANGE: Pox5FinalizerParams now requires an input-bound Pox5InputMatch.

Refs: WAL-2022
Bind canonical descriptor matches to their originating PSBT input, validate
late-exit sequences only for PoX-5 inputs, and select the principal preimage
record by the descriptor commitment.

Refs: WAL-2022
Add staking metadata to mainnet ZAMA and Hoodi ZAMAMock. Keep operator

stZAMA receipt shares excluded and assert the registered Hoodi metadata.

Ticket: SI-609
CSHLD-1652: Build @bitgo/abstract-utxo to expose new ZEC address helper exports
feat(utxo-staking): add PoX-5 recovery policy
Add the native PoX-5 spend-branch classifier required by the thin Wallet
Platform adapter. The classifier revalidates the descriptor-bound input and
distinguishes the locktime branch from the principal-preimage early-exit
branch using native PSBT_IN_SHA256 metadata.

Add unit coverage for both native metadata states. Wallet Platform remains
responsible for request and wallet policy, legacy conversion boundaries, and
error translation; it does not parse PoX-5 descriptors or raw PSBT key-value
data.

Refs: WAL-2024
refactor(utxo-staking): classify PoX-5 recovery branches
feat(statics): enable ZAMA staking metadata (SI-609)
fix: align child derivation path field with WP
feat(sdk-core): wire RedPallas MPCv2 into MPC dispatch
feat: PR from asset-metadata-service for token onboardings
feat(sdk-coin-sol): remove check for confidential extension
@zahin-mohammad
zahin-mohammad changed the base branch from master to rel/latest September 8, 2026 14:47
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

⚠️ Unit tests are failing on Node 26.x (Current release line, non-blocking). This is not an LTS version yet, so it does not block merge, but it signals an incompatibility to fix before Node 26.x becomes LTS.

View run

@zahin-mohammad
zahin-mohammad marked this pull request as ready for review September 8, 2026 15:10
@zahin-mohammad
zahin-mohammad requested review from a team as code owners September 8, 2026 15:10
@zahin-mohammad
zahin-mohammad merged commit 1f8c874 into rel/latest Sep 8, 2026
25 checks passed
@linear-code

linear-code Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

WCN-2604

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.