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