The vault lives at {vaultAddress(NETWORK_ID)}
+ + + + ++ You hold {tokens} {TOKEN_NAME} +
+ + + + +-
+ {locked.map((utxo) => (
+
- + {utxo.input.txHash.slice(0, 8)}… + + + ))} +
{status}
+The vault lives at {vaultAddress(NETWORK_ID)}
+ + + + ++ You hold {tokens} {TOKEN_NAME} +
+ + + + +{status}
+{props.hint}
+ {props.children} ++ Lock some test ADA in a vault, then unlock it. The contract only releases the funds to the + owner named in the datum, proven by a signature. The datum is public, but a signature + can't be forged, so only you (the locker) can take it back. +
+ +
+ The vault's address{" "}
+
+ (paste it into the explorer to see everything locked here)
+
+
+ {VAULT_ADDRESS}
+
Lace not found. Install it and switch to Preview.
+ ) : wallet ? ( +Connected: {address}
+ ) : ( + + )} ++ Your wallet holds {tokens} {TOKEN_NAME}. +
++ Both buttons build the same transaction with one sign changed: the policy checks the + token's name and lets any amount through. Minting puts the tokens in your wallet. + Burning spends the ones you hold and they stop existing. +
++ The second button also mints one TOKEN A token and locks it with the ADA. One script + runs in that transaction: the policy, which decides the token may exist. The vault's own + validator does not run until you unlock, which brings both back. +
+{status}
} + {txHash && ( + + )} +