Feature: sdk-outpost - a new chain-neutral typescript facade over producer-owned artifacts - #56
Conversation
fa6f71e to
0434d40
Compare
jglanz
left a comment
There was a problem hiding this comment.
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/
|
Waiting for Wire-Network/wire-ethereum#176 & Wire-Network/wire-solana#414 before CI built test will pass to be ready for merge |
|
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 |
da7af17 to
50723c5
Compare
jglanz
left a comment
There was a problem hiding this comment.
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.mjsstill be in this repo (and verify)? -
RELEASING.mdseems 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
left a comment
There was a problem hiding this comment.
There are substantive issues, some pre-existing
jglanz
left a comment
There was a problem hiding this comment.
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
|
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. |
Feature: add Ethereum BAR node-owner flow
jglanz
left a comment
There was a problem hiding this comment.
It's missing the .pnpmfile.cjs local linking which is required for version alignment from wire-platform.
jglanz
left a comment
There was a problem hiding this comment.
Approved, but @joshglogau be sure to look at the cleanup commit I added; I did it for you for the sake of time, but duping code for the sake of it is not ok.
Summary
Adds
@wireio/sdk-outpostas the chain-neutral TypeScript facade over producer-owned Ethereum and Solana libraries.Producer packages
The package pins the real public producer releases:
@wireio/outpost-ethereum-artifacts@0.3.0, sourceb90035b48414267d1b3ca183b88e2118a8c5b16efrom Wire-Network/wire-ethereum#192@wireio/outpost-solana-artifacts@0.3.0, source217c4d6909cb658cd1bf3bcda570400947ed2893from Wire-Network/wire-solana#473Producer repositories own package assembly and publication from checksummed deployment handoffs. SDK Outpost imports their generated factories, IDL, types, manifests, and runtime inputs directly; it does not download handoffs, regenerate producer code, or carry generated contract/program assets.
Design boundaries
OutpostClient.create(...)remains the single public construction facade and delegates chain selection to the existing internal factory.sysio.*orchestration continue to use@wireio/sdk-core.wire-platformdevelopment, the existing root.pnpmfile.cjslinks available sibling Ethereum and Solana artifact outputs through the same existence-based flow as OPP; absent outputs resolve the exact npm versions.Review feedback addressed
All prior review threads are resolved: producer assets moved to producer packages, consumer generate/verify scripts were removed, repository workflows were restored, release documentation lives at the repository root, the public client uses the requested factory boundary, and platform-local artifact linking follows the existing OPP pattern.
Verification
0.3.0package payloads, verify runtime/IDL/program checksums and required BAR/ERC-1155/swap exports, and reject unregistered or mixed artifact suitesAfter merge and platform approval, the normal repository prepare/tag release workflow can publish the first SDK Outpost version. Staking remains separate follow-up work.