mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
234 lines
6.5 KiB
TypeScript
234 lines
6.5 KiB
TypeScript
// import {
|
|
// deposit,
|
|
// mint,
|
|
// approve,
|
|
// redeem,
|
|
// borrow,
|
|
// repay,
|
|
// setUseAsCollateral,
|
|
// swapBorrowRateMode,
|
|
// rebalanceStableBorrowRate,
|
|
// allowInterestRedirectionTo,
|
|
// redirectInterestStream,
|
|
// redirectInterestStreamOf,
|
|
// } from '../actions';
|
|
// import {on} from 'cluster';
|
|
// import { RateMode } from '../../utils/types';
|
|
|
|
// export interface Action {
|
|
// name: string;
|
|
// args?: any;
|
|
// expected: string;
|
|
// revertMessage?: string;
|
|
// }
|
|
|
|
// export interface Story {
|
|
// description: string;
|
|
// actions: Action[];
|
|
// }
|
|
|
|
// export interface Scenario {
|
|
// title: string;
|
|
// description: string;
|
|
// stories: Story[];
|
|
// }
|
|
|
|
// export const executeStory = async (story: Story, users: string[]) => {
|
|
// for (const action of story.actions) {
|
|
// await executeAction(action, users);
|
|
// }
|
|
// };
|
|
|
|
// const executeAction = async (action: Action, users: string[]) => {
|
|
// const {reserve, user} = action.args;
|
|
// const {name, expected, revertMessage} = action;
|
|
|
|
// if (!name || name === '') {
|
|
// throw 'Action name is missing';
|
|
// }
|
|
// if (!reserve || reserve === '') {
|
|
// throw 'Invalid reserve selected for deposit';
|
|
// }
|
|
// if (!user || user === '') {
|
|
// throw `Invalid user selected to deposit into the ${reserve} reserve`;
|
|
// }
|
|
|
|
// if (!expected || expected === '') {
|
|
// throw `An expected resut for action ${name} is required`;
|
|
// }
|
|
|
|
// const userAddress = users[parseInt(user)];
|
|
|
|
// switch (name) {
|
|
// case 'mint':
|
|
// const {amount} = action.args;
|
|
|
|
// if (!amount || amount === '') {
|
|
// throw `Invalid amount of ${reserve} to mint`;
|
|
// }
|
|
|
|
// await mint(reserve, amount, userAddress);
|
|
// break;
|
|
|
|
// case 'approve':
|
|
// await approve(reserve, userAddress);
|
|
// break;
|
|
|
|
// case 'deposit':
|
|
// {
|
|
// const {amount, sendValue} = action.args;
|
|
|
|
// if (!amount || amount === '') {
|
|
// throw `Invalid amount to deposit into the ${reserve} reserve`;
|
|
// }
|
|
|
|
// await deposit(reserve, amount, userAddress, sendValue, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
|
|
// case 'redeem':
|
|
// {
|
|
// const {amount} = action.args;
|
|
|
|
// if (!amount || amount === '') {
|
|
// throw `Invalid amount to redeem from the ${reserve} reserve`;
|
|
// }
|
|
|
|
// await redeem(reserve, amount, userAddress, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
// case 'borrow':
|
|
// {
|
|
// const {amount, borrowRateMode, timeTravel} = action.args;
|
|
|
|
// if (!amount || amount === '') {
|
|
// throw `Invalid amount to borrow from the ${reserve} reserve`;
|
|
// }
|
|
|
|
// let rateMode: string = RateMode.None;
|
|
|
|
// if (borrowRateMode === 'none') {
|
|
// RateMode.None;
|
|
// } else if (borrowRateMode === 'stable') {
|
|
// rateMode = RateMode.Stable;
|
|
// } else if (borrowRateMode === 'variable') {
|
|
// rateMode = RateMode.Variable;
|
|
// } else {
|
|
// //random value, to test improper selection of the parameter
|
|
// rateMode = '4';
|
|
// }
|
|
|
|
// await borrow(reserve, amount, rateMode, userAddress, timeTravel, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
|
|
// case 'repay':
|
|
// {
|
|
// const {amount, sendValue} = action.args;
|
|
// let {onBehalfOf} = action.args;
|
|
|
|
// if (!amount || amount === '') {
|
|
// throw `Invalid amount to repay into the ${reserve} reserve`;
|
|
// }
|
|
|
|
// if (!onBehalfOf || onBehalfOf === '') {
|
|
// console.log(
|
|
// 'WARNING: No onBehalfOf specified for a repay action. Defaulting to the repayer address'
|
|
// );
|
|
// onBehalfOf = userAddress;
|
|
// } else {
|
|
// onBehalfOf = users[parseInt(onBehalfOf)];
|
|
// }
|
|
|
|
// await repay(reserve, amount, userAddress, onBehalfOf, sendValue, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
|
|
// case 'setUseAsCollateral':
|
|
// {
|
|
// const {useAsCollateral} = action.args;
|
|
|
|
// if (!useAsCollateral || useAsCollateral === '') {
|
|
// throw `A valid value for useAsCollateral needs to be set when calling setUseReserveAsCollateral on reserve ${reserve}`;
|
|
// }
|
|
// await setUseAsCollateral(reserve, userAddress, useAsCollateral, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
|
|
// case 'swapBorrowRateMode':
|
|
// await swapBorrowRateMode(reserve, userAddress, expected, revertMessage);
|
|
// break;
|
|
|
|
// case 'rebalanceStableBorrowRate':
|
|
// {
|
|
// const {target} = action.args;
|
|
|
|
// if (!target || target === '') {
|
|
// throw `A target must be selected when trying to rebalance a stable rate`;
|
|
// }
|
|
// const targetAddress = users[parseInt(target)];
|
|
|
|
// await rebalanceStableBorrowRate(
|
|
// reserve,
|
|
// userAddress,
|
|
// targetAddress,
|
|
// expected,
|
|
// revertMessage
|
|
// );
|
|
// }
|
|
// break;
|
|
|
|
// case 'redirectInterestStream':
|
|
// {
|
|
// const {to} = action.args;
|
|
|
|
// if (!to || to === '') {
|
|
// throw `A target must be selected when trying to redirect the interest`;
|
|
// }
|
|
// const toAddress = users[parseInt(to)];
|
|
|
|
// await redirectInterestStream(reserve, userAddress, toAddress, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
|
|
// case 'redirectInterestStreamOf':
|
|
// {
|
|
// const {from, to} = action.args;
|
|
|
|
// if (!from || from === '') {
|
|
// throw `A from address must be specified when trying to redirect the interest`;
|
|
// }
|
|
// if (!to || to === '') {
|
|
// throw `A target must be selected when trying to redirect the interest`;
|
|
// }
|
|
// const toAddress = users[parseInt(to)];
|
|
// const fromAddress = users[parseInt(from)];
|
|
|
|
// await redirectInterestStreamOf(
|
|
// reserve,
|
|
// userAddress,
|
|
// fromAddress,
|
|
// toAddress,
|
|
// expected,
|
|
// revertMessage
|
|
// );
|
|
// }
|
|
// break;
|
|
|
|
// case 'allowInterestRedirectionTo':
|
|
// {
|
|
// const {to} = action.args;
|
|
|
|
// if (!to || to === '') {
|
|
// throw `A target must be selected when trying to redirect the interest`;
|
|
// }
|
|
// const toAddress = users[parseInt(to)];
|
|
|
|
// await allowInterestRedirectionTo(reserve, userAddress, toAddress, expected, revertMessage);
|
|
// }
|
|
// break;
|
|
// default:
|
|
// throw `Invalid action requested: ${name}`;
|
|
// }
|
|
// };
|