Skip to content
LogoLogo

TokenTransfers

Git Source

Require full ERC-20 delivery without charging extra to the sender; token-reported success is insufficient.

Functions

snapshot

function snapshot(address token, address from, address to) internal view returns (Balances memory balances);

Parameters

NameTypeDescription
tokenaddress
fromaddress
toaddress

Returns

NameTypeDescription
balancesBalances

verify

function verify(address token, address from, address to, uint256 amount, Balances memory before) internal view;

Parameters

NameTypeDescription
tokenaddress
fromaddress
toaddress
amountuint256
beforeBalances

transferFrom

function transferFrom(address token, address from, address to, uint256 amount) internal;

Parameters

NameTypeDescription
tokenaddress
fromaddress
toaddress
amountuint256

verifyDebit

PoolManager verifies deposit credit at settlement. Preserve CurrencyNotSettled for short deposits.

function verifyDebit(address token, address from, uint256 amount, uint256 before) internal view;

Parameters

NameTypeDescription
tokenaddress
fromaddress
amountuint256
beforeuint256

transfer

function transfer(address token, address to, uint256 amount) internal;

Parameters

NameTypeDescription
tokenaddress
toaddress
amountuint256

bubbleUnsupported

A liquidity miss may leave an order resting; an unsupported token must fail the caller explicitly.

function bubbleUnsupported(bytes memory reason) internal pure;

Parameters

NameTypeDescription
reasonbytes

take

function take(IPoolManager manager, Currency currency, address to, uint256 amount) internal;

Parameters

NameTypeDescription
managerIPoolManager
currencyCurrency
toaddress
amountuint256

Errors

TokenNotSupported

error TokenNotSupported(address token);

Parameters

NameTypeDescription
tokenaddress

Structs

Balances

struct Balances {
        uint256 from;
        uint256 to;
    }

Properties

NameTypeDescription
fromuint256
touint256