GasCreditVault API

Quick reference for GasCreditVault public interface and events (BSC deployment available).

Purpose

  • Manage deposits of ERC20 tokens that back internal "gas credits".

  • Convert token deposits to gas-credit units (oracle-backed).

  • Allow authorized relayers or systems to consume credits.

Typical functions (public/external)

  • depositTokens(address token, uint256 amount) external

    • Deposit ERC20 tokens to mint internal credit balance for msg.sender.

  • withdrawTokens(address token, uint256 amount) external

    • Withdraw previously deposited tokens (reverses credits).

  • getCreditBalance(address account) external view returns (uint256)

    • Returns internal credit units for account.

  • consumeCredits(address account, uint256 creditAmount) external

    • Consume credits for gas payment (caller typically an authorized relayer or system).

Events

  • event Deposited(address indexed user, address indexed token, uint256 tokenAmount, uint256 creditsMinted)

  • event Withdrawn(address indexed user, address indexed token, uint256 tokenAmount, uint256 creditsBurned)

  • event CreditsConsumed(address indexed consumer, address indexed account, uint256 credits)

  • event CreditTransfer(address indexed sender, address indexed receiver, uint256 creditAmount)

Common error strings

  • "Unsupported token"

  • "Insufficient deposited balance"

  • "Oracle not set"

  • "Unauthorized"

  • "Min deposit not met"

  • "Transfer failed"

Integration notes

  • Credit calculus uses token price × token amount → native gas equivalent.

  • Offchain systems should read CreditsDeposited/CreditsConsumed events to reconcile accounting.

  • Use oracles (Chainlink recommended) for price feeds to reduce manipulation risk.

Last updated