Skip to Content

SethVault

Chain: Sepolia · Source: contracts/contracts/SethVault.sol

The vault is the Sepolia side of the market. Sellers deposit SETH into it (each deposit becomes a FIFO queue order), it holds an owner-funded house reserve separately, and it delivers sold SETH to buyers.

Deposits (the queue-producing path)

receive() external payable;

Accepts a seller deposit. Requirements: msg.value > 0, msg.value >= minDepositSethRaw, and the sender is an EOA (msg.sender == tx.origin, no contract code). Emits:

event SethReceived(address indexed from, uint256 amount, uint256 acceptedTotal);

SethReceived is the only event that creates a seller queue order.

Reserve

function fundReserve() external payable onlyOwner; // emits ReserveFunded

Owner-only house-reserve top-up. Emits ReserveFunded (not SethReceived) so reserve liquidity never becomes a seller queue order.

Seller settings (event-only)

function setPayoutAddress(address payoutAddr) external; // PayoutAddressChanged function setSellerTierOverrides(address[] sellers, uint8 tierIndex) external; // onlyOwner function clearSellerTierOverrides(address[] sellers) external; // onlyOwner
  • setPayoutAddress — a seller declares where their Base payouts go. Not stored on-chain; the indexer applies the latest PayoutAddressChanged event by (block, logIndex). Defaults to the seller’s own address if never set.
  • setSellerTierOverrides / clearSellerTierOverrides — owner sets/clears a starting tier for specific sellers (tierIndex <= 7), event-only via SellerTierOverrideChanged.

Delivery & administration (owner)

function sendSeth(address payable to, uint256 amount) external onlyOwner; // SethSent function withdraw(address payable to, uint256 amount) external onlyOwner; // SethWithdrawn function setMinDepositSethRaw(uint256 v) external onlyOwner; // MinDepositChanged function changeOwner(address newOwner) external onlyOwner; // OwnerChanged
  • sendSeth delivers sold SETH to a buyer (driven by the delivery worker).
  • withdraw sweeps vault inventory to the owner.

Views

owner() · version() (returns 1) · minDepositSethRaw() · acceptedSethRaw() (lifetime deposited) · sentSethRaw() (lifetime delivered) · reserveFundedSethRaw() (lifetime reserve funding).

Initialization

function initialize(address owner_, uint256 minDepositSethRaw_) external;

Events

SethReceived · ReserveFunded · PayoutAddressChanged · SellerTierOverrideChanged · SethSent · SethWithdrawn · MinDepositChanged · OwnerChanged.

Last updated on