depositEtheron the Exchange contract; depositing tokens requires an approve call on the token itself before calling
depositTokenByAddresson the Exchange contract.
depositTokenByAddressare functions on the Exchange contract, the funds are ultimately held in the Custodian contract. During a deposit tokens are transferred from the funding wallet to the Custodian, while the Exchange contract's storage tracks wallet asset balances. This separation allows for upgrades without requiring users to migrate funds.
withdrawfunction are restricted to the same whitelisted Dispatch wallet. This restriction guarantees that users cannot move their funds before all pending trades have settled and thus supports trading ahead of settlement.
exitWalletinitiates the exit process, which prevents the wallet from making subsequent deposits, trades, or normal withdrawals. After the chain propagation period expires (~1 hour) the user can initiate the withdrawal on-chain.