Separating token accounting and pool logic
BEX’s Vault and Pool architecture separates the token accounting and management from the pool logic and AMM math. The responsibility for calculating amounts for swaps, joins, and exits is delegated to the pool contracts, while the Vault holds all of the tokens within the various pools (which can even be of different types).
1
Send swap request
You send a swap request to the Vault, specifying the pool ID to swap through and the amount to
swap.
2
Look up pool contract
The Vault looks up the pool contract for the specified pool ID.
3
Calculate balance changes
The pool contract calculates the balance changes from the swap, returning those amounts to the
Vault.
4
Update balances and transfer
The Vault updates the token balances based on the pool contract’s calculations and sends the
output tokens to you.