RedeemManagerV1

Kiln

Redeem Manager (v1)

This contract handles the redeem requests of all users

Methods

claimRedeemRequests

function claimRedeemRequests(uint32[] redeemRequestIds, uint32[] withdrawalEventIds, bool skipAlreadyClaimed, uint16 _depth) external nonpayable returns (uint8[] claimStatuses)

Claims the rewards of the provided redeem request ids

Parameters

NameTypeDescription

redeemRequestIds

uint32[]

undefined

withdrawalEventIds

uint32[]

undefined

skipAlreadyClaimed

bool

undefined

_depth

uint16

The maximum recursive depth for the resolution of the redeem requests

Returns

NameTypeDescription

claimStatuses

uint8[]

The list of claim statuses. 0 for fully claimed, 1 for partially claimed, 2 for skipped

claimRedeemRequests

function claimRedeemRequests(uint32[] _redeemRequestIds, uint32[] _withdrawalEventIds) external nonpayable returns (uint8[] claimStatuses)

Claims the rewards of the provided redeem request ids

Parameters

NameTypeDescription

_redeemRequestIds

uint32[]

The list of redeem requests to claim

_withdrawalEventIds

uint32[]

The list of withdrawal events to use for every redeem request claim

Returns

NameTypeDescription

claimStatuses

uint8[]

The list of claim statuses. 0 for fully claimed, 1 for partially claimed, 2 for skipped

getBufferedExceedingEth

function getBufferedExceedingEth() external view returns (uint256)

Retrieve the amount of redeemed LsETH pending to be supplied with withdrawn ETH

Returns

NameTypeDescription

_0

uint256

The amount of eth in the buffer

getRedeemDemand

function getRedeemDemand() external view returns (uint256)

Retrieve the amount of LsETH waiting to be exited

Returns

NameTypeDescription

_0

uint256

The amount of LsETH waiting to be exited

getRedeemRequestCount

function getRedeemRequestCount() external view returns (uint256)

Retrieve the global count of redeem requests

Returns

NameTypeDescription

_0

uint256

undefined

getRedeemRequestDetails

function getRedeemRequestDetails(uint32 _redeemRequestId) external view returns (struct RedeemQueue.RedeemRequest)

Retrieve the details of a specific redeem request

Parameters

NameTypeDescription

_redeemRequestId

uint32

The id of the request

Returns

NameTypeDescription

_0

RedeemQueue.RedeemRequest

The redeem request details

getRiver

function getRiver() external view returns (address)

Retrieve River address

Returns

NameTypeDescription

_0

address

The address of River

getWithdrawalEventCount

function getWithdrawalEventCount() external view returns (uint256)

Retrieve the global count of withdrawal events

Returns

NameTypeDescription

_0

uint256

undefined

getWithdrawalEventDetails

function getWithdrawalEventDetails(uint32 _withdrawalEventId) external view returns (struct WithdrawalStack.WithdrawalEvent)

Retrieve the details of a specific withdrawal event

Parameters

NameTypeDescription

_withdrawalEventId

uint32

The id of the withdrawal event

Returns

NameTypeDescription

_0

WithdrawalStack.WithdrawalEvent

The withdrawal event details

initializeRedeemManagerV1

function initializeRedeemManagerV1(address _river) external nonpayable

Parameters

NameTypeDescription

_river

address

The address of the River contract

pullExceedingEth

function pullExceedingEth(uint256 _max) external nonpayable

Pulls exceeding buffer eth

Parameters

NameTypeDescription

_max

uint256

The maximum amount that should be pulled

reportWithdraw

function reportWithdraw(uint256 _lsETHWithdrawable) external payable

Reports a withdraw event from River

Parameters

NameTypeDescription

_lsETHWithdrawable

uint256

The amount of LsETH that can be redeemed due to this new withdraw event

requestRedeem

function requestRedeem(uint256 _lsETHAmount, address _recipient) external nonpayable returns (uint32 redeemRequestId)

Creates a redeem request

Parameters

NameTypeDescription

_lsETHAmount

uint256

The amount of LsETH to redeem

_recipient

address

The recipient owning the redeem request

Returns

NameTypeDescription

redeemRequestId

uint32

The id of the redeem request

requestRedeem

function requestRedeem(uint256 _lsETHAmount) external nonpayable returns (uint32 redeemRequestId)

Creates a redeem request using msg.sender as recipient

Parameters

NameTypeDescription

_lsETHAmount

uint256

The amount of LsETH to redeem

Returns

NameTypeDescription

redeemRequestId

uint32

The id of the redeem request

resolveRedeemRequests

function resolveRedeemRequests(uint32[] _redeemRequestIds) external view returns (int64[] withdrawalEventIds)

Resolves the provided list of redeem request ids

The result is an array of equal length with ids or error code-1 means that the request is not satisfied yet-2 means that the request is out of bounds-3 means that the request has already been claimedThis call was created to be called by an off-chain interface, the output could then be used to perform the claimRewards call in a regular transaction

Parameters

NameTypeDescription

_redeemRequestIds

uint32[]

The list of redeem requests to resolve

Returns

NameTypeDescription

withdrawalEventIds

int64[]

The list of withdrawal events matching every redeem request (or error codes)

Events

ClaimedRedeemRequest

event ClaimedRedeemRequest(uint32 indexed redeemRequestId, address indexed recipient, uint256 ethAmount, uint256 lsEthAmount, uint256 remainingLsEthAmount)

Emitted when a redeem request claim has been processed and matched at least once and funds are sent to the recipient

Parameters

NameTypeDescription

redeemRequestId indexed

uint32

The id of the redeem request

recipient indexed

address

The address receiving the redeem request funds

ethAmount

uint256

The amount of eth retrieved

lsEthAmount

uint256

The total amount of LsETH used to redeem the eth

remainingLsEthAmount

uint256

The amount of LsETH remaining

Initialize

event Initialize(uint256 version, bytes cdata)

Emitted when the contract is properly initialized

Parameters

NameTypeDescription

version

uint256

New version of the contracts

cdata

bytes

Complete calldata that was used during the initialization

ReportedWithdrawal

event ReportedWithdrawal(uint256 height, uint256 amount, uint256 ethAmount, uint32 id)

Emitted when a withdrawal event is created

Parameters

NameTypeDescription

height

uint256

The height of the withdrawal event in LsETH

amount

uint256

The amount of the withdrawal event in LsETH

ethAmount

uint256

The amount of eth to distrubute to claimers

id

uint32

The id of the withdrawal event

RequestedRedeem

event RequestedRedeem(address indexed owner, uint256 height, uint256 amount, uint256 maxRedeemableEth, uint32 id)

Emitted when a redeem request is created

Parameters

NameTypeDescription

owner indexed

address

The owner of the redeem request

height

uint256

The height of the redeem request in LsETH

amount

uint256

The amount of the redeem request in LsETH

maxRedeemableEth

uint256

The maximum amount of eth that can be redeemed from this request

id

uint32

The id of the new redeem request

SatisfiedRedeemRequest

event SatisfiedRedeemRequest(uint32 indexed redeemRequestId, uint32 indexed withdrawalEventId, uint256 lsEthAmountSatisfied, uint256 ethAmountSatisfied, uint256 lsEthAmountRemaining, uint256 ethAmountExceeding)

Emitted when a redeem request has been satisfied and filled (even partially) from a withdrawal event

Parameters

NameTypeDescription

redeemRequestId indexed

uint32

The id of the redeem request

withdrawalEventId indexed

uint32

The id of the withdrawal event used to fill the request

lsEthAmountSatisfied

uint256

The amount of LsETH filled

ethAmountSatisfied

uint256

The amount of ETH filled

lsEthAmountRemaining

uint256

The amount of LsETH remaining

ethAmountExceeding

uint256

The amount of eth added to the exceeding buffer

SetRedeemDemand

event SetRedeemDemand(uint256 oldRedeemDemand, uint256 newRedeemDemand)

Emitted when the redeem demand is set

Parameters

NameTypeDescription

oldRedeemDemand

uint256

The old redeem demand

newRedeemDemand

uint256

The new redeem demand

SetRiver

event SetRiver(address river)

Emitted when the River address is set

Parameters

NameTypeDescription

river

address

The new river address

Errors

ClaimRedeemFailed

error ClaimRedeemFailed(address recipient, bytes rdata)

Thrown when the payment after a claim failed

Parameters

NameTypeDescription

recipient

address

The recipient of the payment

rdata

bytes

The revert data

DoesNotMatch

error DoesNotMatch(uint256 redeemRequestId, uint256 withdrawalEventId)

Thrown when the redeem request and withdrawal event are not matching during claim

Parameters

NameTypeDescription

redeemRequestId

uint256

The provided redeem request id

withdrawalEventId

uint256

The provided associated withdrawal event id

IncompatibleArrayLengths

error IncompatibleArrayLengths()

Thrown when the provided arrays don't have matching lengths

InvalidInitialization

error InvalidInitialization(uint256 version, uint256 expectedVersion)

An error occured during the initialization

Parameters

NameTypeDescription

version

uint256

The version that was attempting to be initialized

expectedVersion

uint256

The version that was expected

InvalidZeroAddress

error InvalidZeroAddress()

The address is zero

InvalidZeroAmount

error InvalidZeroAmount()

Thrown When a zero value is provided

RedeemRequestAlreadyClaimed

error RedeemRequestAlreadyClaimed(uint256 id)

Thrown when the redeem request id is already claimed

Parameters

NameTypeDescription

id

uint256

The redeem request id

RedeemRequestOutOfBounds

error RedeemRequestOutOfBounds(uint256 id)

Thrown when the provided redeem request id is out of bounds

Parameters

NameTypeDescription

id

uint256

The redeem request id

TransferError

error TransferError()

Thrown when a transfer error occured with LsETH

Unauthorized

error Unauthorized(address caller)

The operator is unauthorized for the caller

Parameters

NameTypeDescription

caller

address

Address performing the call

WithdrawalEventOutOfBounds

error WithdrawalEventOutOfBounds(uint256 id)

Thrown when the withdrawal request id if out of bounds

Parameters

NameTypeDescription

id

uint256

The withdrawal event id

WithdrawalExceedsRedeemDemand

error WithdrawalExceedsRedeemDemand(uint256 withdrawalAmount, uint256 redeemDemand)

Thrown when the provided withdrawal event exceeds the redeem demand

Parameters

NameTypeDescription

withdrawalAmount

uint256

The amount of the withdrawal event

redeemDemand

uint256

The current redeem demand

Last updated