Skip to content

Commit 1aac737

Browse files
authored
Merge pull request #8 from alienrobotninja/ehi_v3_try
Ehi v3 try
2 parents 66c4bac + 6b8f44e commit 1aac737

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+185
-2259
lines changed

pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,16 @@
1212
<artifactId>java_sdk</artifactId>
1313
<version>0.0.1-SNAPSHOT</version>
1414
<name>java_sdk</name>
15-
<description>Demo project for Spring Boot</description>
15+
<description>JAVA AAVE SDK</description>
16+
17+
<licenses>
18+
<license>
19+
<name>Apache License, Version 2.0</name>
20+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
21+
<distribution>repo</distribution>
22+
</license>
23+
</licenses>
24+
1625
<properties>
1726
<java.version>11</java.version>
1827
</properties>

src/bin/generated/org.web3j.model/DataTypes.bin

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/bin/generated/org.web3j.model/IAToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IAaveGovernanceV2.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IBaseUniswapAdapter.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ICreditDelegationToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IERC20.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IERC20Detailed.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IERC20WithPermit.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IExchangeAdapter.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IExecutorWithTimelock.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IExtendedPriceAggregator.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IFlashLoanReceiver.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IInitializableAToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IInitializableDebtToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingPool.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingPoolAddressesProvider.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingPoolAddressesProviderRegistry.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingPoolCollateralManager.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingPoolConfigurator.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/ILendingRateOracle.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IPriceOracle.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IPriceOracleGetter.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IProtocolDataProvider.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IReserveInterestRateStrategy.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IScaledBalanceToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IStableDebtToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IStakedToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IUiIncentiveDataProviderV2.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IUniswapV2Router01.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IUniswapV2Router02.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IVariableDebtToken.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IWETH.bin

Whitespace-only changes.

src/bin/generated/org.web3j.model/IWETHGateway.bin

Whitespace-only changes.

src/java/generated/org/web3j/model/IAaveGovernanceV2.java

Lines changed: 0 additions & 835 deletions
This file was deleted.

src/java/generated/org/web3j/model/IExecutorWithTimelock.java

Lines changed: 0 additions & 527 deletions
This file was deleted.

src/java/generated/org/web3j/model/ILendingPoolAddressesProvider.java

Lines changed: 0 additions & 682 deletions
This file was deleted.

src/main/java/com/arnAAVE/java_sdk/Staking/StakingAccess.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,34 @@
22

33
import com.arnAAVE.java_sdk.contractModels.IStakedToken;
44
import com.arnAAVE.java_sdk.lendingPool.AaveConnect;
5-
import org.web3j.crypto.Credentials;
6-
import org.web3j.protocol.Web3j;
7-
import org.web3j.protocol.core.RemoteFunctionCall;
85
import org.web3j.protocol.core.methods.response.TransactionReceipt;
9-
import org.web3j.protocol.http.HttpService;
106
import org.web3j.tx.gas.ContractGasProvider;
117
import org.web3j.tx.gas.StaticGasProvider;
128

139
import java.math.BigInteger;
1410

1511
public class StakingAccess {
16-
17-
18-
private IStakedToken iStakedToken;
19-
12+
private final IStakedToken iStakedToken;
2013

2114
public StakingAccess(AaveConnect connection, String iStakedTokenAddress, String gasFee, String gasLimit) {
2215
ContractGasProvider provider = new StaticGasProvider(new BigInteger(gasFee), new BigInteger(gasLimit));
2316
this.iStakedToken = new IStakedToken(iStakedTokenAddress, connection.getWeb3j(), connection.getCredentials(),provider);
2417
}
2518

26-
public RemoteFunctionCall<String> staked_token(){
27-
return iStakedToken.STAKED_TOKEN();
19+
public String staked_token() throws Exception {
20+
return iStakedToken.STAKED_TOKEN().send();
2821
}
2922

30-
public RemoteFunctionCall<TransactionReceipt> claimRewards(String to, BigInteger amount ){
31-
return iStakedToken.claimRewards(to, amount);
23+
public TransactionReceipt claimRewards(String to, BigInteger amount ) throws Exception {
24+
return iStakedToken.claimRewards(to, amount).send();
3225
}
3326

34-
public RemoteFunctionCall<TransactionReceipt> stake(String onBehafOf, BigInteger amount) {
35-
return iStakedToken.stake(onBehafOf,amount);
27+
public TransactionReceipt stake(String onBehafOf, BigInteger amount) throws Exception {
28+
return iStakedToken.stake(onBehafOf,amount).send();
3629
}
3730

38-
public RemoteFunctionCall<TransactionReceipt> redeem(String to, BigInteger amount){
39-
return iStakedToken.redeem(to, amount);
31+
public TransactionReceipt redeem(String to, BigInteger amount) throws Exception {
32+
return iStakedToken.redeem(to, amount).send();
4033
}
4134

4235
}

src/main/java/com/arnAAVE/java_sdk/lendingPool/Erc20.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,27 @@
99
public class Erc20 {
1010
private final AaveConnect connection;
1111

12-
private final ContractGasProvider provider;
13-
private final String assetAddress;
12+
private final IERC20 erc20;
1413

1514
public Erc20(AaveConnect connection, String gasFee, String assetAddress) {
1615
this.connection = connection;
17-
this.provider = new StaticGasProvider(new BigInteger(gasFee),new BigInteger("3000000"));
18-
this.assetAddress = assetAddress;
16+
ContractGasProvider provider = new StaticGasProvider(new BigInteger(gasFee),new BigInteger("3000000"));
17+
this.erc20 = new IERC20(assetAddress, connection.getWeb3j(), connection.getCredentials(), provider);
18+
1919
}
2020

2121
public TransactionReceipt approve(String amount) throws Exception {
22-
IERC20 erc20 = new IERC20(assetAddress,connection.getWeb3j(),connection.getCredentials(),provider);
2322

2423
return erc20.approve(connection.getCredentials().getAddress(),new BigInteger(amount)).send();
2524
}
25+
26+
public BigInteger supplyBalance() throws Exception {
27+
28+
return erc20.totalSupply().send();
29+
}
30+
31+
public BigInteger balanceOf(String address) throws Exception {
32+
33+
return erc20.balanceOf(address).send();
34+
}
2635
}

src/main/java/com/arnAAVE/java_sdk/lendingPool/LendingPool.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.web3j.tx.gas.ContractGasProvider;
1010
import org.web3j.tx.gas.StaticGasProvider;
1111

12-
import java.awt.geom.Point2D;
1312
import java.math.BigInteger;
1413
import java.util.List;
1514

@@ -68,36 +67,26 @@ TransactionReceipt repay(String amount, String assetAddress, String onBehalfOf)
6867
return lendingPool.repay(assetAddress,value,BigInteger.ONE,onBehalfOf).send();
6968
}
7069

71-
TransactionReceipt swapBorrowRate(String amount, String assetAddress, String onBehalfOf) throws Exception {
72-
String poolAddress = lendingPoolAddress.getLendingPool().send();
70+
TransactionReceipt swapBorrowRate(String amount, String assetAddress) throws Exception {
7371
BigInteger value = new BigInteger(amount);
7472

75-
ILendingPool lendingPool = ILendingPool.load(poolAddress,connection.getWeb3j(),connection.getCredentials(),provider);
76-
return lendingPool.swapBorrowRateMode(assetAddress,BigInteger.ONE).send();
73+
return lendingPool.swapBorrowRateMode(assetAddress,BigInteger.ONE).send();
7774
}
7875

7976
public TransactionReceipt setUsageAsCollateral(String asset, Boolean useAsCollateral) throws Exception {
80-
String poolAddress = lendingPoolAddress.getLendingPool().send();
81-
BigInteger value = new BigInteger(asset);
8277

83-
ILendingPool lendingPool = ILendingPool.load(poolAddress,connection.getWeb3j(),connection.getCredentials(),provider);
8478
return lendingPool.setUserUseReserveAsCollateral(asset, useAsCollateral).send();
8579
}
8680

8781
public TransactionReceipt liquidationCall(String collateralAsset, String debtAsset, String user, String debtToCover, Boolean receiveAToken) throws Exception {
88-
String poolAddress = lendingPoolAddress.getLendingPool().send();
8982
BigInteger value = new BigInteger(debtToCover);
9083

91-
ILendingPool lendingPool = ILendingPool.load(poolAddress,connection.getWeb3j(),connection.getCredentials(),provider);
9284
return lendingPool.liquidationCall(collateralAsset,debtAsset,user,value,receiveAToken).send();
9385
}
9486

95-
public RemoteFunctionCall<TransactionReceipt> flashLoans(String receiverAddress, List<String> assets, List<BigInteger> amounts, List<BigInteger> modes, String onBehalfOf, byte[] params, BigInteger referralCode) throws Exception {
96-
String poolAddress = lendingPoolAddress.getLendingPool().send();
97-
BigInteger value = new BigInteger(String.valueOf(amounts));
87+
public RemoteFunctionCall<TransactionReceipt> flashLoans(String receiverAddress, List<String> assets, List<BigInteger> amounts, List<BigInteger> modes, String onBehalfOf, byte[] params, BigInteger referralCode) {
9888

99-
ILendingPool lendingPool = ILendingPool.load(poolAddress, connection.getWeb3j(), connection.getCredentials(), provider);
100-
return lendingPool.flashLoan(receiverAddress, assets,amounts, modes,onBehalfOf,params, referralCode);
89+
return lendingPool.flashLoan(receiverAddress, assets,amounts, modes,onBehalfOf,params, referralCode);
10190
}
10291

10392
}

src/main/java/com/arnAAVE/java_sdk/lendingPool/ProtocolDataProvider.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/com/arnAAVE/java_sdk/lendingPool/ReserveData.java

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
@EqualsAndHashCode(callSuper = true)
1616
@Data
1717
@RequiredArgsConstructor
18-
@AllArgsConstructor
1918
public class ReserveData extends StaticStruct {
2019
public ILendingPool.ReserveConfigurationMap configuration;
2120

@@ -41,35 +40,35 @@ public class ReserveData extends StaticStruct {
4140

4241
public BigInteger id;
4342

44-
// public ReserveData(ILendingPool.ReserveConfigurationMap configuration, BigInteger liquidityIndex, BigInteger variableBorrowIndex, BigInteger currentLiquidityRate, BigInteger currentVariableBorrowRate, BigInteger currentStableBorrowRate, BigInteger lastUpdateTimestamp, String aTokenAddress, String stableDebtTokenAddress, String variableDebtTokenAddress, String interestRateStrategyAddress, BigInteger id) {
45-
// super(configuration,new org.web3j.abi.datatypes.generated.Uint128(liquidityIndex),new org.web3j.abi.datatypes.generated.Uint128(variableBorrowIndex),new org.web3j.abi.datatypes.generated.Uint128(currentLiquidityRate),new org.web3j.abi.datatypes.generated.Uint128(currentVariableBorrowRate),new org.web3j.abi.datatypes.generated.Uint128(currentStableBorrowRate),new org.web3j.abi.datatypes.generated.Uint40(lastUpdateTimestamp),new org.web3j.abi.datatypes.Address(aTokenAddress),new org.web3j.abi.datatypes.Address(stableDebtTokenAddress),new org.web3j.abi.datatypes.Address(variableDebtTokenAddress),new org.web3j.abi.datatypes.Address(interestRateStrategyAddress),new org.web3j.abi.datatypes.generated.Uint8(id));
46-
// this.configuration = configuration;
47-
// this.liquidityIndex = liquidityIndex;
48-
// this.variableBorrowIndex = variableBorrowIndex;
49-
// this.currentLiquidityRate = currentLiquidityRate;
50-
// this.currentVariableBorrowRate = currentVariableBorrowRate;
51-
// this.currentStableBorrowRate = currentStableBorrowRate;
52-
// this.lastUpdateTimestamp = lastUpdateTimestamp;
53-
// this.aTokenAddress = aTokenAddress;
54-
// this.stableDebtTokenAddress = stableDebtTokenAddress;
55-
// this.variableDebtTokenAddress = variableDebtTokenAddress;
56-
// this.interestRateStrategyAddress = interestRateStrategyAddress;
57-
// this.id = id;
58-
// }
59-
//
60-
// public ReserveData(ILendingPool.ReserveConfigurationMap configuration, Uint128 liquidityIndex, Uint128 variableBorrowIndex, Uint128 currentLiquidityRate, Uint128 currentVariableBorrowRate, Uint128 currentStableBorrowRate, Uint40 lastUpdateTimestamp, Address aTokenAddress, Address stableDebtTokenAddress, Address variableDebtTokenAddress, Address interestRateStrategyAddress, Uint8 id) {
61-
// super(configuration,liquidityIndex,variableBorrowIndex,currentLiquidityRate,currentVariableBorrowRate,currentStableBorrowRate,lastUpdateTimestamp,aTokenAddress,stableDebtTokenAddress,variableDebtTokenAddress,interestRateStrategyAddress,id);
62-
// this.configuration = configuration;
63-
// this.liquidityIndex = liquidityIndex.getValue();
64-
// this.variableBorrowIndex = variableBorrowIndex.getValue();
65-
// this.currentLiquidityRate = currentLiquidityRate.getValue();
66-
// this.currentVariableBorrowRate = currentVariableBorrowRate.getValue();
67-
// this.currentStableBorrowRate = currentStableBorrowRate.getValue();
68-
// this.lastUpdateTimestamp = lastUpdateTimestamp.getValue();
69-
// this.aTokenAddress = aTokenAddress.getValue();
70-
// this.stableDebtTokenAddress = stableDebtTokenAddress.getValue();
71-
// this.variableDebtTokenAddress = variableDebtTokenAddress.getValue();
72-
// this.interestRateStrategyAddress = interestRateStrategyAddress.getValue();
73-
// this.id = id.getValue();
74-
// }
43+
public ReserveData(ILendingPool.ReserveConfigurationMap configuration, BigInteger liquidityIndex, BigInteger variableBorrowIndex, BigInteger currentLiquidityRate, BigInteger currentVariableBorrowRate, BigInteger currentStableBorrowRate, BigInteger lastUpdateTimestamp, String aTokenAddress, String stableDebtTokenAddress, String variableDebtTokenAddress, String interestRateStrategyAddress, BigInteger id) {
44+
super(configuration,new org.web3j.abi.datatypes.generated.Uint128(liquidityIndex),new org.web3j.abi.datatypes.generated.Uint128(variableBorrowIndex),new org.web3j.abi.datatypes.generated.Uint128(currentLiquidityRate),new org.web3j.abi.datatypes.generated.Uint128(currentVariableBorrowRate),new org.web3j.abi.datatypes.generated.Uint128(currentStableBorrowRate),new org.web3j.abi.datatypes.generated.Uint40(lastUpdateTimestamp),new org.web3j.abi.datatypes.Address(aTokenAddress),new org.web3j.abi.datatypes.Address(stableDebtTokenAddress),new org.web3j.abi.datatypes.Address(variableDebtTokenAddress),new org.web3j.abi.datatypes.Address(interestRateStrategyAddress),new org.web3j.abi.datatypes.generated.Uint8(id));
45+
this.configuration = configuration;
46+
this.liquidityIndex = liquidityIndex;
47+
this.variableBorrowIndex = variableBorrowIndex;
48+
this.currentLiquidityRate = currentLiquidityRate;
49+
this.currentVariableBorrowRate = currentVariableBorrowRate;
50+
this.currentStableBorrowRate = currentStableBorrowRate;
51+
this.lastUpdateTimestamp = lastUpdateTimestamp;
52+
this.aTokenAddress = aTokenAddress;
53+
this.stableDebtTokenAddress = stableDebtTokenAddress;
54+
this.variableDebtTokenAddress = variableDebtTokenAddress;
55+
this.interestRateStrategyAddress = interestRateStrategyAddress;
56+
this.id = id;
57+
}
58+
59+
public ReserveData(ILendingPool.ReserveConfigurationMap configuration, Uint128 liquidityIndex, Uint128 variableBorrowIndex, Uint128 currentLiquidityRate, Uint128 currentVariableBorrowRate, Uint128 currentStableBorrowRate, Uint40 lastUpdateTimestamp, Address aTokenAddress, Address stableDebtTokenAddress, Address variableDebtTokenAddress, Address interestRateStrategyAddress, Uint8 id) {
60+
super(configuration,liquidityIndex,variableBorrowIndex,currentLiquidityRate,currentVariableBorrowRate,currentStableBorrowRate,lastUpdateTimestamp,aTokenAddress,stableDebtTokenAddress,variableDebtTokenAddress,interestRateStrategyAddress,id);
61+
this.configuration = configuration;
62+
this.liquidityIndex = liquidityIndex.getValue();
63+
this.variableBorrowIndex = variableBorrowIndex.getValue();
64+
this.currentLiquidityRate = currentLiquidityRate.getValue();
65+
this.currentVariableBorrowRate = currentVariableBorrowRate.getValue();
66+
this.currentStableBorrowRate = currentStableBorrowRate.getValue();
67+
this.lastUpdateTimestamp = lastUpdateTimestamp.getValue();
68+
this.aTokenAddress = aTokenAddress.getValue();
69+
this.stableDebtTokenAddress = stableDebtTokenAddress.getValue();
70+
this.variableDebtTokenAddress = variableDebtTokenAddress.getValue();
71+
this.interestRateStrategyAddress = interestRateStrategyAddress.getValue();
72+
this.id = id.getValue();
73+
}
7574
}
Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,61 @@
11
package com.arnAAVE.java_sdk.lendingPool;
22

3+
import org.web3j.abi.TypeReference;
4+
import org.web3j.abi.datatypes.Function;
5+
import org.web3j.abi.datatypes.Type;
36
import org.web3j.protocol.core.methods.response.TransactionReceipt;
7+
import org.web3j.tx.Transfer;
48
import org.web3j.tx.gas.ContractGasProvider;
59
import org.web3j.tx.gas.StaticGasProvider;
10+
import org.web3j.utils.Convert;
611

12+
import java.math.BigDecimal;
713
import java.math.BigInteger;
14+
import java.util.Arrays;
15+
import java.util.Collections;
816

917
public class WethGateway {
10-
private final AaveConnect connection;
1118

12-
private final ContractGasProvider provider;
13-
private final String assetAddress;
19+
private final IWETHGateway weth;
1420

1521
public WethGateway(AaveConnect connection, String assetAddress, String gasFee, String gasLimit) {
16-
this.connection = connection;
17-
this.provider = new StaticGasProvider(new BigInteger(gasFee),new BigInteger(gasLimit));
18-
this.assetAddress = assetAddress;
22+
ContractGasProvider provider = new StaticGasProvider(new BigInteger(gasFee),new BigInteger(gasLimit));
23+
weth = new IWETHGateway(assetAddress,connection.getWeb3j(),connection.getCredentials(),provider);
1924
}
2025

21-
TransactionReceipt depositEth(String onBehalfOf, String poolAddress) throws Exception {
22-
IWETHGateway weth = new IWETHGateway(assetAddress,connection.getWeb3j(),connection.getCredentials(),provider);
26+
public TransactionReceipt depositEth(String onBehalfOf, String poolAddress, String value) throws Exception {
27+
// TransactionReceipt transactionReceipt = Transfer.sendFunds(connection.getWeb3j(),connection.getCredentials(),"", new BigDecimal("0.003"), Convert.Unit.ETHER).send();
28+
29+
// public RemoteFunctionCall<TransactionReceipt> newGreeting(String _greeting, BigInteger weiValue) {
30+
// final Function function = new Function(
31+
// FUNC_NEWGREETING,
32+
// Arrays.<Type>asList(new org.web3j.abi.datatypes.Utf8String(onBehalfOf)),
33+
// Collections.<TypeReference<?>>emptyList());
34+
// return executeRemoteCallTransaction(function, value);
35+
// }
36+
// Function function = new Function(
37+
// "functionName", // function we're calling
38+
// Arrays.asList(new Type(value), ...), // Parameters to pass as Solidity Types
39+
// Arrays.asList(new TypeReference<Type>() {}, ...));
40+
//
41+
// String encodedFunction = FunctionEncoder.encode(function)
42+
// Transaction transaction = Transaction.createFunctionCallTransaction(
43+
// <from>, <gasPrice>, <gasLimit>, contractAddress, <funds>, encodedFunction);
44+
//
45+
// org.web3j.protocol.core.methods.response.EthSendTransaction transactionResponse =
46+
// web3j.ethSendTransaction(transaction).sendAsync().get();
47+
//
48+
// String transactionHash = transactionResponse.getTransactionHash();
49+
50+
// wait for response using EthGetTransactionReceipt...
2351
return weth.depositETH(poolAddress,onBehalfOf, BigInteger.ZERO).send();
2452
}
2553

2654

55+
56+
public TransactionReceipt withdrawEth(String onBehalfOf, String amount,String poolAddress) throws Exception {
57+
BigInteger value = new BigInteger(amount);
58+
59+
return weth.withdrawETH(poolAddress,value, onBehalfOf).send();
60+
}
2761
}

0 commit comments

Comments
 (0)