Skip to content

Add producer-backed outpost SDK with ethers v6 - #56

Draft
joshglogau wants to merge 47 commits into
masterfrom
feature/sdk-outpost
Draft

Add producer-backed outpost SDK with ethers v6#56
joshglogau wants to merge 47 commits into
masterfrom
feature/sdk-outpost

Conversation

@joshglogau

@joshglogau joshglogau commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds @wireio/sdk-outpost as the chain-neutral TypeScript facade over directly importable Ethereum and Solana producer libraries.

  • loads and validates caller-supplied deployment profiles for both chains
  • exposes typed chain clients through OutpostClient.create(...)
  • supports reserve inspection, reserve management, reserve-swap operations, and optional Ethereum BAR node-owner registration
  • uses ethers v6 throughout the Ethereum client
  • imports producer-owned types, factories, IDLs, runtime data, and manifests directly
  • contains no consumer-side artifact generation, handoff download, or generated contract sources

Producer packages

The current branch remains pinned to the public Ethereum 0.2.2 and Solana 0.2.1 packages. The next aligned target is 0.3.0 from these handoff-based producer releases:

Producer repositories verify and publish the exact checksummed deployment artifacts. SDK-outpost only consumes the resulting npm libraries and composes their manifests for live deployment verification.

Repository integration

  • root build and test scripts remain unchanged
  • follows the existing TypeScript and hybrid CJS/ESM package flow
  • uses sdk-core reserve and Wire-chain primitives rather than duplicating them
  • BAR is an optional deployment capability and does not alter reserve/swap behavior when absent
  • no TypeChain, ethers v5, consumer generator, package verifier, workspace artifact override, local handoff URL, or custom root build hook

Verification

  • repository lint passes
  • full repository: 87 suites / 948 tests pass
  • latest GitHub Build and Test check passes before this documentation-only update

Remaining release work

  1. merge the producer handoff PRs and publish both artifact packages as 0.3.0
  2. replace the two npm pins, refresh the frozen lockfile, and rerun SDK verification
  3. publish sdk-outpost after platform approval

Staking remains separate follow-up work.

@joshglogau joshglogau changed the title Add a strictly typed, versioned outpost SDK for Ethereum and Solana deployments sdk-outpost: New strictly typed, versioned SDK for Ethereum and Solana deployments, next gen of sdk-stake Aug 3, 2026
@joshglogau joshglogau changed the title sdk-outpost: New strictly typed, versioned SDK for Ethereum and Solana deployments, next gen of sdk-stake Add @wireio/sdk-outpost with typed chain deployments and release automation Aug 3, 2026
@joshglogau
joshglogau marked this pull request as ready for review August 4, 2026 17:10
@joshglogau
joshglogau requested a review from jglanz August 4, 2026 17:11

@jglanz jglanz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This NEEDS to be refactored, the generated assets should not be tracked here, instead they should be published artifacts from wire-{ethereum,solana}.

Scripts need to be refactored with zx and moved to the correct repos and under a folder layout beneath scripts/

Comment thread packages/sdk-outpost/scripts/deployment-utils.mjs Outdated
Comment thread packages/sdk-outpost/scripts/generate-solana-types.mjs Outdated
Comment thread packages/sdk-outpost/scripts/import-deployment.mjs Outdated
@joshglogau joshglogau changed the title Add @wireio/sdk-outpost with typed chain deployments and release automation Add verified sdk-outpost clients generated from source-owned chain artifacts Aug 4, 2026
@joshglogau
joshglogau marked this pull request as draft August 4, 2026 18:49
@joshglogau

Copy link
Copy Markdown
Contributor Author

Waiting for Wire-Network/wire-ethereum#176 & Wire-Network/wire-solana#414 before CI built test will pass to be ready for merge

@joshglogau joshglogau changed the title Add verified sdk-outpost clients generated from source-owned chain artifacts Add deployment-profiled, runtime-verified outpost clients Aug 5, 2026
@joshglogau

joshglogau commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Status: SDK implementation and local verification are complete; this PR remains draft. CI is waiting for wire-ethereum#176 and wire-solana#414 to publish their artifact packages, then the frozen lockfile can be refreshed.

Architecture: one generic SDK facade consumes the source-owned ETH/SOL artifacts plus an immutable deployment profile. Client creation verifies the Wire chain ID, Ethereum EIP-1967 implementation/code hashes, and Solana genesis/ProgramData hashes before returning a client. Mutable RPC/explorer endpoints remain in a separate catalog.

Consumer: wire-tools-ts#53

@joshglogau
joshglogau marked this pull request as ready for review August 14, 2026 19:26
@joshglogau
joshglogau requested a review from jglanz August 14, 2026 19:26
@joshglogau joshglogau changed the title Add deployment-profiled, runtime-verified outpost clients Add verified Ethereum and Solana outpost SDK Aug 18, 2026

@jglanz jglanz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • pnpmfile.cjs - REVERT -this is the exact thing that caused a MEGA issue!
if (process.env.WIRE_USE_LOCAL_OPP_MODELS === LOCAL_OPP_MODELS_ENABLED) {
  appendLocalOppModelOverrides()
}
  • should generate.mjs still be in this repo (and verify)?

  • RELEASING.md seems like it should belong in the repo root

  • (this one I can accept knowing it can be improved) The OutpostClient shouldn't know about ethereum or solana and should rely instead on a factory pattern

@jglanz jglanz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are substantive issues, some pre-existing

Comment thread .github/workflows/ci.yaml Outdated
Comment thread .github/workflows/ci.yaml Outdated
Comment thread .github/workflows/prepare-release.yaml Outdated
Comment thread .github/workflows/tag-release.yaml Outdated
Comment thread etc/tsconfig/tsconfig.base.json Outdated
Comment thread packages/sdk-core/package.json Outdated
Comment thread packages/sdk-core/package.json Outdated
Comment thread packages/sdk-core/README.md Outdated
Comment thread pnpm-workspace.yaml
@joshglogau
joshglogau requested a review from jglanz August 19, 2026 13:54

@jglanz jglanz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit-pics aside from the generate.mjs and verify-package.mjs being in the wrong repos; having them in wire-libraries-ts is the same as having a verify script for lodash. They are published packages, verification should have happened already

Comment thread packages/sdk-core/src/contracts/sysio/reserv/Client.ts Outdated
Comment thread pnpm-workspace.yaml
@joshglogau joshglogau changed the title Add verified Ethereum and Solana outpost SDK Add producer-backed outpost SDK with ethers v6 Aug 19, 2026
@joshglogau
joshglogau marked this pull request as draft August 19, 2026 15:35
@joshglogau

Copy link
Copy Markdown
Contributor Author

Generate and verify originally converted raw producer artifacts in this consumer; both scripts are removed, and the producer packages now publish the directly consumable TypeScript libraries.

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.

2 participants