What's Changed
Added
sdk.host.getBridgeAddressresolves the address another container reaches a
dependency at, replacing a helper every package was copy-pasting. Packages
resolved a dependency by readingbindings[<internalPort>].net.assignedPort
and prefixinggetOsIp. That field is raw metadata: only one of
assignedPort/assignedSslPortis ever populated, and which one is a
property of how the dependency bound the port — a binding withaddSsland
secure.sslfreesassignedPortentirely and carries only
assignedSslPort, a passthrough binding is the reverse. So every caller was
implicitly asserting how its dependency terminates TLS, and resolvednull
the day that changed, which is exactly what happened to LND's dependents when
LND moved its REST interface behind the OS reverse proxy. The new helper
resolves the binding's own derived address instead, which is correct under
either arrangement, and returns aWatchableso callers get the same
const/once/watch/onChange/waitForstrategies assdk.host.get.
Because it keys off the binding rather than an exported interface, it also
resolves bridge-only ports such as tor's SOCKS proxy.sslnarrows a binding
that publishes both a plaintext and a TLS address (protocol: 'http'/'ws',
orsecure: nullwithaddSsl— bitcoind's RPC is reachable at both);
fallbackPortkeeps the value non-null while the dependency is absent, for a
flag that must be passed unconditionally against an allocator-guaranteed port