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