Skip to content

chore: merge master into rel/latest (resolve abstract-utxo conflict)#8657

Merged
zahin-mohammad merged 26 commits intorel/latestfrom
rel/latest-fix-merge-conflict-04-29
Apr 29, 2026
Merged

chore: merge master into rel/latest (resolve abstract-utxo conflict)#8657
zahin-mohammad merged 26 commits intorel/latestfrom
rel/latest-fix-merge-conflict-04-29

Conversation

@zahin-mohammad
Copy link
Copy Markdown
Contributor

Summary

  • Merges master into rel/latest to clear the merge conflict blocking the next rel/latestmaster sync
  • Conflict was in modules/abstract-utxo/package.json: kept @bitgo/utxo-ord ^1.29.1 (from rel/latest's publish) and @bitgo/wasm-utxo ^4.8.0 (from master's bump in feat(abstract-utxo): bump wasm-utxo to 4.8.0 #8647). Both are the newer of the two sides.

Test plan

  • CI green
  • After merge, confirm a clean rel/latestmaster PR has no conflicts

Refs #0

manas-at-bitgo and others added 26 commits April 28, 2026 14:06
…ation

TICKET: CSHLD-24

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update wasm-utxo dependency across multiple modules to version 4.8.0.

Contains fixes for abstract-utxo bip322.

Co-authored-by: llm-git <llm-git@ttll.de>

Issue: BTC-0
…puts

What changed:
- make address optional in checkRecipient parameter type
- add recipient.address guard before calling isScriptRecipient
- pass explicit object to super.checkRecipient to satisfy its address: string type
- add unit tests covering OP_RETURN and script-prefixed recipient cases

Why:
OP_RETURN recipients have no address field at runtime; calling
isScriptRecipient(undefined) unconditionally invoked undefined.toLowerCase()
causing a crash when approving pending approvals containing OP_RETURN outputs.

TICKET: WAL-826
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
In browsers (webpack), importing @bitgo/wasm-mps resolves to the
--target bundler ESM build which has a race condition between
webpack's async WASM instantiation and __wbg_set_wasm being called.
This causes wasm.ed25519_dkg_round0_process to be undefined when
initDkg() runs.

Mirror the ECDSA pattern in ecdsa-dkls/dkg.ts: detect browser via
`typeof window !== 'undefined'` (excluding Electron via window.process
checks), then use @bitgo/wasm-mps/web which exposes an explicit
init() function — guaranteed ready after await.

Adds a local .d.ts shim for @bitgo/wasm-mps/web until WCI-250
publishes the ./web subpath export with its own types.

Ticket: WCI-251
feat(sdk-coin-eth): add registerWithCoinMap for dynamic token registration
Adds a `recovery-mode` workflow_dispatch input that publishes only the
versions missing from npm (via `lerna publish from-package`) when a
prior release left npm in a partial-publish state. Pins the checkout
to a SHA captured by a pre-flight job so the publish cannot drift from
what the env reviewer approved, asserts the SHA up front, and verifies
post-publish that every public package version on rel/latest is now on
the registry.

Ticket: WCN-308


fix(abstract-utxo): guard address in checkRecipient for OP_RETURN outputs
feat(ci): add recovery-mode to npmjs-release workflow
fix(sdk-lib-mpc): use @bitgo/wasm-mps/web in browser to fix EdDSA MPCv2 DKG TypeError
feat(abstract-utxo): bump wasm-utxo to 4.8.0
Introduces the DSG (Distributed Sign Generation) class for EdDSA
MPCv2 using the @bitgo/wasm-mps WASM bindings. The class mirrors the
existing DKG pattern with explicit state management and session
export/restore support for server-side persistence across rounds.

- Add `DSG` class with 4-round signing protocol state machine
  (Init → WaitMsg1 → WaitMsg2 → WaitMsg3 → Complete)
- Add `DsgState` enum to types.ts
- Export `EddsaMPSDsg` namespace from index.ts
- Add `runEdDsaDSG` test helper to util.ts
- Add unit tests covering full 2-of-3 signing, session restore,
  message serialization, error handling, and derivation paths

Ticket: WCI-164
feat(statics): add OFC coins for kavacosmos and dydxcosmos Go Accounts
Extend explainPsbtWasm to count valid signatures per input:
- Add scriptId to ExplainedInput (from parseTransactionWithWalletKeys)
- Add signedBy map showing validation status for each key
- Extract BIP-322 messages with bip322.getBip322Message()
- Count signatures via bip322.verifyBip322PsbtInput()

Replace BIP-322 test fixtures with dynamic PSBT generation using
wasm-utxo. Remove fixtures/bip322/fixtures.ts and inline PSBT
construction directly in tests. Call explainPsbtWasm with BitGoPsbt
instances instead of serializing via coin.explainTransaction.

Remove utxolib dependency from BIP-322 tests. Use @bitgo/wasm-utxo
directly for key generation, address creation, and signature
verification. Rewrite p2trMusig2 sighashType test as pure wasm-utxo
round-trip.

Add cross-library compatibility test verifying utxolib-created BIP-322
PSBTs can be signed by wasm-utxo and validated by utxolib.

Issue: BTC-2650

Co-authored-by: llm-git <llm-git@ttll.de>
feat: PR from asset-metadata-service for token onboardings
Node.js 20 actions are deprecated; forced migration to Node.js 24 on
June 2, 2026.

Ticket: DX-496
feat(abstract-utxo): enhance BIP-322 verification in wasm-utxo
ci(workflows): upgrade aws-actions/configure-aws-credentials to v6
feat(sdk-lib-mpc): add EdDSA DSG MPS class
Revert "feat: implement BitGo signing in SDK"
Resolve abstract-utxo/package.json conflict — keep @bitgo/utxo-ord ^1.29.1
(from rel/latest publish) and @bitgo/wasm-utxo ^4.8.0 (from master bump).

Refs #0
@zahin-mohammad zahin-mohammad requested review from a team as code owners April 29, 2026 20:06
@zahin-mohammad zahin-mohammad requested review from a team as code owners April 29, 2026 20:06
@zahin-mohammad zahin-mohammad merged commit f3e88f5 into rel/latest Apr 29, 2026
21 of 22 checks passed
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.