Merge main into v17-feature-branch - #1579
Conversation
Bumps the all-actions group with 9 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4` | `7` | | [github/codeql-action](https://github.com/github/codeql-action) | `3` | `4` | | [pnpm/action-setup](https://github.com/pnpm/action-setup) | `4` | `6` | | [actions/setup-node](https://github.com/actions/setup-node) | `4` | `6` | | [actions/cache](https://github.com/actions/cache) | `4` | `6` | | [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) | `3` | `5` | | [actions/deploy-pages](https://github.com/actions/deploy-pages) | `4` | `5` | | [stellar/stellar-cli](https://github.com/stellar/stellar-cli) | `23.4.0` | `27.0.0` | | [actions/create-github-app-token](https://github.com/actions/create-github-app-token) | `1` | `3` | Updates `actions/checkout` from 4 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v7) Updates `github/codeql-action` from 3 to 4 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) Updates `pnpm/action-setup` from 4 to 6 - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](pnpm/action-setup@v4...v6) Updates `actions/setup-node` from 4 to 6 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v6) Updates `actions/cache` from 4 to 6 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v6) Updates `actions/upload-pages-artifact` from 3 to 5 - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v3...v5) Updates `actions/deploy-pages` from 4 to 5 - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](actions/deploy-pages@v4...v5) Updates `stellar/stellar-cli` from 23.4.0 to 27.0.0 - [Release notes](https://github.com/stellar/stellar-cli/releases) - [Commits](stellar/stellar-cli@v23.4.0...v27.0.0) Updates `actions/create-github-app-token` from 1 to 3 - [Release notes](https://github.com/actions/create-github-app-token/releases) - [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md) - [Commits](actions/create-github-app-token@v1...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/create-github-app-token dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/deploy-pages dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: pnpm/action-setup dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: stellar/stellar-cli dependency-version: 27.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.5.2 to 17.0.8. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](lint-staged/lint-staged@v15.5.2...v17.0.8) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 17.0.8 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add scSpecTypeVal handling to Spec.nativeToScVal for raw JS types * fix: improve type checking for object validation in Spec class * feat: enhance nativeToScVal to support Map types with flexible key/value specifications --------- Co-authored-by: Shadow-MMN <nnajimakuochukwu4@example.com> Co-authored-by: Ryan Yang <ryan.yang@stellar.org>
…me (#1522) * Single-source guide code as tested snippets injected at docs build time * Carve recap blocks from the same program via overlapping regions, dropping the .full files
* Add TransactionFailedError with result-code and decoded-result accessors
… auth entries (#1529) * feat(auth): add inspectAuthEntry and checkAuthEntryReadiness decoders
Bumps the all-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [pnpm/action-setup](https://github.com/pnpm/action-setup) and [actions/setup-node](https://github.com/actions/setup-node). Updates `actions/checkout` from 4 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v4...v7) Updates `pnpm/action-setup` from 4 to 6 - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](pnpm/action-setup@v4...v6) Updates `actions/setup-node` from 4 to 7 - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: pnpm/action-setup dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions - dependency-name: actions/setup-node dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update version to 16.1.0 and finalize changelog for release
* feat: add /base subpath export and Jest usage docs
…signature ScVals (#1549) * feat(auth): pass signing payload to callbacks and accept custom signature ScVals * feat(webauthn): add passkey signature ScVal builder and secp256r1 DER normalizer * fix(webauthn): harden signature normalization per security review * fix(auth): pass signing callback a copy of the payload buffer * fix(webauthn): add explicit signature format param and clarify inner-struct docs * refactor(webauthn): require explicit format param in normalizeSecp256r1Signature * revert(webauthn): remove passkey signature ScVal builder and secp256r1 normalizer
…1556) * feat(contract): add event parsing and topic filters to Spec * feat(bindings): generate typed event interfaces and filter helpers * fix(contract): make parseEvent skip malformed events instead of throwing * fix(bindings): use raw param names in event types and trim client imports * fix(bindings): escape event name in generated eventTopicFilter call * fix(contract): don't throw on malformed base64 XDR in parseEvent * test(e2e): update bindings snapshot for generated event code * refactor(contract)!: merge topics and data in ParsedEvent into one record * fix(contract): tolerate string prefix topics and trailing topics in parseEvent Adds SwapEvent and NestedEvent to the custom-types test contract (submodule branch event-bindings-nested-events) so the bindings snapshot exercises UDT topics, nested structs, enums, tuple structs, maps, and optionals. Rewrites parseEvent unit test assertions as single deep-equal comparisons per shaptic's review.
* Bump astro from 6.4.8 to 7.1.0 Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 6.4.8 to 7.1.0. - [Release notes](https://github.com/withastro/astro/releases) - [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md) - [Commits](https://github.com/withastro/astro/commits/astro@7.1.0/packages/astro) --- updated-dependencies: - dependency-name: astro dependency-version: 7.1.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> * build(docs): pair astro 7 with starlight 0.41 and keep unified markdown pipeline Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Yang <ryan.yang@stellar.org> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* fix(contract): store parsed event data on a null-prototype object * refactor(contract): export only ParsedEvent from the event_spec barrel * fix(bindings): use input types for event filter topic values * fix(bindings): disambiguate colliding generated event names * test(e2e): tolerate already-deployed native SAC on reruns * refactor(contract)!: return undefined from findEvent instead of throwing * test(bindings): update event filter expectation for input topic types
* Accept a Signer or Keypair wherever signTransaction is accepted * Describe KeypairSigner.address instead of inheriting Signer's * Cleanup * Updated docs * Update changelog * Reject signer shapes that would fail at signing time
…#1568) * feat(rpc): add useUpgradedAuth flag to simulateTransaction (CAP-71) * test(e2e): add temp CAP-71 useUpgradedAuth v2-credentials test * ci(e2e): bump quickstart to protocol 27 / rpc 27.1.1 for useUpgradedAuth
* fix(bindings): reject duplicate event names, dodge parseEvent collisions * fix(contract): default signAuthEntries address to the signer's address * docs: cite SEP-48 for event specs and update changelog entries * docs(contract): document signer-derived address default in signAuthEntries
* chore(release): cut v16.2.0
* docs(changelog): tighten the contract.Signer entry
* docs(changelog): correct parseEvent return shape to { name, data }
* feat(bindings): support duplicate event names via rename and occurrence * feat(bindings): surface event rename and duplicate diagnostics with CLI warnings * test(bindings): add mainnet corpus harness for generated bindings * docs: regenerate reference for event bindings diagnostics * fix(contract): reject invalid event occurrence values with a clear error * fix(bindings): track interface and filter renames separately in diagnostics * fix(scripts): count filter delegates exactly and fail corpus on duplicate rejects * docs: regenerate reference for split rename diagnostics
Resolves 16 conflicts. Generated files (docs/reference, e2e bindings snapshot) are staged as-is and regenerated in a follow-up commit. main's legacy-XDR call sites that merged without conflict are ported in a follow-up commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Merges broad v16.1/v16.2 SDK, documentation, testing, and CI updates into the v17 feature branch.
Changes:
- Adds contract events, flexible signers, upgraded auth, Map ScVals, and structured HTTP errors.
- Introduces executable documentation snippets and guide validation.
- Updates packaging, dependencies, generated references, and GitHub Actions.
Reviewed changes
Copilot reviewed 82 out of 86 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/unit/server/soroban/simulate_transaction.test.ts | Tests upgraded-auth RPC forwarding. |
| test/unit/server/soroban/assembled_transaction.test.ts | Tests signer and auth behavior. |
| test/unit/server_transaction.test.ts | Tests submission error wrapping. |
| test/unit/guide-snippets.test.ts | Tests snippet parsing and expansion. |
| test/unit/federation_server.test.ts | Tests federation HTTP errors. |
| test/unit/contract/signer.test.ts | Tests signer normalization. |
| test/unit/bindings/collisions.test.ts | Tests generated-name collisions. |
| test/unit/base/scval.test.ts | Tests Map conversion. |
| test/tsconfig.json | Adjusts test path resolution. |
| test/integration/bindings.test.ts | Tests event binding generation. |
| test/guides/vite-env.d.ts | Types import.meta.glob. |
| test/guides/tsconfig.json | Configures guide typechecking. |
| test/guides/snippets.test.ts | Executes guide snippets. |
| test/e2e/src/use-upgraded-auth.test.ts | Verifies CAP-71 simulation. |
| test/e2e/src/non-sim-sac-transfer.test.ts | Handles existing native SAC. |
| src/rpc/server.ts | Adds upgraded-auth simulation option. |
| src/horizon/server.ts | Wraps transaction submission errors. |
| src/horizon/horizon_api.ts | Expands transaction failure codes. |
| src/federation/server.ts | Wraps federation HTTP errors. |
| src/errors/wrap_http_error.ts | Adds HTTP-error normalization. |
| src/errors/transaction_failed.ts | Adds transaction failure accessors. |
| src/errors/index.ts | Exports the new error. |
| src/contract/types.ts | Broadens signer options. |
| src/contract/spec.ts | Adds event and generic Val support. |
| src/contract/signer.ts | Implements signer abstractions. |
| src/contract/index.ts | Exports signer and event APIs. |
| src/contract/event_spec.ts | Implements event parsing/filtering. |
| src/contract/basic_node_signer.ts | Reuses KeypairSigner. |
| src/contract/assembled_transaction.ts | Integrates signers and upgraded auth. |
| src/content.config.ts | Loads expanded documentation. |
| src/cli/util.ts | Returns generated bindings. |
| src/cli/index.ts | Reports generation diagnostics. |
| src/bindings/utils.ts | Adds case conversion helpers. |
| src/bindings/types.ts | Generates typed event interfaces. |
| src/bindings/generator.ts | Produces event diagnostics. |
| src/bindings/client.ts | Generates event client helpers. |
| src/base/transaction_builder.ts | Accepts structural transaction sources. |
| src/base/scval.ts | Adds Map-to-ScVal conversion. |
| src/base/index.ts | Exports auth inspection APIs. |
| scripts/check-snippets.ts | Validates guide markers. |
| scripts/build-md-siblings.ts | Expands snippets in Markdown output. |
| scripts/build-llms.ts | Expands snippets in LLM bundles. |
| rollup.config.mjs | Adds the base build entry. |
| README.md | Documents base imports and Jest. |
| package.json | Updates release, scripts, and dependencies. |
| examples/guides/send-a-payment.ts | Adds executable payment examples. |
| examples/guides/README.md | Documents snippet authoring. |
| examples/guides/connect-and-fund.ts | Adds executable account examples. |
| docs/reference/seps-federation.md | Refreshes generated references. |
| docs/reference/network-rpc.md | Documents upgraded-auth simulation. |
| docs/reference/errors.md | Documents transaction failures. |
| docs/reference/contracts-bindings.md | Refreshes binding references. |
| docs/index.md | Mirrors package usage guidance. |
| docs/guides/02-send-a-payment.md | Uses tested payment snippets. |
| docs/guides/01-connect-and-fund.md | Uses tested account snippets. |
| CONTRIBUTING.md | Documents the snippet workflow. |
| config/vitest.config.ts | Excludes networked guide tests. |
| config/vitest.config.guides.ts | Configures guide execution. |
| config/vitest.config.browser.ts | Excludes Node-only snippet tests. |
| config/snippets.ts | Implements snippet expansion. |
| config/guides-local-setup.ts | Redirects guides to Quickstart. |
| CHANGELOG.md | Merges release notes. |
| astro.config.mjs | Integrates expanded documentation. |
| .gitignore | Ignores generated working data. |
| .github/workflows/update-completed-sprint-on-issue-closed.yml | Updates token action. |
| .github/workflows/tests.yml | Updates actions and snippet checks. |
| .github/workflows/socket-scan.yml | Adds scheduled Socket scanning. |
| .github/workflows/npm_publish.yml | Updates publishing actions. |
| .github/workflows/guides_pr.yml | Adds local guide CI. |
| .github/workflows/format.yml | Updates formatting actions. |
| .github/workflows/e2e.yml | Updates protocol and tooling. |
| .github/workflows/docs_deploy.yml | Updates deployment actions. |
| .github/workflows/docs_build.yml | Adds snippet validation. |
| .github/workflows/codeql-analysis.yml | Updates CodeQL actions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Resolves CAP-83/CAP-85 XDR work against main's guide-snippet pipeline, event bindings, and released changelog sections. - .gitignore, package.json: keep both sides (guides scripts + split test:browser:fetch/axios entries). - tests.yml: keep main's Guide Snippets Check step in build_and_test, drop its inline Browser Tests step in favor of the new per-transport browser_test job, and bump that job's actions to the versions dependabot already applied. - CHANGELOG.md: keep the released v16.1.0/v16.2.0 sections and move the branch's #1577 CAP-83/CAP-85 entries into a new Unreleased section. - docs/reference: regenerated with pnpm docs:reference.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
* docs(changelog): record sdk-level behavior changes from the xdr rebuild * chore(release): cut v17.0.0-rc.1 * test(e2e): restore test-contracts pointer lost in the #1579 merge * simplify rc tag for npm publish
* docs(changelog): rewrite the xdr breaking-change entry * docs(xdr): correct migration guide errors and link both guides * docs(xdr): document renames, optionals, removed exports, and errors * docs: link migration guides from readme, the source of docs/index.md * docs: index v17 migrations in the central migration guide * docs: update migration section wording for clarity * docs(xdr): apply review feedback on counts, aliases, and optionals * Update docs/index.md Co-authored-by: Iveta <quietbits@users.noreply.github.com> * V17.0.0 rc.1 (#1593) * docs(changelog): record sdk-level behavior changes from the xdr rebuild * chore(release): cut v17.0.0-rc.1 * test(e2e): restore test-contracts pointer lost in the #1579 merge * simplify rc tag for npm publish --------- Co-authored-by: Iveta <quietbits@users.noreply.github.com>
What
Merges
main(21 commits, v16.1.0 and v16.2.0) intov17-feature-branch, then ports everythingmainadded to the class-XDR API.The merge itself touched 16 conflicted files with ~150 hunks, 127 of them in generated docs. Four conflicts needed real judgment:
src/base/auth.ts— two independent redesigns ofauthorizeEntrycollided.main(Extend authorizeEntry signing callbacks: payload argument and custom signature ScVals #1549) added thepayloadsecond argument toSigningCallbackand the{ signatureScVal, address? }return variant for smart-wallet signers, selecting target nodes by mutation. The branch had replaced that mutation withapplyExpirationAndSignature, which rebuilds the credential tree immutably because class-XDR values are readonly. Resolution keeps the immutable helper and grafts main's callback contract onto it, feedingtargetAddressinto the helper'sforAddressparameter.src/bindings/types.ts— took main's ~187 lines of typed event-interface generation (feat(bindings): generate typed event interfaces and filter helpers #1556, Support duplicate event names in generated bindings #1572) and migrated them to the branch's string-discriminant dispatch.src/contract/assembled_transaction.ts— took main'sinspectAuthEntry-based rewrite ofneedsNonInvokerSigningBy, including the "emptyscvVeccounts as unsigned" fix.src/contract/spec.ts— took main'sscSpecTypeValearly-out (fix(contract): handle scSpecTypeVal in Spec.scValToNative #1551), rewritten against the branch'sswitch (scv.type).The larger job was invisible to git. 44 files that
maintouched and the branch did not merged without a single conflict marker, and 20 of them are written against XDR APIs this branch deleted.toXDR/fromXDRhave no compat alias here, so each one is a hard type error. Notablysrc/base/auth.tstook ~200 lines ofinspectAuthEntry/checkAuthEntryReadinessin legacy form, andsrc/contract/event_spec.tsarrived entirely legacy. Those are migrated inrefactor(xdr):andtest(xdr):commits kept separate from the merge commit so the mechanical work reads apart from the judgment calls.Generated artifacts — reference docs and the e2e bindings snapshot — were regenerated rather than hand-merged, in their own commits.
Three follow-up commits fix review findings: a duplicate
base/indexkey inrollup.config.mjsleft by conflict resolution, a CHANGELOG heading that had swallowed the v17 breaking changes into the v16.2.0 section, and a doc claim thatrequire(esm)works on every supported Node version (it needs a flag below 22.12.0).Review notes
Read the commits in order. The merge commit shows the judgment calls, the two
xdrmigration commits are mechanical translation, and thechore(docs)/chore(e2e)commits are generated output you can skip.Two known issues were deliberately left alone, both inherited from
mainand neither caused by this merge:scvSortedMapsorts by decoded JS value rather than canonical ScVal ordering, so a Map with mixed key types can be ordered in a way the host rejects, and1/1nencode to duplicate keys.HorizonApi.TransactionFailedExtras.result_xdris typed as required, butgetTransactionResult()handles it being absent. The neighboringoperationsfield has the same problem with an existingTODO(next major).