Deterministic integration fixtures

Inspect the regression path without polluting the product UI.

This quality-assurance surface reads TaskBounty V2 directly from Flare Testnet Coston2, retrieves the committed task and result manifests, recomputes their Keccak-256 hashes, identifies the connected browser wallet, and preserves the fixed Task #1 and Task #2 scenarios as reproducible test fixtures. Customer-facing flows live in the product routes.

  • Public reads stay wallet-free
  • Wallet connection is optional
  • Exact approval only after simulation

Wallet

Connect your account to take part in a bounty.

Connection exposes only the selected public address and active chain. Connecting itself has no signing or gas spending. Every escrow action has its own simulation, review, and wallet confirmation.

Injected EIP-1193 wallet

No account connected

Disconnected

Checking for browser wallets…

01Address permission only

The page never receives a private key, recovery phrase, or vault password.

02Public reads stay separate

Coston2 balances are queried through the configured public RPC transport.

03Writes stay simulation-gated

Every enabled transaction must pass public-RPC simulation first.

Write milestone 01

Prepare exactly 1 FTestXRP for the next task escrow.

This is ERC-20 approve, not TaskBounty approveTask. It sets a limited allowance; it does not move tokens or create Task #2.

Simulation-gated transaction

FTestXRP allowance preflight

disconnected

Connect the dedicated Creator test wallet first.

AccountCreator required
NetworkCoston2 required
BalanceReading...
Current allowanceReading...
Exact transaction intent

Review before MetaMask opens

Token transfer now: 0
Network
Coston2 / chainId 114
Target token contract
0x0b6A3645c240605887a5532109323A3E12273dc7
Function
approve(address,uint256)
Spender
0x26281308BE46D9b499579CC8776615C69f29826F
New exact allowance
1 FTestXRP / 1,000,000 units
Estimated gas limit
Run simulation first
Public RPC preflightNot run

MetaMask performs the signature. Rejecting the request creates no transaction and spends no gas.

01Allowance is not a transfer

Creator stays at 8 FTestXRP until a later createTask pulls escrow.

02Exact amount, never unlimited

The requested allowance is fixed at 1 FTestXRP, not uint256.max.

03Receipt plus public read

Success requires the receipt, Approval event, and refreshed allowance.

Write milestone 02

Create Task #2 and move the exact reward into escrow.

This calls TaskBounty V2 createTask. Unlike approval, a successful transaction uses transferFrom to move 1 FTestXRP from Creator into the contract and increase the escrow liability.

Simulation-gated escrow deposit

Task #2 creation preflight

disconnected

Connect the dedicated Creator test wallet first.

Creator balanceReading...
Exact allowanceReading...
Next task IDReading...
Current escrow liabilityReading...
Version-pinned task manifestChecking exact bytes...
Exact transaction intent

Review before MetaMask opens

Escrow deposit: 1 FTestXRP
Network
Coston2 / chainId 114
Target contract
0x26281308BE46D9b499579CC8776615C69f29826F
Function
createTask(uint256,string,bytes32)
Expected task ID
#2
Reward
1 FTestXRP / 1,000,000 units
Estimated gas limit
Run simulation first
Metadata hash
0x395cc6a1d0…4afc391c4b
Public RPC preflightNot run

Only MetaMask can sign. A successful transaction transfers 1 FTestXRP into V2 escrow; rejection broadcasts nothing and spends no gas.

Live post-transaction indicators
Creator
Reading...
V2 balance
Reading...
Allowance
Reading...
Total escrowed
Reading...
01Simulation returns taskId

The eth_call must predict Task #2 before the wallet is allowed to open.

02transferFrom consumes allowance

The exact allowance should return to zero when 1 FTestXRP enters escrow.

03Hash binds the task brief

The contract stores both a retrieval URI and the exact-byte Keccak-256 commitment.

Live public RPC

V2 Task #1 verification

Values below are read from the configured Coston2 deployment at the latest block. Refreshing never requests a wallet signature.

StatusLoadingenum value
Escrow liabilitytotalEscrowed()
Contract versionV2 ABI selected
Latest observed blockWaiting

What this slice proves

Read operations are public; integrity verification is off-chain.

01

Typed contract reads

Viem encodes V2 ABI calls and decodes the task tuple without a wallet or user gas.

02

Exact-byte commitments

The browser hashes downloaded bytes, not the URI text and not a parsed JSON object.

03

Address-aware versions

V1 and V2 deployments remain separate so the frontend never decodes one contract with the other contract's ABI.