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();
|
} = useBigNumber();
|
||||||
const { getType } = usePosition();
|
const { getType } = usePosition();
|
||||||
|
|
||||||
const position = ref<any>({
|
export const position = ref<any>({
|
||||||
totalSupplyInEth: new BigNumber(0),
|
totalSupplyInEth: new BigNumber(0),
|
||||||
totalBorrowInEth: new BigNumber(0),
|
totalBorrowInEth: new BigNumber(0),
|
||||||
totalBorrowStableInEth: new BigNumber(0),
|
totalBorrowStableInEth: new BigNumber(0),
|
||||||
|
|
|
@ -27,7 +27,7 @@ const {
|
||||||
} = useBigNumber();
|
} = useBigNumber();
|
||||||
const { getType } = usePosition();
|
const { getType } = usePosition();
|
||||||
|
|
||||||
const position = ref<any>({
|
export const position = ref<any>({
|
||||||
totalSupplyInEth: new BigNumber(0),
|
totalSupplyInEth: new BigNumber(0),
|
||||||
totalBorrowInEth: new BigNumber(0),
|
totalBorrowInEth: new BigNumber(0),
|
||||||
totalBorrowStableInEth: new BigNumber(0),
|
totalBorrowStableInEth: new BigNumber(0),
|
||||||
|
|
|
@ -10,7 +10,7 @@ import abis from "~/constant/abis";
|
||||||
import addresses from "~/constant/addresses";
|
import addresses from "~/constant/addresses";
|
||||||
import { useDSA } from "../useDSA";
|
import { useDSA } from "../useDSA";
|
||||||
|
|
||||||
const trove = ref<any>({
|
export const trove = ref<any>({
|
||||||
collateral: "0",
|
collateral: "0",
|
||||||
debt: "0",
|
debt: "0",
|
||||||
stabilityAmount: "0",
|
stabilityAmount: "0",
|
||||||
|
|
|
@ -31,7 +31,7 @@ const isNewVault = ref(false);
|
||||||
const vaultTypes = ref([]);
|
const vaultTypes = ref([]);
|
||||||
const vaultType = ref("");
|
const vaultType = ref("");
|
||||||
|
|
||||||
const vault = computed(() => {
|
export const vault = computed(() => {
|
||||||
const vlt = vaults.value.find(v => v.id === vaultId.value);
|
const vlt = vaults.value.find(v => v.id === vaultId.value);
|
||||||
if (!isNewVault.value && !!vlt) {
|
if (!isNewVault.value && !!vlt) {
|
||||||
return 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 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 { useBalances } from "./useBalances";
|
||||||
import { useDSA } from "./useDSA";
|
import { useDSA } from "./useDSA";
|
||||||
import useEventBus from "./useEventBus";
|
import useEventBus from "./useEventBus";
|
||||||
|
@ -42,7 +57,7 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
||||||
showConfirmedTransaction(tx);
|
showConfirmedTransaction(tx);
|
||||||
await fetchBalances(true);
|
await fetchBalances(true);
|
||||||
|
|
||||||
emitEvent(`protocol::${strategy.schema.protocol}::refresh`,{});
|
emitEvent(`protocol::${strategy.schema.protocol}::refresh`, {});
|
||||||
},
|
},
|
||||||
from: account.value
|
from: account.value
|
||||||
});
|
});
|
||||||
|
@ -50,16 +65,31 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
||||||
close();
|
close();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
|
||||||
error.value = e.message;
|
error.value = e.message;
|
||||||
}
|
}
|
||||||
pending.value = false;
|
pending.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
strategy.setProps({
|
watchEffect(() => {
|
||||||
convertTokenAmountToBigNumber: valInt,
|
let position = null;
|
||||||
getTokenByKey,
|
|
||||||
})
|
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(web3, () => strategy.setWeb3(web3.value), { immediate: true });
|
||||||
watch(dsa, () => strategy.setDSA(dsa.value), { immediate: true });
|
watch(dsa, () => strategy.setDSA(dsa.value), { immediate: true });
|
||||||
|
@ -72,8 +102,8 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
||||||
balances,
|
balances,
|
||||||
() => {
|
() => {
|
||||||
strategy.setProps({
|
strategy.setProps({
|
||||||
dsaTokens: balances.dsa[networkName.value],
|
dsaBalances: balances.dsa[networkName.value],
|
||||||
userTokens: balances.user[networkName.value]
|
userBalances: balances.user[networkName.value]
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
|
@ -99,6 +129,6 @@ export function useStrategy(defineStrategy: DefineStrategy) {
|
||||||
inputs,
|
inputs,
|
||||||
submit,
|
submit,
|
||||||
error,
|
error,
|
||||||
pending,
|
pending
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,10 +6,12 @@ export interface IStrategyContext {
|
||||||
dsa: DSA;
|
dsa: DSA;
|
||||||
web3: Web3;
|
web3: Web3;
|
||||||
inputs: IStrategyInput<StrategyInputType>[];
|
inputs: IStrategyInput<StrategyInputType>[];
|
||||||
dsaTokens?: { [address: string]: IStrategyToken };
|
dsadsaBalances?: { [address: string]: IStrategyToken };
|
||||||
userTokens?: { [address: string]: IStrategyToken };
|
userdsaBalances?: { [address: string]: IStrategyToken };
|
||||||
|
tokens?: { [address: string]: IStrategyToken };
|
||||||
convertTokenAmountToBigNumber?: (value: any, decimals: any) => string;
|
convertTokenAmountToBigNumber?: (value: any, decimals: any) => string;
|
||||||
getTokenByKey?: (key: string) => IStrategyToken;
|
getTokenByKey?: (key: string) => IStrategyToken;
|
||||||
|
position?: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IStrategyToken {
|
export interface IStrategyToken {
|
||||||
|
@ -38,6 +40,9 @@ export type StrategyInputParameterMap = {
|
||||||
export interface IStrategyInput<InputType extends StrategyInputType> {
|
export interface IStrategyInput<InputType extends StrategyInputType> {
|
||||||
type: InputType;
|
type: InputType;
|
||||||
name: string;
|
name: string;
|
||||||
|
|
||||||
|
variables?: object;
|
||||||
|
|
||||||
placeholder?: (
|
placeholder?: (
|
||||||
context: IStrategyContext & {
|
context: IStrategyContext & {
|
||||||
input: IStrategyInput<InputType> & StrategyInputParameterMap[InputType];
|
input: IStrategyInput<InputType> & StrategyInputParameterMap[InputType];
|
||||||
|
@ -57,7 +62,10 @@ export interface IStrategyInput<InputType extends StrategyInputType> {
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum StrategyProtocol {
|
export enum StrategyProtocol {
|
||||||
AAVE_V2 = "aaveV2"
|
AAVE_V2 = "aaveV2",
|
||||||
|
COMPOUND = "compound",
|
||||||
|
MAKERDAO = "makerdao",
|
||||||
|
LIQUITY = "liquity",
|
||||||
}
|
}
|
||||||
export interface IStrategy {
|
export interface IStrategy {
|
||||||
protocol: StrategyProtocol;
|
protocol: StrategyProtocol;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user