User story / Problem statement
CantonConnectProvider mirrors dApp-SDK state into ~10 useState fields written from six places (#76's original complaint).
Two lifecycle models live side by side; one must win.
Expected outcome
- hooks read one source of truth: the machine's snapshot;
connect() publishes the connection state and hands back an answer;
- the
useState mirror is gone.
Acceptance criteria
Technical notes
Blocked by #84.
The provider holds one actor: createActor(connectionMachine.provide({ actors })).
Real connect / restore / listener actors wrap the DappSDK facade.
This issue will also solve:
Regarding Party: a separate accounts machine (invoked by connectionMachine) will handle parties/party.
User story / Problem statement
CantonConnectProvidermirrors dApp-SDK state into ~10useStatefields written from six places (#76's original complaint).Two lifecycle models live side by side; one must win.
Expected outcome
connect()publishes the connection state and hands back an answer;useStatemirror is gone.Acceptance criteria
useStatemirror is deleted;connect()publishes state and returns an answer;useExecute/useSignMessage/useLedgerguard onsession.authenticated, notstatus === 'connected', so a locked wallet is rejected;partyis read from an accounts machine invoked onsession.authenticatedentry;usePartyderives from its snapshot, nouseStatemirror.Technical notes
Blocked by #84.
The provider holds one actor:
createActor(connectionMachine.provide({ actors })).Real
connect/restore/ listener actors wrap theDappSDKfacade.This issue will also solve:
Regarding
Party: a separate accounts machine (invoked by connectionMachine) will handleparties/party.