Use Uint8Array instead of Buffer in public APIs
Why: Buffer is Node-only, so the SDK's Buffer-typed API forces a buffer polyfill in browsers and edge runtimes — which means "runs everywhere, no polyfill" is not actually true today, and ecosystem packages must ship their own buffer shims. Uint8Array is the web standard. Moving the public crypto/data APIs to it removes the polyfill, unblocks edge runtimes, and lets operations like ManageData accept ArrayBuffer/Uint8Array directly.
What: Move the public surface (Keypair sign/verify/raw keys, hash, the auth APIs, ManageData, etc.) to Uint8Array; drop the buffer dependency and the bundler's Buffer global.
Breaking change: Yes — methods that returned Buffer now return Uint8Array; needs a method-by-method migration guide. Anchors v17.
Acceptance criteria: Public APIs use Uint8Array; the buffer polyfill is gone; a real browser test passes with no polyfill.
Closes / relates: #1242, #627, #927
Use Uint8Array instead of Buffer in public APIs
Why: Buffer is Node-only, so the SDK's Buffer-typed API forces a buffer polyfill in browsers and edge runtimes — which means "runs everywhere, no polyfill" is not actually true today, and ecosystem packages must ship their own buffer shims. Uint8Array is the web standard. Moving the public crypto/data APIs to it removes the polyfill, unblocks edge runtimes, and lets operations like ManageData accept ArrayBuffer/Uint8Array directly.
What: Move the public surface (Keypair sign/verify/raw keys, hash, the auth APIs, ManageData, etc.) to Uint8Array; drop the buffer dependency and the bundler's Buffer global.
Breaking change: Yes — methods that returned Buffer now return Uint8Array; needs a method-by-method migration guide. Anchors v17.
Acceptance criteria: Public APIs use Uint8Array; the buffer polyfill is gone; a real browser test passes with no polyfill.
Closes / relates: #1242, #627, #927