SyrupRouter

Lightweight router for lender integrations with Syrup pools. Provides stable entry points for first‑time authorized deposits (with optional ERC‑2612 permits) and subsequent deposits, and exposes the underlying pool, manager, and permission manager addresses.

Functions

asset

Returns the underlying asset of the ERC‑4626 vault (pool).

    function asset()
        view
        returns (
            address asset
        );

pool

Returns the Maple Pool (ERC‑4626 vault) address.

    function pool()
        view
        returns (
            address pool
        );

poolManager

Returns the Pool Manager address.

    function poolManager()
        view
        returns (
            address poolManager
        );

poolPermissionManager

Returns the Pool Permission Manager address.

    function poolPermissionManager()
        view
        returns (
            address poolPermissionManager
        );

nonces

Returns the current nonce for the owner (used in authorization signatures).

    function nonces(
        address owner
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

owner

address

address

Address to get nonce for

authorizeAndDeposit

Authorizes the lender and deposits assets.

    function authorizeAndDeposit(
        uint256 bitmap,
        uint256 deadline,
        uint8   v,
        bytes32 r,
        bytes32 s,
        uint256 amount,
        bytes32 depositData
    )
        external
        returns (
            uint256 shares
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

bitmap

uint256

uint256

Lender permission bitmap

1

deadline

uint256

uint256

Authorization expiry timestamp

2

v

uint8

uint8

ECDSA v component

3

r

bytes32

bytes32

ECDSA r component

4

s

bytes32

bytes32

ECDSA s component

5

amount

uint256

uint256

Asset amount to deposit

6

depositData

bytes32

bytes32

Optional deposit metadata

authorizeAndDepositWithPermit

Authorizes the lender and deposits with an ERC‑2612 permit.

    function authorizeAndDepositWithPermit(
        uint256 bitmap,
        uint256 authDeadline,
        uint8   authV,
        bytes32 authR,
        bytes32 authS,
        uint256 amount,
        bytes32 depositData,
        uint256 permitDeadline,
        uint8   permitV,
        bytes32 permitR,
        bytes32 permitS
    )
        external
        returns (
            uint256 shares
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

bitmap

uint256

uint256

Lender permission bitmap

1

authDeadline

uint256

uint256

Authorization expiry timestamp

2

authV

uint8

uint8

Auth ECDSA v component

3

authR

bytes32

bytes32

Auth ECDSA r component

4

authS

bytes32

bytes32

Auth ECDSA s component

5

amount

uint256

uint256

Asset amount to deposit

6

depositData

bytes32

bytes32

Optional deposit metadata

7

permitDeadline

uint256

uint256

Permit expiry timestamp

8

permitV

uint8

uint8

Permit ECDSA v component

9

permitR

bytes32

bytes32

Permit ECDSA r component

10

permitS

bytes32

bytes32

Permit ECDSA s component

deposit

Deposits assets when already authorized.

    function deposit(
        uint256 amount,
        bytes32 depositData
    )
        external
        returns (
            uint256 shares
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

amount

uint256

uint256

Asset amount to deposit

1

depositData

bytes32

bytes32

Optional deposit metadata

depositWithPermit

Deposits with an ERC‑2612 permit when already authorized.

    function depositWithPermit(
        uint256 amount,
        uint256 deadline,
        uint8   v,
        bytes32 r,
        bytes32 s,
        bytes32 depositData
    )
        external
        returns (
            uint256 shares
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

amount

uint256

uint256

Asset amount to deposit

1

deadline

uint256

uint256

Permit expiry timestamp

2

v

uint8

uint8

ECDSA v component

3

r

bytes32

bytes32

ECDSA r component

4

s

bytes32

bytes32

ECDSA s component

5

depositData

bytes32

bytes32

Optional deposit metadata

Events

event DepositData(
    address indexed owner,
    uint256 amount,
    bytes32 depositData
);

Last updated