mirror of
https://github.com/Instadapp/assembly.git
synced 2024-07-29 22:37:06 +00:00
wip
This commit is contained in:
parent
cd003cc517
commit
a24c42cd0d
|
@ -26,7 +26,7 @@ const {
|
|||
} = useBigNumber();
|
||||
const { getType } = usePosition();
|
||||
|
||||
const position = ref<any>({
|
||||
export const position = ref<any>({
|
||||
totalSupplyInEth: new BigNumber(0),
|
||||
totalBorrowInEth: new BigNumber(0),
|
||||
totalBorrowStableInEth: new BigNumber(0),
|
||||
|
|
|
@ -27,7 +27,7 @@ const {
|
|||
} = useBigNumber();
|
||||
const { getType } = usePosition();
|
||||
|
||||
const position = ref<any>({
|
||||
export const position = ref<any>({
|
||||
totalSupplyInEth: new BigNumber(0),
|
||||
totalBorrowInEth: new BigNumber(0),
|
||||
totalBorrowStableInEth: new BigNumber(0),
|
||||
|
|
|
@ -10,7 +10,7 @@ import abis from "~/constant/abis";
|
|||
import addresses from "~/constant/addresses";
|
||||
import { useDSA } from "../useDSA";
|
||||
|
||||
const trove = ref<any>({
|
||||
export const trove = ref<any>({
|
||||
collateral: "0",
|
||||
debt: "0",
|
||||
stabilityAmount: "0",
|
||||
|
|
|
@ -31,7 +31,7 @@ const isNewVault = ref(false);
|
|||
const vaultTypes = ref([]);
|
||||
const vaultType = ref("");
|
||||
|
||||
const vault = computed(() => {
|
||||
export const vault = computed(() => {
|
||||
const vlt = vaults.value.find(v => v.id === vaultId.value);
|
||||
if (!isNewVault.value && !!vlt) {
|
||||
return vlt;
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
import { nextTick, onMounted, ref, watch } from "@nuxtjs/composition-api";
|
||||
import {
|
||||
nextTick,
|
||||
onMounted,
|
||||
ref,
|
||||
watch,
|
||||
watchEffect
|
||||
} from "@nuxtjs/composition-api";
|
||||
import tokens from "~/constant/tokens";
|
||||
import { buildStrategy, DefineStrategy, IStrategy } from "~/core/strategies";
|
||||
import {
|
||||
buildStrategy,
|
||||
DefineStrategy,
|
||||
IStrategy,
|
||||
StrategyProtocol
|
||||
} from "~/core/strategies";
|
||||
import { position as aaveV2Position } from "./protocols/useAaveV2Position";
|
||||
import { position as compoundPosition } from "./protocols/useCompoundPosition";
|
||||
import { vault as makerPosition } from "./protocols/useMakerdaoPosition";
|
||||
import { trove as liquityPosition } from "./protocols/useLiquityPosition";
|
||||
import { useBalances } from "./useBalances";
|
||||
import { useDSA } from "./useDSA";
|
||||
import useEventBus from "./useEventBus";
|
||||
|
@ -42,7 +57,7 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
|||
showConfirmedTransaction(tx);
|
||||
await fetchBalances(true);
|
||||
|
||||
emitEvent(`protocol::${strategy.schema.protocol}::refresh`,{});
|
||||
emitEvent(`protocol::${strategy.schema.protocol}::refresh`, {});
|
||||
},
|
||||
from: account.value
|
||||
});
|
||||
|
@ -50,16 +65,31 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
|||
close();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
||||
|
||||
error.value = e.message;
|
||||
}
|
||||
pending.value = false;
|
||||
};
|
||||
|
||||
strategy.setProps({
|
||||
convertTokenAmountToBigNumber: valInt,
|
||||
getTokenByKey,
|
||||
})
|
||||
watchEffect(() => {
|
||||
let position = null;
|
||||
|
||||
if (strategy.schema.protocol == StrategyProtocol.AAVE_V2) {
|
||||
position = aaveV2Position.value;
|
||||
} else if (strategy.schema.protocol == StrategyProtocol.MAKERDAO) {
|
||||
position = makerPosition.value;
|
||||
} else if (strategy.schema.protocol == StrategyProtocol.COMPOUND) {
|
||||
position = compoundPosition.value;
|
||||
} else if (strategy.schema.protocol == StrategyProtocol.LIQUITY) {
|
||||
position = liquityPosition.value;
|
||||
}
|
||||
|
||||
strategy.setProps({
|
||||
convertTokenAmountToBigNumber: valInt,
|
||||
getTokenByKey,
|
||||
position
|
||||
});
|
||||
});
|
||||
|
||||
watch(web3, () => strategy.setWeb3(web3.value), { immediate: true });
|
||||
watch(dsa, () => strategy.setDSA(dsa.value), { immediate: true });
|
||||
|
@ -72,8 +102,8 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
|||
balances,
|
||||
() => {
|
||||
strategy.setProps({
|
||||
dsaTokens: balances.dsa[networkName.value],
|
||||
userTokens: balances.user[networkName.value]
|
||||
dsaBalances: balances.dsa[networkName.value],
|
||||
userBalances: balances.user[networkName.value]
|
||||
});
|
||||
},
|
||||
{ immediate: true }
|
||||
|
@ -99,6 +129,6 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
|||
inputs,
|
||||
submit,
|
||||
error,
|
||||
pending,
|
||||
pending
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,10 +6,12 @@ export interface IStrategyContext {
|
|||
dsa: DSA;
|
||||
web3: Web3;
|
||||
inputs: IStrategyInput<StrategyInputType>[];
|
||||
dsaTokens?: { [address: string]: IStrategyToken };
|
||||
userTokens?: { [address: string]: IStrategyToken };
|
||||
dsadsaBalances?: { [address: string]: IStrategyToken };
|
||||
userdsaBalances?: { [address: string]: IStrategyToken };
|
||||
tokens?: { [address: string]: IStrategyToken };
|
||||
convertTokenAmountToBigNumber?: (value: any, decimals: any) => string;
|
||||
getTokenByKey?: (key: string) => IStrategyToken;
|
||||
position?: any;
|
||||
}
|
||||
|
||||
export interface IStrategyToken {
|
||||
|
@ -38,6 +40,9 @@ export type StrategyInputParameterMap = {
|
|||
export interface IStrategyInput<InputType extends StrategyInputType> {
|
||||
type: InputType;
|
||||
name: string;
|
||||
|
||||
variables?: object;
|
||||
|
||||
placeholder?: (
|
||||
context: IStrategyContext & {
|
||||
input: IStrategyInput<InputType> & StrategyInputParameterMap[InputType];
|
||||
|
@ -57,7 +62,10 @@ export interface IStrategyInput<InputType extends StrategyInputType> {
|
|||
}
|
||||
|
||||
export enum StrategyProtocol {
|
||||
AAVE_V2 = "aaveV2"
|
||||
AAVE_V2 = "aaveV2",
|
||||
COMPOUND = "compound",
|
||||
MAKERDAO = "makerdao",
|
||||
LIQUITY = "liquity",
|
||||
}
|
||||
export interface IStrategy {
|
||||
protocol: StrategyProtocol;
|
||||
|
|
Loading…
Reference in New Issue
Block a user