SIGN IN SIGN UP

Add the shield flow — the one public step

Shield is deliberately its own transaction and is never bundled with the
strategy it funds. A deposit names the depositor on-chain; a later private
action has no public leg, so keeping them separate is what leaves nothing
tying the two together.

The pool fee is read live from get_fee_amount rather than assumed. Mainnet
returns 6 STRK while the docs say 4, and the difference is silent: a MAX
amount computed from the low figure is accepted by the UI, signed by the
user, and only then rejected by the pool. A failed RPC falls back to the
last known value instead of throwing, so the MAX button degrades rather
than the whole form.

The panel states up front that the wallet will prompt twice — the ERC-20
approval must land before the deposit, and an unexplained second prompt
reads as a duplicate-transaction bug.

Submission does not block on confirmation. Paymaster-relayed hashes can
take a while to surface at the selected RPC, and a spinner that never
resolves looks like a failure when the transaction is fine, so the
explorer link goes live immediately.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
S
Shariq Shaukat committed
ad7ab84afd48fe5b3ec5d513f854e88abd548780
Parent: 7698af1