Branch data Line data Source code
1 : : // SPDX-License-Identifier: MIT
2 : : pragma solidity ^0.8.0;
3 : :
4 : : import {VariableDebtToken, IPool, IInitializableDebtToken, VersionedInitializable, IAaveIncentivesController, Errors} from '../protocol/tokenization/VariableDebtToken.sol';
5 : :
6 : : contract VariableDebtTokenInstance is VariableDebtToken {
7 : : uint256 public constant DEBT_TOKEN_REVISION = 1;
8 : :
9 : : constructor(IPool pool) VariableDebtToken(pool) {}
10 : :
11 : : /// @inheritdoc VersionedInitializable
12 : : function getRevision() internal pure virtual override returns (uint256) {
13 : 174696 : return DEBT_TOKEN_REVISION;
14 : : }
15 : :
16 : : /// @inheritdoc IInitializableDebtToken
17 : : function initialize(
18 : : IPool initializingPool,
19 : : address underlyingAsset,
20 : : IAaveIncentivesController incentivesController,
21 : : uint8 debtTokenDecimals,
22 : : string memory debtTokenName,
23 : : string memory debtTokenSymbol,
24 : : bytes calldata params
25 : : ) external override initializer {
26 : 173697 : require(initializingPool == POOL, Errors.POOL_ADDRESSES_DO_NOT_MATCH);
27 : 172697 : _setName(debtTokenName);
28 : 172697 : _setSymbol(debtTokenSymbol);
29 : 172697 : _setDecimals(debtTokenDecimals);
30 : :
31 : 172697 : _underlyingAsset = underlyingAsset;
32 : 172697 : _incentivesController = incentivesController;
33 : :
34 : 172697 : _domainSeparator = _calculateDomainSeparator();
35 : :
36 : 172697 : emit Initialized(
37 : : underlyingAsset,
38 : : address(POOL),
39 : : address(incentivesController),
40 : : debtTokenDecimals,
41 : : debtTokenName,
42 : : debtTokenSymbol,
43 : : params
44 : : );
45 : : }
46 : : }
|