🎛️ プロトコルの設定

🖌️ デザインエートス

私たちは、アルパカファイナンスの多くのパラメータを設定可能にしました。初期設定はコア開発者チームが行いますが、変更が必要なものはガバナンス・コミュニティが投票で決めるようにしたいと考えています。

タイムロック

タイムロックは、プロトコルの変更を遅らせるためのコントラクトです。このコントラクトは、アルパカファイナンスのすべての主要なコントラクトのオーナーです。したがって、すべての変更はこのコントラクトを経由する必要があり、セキュリティの堀として機能しています。

要するに、admin(コア開発者グループ)からのすべての命令は、このコントラクトを通過しなければならず、24時間遅延してから有効になります。具体的には、オーダーの実行コマンドがキューに入り、24時間経過した時点で実行されるのを待ちます。

これは、コミュニティが今後のアップデートを確認し、それに備えて事前に準備するためのセキュリティ機能です。不審な点があれば、更新が有効になる前にプロトコルから資金を引き上げることができます。

以下は、タイムロックが所有するコントラクトです。

  • All Vault Contracts

  • FairLaunch Contract

  • All Worker Contracts

  • All PriceOracle Contracts

  • All WorkerConfig Contracts

✏️ マルチシグウォレット

セキュリティの追加として、私たちはマルチシグウォレットを採用しています。タイムロックコントラクトを変更する際には、マルチシグによる承認が必要であり、セキュリティのレイヤーをさらに増やしています。

現在、マルチシグには4人の署名者がおり、取引には最低2人の署名が必要です。

⚙️ 調整できるパラメータ

アルパカファイナンスで調整可能なすべてのパラメータと機能をリストアップします。

FairLaunch Contract

  • addPool(_allocatedPoint, _stakeToken, _withUpdate)

    • _allocatedPoint = How many points assign to this pool. This will affect the ALPACAs distribution per block.

    • _stakeToken = The address of a required staking token.

    • _withUpdate = A flag for updatePool calculation

  • setPool(_pid, _allocatedPoint, _withUpdate)

    • _pid = Pool ID that you wish to adjust the point

    • _allocatedPoint = New points to be assign to this pool. This will affect the ALPACAs distribution per block.

    • _withUpdate = A flag for updatePool calculation

  • setBonus(_bonusMultiplier, _bonusEndBlock, _bonusLockUpBps)

    • _bonusMultiplier = Multiplier that will be applied during the bonus period

    • _bonusEndBlock = The block number that bonus will be ended

    • _bonusLockUpBps = % of bonus that is earned in the bonus period to be locked

Vault Contract

  • updateConfig(_newConfig)

    • _newConfig = A new contract that is implemented IVaultConfig interface

  • setFairLaunchPoolId(_pid)

    • _pid = Pool ID on Fair Contract that the staking token is debtToken owned by Vault

  • withdrawReserve(_to, _amount)

    • _to = The address to receive amount

    • _amount = The amount to be withdrawn from the reserve

  • redeuceReserve(_amount)

    • _amount = Reduce reserve portion for treasury management

PancakeswapWorker Contract

  • setReinvestBountyBps(_newBountyBps)

    • _newBountyBps = A new bounty that the bounty hunter will get when they trigger reinvest

  • setStrategyOk(_strategyAddresses, _ok)

    • _strategyAddresses = Addresses for the strategy contract

    • _ok = Can be either true or false. If the _strategyAddresses above need to be disabled then set _ok = false

  • setCriticalStrategies(_addStrategy, _liquidateStrategy)

    • _addStrategy = Set default addStrategy

    • _liquidateStrategy = Set default liquidateStrategy

SimplePriceOracle Contract

  • setFeeder(_address)

    • _address = The address of a new feeder

SimpleVaultConfig

  • setParams(_minDebtSize, _interestRate, _reservePoolBps, _killBps, _wrappedNative, _fairLaunch)

    • _minDebtSize = The minimum required for borrower to loan from the pool

    • _interestRate = Interest rate per second

    • _reservePoolBps = % to be put in reserve pool in BPS

    • _killBps = % that bounty hunters will get when they liquidate the position

    • _wrappedNative = Address of the wNative token

    • _fairLaunch = Address of the fair launch contract

  • setWorker(_workerAddress, _isWorker, _acceptDebt, _workFactor, _killFactor)

    • _workerAddress = The address of the worker

    • _isWorker = The flag to set if this is worker

    • _acceptDebt = The flag to set if this worker is accepting the debt

    • _workFactor = The flag threshold to prevent user from over leverage

    • _killFactor = The flag threshold to mark if position can be liquidated, aka liquidation threshold

ConfigurableInterestVaultConfig

  • setParams(_minDebtSize, _reservePoolBps, _killBps, _interestModelAddress, _wrappedNative, _fairLaunch)

    • _minDebtSize = The minimum required for borrower to loan from the pool

    • _reservePoolBps = % to be put in reserve pool in BPS

    • _killBps = % that bounty hunters will get when they liquidate the position

    • _interestModelAddress = Address of the interest model

    • _wrappedNative = Address of the wNative token

    • _fairLaunch = Address of the fair launch contract

PancakeswapWorkerConfig

  • setOracle(_newOracleAddress)

    • _newOracleAddress = The new oracle address

  • setConfigs([ ]_WorkerAddress, [ ]_configs)

    • [ ]_WorkerAddress = address of worker

    • [ ]_configs = Config object including:

      • _acceptDebt

      • _workFactor = The flag threshold to prevent user from over leverage

      • _killFactor = The flag threshold to mark if position can be liquidated, aka liquidation threshold

      • _maxPriceDiff

Last updated