Entrypoints
Each form below maps directly to a contract entrypoint. Filling it in and clicking Call constructs a typed-argv DSOL call. Your wallet shows an approval modal before broadcasting; nothing fires without your explicit click.
mint @direct
Public state
loading…
Contract source Verified
// TokenMint — Phase C of silent-iron-keystone v4.
//
// Creator-only supply mint. ABI-typed (tokenId, amount). The carrier
// fee (50 bps) is enforced by the wallet IPC + chain monitor; the
// contract validates only that the post-mint circulating supply
// stays ≤ max_supply.
//
// Privacy: creator identity hides behind one-time stealth per call
// (CryptoNote default). Mint amount is plaintext on chain (intrinsic
// for supply tracking).
dark contract TokenMint {
// Mirror of TokenCreate's storage; enforced on every mint.
public mapping(bytes => uint64) tokenCirculating;
public mapping(bytes => uint64) tokenMaxSupply;
public mapping(bytes => bool) tokenMintable;
@direct
entry mint(bytes tokenId, uint64 amount) {
require(tokenMaxSupply[tokenId] > 0, "MINT_UNKNOWN_TOKEN");
require(tokenMintable[tokenId], "MINT_FIXED_SUPPLY");
require(amount > 0, "MINT_ZERO_AMOUNT");
require(tokenCirculating[tokenId] + amount <= tokenMaxSupply[tokenId], "MINT_EXCEEDS_MAX");
tokenCirculating[tokenId] = tokenCirculating[tokenId] + amount;
syscall(TOKEN_MINT_SUPPLY_V1, ctx.txHash);
}
}
Download .dsol