From f6b9eedde04b7a918e64607e490a185e658f9b15 Mon Sep 17 00:00:00 2001 From: tmcollins4 Date: Wed, 25 Feb 2026 14:58:34 -0500 Subject: [PATCH 1/3] added two Aave endpoints - getAaveReserveData and getAaveReserveTokensAddressses --- .../src/providers/chain-state/evm/api/aave.ts | 8 ++ .../src/providers/chain-state/evm/api/csp.ts | 38 +++++- .../providers/chain-state/evm/api/routes.ts | 56 +++++++++ .../test/integration/routes/evm.test.ts | 108 ++++++++++++++++++ .../test/unit/modules/ethereum/csp.test.ts | 99 ++++++++++++++++ 5 files changed, 307 insertions(+), 2 deletions(-) diff --git a/packages/bitcore-node/src/providers/chain-state/evm/api/aave.ts b/packages/bitcore-node/src/providers/chain-state/evm/api/aave.ts index 1a91443c70..03eb7a8260 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/api/aave.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/api/aave.ts @@ -21,6 +21,14 @@ export interface AaveV3AccountData extends AaveAccountDataCommon { export type AaveAccountData = AaveV2AccountData | AaveV3AccountData; +export interface AaveReserveData { + currentVariableBorrowRate: string; +} + +export interface AaveReserveTokensAddresses { + variableDebtTokenAddress: string; +} + /** * Aave Pool contract addresses by version, chain, and network. * Source: https://aave.com/docs/resources/addresses diff --git a/packages/bitcore-node/src/providers/chain-state/evm/api/csp.ts b/packages/bitcore-node/src/providers/chain-state/evm/api/csp.ts index fa30dfaa7f..8fdbecbd52 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/api/csp.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/api/csp.ts @@ -26,7 +26,7 @@ import { MultisendAbi } from '../abi/multisend'; import { EVMBlockStorage } from '../models/block'; import { EVMTransactionStorage } from '../models/transaction'; import { EVMTransactionJSON, IEVMBlock, IEVMTransaction, IEVMTransactionInProcess } from '../types'; -import { AaveAccountData, AaveV2AccountData, AaveV3AccountData, AaveVersion, getAavePoolAddress } from './aave'; +import { AaveAccountData, AaveReserveData, AaveReserveTokensAddresses, AaveV2AccountData, AaveV3AccountData, AaveVersion, getAavePoolAddress } from './aave'; import { Erc20RelatedFilterTransform } from './erc20Transform'; import { InternalTxRelatedFilterTransform } from './internalTxTransform'; import { PopulateEffectsForAddressTransform } from './populateEffectsTransform'; @@ -206,7 +206,7 @@ export class BaseEVMStateProvider extends InternalStateProvider implements IChai async getAaveUserAccountData(params: { network: string; address: string; version: AaveVersion }): Promise { const { network, address, version } = params; - const poolAddress = getAavePoolAddress(this.chain, network, version)!; + const poolAddress = getAavePoolAddress(this.chain, network, version); if (!poolAddress) { throw new Error( @@ -253,6 +253,40 @@ export class BaseEVMStateProvider extends InternalStateProvider implements IChai }; } + async getAaveReserveData(params: { network: string; asset: string; version: AaveVersion }): Promise { + const { network, asset, version } = params; + const poolAddress = getAavePoolAddress(this.chain, network, version); + + if (!poolAddress) { + throw new Error( + `Unsupported Aave pool for chain "${this.chain}", network "${network}", version "${version}".` + ); + } + + const { web3 } = await this.getWeb3(network); + const abi = version === 'v2' ? AavePoolAbiV2 : AavePoolAbi; + const contract = new web3.eth.Contract(abi, poolAddress); + const reserveData = await contract.methods.getReserveData(web3.utils.toChecksumAddress(asset)).call(); + return { currentVariableBorrowRate: reserveData.currentVariableBorrowRate.toString() }; + } + + async getAaveReserveTokensAddresses(params: { network: string; asset: string; version: AaveVersion }): Promise { + const { network, asset, version } = params; + const poolAddress = getAavePoolAddress(this.chain, network, version); + + if (!poolAddress) { + throw new Error( + `Unsupported Aave pool for chain "${this.chain}", network "${network}", version "${version}".` + ); + } + + const { web3 } = await this.getWeb3(network); + const abi = version === 'v2' ? AavePoolAbiV2 : AavePoolAbi; + const contract = new web3.eth.Contract(abi, poolAddress); + const reserveData = await contract.methods.getReserveData(web3.utils.toChecksumAddress(asset)).call(); + return { variableDebtTokenAddress: reserveData.variableDebtTokenAddress }; + } + @historical async getFee(params: GetEstimateSmartFeeParams): Promise<{ feerate: number; blocks: number }> { let { network } = params; diff --git a/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts b/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts index e609bdb7da..0a11f016e4 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts @@ -46,6 +46,8 @@ export class EVMRouter { this.getPriorityFee(router); this.estimateL1Fee(router); this.getAaveUserAccountData(router); + this.getAaveReserveData(router); + this.getAaveReserveTokensAddresses(router); }; private setMultiSigRoutes(router: Router) { @@ -121,6 +123,60 @@ export class EVMRouter { }); }; + private getAaveReserveData(router: Router) { + router.get(`/api/${this.chain}/:network/aave/reserve/:asset`, async (req, res) => { + const { network, asset } = req.params; + const requestedVersion = String(req.query.version || 'v3').toLowerCase(); + if (!isAaveVersion(requestedVersion)) { + res.status(400).send('Unsupported Aave version'); + return; + } + if (!getAavePoolAddress(this.chain, network, requestedVersion)) { + res.status(400).send('Unsupported chain or network for Aave'); + return; + } + if (!Web3.utils.isAddress(asset)) { + res.status(400).send('Invalid address'); + return; + } + + try { + const data = await this.csp.getAaveReserveData({ network, asset, version: requestedVersion }); + res.json(data); + } catch (err: any) { + logger.error('Aave getReserveData error::%o', err.stack || err.message || err); + res.status(500).send(err.message || err); + } + }); + }; + + private getAaveReserveTokensAddresses(router: Router) { + router.get(`/api/${this.chain}/:network/aave/reserve-tokens/:asset`, async (req, res) => { + const { network, asset } = req.params; + const requestedVersion = String(req.query.version || 'v3').toLowerCase(); + if (!isAaveVersion(requestedVersion)) { + res.status(400).send('Unsupported Aave version'); + return; + } + if (!getAavePoolAddress(this.chain, network, requestedVersion)) { + res.status(400).send('Unsupported chain or network for Aave'); + return; + } + if (!Web3.utils.isAddress(asset)) { + res.status(400).send('Invalid address'); + return; + } + + try { + const data = await this.csp.getAaveReserveTokensAddresses({ network, asset, version: requestedVersion }); + res.json(data); + } catch (err: any) { + logger.error('Aave getReserveTokensAddresses error::%o', err.stack || err.message || err); + res.status(500).send(err.message || err); + } + }); + }; + private estimateL1Fee(router: Router) { router.post(`/api/${this.chain}/:network/l1/fee`, async (req, res) => { try { diff --git a/packages/bitcore-node/test/integration/routes/evm.test.ts b/packages/bitcore-node/test/integration/routes/evm.test.ts index 4358c62b39..a5d000d93a 100644 --- a/packages/bitcore-node/test/integration/routes/evm.test.ts +++ b/packages/bitcore-node/test/integration/routes/evm.test.ts @@ -232,4 +232,112 @@ describe('EVM Routes', function () { }); }); }); + + describe('GET aave/reserve', function() { + // USDC on ETH mainnet (V2 only — V2 not deployed on sepolia) + const usdcMainnet = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'; + const v2PoolMainnet = '0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9'; + // Aave test USDC on sepolia (V3 is deployed on sepolia) + const usdcSepolia = '0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8'; + + it('should return currentVariableBorrowRate for v2 using hardcoded public ETH mainnet RPC', function(done) { + this.timeout(30000); + const web3 = new Web3('https://ethereum.publicnode.com'); + sandbox.stub(ETH, 'getWeb3').resolves({ web3 } as any); + sandbox.stub(aaveApi, 'getAavePoolAddress').returns(v2PoolMainnet); + + request.get(`/api/ETH/sepolia/aave/reserve/${usdcMainnet}?version=v2`) + .expect(200) + .end((err, res) => { + if (err) return done(err); + expect(res.body).to.have.keys(['currentVariableBorrowRate']); + done(); + }); + }); + + it('should return currentVariableBorrowRate for v3 on sepolia', function(done) { + this.timeout(30000); + request.get(`/api/ETH/sepolia/aave/reserve/${usdcSepolia}?version=v3`) + .expect(200) + .end((err, res) => { + if (err) return done(err); + expect(res.body).to.have.keys(['currentVariableBorrowRate']); + done(); + }); + }); + + it('should return 400 for unsupported chain or network', done => { + request.get(`/api/ETH/regtest/aave/reserve/${usdcMainnet}?version=v3`) + .expect(400) + .end((err, res) => { + if (err) return done(err); + expect(res.text).to.equal('Unsupported chain or network for Aave'); + done(); + }); + }); + + it('should return 400 for unsupported Aave version', done => { + request.get(`/api/ETH/sepolia/aave/reserve/${usdcMainnet}?version=v9`) + .expect(400) + .end((err, res) => { + if (err) return done(err); + expect(res.text).to.equal('Unsupported Aave version'); + done(); + }); + }); + }); + + describe('GET aave/reserve-tokens', function() { + // USDC on ETH mainnet (V2 only — V2 not deployed on sepolia) + const usdcMainnet = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'; + const v2PoolMainnet = '0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9'; + // Aave test USDC on sepolia (V3 is deployed on sepolia) + const usdcSepolia = '0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8'; + + it('should return variableDebtTokenAddress for v2 using hardcoded public ETH mainnet RPC', function(done) { + this.timeout(30000); + const web3 = new Web3('https://ethereum.publicnode.com'); + sandbox.stub(ETH, 'getWeb3').resolves({ web3 } as any); + sandbox.stub(aaveApi, 'getAavePoolAddress').returns(v2PoolMainnet); + + request.get(`/api/ETH/sepolia/aave/reserve-tokens/${usdcMainnet}?version=v2`) + .expect(200) + .end((err, res) => { + if (err) return done(err); + expect(res.body).to.have.keys(['variableDebtTokenAddress']); + done(); + }); + }); + + it('should return variableDebtTokenAddress for v3 on sepolia', function(done) { + this.timeout(30000); + request.get(`/api/ETH/sepolia/aave/reserve-tokens/${usdcSepolia}?version=v3`) + .expect(200) + .end((err, res) => { + if (err) return done(err); + expect(res.body).to.have.keys(['variableDebtTokenAddress']); + done(); + }); + }); + + it('should return 400 for unsupported chain or network', done => { + request.get(`/api/ETH/regtest/aave/reserve-tokens/${usdcSepolia}?version=v3`) + .expect(400) + .end((err, res) => { + if (err) return done(err); + expect(res.text).to.equal('Unsupported chain or network for Aave'); + done(); + }); + }); + + it('should return 400 for unsupported Aave version', done => { + request.get(`/api/ETH/sepolia/aave/reserve-tokens/${usdcSepolia}?version=v9`) + .expect(400) + .end((err, res) => { + if (err) return done(err); + expect(res.text).to.equal('Unsupported Aave version'); + done(); + }); + }); + }); }); \ No newline at end of file diff --git a/packages/bitcore-node/test/unit/modules/ethereum/csp.test.ts b/packages/bitcore-node/test/unit/modules/ethereum/csp.test.ts index 1cbad866c1..e281301466 100644 --- a/packages/bitcore-node/test/unit/modules/ethereum/csp.test.ts +++ b/packages/bitcore-node/test/unit/modules/ethereum/csp.test.ts @@ -261,6 +261,105 @@ describe('ETH Chain State Provider', function() { sandbox.restore(); }); + describe('getAaveReserveData', function() { + // Using USDC as a common asset for both v2 and v3 tests + const asset = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'; + + const makeReserveDataStub = (sandbox: sinon.SinonSandbox) => { + const reserveData = { + currentVariableBorrowRate: 80000000000000000000000000n + }; + const contractStub = { + methods: { getReserveData: () => ({ call: sandbox.stub().resolves(reserveData) }) } + }; + const web3Stub: any = { + utils: { toChecksumAddress: (addr: string) => addr }, + eth: { Contract: sandbox.stub().returns(contractStub) } + }; + sandbox.stub(BaseEVMStateProvider, 'rpcs').value({ + [`ETH:${network}`]: { realtime: [{ web3: web3Stub, rpc: sinon.stub(), dataType: 'combined' }] } + }); + sandbox.stub(aaveApi, 'getAavePoolAddress').returns('0xpool'); + return reserveData; + }; + + it('should return currentVariableBorrowRate for Aave v3', async () => { + const sandbox = sinon.createSandbox(); + makeReserveDataStub(sandbox); + + const result = await ETH.getAaveReserveData({ network, asset, version: 'v3' }); + + expect(result).to.deep.equal({ currentVariableBorrowRate: '80000000000000000000000000' }); + sandbox.restore(); + }); + + it('should return currentVariableBorrowRate for Aave v2', async () => { + const sandbox = sinon.createSandbox(); + makeReserveDataStub(sandbox); + + const result = await ETH.getAaveReserveData({ network, asset, version: 'v2' }); + + expect(result).to.deep.equal({ currentVariableBorrowRate: '80000000000000000000000000' }); + sandbox.restore(); + }); + }); + + describe('getAaveReserveTokensAddresses', function() { + it('should return variableDebtTokenAddress', async () => { + const sandbox = sinon.createSandbox(); + const reserveData = { + variableDebtTokenAddress: '0xvariableDebtAddress' + }; + const contractStub = { + methods: { getReserveData: () => ({ call: sandbox.stub().resolves(reserveData) }) } + }; + const web3Stub: any = { + utils: { toChecksumAddress: (addr: string) => addr }, + eth: { Contract: sandbox.stub().returns(contractStub) } + }; + sandbox.stub(BaseEVMStateProvider, 'rpcs').value({ + [`ETH:${network}`]: { realtime: [{ web3: web3Stub, rpc: sinon.stub(), dataType: 'combined' }] } + }); + sandbox.stub(aaveApi, 'getAavePoolAddress').returns('0xpool'); + + const result = await ETH.getAaveReserveTokensAddresses({ + network, + asset: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', + version: 'v3' + }); + + expect(result).to.deep.equal({ variableDebtTokenAddress: '0xvariableDebtAddress' }); + sandbox.restore(); + }); + + it('should return variableDebtTokenAddress for v2', async () => { + const sandbox = sinon.createSandbox(); + const reserveData = { + variableDebtTokenAddress: '0xvariableDebtAddress' + }; + const contractStub = { + methods: { getReserveData: () => ({ call: sandbox.stub().resolves(reserveData) }) } + }; + const web3Stub: any = { + utils: { toChecksumAddress: (addr: string) => addr }, + eth: { Contract: sandbox.stub().returns(contractStub) } + }; + sandbox.stub(BaseEVMStateProvider, 'rpcs').value({ + [`ETH:${network}`]: { realtime: [{ web3: web3Stub, rpc: sinon.stub(), dataType: 'combined' }] } + }); + sandbox.stub(aaveApi, 'getAavePoolAddress').returns('0xpool'); + + const result = await ETH.getAaveReserveTokensAddresses({ + network, + asset: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', + version: 'v2' + }); + + expect(result).to.deep.equal({ variableDebtTokenAddress: '0xvariableDebtAddress' }); + sandbox.restore(); + }); + }); + it('should be able to find an ETH block', async () => { const sandbox = sinon.createSandbox(); const mockBlock = { From 66bb8f0e936b29aea0e934f5739171cb5b4fa79e Mon Sep 17 00:00:00 2001 From: tmcollins4 Date: Fri, 27 Feb 2026 09:57:30 -0500 Subject: [PATCH 2/3] move validation logic to a central method for Aave endpoints --- .../providers/chain-state/evm/api/routes.ts | 69 +++++++------------ 1 file changed, 24 insertions(+), 45 deletions(-) diff --git a/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts b/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts index 0a11f016e4..8c4e3b1545 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/api/routes.ts @@ -8,7 +8,7 @@ import { Config } from '../../../../services/config'; import { IEVMNetworkConfig } from '../../../../types/Config'; import { castToBool } from '../../../../utils'; import { OPGasPriceOracleAbi, OPGasPriceOracleAddress } from '../abi/opGasPriceOracle'; -import { getAavePoolAddress, isAaveVersion } from './aave'; +import { AaveVersion, getAavePoolAddress, isAaveVersion } from './aave'; import { BaseEVMStateProvider } from './csp'; import { Gnosis } from './gnosis'; @@ -92,29 +92,28 @@ export class EVMRouter { }); }; + private validateAaveRequest(requestedVersion: string, network: string, addressOrAsset: string): string | null { + if (!isAaveVersion(requestedVersion)) { + return 'Unsupported Aave version'; + } + if (!getAavePoolAddress(this.chain, network, requestedVersion)) { + return 'Unsupported chain or network for Aave'; + } + if (!Web3.utils.isAddress(addressOrAsset)) { + return 'Invalid address'; + } + return null; + }; + private getAaveUserAccountData(router: Router) { router.get(`/api/${this.chain}/:network/aave/account/:address`, async (req, res) => { const { address, network } = req.params; const requestedVersion = String(req.query.version || 'v3').toLowerCase(); - if (!isAaveVersion(requestedVersion)) { - res.status(400).send('Unsupported Aave version'); - return; - } - if (!getAavePoolAddress(this.chain, network, requestedVersion)) { - res.status(400).send('Unsupported chain or network for Aave'); - return; - } - if (!Web3.utils.isAddress(address)) { - res.status(400).send('Invalid address'); - return; - } + const error = this.validateAaveRequest(requestedVersion, network, address); + if (error) { res.status(400).send(error); return; } try { - const accountData = await this.csp.getAaveUserAccountData({ - network, - address, - version: requestedVersion - }); + const accountData = await this.csp.getAaveUserAccountData({ network, address, version: requestedVersion as AaveVersion }); res.json(accountData); } catch (err: any) { logger.error('Aave getUserAccountData error::%o', err.stack || err.message || err); @@ -127,21 +126,11 @@ export class EVMRouter { router.get(`/api/${this.chain}/:network/aave/reserve/:asset`, async (req, res) => { const { network, asset } = req.params; const requestedVersion = String(req.query.version || 'v3').toLowerCase(); - if (!isAaveVersion(requestedVersion)) { - res.status(400).send('Unsupported Aave version'); - return; - } - if (!getAavePoolAddress(this.chain, network, requestedVersion)) { - res.status(400).send('Unsupported chain or network for Aave'); - return; - } - if (!Web3.utils.isAddress(asset)) { - res.status(400).send('Invalid address'); - return; - } + const error = this.validateAaveRequest(requestedVersion, network, asset); + if (error) { res.status(400).send(error); return; } try { - const data = await this.csp.getAaveReserveData({ network, asset, version: requestedVersion }); + const data = await this.csp.getAaveReserveData({ network, asset, version: requestedVersion as AaveVersion }); res.json(data); } catch (err: any) { logger.error('Aave getReserveData error::%o', err.stack || err.message || err); @@ -154,21 +143,11 @@ export class EVMRouter { router.get(`/api/${this.chain}/:network/aave/reserve-tokens/:asset`, async (req, res) => { const { network, asset } = req.params; const requestedVersion = String(req.query.version || 'v3').toLowerCase(); - if (!isAaveVersion(requestedVersion)) { - res.status(400).send('Unsupported Aave version'); - return; - } - if (!getAavePoolAddress(this.chain, network, requestedVersion)) { - res.status(400).send('Unsupported chain or network for Aave'); - return; - } - if (!Web3.utils.isAddress(asset)) { - res.status(400).send('Invalid address'); - return; - } - + const error = this.validateAaveRequest(requestedVersion, network, asset); + if (error) { res.status(400).send(error); return; } + try { - const data = await this.csp.getAaveReserveTokensAddresses({ network, asset, version: requestedVersion }); + const data = await this.csp.getAaveReserveTokensAddresses({ network, asset, version: requestedVersion as AaveVersion }); res.json(data); } catch (err: any) { logger.error('Aave getReserveTokensAddresses error::%o', err.stack || err.message || err); From 158c7e8dc190463e90c6ceda16f95c767698c30b Mon Sep 17 00:00:00 2001 From: tmcollins4 Date: Wed, 11 Mar 2026 09:06:18 -0400 Subject: [PATCH 3/3] fix linting errors --- .../providers/chain-state/evm/abi/aavePool.ts | 2016 ++++++++--------- .../chain-state/evm/abi/aavePoolV2.ts | 1328 +++++------ .../test/integration/routes/evm.test.ts | 2 +- 3 files changed, 1673 insertions(+), 1673 deletions(-) diff --git a/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePool.ts b/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePool.ts index 907882264d..30a6b76231 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePool.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePool.ts @@ -1,1644 +1,1644 @@ export const AavePoolAbi = [ { - "inputs": [ + 'inputs': [ { - "internalType": "contract IPoolAddressesProvider", - "name": "provider", - "type": "address" + 'internalType': 'contract IPoolAddressesProvider', + 'name': 'provider', + 'type': 'address' } ], - "stateMutability": "nonpayable", - "type": "constructor" + 'stateMutability': 'nonpayable', + 'type': 'constructor' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "backer", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'backer', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "fee", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'fee', + 'type': 'uint256' } ], - "name": "BackUnbacked", - "type": "event" + 'name': 'BackUnbacked', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "enum DataTypes.InterestRateMode", - "name": "interestRateMode", - "type": "uint8" + 'indexed': false, + 'internalType': 'enum DataTypes.InterestRateMode', + 'name': 'interestRateMode', + 'type': 'uint8' }, { - "indexed": false, - "internalType": "uint256", - "name": "borrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'borrowRate', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "Borrow", - "type": "event" + 'name': 'Borrow', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'target', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "initiator", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'initiator', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "asset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "enum DataTypes.InterestRateMode", - "name": "interestRateMode", - "type": "uint8" + 'indexed': false, + 'internalType': 'enum DataTypes.InterestRateMode', + 'name': 'interestRateMode', + 'type': 'uint8' }, { - "indexed": false, - "internalType": "uint256", - "name": "premium", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'premium', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "FlashLoan", - "type": "event" + 'name': 'FlashLoan', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "asset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "totalDebt", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'totalDebt', + 'type': 'uint256' } ], - "name": "IsolationModeTotalDebtUpdated", - "type": "event" + 'name': 'IsolationModeTotalDebtUpdated', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "collateralAsset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'collateralAsset', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "debtAsset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'debtAsset', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "debtToCover", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'debtToCover', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidatedCollateralAmount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidatedCollateralAmount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "address", - "name": "liquidator", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'liquidator', + 'type': 'address' }, { - "indexed": false, - "internalType": "bool", - "name": "receiveAToken", - "type": "bool" + 'indexed': false, + 'internalType': 'bool', + 'name': 'receiveAToken', + 'type': 'bool' } ], - "name": "LiquidationCall", - "type": "event" + 'name': 'LiquidationCall', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "MintUnbacked", - "type": "event" + 'name': 'MintUnbacked', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amountMinted", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amountMinted', + 'type': 'uint256' } ], - "name": "MintedToTreasury", - "type": "event" + 'name': 'MintedToTreasury', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "RebalanceStableBorrowRate", - "type": "event" + 'name': 'RebalanceStableBorrowRate', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "repayer", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'repayer', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "bool", - "name": "useATokens", - "type": "bool" + 'indexed': false, + 'internalType': 'bool', + 'name': 'useATokens', + 'type': 'bool' } ], - "name": "Repay", - "type": "event" + 'name': 'Repay', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidityRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidityRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "stableBorrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'stableBorrowRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "variableBorrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'variableBorrowRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidityIndex", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidityIndex', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "variableBorrowIndex", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'variableBorrowIndex', + 'type': 'uint256' } ], - "name": "ReserveDataUpdated", - "type": "event" + 'name': 'ReserveDataUpdated', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "ReserveUsedAsCollateralDisabled", - "type": "event" + 'name': 'ReserveUsedAsCollateralDisabled', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "ReserveUsedAsCollateralEnabled", - "type": "event" + 'name': 'ReserveUsedAsCollateralEnabled', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "Supply", - "type": "event" + 'name': 'Supply', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": false, - "internalType": "enum DataTypes.InterestRateMode", - "name": "interestRateMode", - "type": "uint8" + 'indexed': false, + 'internalType': 'enum DataTypes.InterestRateMode', + 'name': 'interestRateMode', + 'type': 'uint8' } ], - "name": "SwapBorrowRateMode", - "type": "event" + 'name': 'SwapBorrowRateMode', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint8", - "name": "categoryId", - "type": "uint8" + 'indexed': false, + 'internalType': 'uint8', + 'name': 'categoryId', + 'type': 'uint8' } ], - "name": "UserEModeSet", - "type": "event" + 'name': 'UserEModeSet', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'to', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' } ], - "name": "Withdraw", - "type": "event" + 'name': 'Withdraw', + 'type': 'event' }, { - "inputs": [], - "name": "ADDRESSES_PROVIDER", - "outputs": [ + 'inputs': [], + 'name': 'ADDRESSES_PROVIDER', + 'outputs': [ { - "internalType": "contract IPoolAddressesProvider", - "name": "", - "type": "address" + 'internalType': 'contract IPoolAddressesProvider', + 'name': '', + 'type': 'address' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "BRIDGE_PROTOCOL_FEE", - "outputs": [ + 'inputs': [], + 'name': 'BRIDGE_PROTOCOL_FEE', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "FLASHLOAN_PREMIUM_TOTAL", - "outputs": [ + 'inputs': [], + 'name': 'FLASHLOAN_PREMIUM_TOTAL', + 'outputs': [ { - "internalType": "uint128", - "name": "", - "type": "uint128" + 'internalType': 'uint128', + 'name': '', + 'type': 'uint128' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "FLASHLOAN_PREMIUM_TO_PROTOCOL", - "outputs": [ + 'inputs': [], + 'name': 'FLASHLOAN_PREMIUM_TO_PROTOCOL', + 'outputs': [ { - "internalType": "uint128", - "name": "", - "type": "uint128" + 'internalType': 'uint128', + 'name': '', + 'type': 'uint128' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "MAX_NUMBER_RESERVES", - "outputs": [ + 'inputs': [], + 'name': 'MAX_NUMBER_RESERVES', + 'outputs': [ { - "internalType": "uint16", - "name": "", - "type": "uint16" + 'internalType': 'uint16', + 'name': '', + 'type': 'uint16' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "MAX_STABLE_RATE_BORROW_SIZE_PERCENT", - "outputs": [ + 'inputs': [], + 'name': 'MAX_STABLE_RATE_BORROW_SIZE_PERCENT', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "POOL_REVISION", - "outputs": [ + 'inputs': [], + 'name': 'POOL_REVISION', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'fee', + 'type': 'uint256' } ], - "name": "backUnbacked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'backUnbacked', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "interestRateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'interestRateMode', + 'type': 'uint256' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' } ], - "name": "borrow", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'borrow', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint8", - "name": "id", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'id', + 'type': 'uint8' }, { - "components": [ + 'components': [ { - "internalType": "uint16", - "name": "ltv", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'ltv', + 'type': 'uint16' }, { - "internalType": "uint16", - "name": "liquidationThreshold", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'liquidationThreshold', + 'type': 'uint16' }, { - "internalType": "uint16", - "name": "liquidationBonus", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'liquidationBonus', + 'type': 'uint16' }, { - "internalType": "address", - "name": "priceSource", - "type": "address" + 'internalType': 'address', + 'name': 'priceSource', + 'type': 'address' }, { - "internalType": "string", - "name": "label", - "type": "string" + 'internalType': 'string', + 'name': 'label', + 'type': 'string' } ], - "internalType": "struct DataTypes.EModeCategory", - "name": "category", - "type": "tuple" + 'internalType': 'struct DataTypes.EModeCategory', + 'name': 'category', + 'type': 'tuple' } ], - "name": "configureEModeCategory", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'configureEModeCategory', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'deposit', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "dropReserve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'dropReserve', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "from", - "type": "address" + 'internalType': 'address', + 'name': 'from', + 'type': 'address' }, { - "internalType": "address", - "name": "to", - "type": "address" + 'internalType': 'address', + 'name': 'to', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "balanceFromBefore", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'balanceFromBefore', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "balanceToBefore", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'balanceToBefore', + 'type': 'uint256' } ], - "name": "finalizeTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'finalizeTransfer', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "receiverAddress", - "type": "address" + 'internalType': 'address', + 'name': 'receiverAddress', + 'type': 'address' }, { - "internalType": "address[]", - "name": "assets", - "type": "address[]" + 'internalType': 'address[]', + 'name': 'assets', + 'type': 'address[]' }, { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" + 'internalType': 'uint256[]', + 'name': 'amounts', + 'type': 'uint256[]' }, { - "internalType": "uint256[]", - "name": "interestRateModes", - "type": "uint256[]" + 'internalType': 'uint256[]', + 'name': 'interestRateModes', + 'type': 'uint256[]' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "bytes", - "name": "params", - "type": "bytes" + 'internalType': 'bytes', + 'name': 'params', + 'type': 'bytes' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "flashLoan", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'flashLoan', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "receiverAddress", - "type": "address" + 'internalType': 'address', + 'name': 'receiverAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "bytes", - "name": "params", - "type": "bytes" + 'internalType': 'bytes', + 'name': 'params', + 'type': 'bytes' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "flashLoanSimple", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'flashLoanSimple', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getConfiguration", - "outputs": [ + 'name': 'getConfiguration', + 'outputs': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.ReserveConfigurationMap", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveConfigurationMap', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint8", - "name": "id", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'id', + 'type': 'uint8' } ], - "name": "getEModeCategoryData", - "outputs": [ + 'name': 'getEModeCategoryData', + 'outputs': [ { - "components": [ + 'components': [ { - "internalType": "uint16", - "name": "ltv", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'ltv', + 'type': 'uint16' }, { - "internalType": "uint16", - "name": "liquidationThreshold", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'liquidationThreshold', + 'type': 'uint16' }, { - "internalType": "uint16", - "name": "liquidationBonus", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'liquidationBonus', + 'type': 'uint16' }, { - "internalType": "address", - "name": "priceSource", - "type": "address" + 'internalType': 'address', + 'name': 'priceSource', + 'type': 'address' }, { - "internalType": "string", - "name": "label", - "type": "string" + 'internalType': 'string', + 'name': 'label', + 'type': 'string' } ], - "internalType": "struct DataTypes.EModeCategory", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.EModeCategory', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint16", - "name": "id", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'id', + 'type': 'uint16' } ], - "name": "getReserveAddressById", - "outputs": [ + 'name': 'getReserveAddressById', + 'outputs': [ { - "internalType": "address", - "name": "", - "type": "address" + 'internalType': 'address', + 'name': '', + 'type': 'address' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveData", - "outputs": [ + 'name': 'getReserveData', + 'outputs': [ { - "components": [ + 'components': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.ReserveConfigurationMap", - "name": "configuration", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveConfigurationMap', + 'name': 'configuration', + 'type': 'tuple' }, { - "internalType": "uint128", - "name": "liquidityIndex", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'liquidityIndex', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentLiquidityRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentLiquidityRate', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "variableBorrowIndex", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'variableBorrowIndex', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentVariableBorrowRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentVariableBorrowRate', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentStableBorrowRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentStableBorrowRate', + 'type': 'uint128' }, { - "internalType": "uint40", - "name": "lastUpdateTimestamp", - "type": "uint40" + 'internalType': 'uint40', + 'name': 'lastUpdateTimestamp', + 'type': 'uint40' }, { - "internalType": "uint16", - "name": "id", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'id', + 'type': 'uint16' }, { - "internalType": "address", - "name": "aTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'aTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "stableDebtTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'stableDebtTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "variableDebtTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'variableDebtTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "interestRateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'interestRateStrategyAddress', + 'type': 'address' }, { - "internalType": "uint128", - "name": "accruedToTreasury", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'accruedToTreasury', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "unbacked", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'unbacked', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "isolationModeTotalDebt", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'isolationModeTotalDebt', + 'type': 'uint128' } ], - "internalType": "struct DataTypes.ReserveData", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveData', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveNormalizedIncome", - "outputs": [ + 'name': 'getReserveNormalizedIncome', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveNormalizedVariableDebt", - "outputs": [ + 'name': 'getReserveNormalizedVariableDebt', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "getReservesList", - "outputs": [ + 'inputs': [], + 'name': 'getReservesList', + 'outputs': [ { - "internalType": "address[]", - "name": "", - "type": "address[]" + 'internalType': 'address[]', + 'name': '', + 'type': 'address[]' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "getUserAccountData", - "outputs": [ + 'name': 'getUserAccountData', + 'outputs': [ { - "internalType": "uint256", - "name": "totalCollateralBase", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'totalCollateralBase', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "totalDebtBase", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'totalDebtBase', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "availableBorrowsBase", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'availableBorrowsBase', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "currentLiquidationThreshold", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'currentLiquidationThreshold', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "ltv", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'ltv', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "healthFactor", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'healthFactor', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "getUserConfiguration", - "outputs": [ + 'name': 'getUserConfiguration', + 'outputs': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.UserConfigurationMap", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.UserConfigurationMap', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "getUserEMode", - "outputs": [ + 'name': 'getUserEMode', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "aTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'aTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "stableDebtAddress", - "type": "address" + 'internalType': 'address', + 'name': 'stableDebtAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "variableDebtAddress", - "type": "address" + 'internalType': 'address', + 'name': 'variableDebtAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "interestRateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'interestRateStrategyAddress', + 'type': 'address' } ], - "name": "initReserve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'initReserve', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "contract IPoolAddressesProvider", - "name": "provider", - "type": "address" + 'internalType': 'contract IPoolAddressesProvider', + 'name': 'provider', + 'type': 'address' } ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'initialize', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "collateralAsset", - "type": "address" + 'internalType': 'address', + 'name': 'collateralAsset', + 'type': 'address' }, { - "internalType": "address", - "name": "debtAsset", - "type": "address" + 'internalType': 'address', + 'name': 'debtAsset', + 'type': 'address' }, { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "internalType": "uint256", - "name": "debtToCover", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'debtToCover', + 'type': 'uint256' }, { - "internalType": "bool", - "name": "receiveAToken", - "type": "bool" + 'internalType': 'bool', + 'name': 'receiveAToken', + 'type': 'bool' } ], - "name": "liquidationCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'liquidationCall', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "mintUnbacked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'mintUnbacked', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "rebalanceStableBorrowRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'rebalanceStableBorrowRate', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "interestRateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'interestRateMode', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'deadline', + 'type': 'uint256' }, { - "internalType": "uint8", - "name": "permitV", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'permitV', + 'type': 'uint8' }, { - "internalType": "bytes32", - "name": "permitR", - "type": "bytes32" + 'internalType': 'bytes32', + 'name': 'permitR', + 'type': 'bytes32' }, { - "internalType": "bytes32", - "name": "permitS", - "type": "bytes32" + 'internalType': 'bytes32', + 'name': 'permitS', + 'type': 'bytes32' } ], - "name": "repayWithPermit", - "outputs": [ + 'name': 'repayWithPermit', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "nonpayable", - "type": "function" + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "token", - "type": "address" + 'internalType': 'address', + 'name': 'token', + 'type': 'address' }, { - "internalType": "address", - "name": "to", - "type": "address" + 'internalType': 'address', + 'name': 'to', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' } ], - "name": "rescueTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'rescueTokens', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "name": "resetIsolationModeTotalDebt", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'resetIsolationModeTotalDebt', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.ReserveConfigurationMap", - "name": "configuration", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveConfigurationMap', + 'name': 'configuration', + 'type': 'tuple' } ], - "name": "setConfiguration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setConfiguration', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "rateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'rateStrategyAddress', + 'type': 'address' } ], - "name": "setReserveInterestRateStrategyAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setReserveInterestRateStrategyAddress', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint8", - "name": "categoryId", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'categoryId', + 'type': 'uint8' } ], - "name": "setUserEMode", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setUserEMode', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "bool", - "name": "useAsCollateral", - "type": "bool" + 'internalType': 'bool', + 'name': 'useAsCollateral', + 'type': 'bool' } ], - "name": "setUserUseReserveAsCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setUserUseReserveAsCollateral', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "supply", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'supply', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' }, { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'deadline', + 'type': 'uint256' }, { - "internalType": "uint8", - "name": "permitV", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'permitV', + 'type': 'uint8' }, { - "internalType": "bytes32", - "name": "permitR", - "type": "bytes32" + 'internalType': 'bytes32', + 'name': 'permitR', + 'type': 'bytes32' }, { - "internalType": "bytes32", - "name": "permitS", - "type": "bytes32" + 'internalType': 'bytes32', + 'name': 'permitS', + 'type': 'bytes32' } ], - "name": "supplyWithPermit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'supplyWithPermit', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "interestRateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'interestRateMode', + 'type': 'uint256' } ], - "name": "swapBorrowRateMode", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'swapBorrowRateMode', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint256", - "name": "protocolFee", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'protocolFee', + 'type': 'uint256' } ], - "name": "updateBridgeProtocolFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'updateBridgeProtocolFee', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "uint128", - "name": "flashLoanPremiumTotal", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'flashLoanPremiumTotal', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "flashLoanPremiumToProtocol", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'flashLoanPremiumToProtocol', + 'type': 'uint128' } ], - "name": "updateFlashloanPremiums", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'updateFlashloanPremiums', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "to", - "type": "address" + 'internalType': 'address', + 'name': 'to', + 'type': 'address' } ], - "name": "withdraw", - "outputs": [ + 'name': 'withdraw', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "nonpayable", - "type": "function" + 'stateMutability': 'nonpayable', + 'type': 'function' } ] as const; diff --git a/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePoolV2.ts b/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePoolV2.ts index 2b1f93e195..7dac1717cc 100644 --- a/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePoolV2.ts +++ b/packages/bitcore-node/src/providers/chain-state/evm/abi/aavePoolV2.ts @@ -1,1079 +1,1079 @@ export const AavePoolAbiV2 = [ { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "borrowRateMode", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'borrowRateMode', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "borrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'borrowRate', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referral", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referral', + 'type': 'uint16' } ], - "name": "Borrow", - "type": "event" + 'name': 'Borrow', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": true, - "internalType": "uint16", - "name": "referral", - "type": "uint16" + 'indexed': true, + 'internalType': 'uint16', + 'name': 'referral', + 'type': 'uint16' } ], - "name": "Deposit", - "type": "event" + 'name': 'Deposit', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'target', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "initiator", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'initiator', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "asset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "premium", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'premium', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'indexed': false, + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "FlashLoan", - "type": "event" + 'name': 'FlashLoan', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "collateralAsset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'collateralAsset', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "debtAsset", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'debtAsset', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "debtToCover", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'debtToCover', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidatedCollateralAmount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidatedCollateralAmount', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "address", - "name": "liquidator", - "type": "address" + 'indexed': false, + 'internalType': 'address', + 'name': 'liquidator', + 'type': 'address' }, { - "indexed": false, - "internalType": "bool", - "name": "receiveAToken", - "type": "bool" + 'indexed': false, + 'internalType': 'bool', + 'name': 'receiveAToken', + 'type': 'bool' } ], - "name": "LiquidationCall", - "type": "event" + 'name': 'LiquidationCall', + 'type': 'event' }, { - "anonymous": false, - "inputs": [], - "name": "Paused", - "type": "event" + 'anonymous': false, + 'inputs': [], + 'name': 'Paused', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "RebalanceStableBorrowRate", - "type": "event" + 'name': 'RebalanceStableBorrowRate', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "repayer", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'repayer', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' } ], - "name": "Repay", - "type": "event" + 'name': 'Repay', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidityRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidityRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "stableBorrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'stableBorrowRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "variableBorrowRate", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'variableBorrowRate', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "liquidityIndex", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'liquidityIndex', + 'type': 'uint256' }, { - "indexed": false, - "internalType": "uint256", - "name": "variableBorrowIndex", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'variableBorrowIndex', + 'type': 'uint256' } ], - "name": "ReserveDataUpdated", - "type": "event" + 'name': 'ReserveDataUpdated', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "ReserveUsedAsCollateralDisabled", - "type": "event" + 'name': 'ReserveUsedAsCollateralDisabled', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "ReserveUsedAsCollateralEnabled", - "type": "event" + 'name': 'ReserveUsedAsCollateralEnabled', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "rateMode", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'rateMode', + 'type': 'uint256' } ], - "name": "Swap", - "type": "event" + 'name': 'Swap', + 'type': 'event' }, { - "anonymous": false, - "inputs": [], - "name": "Unpaused", - "type": "event" + 'anonymous': false, + 'inputs': [], + 'name': 'Unpaused', + 'type': 'event' }, { - "anonymous": false, - "inputs": [ + 'anonymous': false, + 'inputs': [ { - "indexed": true, - "internalType": "address", - "name": "reserve", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'reserve', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + 'indexed': true, + 'internalType': 'address', + 'name': 'to', + 'type': 'address' }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'indexed': false, + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' } ], - "name": "Withdraw", - "type": "event" + 'name': 'Withdraw', + 'type': 'event' }, { - "inputs": [], - "name": "FLASHLOAN_PREMIUM_TOTAL", - "outputs": [ + 'inputs': [], + 'name': 'FLASHLOAN_PREMIUM_TOTAL', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "LENDINGPOOL_REVISION", - "outputs": [ + 'inputs': [], + 'name': 'LENDINGPOOL_REVISION', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "MAX_NUMBER_RESERVES", - "outputs": [ + 'inputs': [], + 'name': 'MAX_NUMBER_RESERVES', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "MAX_STABLE_RATE_BORROW_SIZE_PERCENT", - "outputs": [ + 'inputs': [], + 'name': 'MAX_STABLE_RATE_BORROW_SIZE_PERCENT', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "interestRateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'interestRateMode', + 'type': 'uint256' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' } ], - "name": "borrow", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'borrow', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'deposit', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "from", - "type": "address" + 'internalType': 'address', + 'name': 'from', + 'type': 'address' }, { - "internalType": "address", - "name": "to", - "type": "address" + 'internalType': 'address', + 'name': 'to', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "balanceFromBefore", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'balanceFromBefore', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "balanceToBefore", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'balanceToBefore', + 'type': 'uint256' } ], - "name": "finalizeTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'finalizeTransfer', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "receiverAddress", - "type": "address" + 'internalType': 'address', + 'name': 'receiverAddress', + 'type': 'address' }, { - "internalType": "address[]", - "name": "assets", - "type": "address[]" + 'internalType': 'address[]', + 'name': 'assets', + 'type': 'address[]' }, { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" + 'internalType': 'uint256[]', + 'name': 'amounts', + 'type': 'uint256[]' }, { - "internalType": "uint256[]", - "name": "modes", - "type": "uint256[]" + 'internalType': 'uint256[]', + 'name': 'modes', + 'type': 'uint256[]' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' }, { - "internalType": "bytes", - "name": "params", - "type": "bytes" + 'internalType': 'bytes', + 'name': 'params', + 'type': 'bytes' }, { - "internalType": "uint16", - "name": "referralCode", - "type": "uint16" + 'internalType': 'uint16', + 'name': 'referralCode', + 'type': 'uint16' } ], - "name": "flashLoan", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'flashLoan', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [], - "name": "getAddressesProvider", - "outputs": [ + 'inputs': [], + 'name': 'getAddressesProvider', + 'outputs': [ { - "internalType": "contract ILendingPoolAddressesProvider", - "name": "", - "type": "address" + 'internalType': 'contract ILendingPoolAddressesProvider', + 'name': '', + 'type': 'address' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getConfiguration", - "outputs": [ + 'name': 'getConfiguration', + 'outputs': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.ReserveConfigurationMap", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveConfigurationMap', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveData", - "outputs": [ + 'name': 'getReserveData', + 'outputs': [ { - "components": [ + 'components': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.ReserveConfigurationMap", - "name": "configuration", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveConfigurationMap', + 'name': 'configuration', + 'type': 'tuple' }, { - "internalType": "uint128", - "name": "liquidityIndex", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'liquidityIndex', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "variableBorrowIndex", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'variableBorrowIndex', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentLiquidityRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentLiquidityRate', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentVariableBorrowRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentVariableBorrowRate', + 'type': 'uint128' }, { - "internalType": "uint128", - "name": "currentStableBorrowRate", - "type": "uint128" + 'internalType': 'uint128', + 'name': 'currentStableBorrowRate', + 'type': 'uint128' }, { - "internalType": "uint40", - "name": "lastUpdateTimestamp", - "type": "uint40" + 'internalType': 'uint40', + 'name': 'lastUpdateTimestamp', + 'type': 'uint40' }, { - "internalType": "address", - "name": "aTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'aTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "stableDebtTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'stableDebtTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "variableDebtTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'variableDebtTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "interestRateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'interestRateStrategyAddress', + 'type': 'address' }, { - "internalType": "uint8", - "name": "id", - "type": "uint8" + 'internalType': 'uint8', + 'name': 'id', + 'type': 'uint8' } ], - "internalType": "struct DataTypes.ReserveData", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.ReserveData', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveNormalizedIncome", - "outputs": [ + 'name': 'getReserveNormalizedIncome', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' } ], - "name": "getReserveNormalizedVariableDebt", - "outputs": [ + 'name': 'getReserveNormalizedVariableDebt', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [], - "name": "getReservesList", - "outputs": [ + 'inputs': [], + 'name': 'getReservesList', + 'outputs': [ { - "internalType": "address[]", - "name": "", - "type": "address[]" + 'internalType': 'address[]', + 'name': '', + 'type': 'address[]' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "getUserAccountData", - "outputs": [ + 'name': 'getUserAccountData', + 'outputs': [ { - "internalType": "uint256", - "name": "totalCollateralETH", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'totalCollateralETH', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "totalDebtETH", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'totalDebtETH', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "availableBorrowsETH", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'availableBorrowsETH', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "currentLiquidationThreshold", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'currentLiquidationThreshold', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "ltv", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'ltv', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "healthFactor", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'healthFactor', + 'type': 'uint256' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "getUserConfiguration", - "outputs": [ + 'name': 'getUserConfiguration', + 'outputs': [ { - "components": [ + 'components': [ { - "internalType": "uint256", - "name": "data", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'data', + 'type': 'uint256' } ], - "internalType": "struct DataTypes.UserConfigurationMap", - "name": "", - "type": "tuple" + 'internalType': 'struct DataTypes.UserConfigurationMap', + 'name': '', + 'type': 'tuple' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "aTokenAddress", - "type": "address" + 'internalType': 'address', + 'name': 'aTokenAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "stableDebtAddress", - "type": "address" + 'internalType': 'address', + 'name': 'stableDebtAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "variableDebtAddress", - "type": "address" + 'internalType': 'address', + 'name': 'variableDebtAddress', + 'type': 'address' }, { - "internalType": "address", - "name": "interestRateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'interestRateStrategyAddress', + 'type': 'address' } ], - "name": "initReserve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'initReserve', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "contract ILendingPoolAddressesProvider", - "name": "provider", - "type": "address" + 'internalType': 'contract ILendingPoolAddressesProvider', + 'name': 'provider', + 'type': 'address' } ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'initialize', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "collateralAsset", - "type": "address" + 'internalType': 'address', + 'name': 'collateralAsset', + 'type': 'address' }, { - "internalType": "address", - "name": "debtAsset", - "type": "address" + 'internalType': 'address', + 'name': 'debtAsset', + 'type': 'address' }, { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' }, { - "internalType": "uint256", - "name": "debtToCover", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'debtToCover', + 'type': 'uint256' }, { - "internalType": "bool", - "name": "receiveAToken", - "type": "bool" + 'internalType': 'bool', + 'name': 'receiveAToken', + 'type': 'bool' } ], - "name": "liquidationCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'liquidationCall', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [], - "name": "paused", - "outputs": [ + 'inputs': [], + 'name': 'paused', + 'outputs': [ { - "internalType": "bool", - "name": "", - "type": "bool" + 'internalType': 'bool', + 'name': '', + 'type': 'bool' } ], - "stateMutability": "view", - "type": "function" + 'stateMutability': 'view', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "user", - "type": "address" + 'internalType': 'address', + 'name': 'user', + 'type': 'address' } ], - "name": "rebalanceStableBorrowRate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'rebalanceStableBorrowRate', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "uint256", - "name": "rateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'rateMode', + 'type': 'uint256' }, { - "internalType": "address", - "name": "onBehalfOf", - "type": "address" + 'internalType': 'address', + 'name': 'onBehalfOf', + 'type': 'address' } ], - "name": "repay", - "outputs": [ + 'name': 'repay', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "nonpayable", - "type": "function" + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "configuration", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'configuration', + 'type': 'uint256' } ], - "name": "setConfiguration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setConfiguration', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "bool", - "name": "val", - "type": "bool" + 'internalType': 'bool', + 'name': 'val', + 'type': 'bool' } ], - "name": "setPause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setPause', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "address", - "name": "rateStrategyAddress", - "type": "address" + 'internalType': 'address', + 'name': 'rateStrategyAddress', + 'type': 'address' } ], - "name": "setReserveInterestRateStrategyAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setReserveInterestRateStrategyAddress', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "bool", - "name": "useAsCollateral", - "type": "bool" + 'internalType': 'bool', + 'name': 'useAsCollateral', + 'type': 'bool' } ], - "name": "setUserUseReserveAsCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'setUserUseReserveAsCollateral', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "rateMode", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'rateMode', + 'type': 'uint256' } ], - "name": "swapBorrowRateMode", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + 'name': 'swapBorrowRateMode', + 'outputs': [], + 'stateMutability': 'nonpayable', + 'type': 'function' }, { - "inputs": [ + 'inputs': [ { - "internalType": "address", - "name": "asset", - "type": "address" + 'internalType': 'address', + 'name': 'asset', + 'type': 'address' }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + 'internalType': 'uint256', + 'name': 'amount', + 'type': 'uint256' }, { - "internalType": "address", - "name": "to", - "type": "address" + 'internalType': 'address', + 'name': 'to', + 'type': 'address' } ], - "name": "withdraw", - "outputs": [ + 'name': 'withdraw', + 'outputs': [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + 'internalType': 'uint256', + 'name': '', + 'type': 'uint256' } ], - "stateMutability": "nonpayable", - "type": "function" + 'stateMutability': 'nonpayable', + 'type': 'function' } ] as const; diff --git a/packages/bitcore-node/test/integration/routes/evm.test.ts b/packages/bitcore-node/test/integration/routes/evm.test.ts index a5d000d93a..c339082d78 100644 --- a/packages/bitcore-node/test/integration/routes/evm.test.ts +++ b/packages/bitcore-node/test/integration/routes/evm.test.ts @@ -194,7 +194,7 @@ describe('EVM Routes', function () { }); }); - it('should get v3 account-data shape', function(done) { + it('should get v3 account-data shape', function(done) { this.timeout(30000); request.get(`/api/ETH/sepolia/aave/account/${address}?version=v3`) .expect(200)