PALMManager

Manager contract of all PALM vaults

Constant/Immutable Properties

nametypedescription

managerFeeBPS

uint16

fee on fees earned taken by this manager (in BPS of fees earned)

terms

address

Terms address

termDuration

uint256

number of seconds of a Term

Public Properties

nametypedescription

vaults

mapping(address => VaultInfo)

Basic information per vault in storage (balance, strat, data, termEnd)

operators

address[]

list of whitelisted operators who can call rebalance method on vaults

gelatoFeeCollector

address

address to collect gas fees for Gelato automated executions.

Internal Properties

nametypedescription

_owner

address

Owner of PALMManager contract who can set Manager-wide configurable parameters

_whitelistedStrat

Bytes32Set

set of whitelisted strategy identifiers keccak256("stratName")

Structs

VaultInfo

nametypedescription

balance

uint256

Gas Tank balance for repaying keepers for rebalance gas costs

lastRebalance

uint256

timestamp of last rebalance

datas

bytes

JSON encoded custom parameters to strategy

strat

bytes32

Selected Strategy type encoded askeccak256(stratString)

External Functions

rebalance

perform a ArrakisV2.rebalance operation on a PALM vault.

parameters :

nametypedescription

vault_

address

Vault address

rebalanceParams_

Rebalance

Struct with rebalance operation information

feeAmount_

uint256

amount paid in fee to Gelato

modifiers :

  • when not paused

  • msg.sender in operators list in state

  • vault_ is added (VaultInfo initialized)

checks :

  • check that feeAmount_ is LTE vault_ balance

events :

  • RebalanceVault(address indexed vault, uint256 newBalance)

addVault

register a vault to be managed by PALMManager

parameters :

nametypedescription

vault_

address

Vault address

datas_

bytes

amount of LP token to mint on first mint (arbitrary)

strat_

string

strategy string identifier

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ owner is PALMTerms

  • msg.sender is PALMTerms

checks :

  • check that strat_ is a whitelisted strategy

  • check that vault_ is not already added (stored VaultInfo)

events :

  • AddVault(address indexed vault, bytes datas, string strat)

  • UpdateVaultBalance(address indexed vault, uint256 newBalance) (possibly)

removeVault

remove vault from PALMManager managed vaults. Any network token in vault balance will be withdrawn

parameters :

nametypedescription

vault_

address

Vault address

to_

address

receiver of network token if vault is funded

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ owner is msg.sender

checks :

  • check that vault_ is already added (stored VaultInfo)

events :

  • RemoveVault(address indexed vault, uint256 sendBack)

renewTerm

parameters :

nametypedescription

vault_

address

Vault address

to_

address

receiver of network token if vault is funded

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ is already added (VaultInfo stored)

  • msg.sender is terms address

events :

  • SetTermEnd(address indexed vault, uint256 oldtermEnd, uint256 newtermEnd)

fundVaultBalance

increase vault balance (Gas Tank) with msg.value network token

parameters :

nametypedescription

vault_

address

Vault address

modifiers :

  • when not paused

  • vault_ is already added (VaultInfo stored)

events :

  • UpdateVaultBalance(address indexed vault, uint256 newBalance)

setVaultData

set/reset vault datas bytes

parameters :

nametypedescription

vault_

address

Vault address

data_

bytes

new Vault data

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ owner is msg.sender

  • vault_ already added (VaultInfo stored)

checks :

  • check that data_ is not same as existing stored

events :

  • SetVaultData(address indexed vault, bytes data)

setVaultStratByName

set/reset vault strategy type (from whitelisted list)

parameters :

nametypedescription

vault_

address

Vault address

strat_

string

strategy string identifier for vault

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ owner is msg.sender

  • vault_ already added (VaultInfo stored)

checks :

  • check that strat_ is not same as existing stored

  • check that strat_ is a whilelisted strategy

events :

  • SetVaultStrat(address indexed vault, bytes32 strat)

withdrawVaultBalance

decrease balance (Gas Tank) of vault, receive network tokens

parameters :

nametypedescription

vault_

address

Vault address

amount_

uint256

amount of Network Token to withdraw

to_

address

receiver of Network Token

modifiers :

  • when not paused

  • vault_ non-zero address

  • vault_ owner is msg.sender

  • vault_ already added (VaultInfo stored)

  • to_ non-zero address

checks :

  • vault balance exceeds amount_ to withdraw

events :

  • WithdrawVaultBalance(address indexed vault, uint256 amount, address to, uint256 newBalance)

addOperators

PALMManager admin adds keeper operator addresses

parameters :

nametypedescription

operators_

address[]

new operators (authorized to call rebalance for all vaults)

modifiers :

  • when not paused

  • msg.sender is Manager-wide _owner

checks :

  • check that operators_ are not already in operators array

events :

  • AddOperators(address[] operators)

removeOperators

PALMManager admin removes keeper operator addresses

parameters :

nametypedescription

operators_

address[]

operators to remove

modifiers :

  • when not paused

  • msg.sender is Manager-wide _owner

checks :

  • check that operators_ are already in operators arraye

events :

  • RemoveOperators(address[] operators)

withdrawFeesEarned

PALMManager admin withdraws any manager fees earned

parameters :

nametypedescription

tokens_

address[]

token addresses to remove

to_

address

receiver of tokens (fees earned by manager)

modifiers :

  • when not paused

  • msg.sender is Manager-wide _owner

Inherited Standard Interfaces:

  • Ownable (transferOwnership)

  • Pausable (pause, unpause)

Last updated