orchai-combinator-tron-simulation-v1
v1.0.65
Published
# Table of contents
Downloads
88
Readme
ORCHAI COMBINATOR TRON SIMULATION
Table of contents
- ORCHAI COMBINATOR TRON SIMULATION
- Table of contents
- Initialize state
- Simulate state
- Simulate JustlendDAO Lending Pool
- Simulate Sunswap
import { ApplicationState } from "../State/ApplicationState";
let chainId = Number((await provider.getNetwork()).chainId);
let appState = new ApplicationState(
userAddress: String,
smartWalletAddress: String,
rpc: tron rpc, // reader
chainId: chainId // 'nile', 'grid',....
);
Initialize state
Các action liên quan đến token
Khi sử dụng đồng token nào, thì khởi tạo state về số dư của đồng token đó:
appState1 = await updateUserTokenBalance(
appState,
tokenAddress
)
Nếu sử dụng đồng TRX
appState2 = await updateUserEthBalance(
appState1
)
Tương tác với JustlendDAO lending pools
Khi chọn bất cứ action nào của JustlendDAO Lending pools fork Compound
appState = await updateForkCompoundLPState(appState, "justlend");
Simulate state
Sau khi init state xong. Với mỗi state, các simulate khác nhau
Simulate Utilities actions
Pull token
appState6 = await simulateSendToken(
appState5,
tokenAddress,
from: wallet address
to: smart wallet address,
amount: number | string
)
Sendtoken
appState7 = await simulateSendToken(
appState6,
tokenAddress,
from: smart wallet address
to: main wallet address,
amount: number | string
)
Wrap
appState8 = await simulateWrap(
appState7,
amount: number | string
)
Unwrap
appState9 = await simulateUnwrap(
appState8,
amount: number | string
)
Simulate JustlendDAO Lending Pool
Simulate Supply
appState1 = await SimulationSupplyForkCompoundLP(
appState,
from address,
"justlend",
tokenAddress,
amount
);
Simulate Borrow
appState1 = await SimulationBorrowForkCompoundLP(
appState,
smart wallet address,
to address,
"justlend",
tokenAddress,
amount
);
Simulate Repay
appState1 = await SimulationRepayForkCompoundLP(
appState,
from address,
"justlend",
tokenAddress,
amount
);
Simulate Withdraw
appState1 = await SimulationWithdrawForkCompoundLP(
appState,
smart wallet address,
to address,
"justlend",
tokenAddress,
amount
);
Simulate Collateral
inputCollateral {
tokenAddress: EthAddress,
enableAsColl: 0|1,
}
inputCollaterals = Array<inputCollateral>
appState = await SimulationCollateral(
appState,
smart wallet address,
"justlend",
inputCollaterals
);
Simulate Sunswap V1
Simulate Swap V1
appState = await simulateSunswapV1Swap(
appState,
from token,
to token,
from amount,
from address,
to address,
slippage
);
Simulate AddLiquidity V1
appState = await simulateSunswapAddliquidity(
appState1,
fromToken,
toToken,
fromAmount,
fromAddress,
toAddress,
slippage
);
Simulate RemoveLiquidity V1
appState = await simulateSunswapRemoveLiquidity(
appState1,
trxToken,
aToken,
fromAddress,
toAddress,
amountTrxToken,
amountAToken
);