Summary
docs/gitbook/tutorials/src20/building-the-frontend.md does not match the current seismic-react surface:
useToken() assigns useShieldedContract(...) to contract directly, but the hook returns { contract, abi, address, error }.
TransferForm calls useShieldedWriteContract() with no config and then writeContract({ address, abi, functionName, args }) (wagmi-style). The real API takes write config at hook init; writeContract() takes no args.
Official hook docs (useshieldedwrite.md, useshieldedcontract.md) and basic-dapp.md already show the correct patterns.
Proposed fix
Align the tutorial snippets with the real exports/call shapes (destructure { contract }; pass write config into useShieldedWriteContract, or use contract.write.* for dynamic form args).
Summary
docs/gitbook/tutorials/src20/building-the-frontend.mddoes not match the currentseismic-reactsurface:useToken()assignsuseShieldedContract(...)tocontractdirectly, but the hook returns{ contract, abi, address, error }.TransferFormcallsuseShieldedWriteContract()with no config and thenwriteContract({ address, abi, functionName, args })(wagmi-style). The real API takes write config at hook init;writeContract()takes no args.Official hook docs (
useshieldedwrite.md,useshieldedcontract.md) andbasic-dapp.mdalready show the correct patterns.Proposed fix
Align the tutorial snippets with the real exports/call shapes (destructure
{ contract }; pass write config intouseShieldedWriteContract, or usecontract.write.*for dynamic form args).