Severity Revert
·
Sui Framework (0x2)
0x2::coin::ENotEnoughBalance (Abort 0)
0x2::coin::ENotEnoughBalance(abort 0)
Why Did This Transaction Revert?
A coin::split, coin::take, or transfer method attempted to withdraw more MIST or tokens than available in the target Coin<T> object.
Smart Contract Revert Point
assert!(balance::value(&coin.balance) >= amount, ENotEnoughBalance);
💧 Native Sui Move Code & Fix
Move 2024// Aborting Call:
let split_coin = coin::split(&mut user_coin, 5_000_000_000, ctx); // aborts if balance < 5 SUI
// Corrected Move Solution:
assert!(coin::value(&user_coin) >= 5_000_000_000, 1001);
let split_coin = coin::split(&mut user_coin, 5_000_000_000, ctx);Step-by-Step Resolution Checklist
1
Inspect the Coin<T> balance using coin::value(&coin) before executing coin::split.
2
If using Programmable Transaction Blocks (PTBs), ensure SplitCoins amounts do not exceed source coin value.
3
Use Gas Station or sponsor to merge fragmented gas coins if paying network fees.
Diagnostic Actions
Target Chain:
Recommended Gas Limit:
units
Other Common EVM Reverts
· Move Execution Revert / Error(string)
· Move Execution Abort
· Insufficient Gas Balance
· Gas Budget Too Low
· Object ID Not Found
· Object Version Mismatch / Congestion
· Move Package Not Found
· Type Argument Mismatch
· Cryptographic Signature Invalid
· 0x2::coin::ENotEnoughBalance
· 0x2::coin::EGlobalCoinDoesNotExist
· 0x2::dynamic_field::EFieldDoesNotExist
· 0x2::dynamic_field::EFieldAlreadyExists
· 0x2::kiosk::ELocked
· 0x2::kiosk::ENotOwner
· 0x2::kiosk::EItemNotFound
· 0x2::table::EKeyNotFound
· 0x2::table::EKeyAlreadyExists
· 0x2::balance::EOverflow
· 0x2::balance::ENotEnough
· 0x2::transfer::ESharedObjectAlreadyExists
· 0x2::transfer_policy::ERuleNotSatisfied
· 0x2::package::EUpgradeBadVersion
· 0x2::package::EUpgradeImmutable
· Bytecode Verification Failure
· Module Link Failure
· VM Verification Error
· Authorization Failure
· Insufficient Coin Balance
· DEX Slippage Exceeded
· Object or Record Already Exists
· Invalid Protocol State
· Zero Amount Invalid
· Transaction Expired
· Liquidity Pool Locked
· Arithmetic Overflow
· Arithmetic Underflow
· Sui Kiosk Asset Locked
· Borrow Limit Exceeded
· Account At Liquidation Risk
· Staking Pool Inactive
· Unstake Timelocked
· Transfer Policy Unmet
· DeepBook Order Limit Unfilled
· Storage Rebate Calculation Failure
· Dynamic Field Already Exists
· Dynamic Field Not Found
· Capability Already Consumed
· Shared Object Congestion
· Object Version Too Old
· One-Time Witness Invalid
· Gas Budget Exhausted During PTB
· Epoch Transition In Progress
· zkLogin Ephemeral Key Expired