mirror of
				https://github.com/Instadapp/assembly.git
				synced 2024-07-29 22:37:06 +00:00 
			
		
		
		
	wip
This commit is contained in:
		
							parent
							
								
									fe8e9a7e70
								
							
						
					
					
						commit
						fe9ba6d716
					
				| 
						 | 
				
			
			@ -1,6 +1,10 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div v-if="active && activeAccount" class="relative w-[193px]" v-click-outside="hide">
 | 
			
		||||
    <div
 | 
			
		||||
      v-if="active && activeAccount"
 | 
			
		||||
      class="relative w-[193px]"
 | 
			
		||||
      v-click-outside="hide"
 | 
			
		||||
    >
 | 
			
		||||
      <button
 | 
			
		||||
        type="button"
 | 
			
		||||
        class=" relative w-full border border-primary-blue-border rounded pl-3 pr-10 py-2 text-left focus:outline-none focus:ring-1 focus:ring-[#0846E4] focus:border-[#0846E4] sm:text-sm"
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +147,7 @@
 | 
			
		|||
    </div>
 | 
			
		||||
    <button
 | 
			
		||||
      v-else-if="!active"
 | 
			
		||||
      @click="activate"
 | 
			
		||||
      @click="open"
 | 
			
		||||
      class="hidden md:flex bg-primary-blue-dark hover:bg-primary-blue-hover shadow text-white p-3 rounded h-9  items-center justify-center w-40"
 | 
			
		||||
    >
 | 
			
		||||
      Connect
 | 
			
		||||
| 
						 | 
				
			
			@ -155,12 +159,14 @@
 | 
			
		|||
import { defineComponent, ref, watch } from '@nuxtjs/composition-api'
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
import { useFormatting } from '~/composables/useFormatting';
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3';
 | 
			
		||||
import { useWeb3Modal } from '~/composables/useWeb3Modal';
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  setup() {
 | 
			
		||||
    const { activeAccount } = useDSA()
 | 
			
		||||
    const { active, deactivate, activate } = useWeb3()
 | 
			
		||||
    const { open } = useWeb3Modal()
 | 
			
		||||
    const { shortenHash } = useFormatting()
 | 
			
		||||
 | 
			
		||||
    const show = ref(false)
 | 
			
		||||
| 
						 | 
				
			
			@ -172,6 +178,7 @@ export default defineComponent({
 | 
			
		|||
    return {
 | 
			
		||||
      hide,
 | 
			
		||||
      show,
 | 
			
		||||
      open,
 | 
			
		||||
      activeAccount,
 | 
			
		||||
      active,
 | 
			
		||||
      activate,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@
 | 
			
		|||
<script lang="ts">
 | 
			
		||||
import { defineComponent } from "@nuxtjs/composition-api";
 | 
			
		||||
import { useTenderly } from "~/composables/useTenderly";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import ToggleButton from "./common/input/ToggleButton.vue";
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										51
									
								
								components/modal/web3/Web3Modal.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								components/modal/web3/Web3Modal.vue
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    class="inline-block w-full max-w-md px-8 py-7 overflow-hidden text-left align-bottom transition-all transform bg-white border border-opacity-50 rounded-lg shadow-xl  dark:bg-dark-400 sm:my-8 sm:align-middle sm:p-6 border-green-light"
 | 
			
		||||
    role="dialog"
 | 
			
		||||
    aria-modal="true"
 | 
			
		||||
    aria-labelledby="modal-headline"
 | 
			
		||||
  >
 | 
			
		||||
    <div>
 | 
			
		||||
      <div class="mt-3 text-center sm:mt-5">
 | 
			
		||||
        <h3 id="modal-headline" class="font-bold text-2xl">
 | 
			
		||||
          Connect your wallet
 | 
			
		||||
        </h3>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="my-10">
 | 
			
		||||
        <button @click="connect">
 | 
			
		||||
          Metamask
 | 
			
		||||
        </button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { defineComponent, ref } from '@nuxtjs/composition-api'
 | 
			
		||||
import Input from '~/components/common/input/Input.vue'
 | 
			
		||||
import { useModal } from '~/composables/useModal'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import { injected } from '~/connectors'
 | 
			
		||||
import ButtonCTA from '../../common/input/ButtonCTA.vue'
 | 
			
		||||
import ButtonCTAOutlined from '../../common/input/ButtonCTAOutlined.vue'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { ButtonCTA, ButtonCTAOutlined, Input },
 | 
			
		||||
  setup() {
 | 
			
		||||
    const { close } = useModal()
 | 
			
		||||
    const { activate } = useWeb3()
 | 
			
		||||
 | 
			
		||||
    const connect = async () => {
 | 
			
		||||
      await activate(injected)
 | 
			
		||||
 | 
			
		||||
      close()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
      close,
 | 
			
		||||
      connect
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
})
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import atokens from '~/constant/atokens'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
| 
						 | 
				
			
			@ -87,6 +87,7 @@ import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		|||
import { useNotification } from '~/composables/useNotification'
 | 
			
		||||
import Button from '~/components/Button.vue'
 | 
			
		||||
import { useSidebar } from '~/composables/useSidebar'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, Input, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +96,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account, web3 } = useWeb3()
 | 
			
		||||
    const { account, library } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +111,7 @@ export default defineComponent({
 | 
			
		|||
    const amount = ref('')
 | 
			
		||||
    const amountParsed = computed(() => parseSafeFloat(amount.value))
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[networkName.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[activeNetworkId.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
 | 
			
		||||
    const token = computed(() => getTokenByKey(rootTokenKey.value))
 | 
			
		||||
    const symbol = computed(() => token.value?.symbol)
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +128,7 @@ export default defineComponent({
 | 
			
		|||
 | 
			
		||||
      return {
 | 
			
		||||
        amount: { message: validateAmount(amountParsed.value, balance.value), show: hasAmountValue },
 | 
			
		||||
        accountAddress: { message: web3.value && !web3.value.utils.isAddress(accountAddress.value) ? 'Enter valid address!' : null, show: accountAddress.value.length > 0 },
 | 
			
		||||
        accountAddress: { message: library.value && !library.value.utils.isAddress(accountAddress.value) ? 'Enter valid address!' : null, show: accountAddress.value.length > 0 },
 | 
			
		||||
        auth: { message: validateIsLoggedIn(!!account.value), show: true },
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import atokens from '~/constant/atokens'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
| 
						 | 
				
			
			@ -84,6 +84,7 @@ import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		|||
import { useNotification } from '~/composables/useNotification'
 | 
			
		||||
import Button from '~/components/Button.vue'
 | 
			
		||||
import { useSidebar } from '~/composables/useSidebar'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +93,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +119,7 @@ export default defineComponent({
 | 
			
		|||
    const amount = ref('')
 | 
			
		||||
    const amountParsed = computed(() => parseSafeFloat(amount.value))
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[networkName.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[activeNetworkId.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
 | 
			
		||||
    const currentPosition = computed(() =>
 | 
			
		||||
      displayPositions.value.find((position) => position.key === rootTokenKey.value)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,7 +99,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import atokens from '~/constant/atokens'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +107,7 @@ import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		|||
import { useNotification } from '~/composables/useNotification'
 | 
			
		||||
import Button from '~/components/Button.vue'
 | 
			
		||||
import { useSidebar } from '~/composables/useSidebar'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +116,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { getBalanceByKey, getBalanceRawByKey, fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +141,7 @@ export default defineComponent({
 | 
			
		|||
    const amount = ref('')
 | 
			
		||||
    const amountParsed = computed(() => parseSafeFloat(amount.value))
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[networkName.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[activeNetworkId.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
 | 
			
		||||
    const currentPosition = computed(() =>
 | 
			
		||||
      displayPositions.value.find((position) => position.key === rootTokenKey.value)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,7 +80,7 @@ import { useValidation } from "~/composables/useValidation";
 | 
			
		|||
import { useToken } from "~/composables/useToken";
 | 
			
		||||
import { useParsing } from "~/composables/useParsing";
 | 
			
		||||
import { useMaxAmountActive } from "~/composables/useMaxAmountActive";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import atokens from "~/constant/atokens";
 | 
			
		||||
import ToggleButton from "~/components/common/input/ToggleButton.vue";
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +88,7 @@ import ButtonCTA from "~/components/common/input/ButtonCTA.vue";
 | 
			
		|||
import Button from "~/components/Button.vue";
 | 
			
		||||
import { useSidebar } from "~/composables/useSidebar";
 | 
			
		||||
import DSA from "dsa-connect";
 | 
			
		||||
import { useNetwork } from "~/composables/useNetwork";
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
  props: {
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +96,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar();
 | 
			
		||||
    const { networkName, account } = useWeb3();
 | 
			
		||||
    const { account } = useWeb3();
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA();
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken();
 | 
			
		||||
    const { getBalanceByKey, fetchBalances } = useBalances();
 | 
			
		||||
| 
						 | 
				
			
			@ -129,7 +131,7 @@ export default defineComponent({
 | 
			
		|||
    const amountParsed = computed(() => parseSafeFloat(amount.value));
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() =>
 | 
			
		||||
      atokens[networkName.value].rootTokens.includes(props.tokenKey)
 | 
			
		||||
      atokens[activeNetworkId.value].rootTokens.includes(props.tokenKey)
 | 
			
		||||
        ? props.tokenKey
 | 
			
		||||
        : "eth"
 | 
			
		||||
    );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import atokens from '~/constant/atokens'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +89,7 @@ import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		|||
import { useNotification } from '~/composables/useNotification'
 | 
			
		||||
import Button from '~/components/Button.vue'
 | 
			
		||||
import { useSidebar } from '~/composables/useSidebar'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +98,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +134,7 @@ export default defineComponent({
 | 
			
		|||
    const amount = ref('')
 | 
			
		||||
    const amountParsed = computed(() => parseSafeFloat(amount.value))
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[networkName.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => atokens[activeNetworkId.value].rootTokens.includes(props.tokenKey) ? props.tokenKey : 'eth')
 | 
			
		||||
 | 
			
		||||
    const token = computed(() => getTokenByKey(rootTokenKey.value))
 | 
			
		||||
    const symbol = computed(() => token.value?.symbol)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ import { useValidators } from '~/composables/useValidators'
 | 
			
		|||
import { useValidation } from '~/composables/useValidation'
 | 
			
		||||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -76,6 +76,7 @@ import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition
 | 
			
		|||
import ctokens from '~/constant/ctokens'
 | 
			
		||||
import tokenIdMapping from '~/constant/tokenIdMapping'
 | 
			
		||||
import { useBalances } from '~/composables/useBalances'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -84,7 +85,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +98,7 @@ export default defineComponent({
 | 
			
		|||
    const tokenId = computed(() => props.tokenId)
 | 
			
		||||
    const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[activeNetworkId.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
 | 
			
		||||
    const { stats, status: initialStatus, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
 | 
			
		||||
      overridePosition: (position) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,7 +90,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -100,6 +100,7 @@ import { useSidebar } from '~/composables/useSidebar'
 | 
			
		|||
import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition'
 | 
			
		||||
import ctokens from '~/constant/ctokens'
 | 
			
		||||
import tokenIdMapping from '~/constant/tokenIdMapping'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +109,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { getBalanceByKey, getBalanceRawByKey, fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +121,7 @@ export default defineComponent({
 | 
			
		|||
    const tokenId = computed(() => props.tokenId)
 | 
			
		||||
    const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[activeNetworkId.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +88,7 @@ import { useSidebar } from '~/composables/useSidebar'
 | 
			
		|||
import tokenIdMapping from '~/constant/tokenIdMapping'
 | 
			
		||||
import ctokens from '~/constant/ctokens'
 | 
			
		||||
import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +97,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { getBalanceByKey, fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +110,7 @@ export default defineComponent({
 | 
			
		|||
    const tokenId = computed(() => props.tokenId)
 | 
			
		||||
    const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[activeNetworkId.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
 | 
			
		||||
    const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
 | 
			
		||||
      overridePosition: (position) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -90,6 +90,7 @@ import tokenIdMapping from '~/constant/tokenIdMapping'
 | 
			
		|||
import ctokens from '~/constant/ctokens'
 | 
			
		||||
import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition'
 | 
			
		||||
import { useBalances } from '~/composables/useBalances'
 | 
			
		||||
import { useNetwork } from '~/composables/useNetwork'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +99,8 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { activeNetworkId } = useNetwork()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { fetchBalances } = useBalances()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +112,7 @@ export default defineComponent({
 | 
			
		|||
    const tokenId = computed(() => props.tokenId)
 | 
			
		||||
    const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
 | 
			
		||||
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
    const rootTokenKey = computed(() => ctokens[activeNetworkId.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const { stats, status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,7 +97,7 @@ import { useValidators } from '~/composables/useValidators'
 | 
			
		|||
import { useValidation } from '~/composables/useValidation'
 | 
			
		||||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -107,7 +107,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import atokens from '~/constant/atokens'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,7 +95,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +108,7 @@ export default defineComponent({
 | 
			
		|||
  components: { InputNumeric, ToggleButton, ButtonCTA, Button },
 | 
			
		||||
  setup() {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { valInt } = useToken()
 | 
			
		||||
    const { getBalanceByKey, fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,7 +96,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,7 +91,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -107,7 +107,7 @@ export default defineComponent({
 | 
			
		|||
  },
 | 
			
		||||
  setup(props) {
 | 
			
		||||
    const { close } = useSidebar()
 | 
			
		||||
    const { networkName, account } = useWeb3()
 | 
			
		||||
    const { account } = useWeb3()
 | 
			
		||||
    const { dsa } = useDSA()
 | 
			
		||||
    const { getTokenByKey, valInt } = useToken()
 | 
			
		||||
    const { getBalanceByKey, getBalanceRawByKey, fetchBalances } = useBalances()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -77,7 +77,7 @@ import { useValidation } from '~/composables/useValidation'
 | 
			
		|||
import { useToken } from '~/composables/useToken'
 | 
			
		||||
import { useParsing } from '~/composables/useParsing'
 | 
			
		||||
import { useMaxAmountActive } from '~/composables/useMaxAmountActive'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import ToggleButton from '~/components/common/input/ToggleButton.vue'
 | 
			
		||||
import { useDSA } from '~/composables/useDSA'
 | 
			
		||||
import ButtonCTA from '~/components/common/input/ButtonCTA.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,11 +3,11 @@ import { AbiItem } from "web3-utils";
 | 
			
		|||
import aaveV2ABI from "~/abis/read/aaveV2.json";
 | 
			
		||||
import { computed, ref, watch } from "@nuxtjs/composition-api";
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import BigNumber from "bignumber.js";
 | 
			
		||||
import atokensV2 from "~/constant/atokensV2";
 | 
			
		||||
import tokens from "~/constant/tokens";
 | 
			
		||||
import { Network } from "~/composables/useNetwork";
 | 
			
		||||
import { Network, useNetwork } from "~/composables/useNetwork";
 | 
			
		||||
import { useBigNumber } from "~/composables/useBigNumber";
 | 
			
		||||
import { usePosition } from "~/composables/usePosition";
 | 
			
		||||
import { useToken } from "~/composables/useToken";
 | 
			
		||||
| 
						 | 
				
			
			@ -65,11 +65,12 @@ export function useAaveV2Position(
 | 
			
		|||
) {
 | 
			
		||||
  overridePosition = overridePosition || (pos => pos);
 | 
			
		||||
 | 
			
		||||
  const { web3, chainId, networkName } = useWeb3();
 | 
			
		||||
  const { library, chainId } = useWeb3();
 | 
			
		||||
  const { activeNetworkId } = useNetwork();
 | 
			
		||||
  const { activeAccount } = useDSA();
 | 
			
		||||
  const { getTokenByKey, allATokensV2 } = useToken();
 | 
			
		||||
  const { byMaxSupplyOrBorrowDesc } = useSorting()
 | 
			
		||||
  
 | 
			
		||||
  const { byMaxSupplyOrBorrowDesc } = useSorting();
 | 
			
		||||
 | 
			
		||||
  const resolver = computed(() =>
 | 
			
		||||
    chainId.value === 1
 | 
			
		||||
      ? "0xFb3a1D56eD56F046721B9aCa749895100754578b"
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +78,7 @@ export function useAaveV2Position(
 | 
			
		|||
  );
 | 
			
		||||
 | 
			
		||||
  const fetchPosition = async () => {
 | 
			
		||||
    if (!web3.value) {
 | 
			
		||||
    if (!library.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -85,20 +86,20 @@ export function useAaveV2Position(
 | 
			
		|||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const aaveResolverInstance = new web3.value.eth.Contract(
 | 
			
		||||
    const aaveResolverInstance = new library.value.eth.Contract(
 | 
			
		||||
      aaveV2ABI as AbiItem[],
 | 
			
		||||
      resolver.value
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    const aaveTokensArr = atokensV2[networkName.value].allTokens.map(
 | 
			
		||||
      a => tokens[networkName.value].getTokenByKey(a.root).address
 | 
			
		||||
    const aaveTokensArr = atokensV2[activeNetworkId.value].allTokens.map(
 | 
			
		||||
      a => tokens[activeNetworkId.value].getTokenByKey(a.root).address
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    const aaveRawData = await aaveResolverInstance.methods
 | 
			
		||||
      .getPosition(activeAccount.value.address, aaveTokensArr)
 | 
			
		||||
      .call();
 | 
			
		||||
 | 
			
		||||
    const newPos = calculateAavePosition(aaveRawData, networkName.value);
 | 
			
		||||
    const newPos = calculateAavePosition(aaveRawData, activeNetworkId.value);
 | 
			
		||||
 | 
			
		||||
    return newPos;
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			@ -107,9 +108,8 @@ export function useAaveV2Position(
 | 
			
		|||
    position.value = await fetchPosition();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  watch(
 | 
			
		||||
    web3,
 | 
			
		||||
    library,
 | 
			
		||||
    async val => {
 | 
			
		||||
      if (val) {
 | 
			
		||||
        refreshPosition();
 | 
			
		||||
| 
						 | 
				
			
			@ -165,7 +165,7 @@ export function useAaveV2Position(
 | 
			
		|||
  );
 | 
			
		||||
 | 
			
		||||
  const rewardTokenPriceInUsd = computed(() => {
 | 
			
		||||
    if (networkName.value === Network.Polygon) {
 | 
			
		||||
    if (activeNetworkId.value === Network.Polygon) {
 | 
			
		||||
      return ensureValue(
 | 
			
		||||
        position.value.data.find(position => position.key === "matic")
 | 
			
		||||
          ?.priceInUsd
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,10 +3,10 @@ import { AbiItem } from "web3-utils";
 | 
			
		|||
import compoundABI from "~/abis/read/compound.json";
 | 
			
		||||
import { computed, ref, watch } from "@nuxtjs/composition-api";
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import BigNumber from "bignumber.js";
 | 
			
		||||
import tokens from "~/constant/tokens";
 | 
			
		||||
import { Network } from "~/composables/useNetwork";
 | 
			
		||||
import { Network, useNetwork } from "~/composables/useNetwork";
 | 
			
		||||
import { useBigNumber } from "~/composables/useBigNumber";
 | 
			
		||||
import { usePosition } from "~/composables/usePosition";
 | 
			
		||||
import { useToken } from "~/composables/useToken";
 | 
			
		||||
| 
						 | 
				
			
			@ -62,14 +62,15 @@ export function useCompoundPosition(
 | 
			
		|||
) {
 | 
			
		||||
  overridePosition = overridePosition || (pos => pos);
 | 
			
		||||
 | 
			
		||||
  const { web3, networkName } = useWeb3();
 | 
			
		||||
  const { library } = useWeb3();
 | 
			
		||||
  const { activeNetworkId } = useNetwork()
 | 
			
		||||
  const { activeAccount } = useDSA();
 | 
			
		||||
  const { getTokenByKey } = useToken();
 | 
			
		||||
  const { byMaxSupplyOrBorrowDesc } = useSorting()
 | 
			
		||||
  const resolver = computed(() => addresses.mainnet.resolver.compound);
 | 
			
		||||
 | 
			
		||||
  const fetchPosition = async () => {
 | 
			
		||||
    if (!web3.value) {
 | 
			
		||||
    if (!library.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -77,12 +78,12 @@ export function useCompoundPosition(
 | 
			
		|||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const resolverInstance = new web3.value.eth.Contract(
 | 
			
		||||
    const resolverInstance = new library.value.eth.Contract(
 | 
			
		||||
      compoundABI as AbiItem[],
 | 
			
		||||
      resolver.value
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    const tokensArr = ctokens[networkName.value].allTokens.map(a => a.address);
 | 
			
		||||
    const tokensArr = ctokens[activeNetworkId.value].allTokens.map(a => a.address);
 | 
			
		||||
 | 
			
		||||
    const compoundRawData = await resolverInstance.methods
 | 
			
		||||
      .getPosition(activeAccount.value.address, tokensArr)
 | 
			
		||||
| 
						 | 
				
			
			@ -90,7 +91,7 @@ export function useCompoundPosition(
 | 
			
		|||
 | 
			
		||||
    const newPos = calculateCompoundPosition(
 | 
			
		||||
      compoundRawData,
 | 
			
		||||
      networkName.value
 | 
			
		||||
      activeNetworkId.value
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    return newPos;
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +102,7 @@ export function useCompoundPosition(
 | 
			
		|||
  };
 | 
			
		||||
 | 
			
		||||
  watch(
 | 
			
		||||
    web3,
 | 
			
		||||
    library,
 | 
			
		||||
    async val => {
 | 
			
		||||
      if (val) {
 | 
			
		||||
        refreshPosition();
 | 
			
		||||
| 
						 | 
				
			
			@ -162,7 +163,7 @@ export function useCompoundPosition(
 | 
			
		|||
      return [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return ctokens[networkName.value].allTokens
 | 
			
		||||
    return ctokens[activeNetworkId.value].allTokens
 | 
			
		||||
      .flatMap(ctoken => {
 | 
			
		||||
        const token = getTokenByKey(ctoken.root);
 | 
			
		||||
        if (!token) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ import { computed, Ref, ref, watch } from "@nuxtjs/composition-api";
 | 
			
		|||
import { useBalances } from "../useBalances";
 | 
			
		||||
import { useBigNumber } from "../useBigNumber";
 | 
			
		||||
import { useToken } from "../useToken";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import { AbiItem } from "web3-utils";
 | 
			
		||||
import BigNumber from "bignumber.js";
 | 
			
		||||
BigNumber.config({ POW_PRECISION: 200 });
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ export function useLiquityPosition(
 | 
			
		|||
  collateralAmountRef: Ref = null,
 | 
			
		||||
  debtAmountRef: Ref = null
 | 
			
		||||
) {
 | 
			
		||||
  const { web3 } = useWeb3();
 | 
			
		||||
  const { library } = useWeb3();
 | 
			
		||||
  const { activeAccount } = useDSA();
 | 
			
		||||
 | 
			
		||||
  const { isZero, times, div, max, minus, plus } = useBigNumber();
 | 
			
		||||
| 
						 | 
				
			
			@ -137,22 +137,22 @@ export function useLiquityPosition(
 | 
			
		|||
  );
 | 
			
		||||
 | 
			
		||||
  const fetchPosition = async () => {
 | 
			
		||||
    if (!web3.value) {
 | 
			
		||||
    if (!library.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    troveTypes.value = await getTroveTypes(web3.value);
 | 
			
		||||
    troveTypes.value = await getTroveTypes(library.value);
 | 
			
		||||
 | 
			
		||||
    if (!activeAccount.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    trove.value = await getTrove(activeAccount.value.address, web3.value);
 | 
			
		||||
    trove.value = await getTrove(activeAccount.value.address, library.value);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  async function getTrovePositionHints(collateralInWei, debtInWei) {
 | 
			
		||||
    try {
 | 
			
		||||
      const liquityInstance = new web3.value.eth.Contract(
 | 
			
		||||
      const liquityInstance = new library.value.eth.Contract(
 | 
			
		||||
        abis.resolver.liquity as AbiItem[],
 | 
			
		||||
        addresses.mainnet.resolver.liquity
 | 
			
		||||
      );
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +179,7 @@ export function useLiquityPosition(
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  watch(
 | 
			
		||||
    web3,
 | 
			
		||||
    library,
 | 
			
		||||
    async val => {
 | 
			
		||||
      if (val) {
 | 
			
		||||
        fetchPosition();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ import makerVaults from "~/constant/tokens/vaults";
 | 
			
		|||
import { useBigNumber } from "~/composables/useBigNumber";
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
import { useToken } from "~/composables/useToken";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import { AbiItem } from "web3-utils";
 | 
			
		||||
 | 
			
		||||
const defaultVault = {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +54,7 @@ export function useMakerdaoPosition(
 | 
			
		|||
  collateralAmountRef: Ref = null,
 | 
			
		||||
  debtAmountRef: Ref = null
 | 
			
		||||
) {
 | 
			
		||||
  const { web3, chainId, networkName } = useWeb3();
 | 
			
		||||
  const { library } = useWeb3();
 | 
			
		||||
  const { activeAccount } = useDSA();
 | 
			
		||||
  const { isZero, ensureValue, times, div, max, gt } = useBigNumber();
 | 
			
		||||
  const { getTokenByKey } = useToken();
 | 
			
		||||
| 
						 | 
				
			
			@ -117,23 +117,23 @@ export function useMakerdaoPosition(
 | 
			
		|||
  );
 | 
			
		||||
 | 
			
		||||
  const fetchPosition = async () => {
 | 
			
		||||
    if (!web3.value) {
 | 
			
		||||
    if (!library.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    vaultTypes.value = await getVaultTypes(web3.value);
 | 
			
		||||
    vaultTypes.value = await getVaultTypes(library.value);
 | 
			
		||||
 | 
			
		||||
    if (!activeAccount.value) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    vaults.value = await getVaults(activeAccount.value.address, web3.value);
 | 
			
		||||
    vaults.value = await getVaults(activeAccount.value.address, library.value);
 | 
			
		||||
    if (vaults.value.length > 0 && !vaultId.value) {
 | 
			
		||||
      vaultId.value = vaults.value[0].id;
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  watch(
 | 
			
		||||
    web3,
 | 
			
		||||
    library,
 | 
			
		||||
    async val => {
 | 
			
		||||
      if (val) {
 | 
			
		||||
        fetchPosition();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,8 +11,8 @@ import addresses from "~/constant/addresses";
 | 
			
		|||
import tokens from "~/constant/tokens";
 | 
			
		||||
import uniPoolTokens from "~/constant/uniPoolTokens";
 | 
			
		||||
import { useDSA } from "./useDSA";
 | 
			
		||||
import { Network } from "./useNetwork";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { Network, useNetwork } from "./useNetwork";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import Web3 from "web3";
 | 
			
		||||
import { AbiItem } from "web3-utils";
 | 
			
		||||
import { useToken } from "./useToken";
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +32,8 @@ const prices = reactive({
 | 
			
		|||
export function useBalances() {
 | 
			
		||||
  const { $axios } = useContext();
 | 
			
		||||
  const { times, plus, ensureValue } = useBigNumber();
 | 
			
		||||
  const { account, networkName, web3 } = useWeb3();
 | 
			
		||||
  const { account, library } = useWeb3();
 | 
			
		||||
  const { activeNetworkId } = useNetwork()
 | 
			
		||||
  const { activeAccount } = useDSA();
 | 
			
		||||
  const { getTokenByKey } = useToken();
 | 
			
		||||
  const { by } = useSorting();
 | 
			
		||||
| 
						 | 
				
			
			@ -48,12 +49,12 @@ export function useBalances() {
 | 
			
		|||
      if (!account.value) return;
 | 
			
		||||
      balances.user = {
 | 
			
		||||
        mainnet:
 | 
			
		||||
          networkName.value === Network.Mainnet
 | 
			
		||||
            ? await getBalances(account.value, Network.Mainnet, web3.value)
 | 
			
		||||
          activeNetworkId.value === Network.Mainnet
 | 
			
		||||
            ? await getBalances(account.value, Network.Mainnet, library.value)
 | 
			
		||||
            : {},
 | 
			
		||||
        polygon:
 | 
			
		||||
          networkName.value === Network.Polygon
 | 
			
		||||
            ? await getBalances(account.value, Network.Polygon, web3.value)
 | 
			
		||||
          activeNetworkId.value === Network.Polygon
 | 
			
		||||
            ? await getBalances(account.value, Network.Polygon, library.value)
 | 
			
		||||
            : {}
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -63,19 +64,19 @@ export function useBalances() {
 | 
			
		|||
 | 
			
		||||
      balances.dsa = {
 | 
			
		||||
        mainnet:
 | 
			
		||||
          networkName.value === Network.Mainnet
 | 
			
		||||
          activeNetworkId.value === Network.Mainnet
 | 
			
		||||
            ? await getBalances(
 | 
			
		||||
                activeAccount.value.address,
 | 
			
		||||
                Network.Mainnet,
 | 
			
		||||
                web3.value
 | 
			
		||||
                library.value
 | 
			
		||||
              )
 | 
			
		||||
            : {},
 | 
			
		||||
        polygon:
 | 
			
		||||
          networkName.value === Network.Polygon
 | 
			
		||||
          activeNetworkId.value === Network.Polygon
 | 
			
		||||
            ? await getBalances(
 | 
			
		||||
                activeAccount.value.address,
 | 
			
		||||
                Network.Polygon,
 | 
			
		||||
                web3.value
 | 
			
		||||
                library.value
 | 
			
		||||
              )
 | 
			
		||||
            : {}
 | 
			
		||||
      };
 | 
			
		||||
| 
						 | 
				
			
			@ -88,27 +89,27 @@ export function useBalances() {
 | 
			
		|||
 | 
			
		||||
  const getBalanceByAddress = (address, network = null, type = "dsa") => {
 | 
			
		||||
    return (
 | 
			
		||||
      balances[type]?.[network || networkName.value][address]?.balance || "0"
 | 
			
		||||
      balances[type]?.[network || activeNetworkId.value][address]?.balance || "0"
 | 
			
		||||
    );
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const getBalanceRawByKey = (tokenKey, network = null, type = "dsa") => {
 | 
			
		||||
    return (
 | 
			
		||||
      balances[type]?.[network || networkName.value][
 | 
			
		||||
      balances[type]?.[network || activeNetworkId.value][
 | 
			
		||||
        getTokenByKey(tokenKey)?.address
 | 
			
		||||
      ]?.raw || "0"
 | 
			
		||||
    );
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const netWorth = (address, type = "dsa") => {
 | 
			
		||||
    const balance = getBalanceByAddress(address, networkName.value, type);
 | 
			
		||||
    const price = ensureValue(prices[networkName.value][address]).toFixed();
 | 
			
		||||
    const balance = getBalanceByAddress(address, activeNetworkId.value, type);
 | 
			
		||||
    const price = ensureValue(prices[activeNetworkId.value][address]).toFixed();
 | 
			
		||||
 | 
			
		||||
    return times(balance, price).toFixed();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const balanceTotal = computed(() =>
 | 
			
		||||
    tokens[networkName.value].allTokens.reduce(
 | 
			
		||||
    tokens[activeNetworkId.value].allTokens.reduce(
 | 
			
		||||
      (totalNetWorth, token) =>
 | 
			
		||||
        plus(totalNetWorth, netWorth(token.address)).toFixed(),
 | 
			
		||||
      "0"
 | 
			
		||||
| 
						 | 
				
			
			@ -116,16 +117,16 @@ export function useBalances() {
 | 
			
		|||
  );
 | 
			
		||||
 | 
			
		||||
  const getAssets = (type = "dsa") => {
 | 
			
		||||
    return tokens[networkName.value].allTokens
 | 
			
		||||
    return tokens[activeNetworkId.value].allTokens
 | 
			
		||||
      .map(token => ({
 | 
			
		||||
        ...token,
 | 
			
		||||
        balance: getBalanceByAddress(token.address, networkName.value, type),
 | 
			
		||||
        balance: getBalanceByAddress(token.address, activeNetworkId.value, type),
 | 
			
		||||
        netWorth: netWorth(token.address, type)
 | 
			
		||||
      }))
 | 
			
		||||
      .sort(by("-netWorth"));
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  watch(web3, () => {
 | 
			
		||||
  watch(library, () => {
 | 
			
		||||
    fetchBalances(true);
 | 
			
		||||
  });
 | 
			
		||||
  return {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,11 @@
 | 
			
		|||
import { computed, readonly, ref, watch } from "@nuxtjs/composition-api";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import DSA from "dsa-connect";
 | 
			
		||||
import addresses from "~/constant/addresses";
 | 
			
		||||
import abis from "~/constant/abis";
 | 
			
		||||
import { AbiItem } from "web3-utils";
 | 
			
		||||
import { useNotification } from "./useNotification";
 | 
			
		||||
import { useNetwork } from "./useNetwork";
 | 
			
		||||
 | 
			
		||||
const dsa = ref<DSA>();
 | 
			
		||||
const accounts = ref<any[]>([]);
 | 
			
		||||
| 
						 | 
				
			
			@ -12,18 +13,28 @@ const activeAccount = ref<any>();
 | 
			
		|||
const authorities = ref<string[]>();
 | 
			
		||||
 | 
			
		||||
export function useDSA() {
 | 
			
		||||
  const { web3, chainId, networkName, account } = useWeb3();
 | 
			
		||||
  const { active, library, chainId, account } = useWeb3();
 | 
			
		||||
  const { activeNetworkId } = useNetwork()
 | 
			
		||||
  const { showWarning } = useNotification();
 | 
			
		||||
 | 
			
		||||
  watch(web3, () => {
 | 
			
		||||
    if (web3.value) {
 | 
			
		||||
      dsa.value = new DSA(web3.value, chainId.value);
 | 
			
		||||
  watch(library, () => {
 | 
			
		||||
    if (library.value) {
 | 
			
		||||
      dsa.value = new DSA(library.value, chainId.value);
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  watch(active, () => {
 | 
			
		||||
    console.log("here");
 | 
			
		||||
    
 | 
			
		||||
    if (library.value) {
 | 
			
		||||
      dsa.value = new DSA(library.value, chainId.value);
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  watch(chainId, () => {
 | 
			
		||||
    if (web3.value) {
 | 
			
		||||
      dsa.value = new DSA(web3.value, chainId.value);
 | 
			
		||||
    if (library.value) {
 | 
			
		||||
      dsa.value = new DSA(library.value, chainId.value);
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -82,9 +93,9 @@ export function useDSA() {
 | 
			
		|||
 | 
			
		||||
  async function fethAuthorities() {
 | 
			
		||||
    try {
 | 
			
		||||
      const accountsResolverInstance = new web3.value.eth.Contract(
 | 
			
		||||
      const accountsResolverInstance = new library.value.eth.Contract(
 | 
			
		||||
        abis.resolver.accounts as AbiItem[],
 | 
			
		||||
        addresses[networkName.value].resolver.accounts
 | 
			
		||||
        addresses[activeNetworkId.value].resolver.accounts
 | 
			
		||||
      );
 | 
			
		||||
      const rawData = await accountsResolverInstance.methods
 | 
			
		||||
        .getAccountAuthorities(activeAccount.value.address)
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +181,7 @@ export function useDSA() {
 | 
			
		|||
    createAccount,
 | 
			
		||||
    creatingAccount,
 | 
			
		||||
    setAccount,
 | 
			
		||||
    web3,
 | 
			
		||||
    library,
 | 
			
		||||
    chainId,
 | 
			
		||||
    authorities,
 | 
			
		||||
    createAuthority,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										32
									
								
								composables/useEagerConnect.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								composables/useEagerConnect.ts
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import { injected } from "../connectors";
 | 
			
		||||
import { onMounted, ref, watch } from "@nuxtjs/composition-api";
 | 
			
		||||
 | 
			
		||||
export function useEagerConnect() {
 | 
			
		||||
  const { activate, active } = useWeb3();
 | 
			
		||||
 | 
			
		||||
  const tried = ref(false);
 | 
			
		||||
 | 
			
		||||
  onMounted(() => {
 | 
			
		||||
    injected.isAuthorized().then((isAuthorized: boolean) => {
 | 
			
		||||
      if (isAuthorized) {
 | 
			
		||||
        activate(injected, undefined, true).catch(() => {
 | 
			
		||||
          tried.value = true;
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        tried.value = true;
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // if the connection worked, wait until we get confirmation of that to flip the flag
 | 
			
		||||
  watch([tried, active], () => {
 | 
			
		||||
    if (!tried.value && active.value) {
 | 
			
		||||
      tried.value = true;
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    tried
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,22 +1,25 @@
 | 
			
		|||
import { computed } from '@nuxtjs/composition-api'
 | 
			
		||||
import { useWeb3 } from './useWeb3'
 | 
			
		||||
import { computed } from "@nuxtjs/composition-api";
 | 
			
		||||
import { useNetwork } from "./useNetwork";
 | 
			
		||||
 | 
			
		||||
export function useLink() {
 | 
			
		||||
  const { networkName } = useWeb3()
 | 
			
		||||
  const { activeNetworkId } = useNetwork();
 | 
			
		||||
 | 
			
		||||
  const addressDetailsLink = computed(() => {
 | 
			
		||||
    if (networkName.value === 'polygon') {
 | 
			
		||||
      return 'https://polygonscan.com/address'
 | 
			
		||||
    if (activeNetworkId.value === "polygon") {
 | 
			
		||||
      return "https://polygonscan.com/address";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 'https://etherscan.io/address'
 | 
			
		||||
  })
 | 
			
		||||
    return "https://etherscan.io/address";
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return { addressDetailsLink }
 | 
			
		||||
  return { addressDetailsLink };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const getEtherscanLink = (transactionHash) => `https://etherscan.io/tx/${transactionHash}`
 | 
			
		||||
export const getMaticLink = (transactionHash) => `https://polygonscan.com/tx/${transactionHash}`
 | 
			
		||||
export const getPolygonLink = (transactionHash) => `https://polygonscan.com/tx/${transactionHash}`
 | 
			
		||||
export const getTenderlyLink = (simulationId) =>
 | 
			
		||||
  `https://dashboard.tenderly.co/public/InstaDApp/dsa-simulations/fork-simulation/${simulationId}?hideSidebar=true`
 | 
			
		||||
export const getEtherscanLink = transactionHash =>
 | 
			
		||||
  `https://etherscan.io/tx/${transactionHash}`;
 | 
			
		||||
export const getMaticLink = transactionHash =>
 | 
			
		||||
  `https://polygonscan.com/tx/${transactionHash}`;
 | 
			
		||||
export const getPolygonLink = transactionHash =>
 | 
			
		||||
  `https://polygonscan.com/tx/${transactionHash}`;
 | 
			
		||||
export const getTenderlyLink = simulationId =>
 | 
			
		||||
  `https://dashboard.tenderly.co/public/InstaDApp/dsa-simulations/fork-simulation/${simulationId}?hideSidebar=true`;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ import MainnetSVG from "~/assets/icons/mainnet.svg?inline";
 | 
			
		|||
import PolygonSVG from "~/assets/icons/polygon.svg?inline";
 | 
			
		||||
import { useModal } from "./useModal";
 | 
			
		||||
import { useNotification } from "./useNotification";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
 | 
			
		||||
export enum Network {
 | 
			
		||||
  Mainnet = "mainnet",
 | 
			
		||||
| 
						 | 
				
			
			@ -24,11 +24,11 @@ export const activeNetwork = computed(
 | 
			
		|||
 | 
			
		||||
export function useNetwork() {
 | 
			
		||||
  const { showWarning } = useNotification();
 | 
			
		||||
  const { account, networkName, refreshWeb3 } = useWeb3();
 | 
			
		||||
  const { account, chainId } = useWeb3();
 | 
			
		||||
  const { showNetworksMismatchDialog } = useModal();
 | 
			
		||||
 | 
			
		||||
  const networkMismatch = computed(
 | 
			
		||||
    () => networkName.value != activeNetworkId.value
 | 
			
		||||
    () => chainId.value != activeNetwork.value?.chainId
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  const checkForNetworkMismatch = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +117,7 @@ export function useNetwork() {
 | 
			
		|||
    //@ts-ignore
 | 
			
		||||
    activeNetworkId.value = localStorage.getItem("network") || "mainnet";
 | 
			
		||||
 | 
			
		||||
    refreshWeb3();
 | 
			
		||||
    // refreshWeb3()
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ import {
 | 
			
		|||
} from "@nuxtjs/composition-api";
 | 
			
		||||
 | 
			
		||||
import { useDSA } from "./useDSA";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import SidebarAaveV2Supply from "~/components/sidebar/context/aaveV2/SidebarAaveV2Supply.vue";
 | 
			
		||||
import SidebarAaveV2Withdraw from '~/components/sidebar/context/aaveV2/SidebarAaveV2Withdraw.vue'
 | 
			
		||||
import SidebarAaveV2Borrow from '~/components/sidebar/context/aaveV2/SidebarAaveV2Borrow.vue'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,14 @@
 | 
			
		|||
import { useContext, ref, onMounted, computed } from "@nuxtjs/composition-api";
 | 
			
		||||
import axios from "axios";
 | 
			
		||||
import { activeNetwork, useNetwork } from "./useNetwork";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import Web3 from "web3";
 | 
			
		||||
import { useDSA } from "./useDSA";
 | 
			
		||||
 | 
			
		||||
const forkId = ref(null);
 | 
			
		||||
export function useTenderly() {
 | 
			
		||||
  const { $config } = useContext();
 | 
			
		||||
  const { setWeb3, refreshWeb3 } = useWeb3();
 | 
			
		||||
  const { activate, provider } = useWeb3();
 | 
			
		||||
  const { accounts, refreshAccounts } = useDSA();
 | 
			
		||||
  const canSimulate = computed(
 | 
			
		||||
    () => $config.TENDERLY_FORK_PATH && $config.TENDERLY_KEY
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ export function useTenderly() {
 | 
			
		|||
 | 
			
		||||
    forkId.value = null;
 | 
			
		||||
    window.localStorage.removeItem("forkId");
 | 
			
		||||
    await refreshWeb3();
 | 
			
		||||
    // await refreshWeb3();
 | 
			
		||||
    loading.value = false;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -77,13 +77,13 @@ export function useTenderly() {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    forkId.value = fork;
 | 
			
		||||
    setWeb3(
 | 
			
		||||
      new Web3(
 | 
			
		||||
        new Web3.providers.HttpProvider(
 | 
			
		||||
          `https://rpc.tenderly.co/fork/${forkId.value}`
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
    );
 | 
			
		||||
    // setWeb3(
 | 
			
		||||
    //   new Web3(
 | 
			
		||||
    //     new Web3.providers.HttpProvider(
 | 
			
		||||
    //       `https://rpc.tenderly.co/fork/${forkId.value}`
 | 
			
		||||
    //     )
 | 
			
		||||
    //   )
 | 
			
		||||
    // );
 | 
			
		||||
    window.localStorage.setItem("forkId", forkId.value);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,18 +2,18 @@ import { computed } from "@nuxtjs/composition-api";
 | 
			
		|||
import atokensV2 from "~/constant/atokensV2";
 | 
			
		||||
import tokens from "~/constant/tokens";
 | 
			
		||||
import { useBigNumber } from "./useBigNumber";
 | 
			
		||||
import { useWeb3 } from "./useWeb3";
 | 
			
		||||
import { useNetwork } from "./useNetwork";
 | 
			
		||||
 | 
			
		||||
export function useToken() {
 | 
			
		||||
  const { networkName } = useWeb3();
 | 
			
		||||
  const { activeNetworkId } = useNetwork();
 | 
			
		||||
  const { toBN, times, minus, div, pow } = useBigNumber();
 | 
			
		||||
 | 
			
		||||
  const getTokenByKey = key =>
 | 
			
		||||
    tokens[networkName.value].allTokens.find(
 | 
			
		||||
    tokens[activeNetworkId.value].allTokens.find(
 | 
			
		||||
      token => String(token.key).toLowerCase() === String(key).toLowerCase()
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
  const allATokensV2 = computed(() => atokensV2[networkName.value].allTokens);
 | 
			
		||||
  const allATokensV2 = computed(() => atokensV2[activeNetworkId.value].allTokens);
 | 
			
		||||
 | 
			
		||||
  function valInt(val, decimals) {
 | 
			
		||||
    const num = toBN(val);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								composables/useWeb3Modal.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								composables/useWeb3Modal.ts
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
import { useModal } from "./useModal";
 | 
			
		||||
import Web3Modal from "~/components/modal/web3/Web3Modal.vue";
 | 
			
		||||
 | 
			
		||||
export const useWeb3Modal = () => {
 | 
			
		||||
  const { showComponent } = useModal();
 | 
			
		||||
  
 | 
			
		||||
  return {
 | 
			
		||||
    open: () => showComponent(Web3Modal)
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										19
									
								
								connectors/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								connectors/index.ts
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
import { setWeb3LibraryCallback } from "@kabbouchi/vue-web3";
 | 
			
		||||
import { InjectedConnector } from "@web3-react/injected-connector";
 | 
			
		||||
import { WalletConnectConnector } from "@web3-react/walletconnect-connector";
 | 
			
		||||
 | 
			
		||||
import Web3 from "web3";
 | 
			
		||||
 | 
			
		||||
setWeb3LibraryCallback(provider => new Web3(provider));
 | 
			
		||||
 | 
			
		||||
export const injected = new InjectedConnector({
 | 
			
		||||
  supportedChainIds: [1, 137]
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export const walletconnect = new WalletConnectConnector({
 | 
			
		||||
  rpc: {
 | 
			
		||||
    1: `https://mainnet.infura.io/v3/${process.env.INFURA_ID}`,
 | 
			
		||||
    137: "https://rpc-mainnet.maticvigil.com"
 | 
			
		||||
  },
 | 
			
		||||
  supportedChainIds: [1, 137]
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -80,12 +80,13 @@ import { defineComponent, nextTick, onErrorCaptured, onMounted, useContext, useR
 | 
			
		|||
import MakerDAOIcon from '~/assets/icons/makerdao.svg?inline'
 | 
			
		||||
import CompoundIcon from '~/assets/icons/compound.svg?inline'
 | 
			
		||||
import AaveIcon from '~/assets/icons/aave.svg?inline'
 | 
			
		||||
import { useWeb3 } from '~/composables/useWeb3'
 | 
			
		||||
import { useWeb3 } from '@kabbouchi/vue-web3'
 | 
			
		||||
import { init as initSidebars, useSidebar } from '~/composables/useSidebar'
 | 
			
		||||
import { useBackdrop } from '@/composables/useBackdrop'
 | 
			
		||||
import { useNetwork } from "~/composables/useNetwork";
 | 
			
		||||
import { useTenderly } from "~/composables/useTenderly";
 | 
			
		||||
import { useModal } from "~/composables/useModal";
 | 
			
		||||
import { useEagerConnect } from "~/composables/useEagerConnect";
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: {
 | 
			
		||||
| 
						 | 
				
			
			@ -100,6 +101,7 @@ export default defineComponent({
 | 
			
		|||
    const { redirect } = useContext()
 | 
			
		||||
    const { showSidebarBalances } = useSidebar()
 | 
			
		||||
    const { showNetworksMismatchDialog } = useModal()
 | 
			
		||||
    useEagerConnect()
 | 
			
		||||
    const route = useRoute()
 | 
			
		||||
 | 
			
		||||
    watch(isBackdropShown, () => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,7 +50,7 @@ export default {
 | 
			
		|||
  // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
 | 
			
		||||
  plugins: [
 | 
			
		||||
    "~/plugins/v-click-outside.js",
 | 
			
		||||
    "~/plugins/web3modal.js",
 | 
			
		||||
    // "~/plugins/web3modal.js",
 | 
			
		||||
    { src: '~/plugins/v-tooltip', mode: 'client' },
 | 
			
		||||
    { src: '~/plugins/v-clipboard2', mode: 'client' },
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,15 @@
 | 
			
		|||
  "dependencies": {
 | 
			
		||||
    "@gnosis.pm/safe-apps-sdk": "^4.2.0",
 | 
			
		||||
    "@gnosis.pm/safe-apps-web3modal": "^2.0.0",
 | 
			
		||||
    "@kabbouchi/vue-web3": "^0.2.16",
 | 
			
		||||
    "@nuxtjs/axios": "^5.13.6",
 | 
			
		||||
    "@nuxtjs/composition-api": "^0.24.7",
 | 
			
		||||
    "@nuxtjs/composition-api": "^0.27.0",
 | 
			
		||||
    "@portis/web3": "^4.0.5",
 | 
			
		||||
    "@tailwindcss/forms": "^0.3.3",
 | 
			
		||||
    "@vueuse/core": "^5.1.4",
 | 
			
		||||
    "@walletconnect/web3-provider": "^1.4.1",
 | 
			
		||||
    "@web3-react/injected-connector": "^6.0.7",
 | 
			
		||||
    "@web3-react/walletconnect-connector": "^6.2.4",
 | 
			
		||||
    "bignumber.js": "^9.0.1",
 | 
			
		||||
    "core-js": "^3.15.1",
 | 
			
		||||
    "css-color-function": "^1.3.3",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ import { useBigNumber } from "~/composables/useBigNumber";
 | 
			
		|||
import { useNetwork } from "~/composables/useNetwork";
 | 
			
		||||
import { useDSA } from "~/composables/useDSA";
 | 
			
		||||
import { use1InchSwap } from "~/composables/swap/use1InchSwap";
 | 
			
		||||
import { useWeb3 } from "~/composables/useWeb3";
 | 
			
		||||
import { useWeb3 } from "@kabbouchi/vue-web3";
 | 
			
		||||
import { useNotification } from "~/composables/useNotification";
 | 
			
		||||
import { useBalances } from "~/composables/useBalances";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
import WalletConnectProvider from "@walletconnect/web3-provider";
 | 
			
		||||
import { setProviders } from "~/composables/useWeb3"
 | 
			
		||||
import { setProviders } from "@kabbouchi/vue-web3"
 | 
			
		||||
import WalletLink from 'walletlink'
 | 
			
		||||
import Portis from '@portis/web3'
 | 
			
		||||
import SVGcoinbase from '~/assets/coinbase.svg'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										272
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										272
									
								
								yarn.lock
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1170,6 +1170,18 @@
 | 
			
		|||
  dependencies:
 | 
			
		||||
    "@json-rpc-tools/types" "^1.6.1"
 | 
			
		||||
 | 
			
		||||
"@kabbouchi/vue-web3@^0.2.16":
 | 
			
		||||
  version "0.2.16"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@kabbouchi/vue-web3/-/vue-web3-0.2.16.tgz#be6af2c1f83350a4fddc1004455d76cd5fe6a436"
 | 
			
		||||
  integrity sha512-JjZhr8xXj0ugq15ZSDBB29jG+VhOdPlMB+a7szuk6IpU+bdSAK1g02vZir8KP0n5OQuLf3ITxv+bwkClbon/IA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@ethersproject/bytes" "^5.4.0"
 | 
			
		||||
    "@ethersproject/keccak256" "^5.4.0"
 | 
			
		||||
    "@web3-react/abstract-connector" "^6.0.7"
 | 
			
		||||
    "@web3-react/types" "^6.0.7"
 | 
			
		||||
    tiny-invariant "^1.1.0"
 | 
			
		||||
    vue-demi "^0.11.3"
 | 
			
		||||
 | 
			
		||||
"@koa/router@^9.0.1":
 | 
			
		||||
  version "9.4.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@koa/router/-/router-9.4.0.tgz#734b64c0ae566eb5af752df71e4143edc4748e48"
 | 
			
		||||
| 
						 | 
				
			
			@ -1592,17 +1604,17 @@
 | 
			
		|||
    consola "^2.15.3"
 | 
			
		||||
    defu "^5.0.0"
 | 
			
		||||
 | 
			
		||||
"@nuxtjs/composition-api@^0.24.7":
 | 
			
		||||
  version "0.24.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@nuxtjs/composition-api/-/composition-api-0.24.7.tgz#76ec3660a03cd7bdb8b85fd31e8dc6a2b7194e8f"
 | 
			
		||||
  integrity sha512-q633RvsCi3veuGzTSkP/+a55Fn9EZS1APV2GJrdjajnBKKOMNPIXlAC8xAWGcsHE73/Cgf9DfGURQhcFvERRJA==
 | 
			
		||||
"@nuxtjs/composition-api@^0.27.0":
 | 
			
		||||
  version "0.27.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@nuxtjs/composition-api/-/composition-api-0.27.0.tgz#cbe4df6a7306e4a34770fbad5b1ad79717f8fdb7"
 | 
			
		||||
  integrity sha512-YtQ1KX+ls13zbukII8/vhKskoI1FrngDxegGVW31576qlaiEQUQGpOATF0cGrZ1W7Wgmz3rsAz1CNdSd5FFXOA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@vue/composition-api" "1.0.0-rc.14"
 | 
			
		||||
    "@vue/composition-api" "^1.1.1"
 | 
			
		||||
    defu "^5.0.0"
 | 
			
		||||
    estree-walker "^2.0.2"
 | 
			
		||||
    fs-extra "^9.1.0"
 | 
			
		||||
    magic-string "^0.25.7"
 | 
			
		||||
    ufo "^0.7.7"
 | 
			
		||||
    ufo "^0.7.9"
 | 
			
		||||
    upath "^2.0.1"
 | 
			
		||||
 | 
			
		||||
"@nuxtjs/google-fonts@^1.3.0":
 | 
			
		||||
| 
						 | 
				
			
			@ -2213,10 +2225,10 @@
 | 
			
		|||
  optionalDependencies:
 | 
			
		||||
    prettier "^1.18.2"
 | 
			
		||||
 | 
			
		||||
"@vue/composition-api@1.0.0-rc.14":
 | 
			
		||||
  version "1.0.0-rc.14"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.0.0-rc.14.tgz#4803fbccf3f3c770416e69095010c7bc0c4aa1c3"
 | 
			
		||||
  integrity sha512-WKbOiy1zk8loM7ma88fOH0yacOEfMIQb0IZJEq561A+4C8GvLSqVSLT5K1iBVkzzJ07Pha8ntbeWSUQlBhRDKg==
 | 
			
		||||
"@vue/composition-api@^1.1.1":
 | 
			
		||||
  version "1.1.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.1.4.tgz#b4cd566e575350b86c22fa02632e4a356ac2e26e"
 | 
			
		||||
  integrity sha512-f618a79X0VepQUoZofaAYzaherBuzfIIYah4gQPcwmXgN3oeuGdhO7DY2s3Rjcw7r9yTEh5sQIowbNWy6INGjg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    tslib "^2.3.0"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2251,6 +2263,17 @@
 | 
			
		|||
    window-getters "1.0.0"
 | 
			
		||||
    window-metadata "1.0.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/browser-utils@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.6.5.tgz#01180682e90b95384e820191a1c6ad4a78729439"
 | 
			
		||||
  integrity sha512-HLTysmlCkc2HN2OS6ewMG0v8E9oY2h9zNaDHe0BLN3ZxnsoMCVzkJxy7ryaXCemVdapmr6HgHFexGJoMbWaC4w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/safe-json" "1.0.0"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/window-getters" "1.0.0"
 | 
			
		||||
    "@walletconnect/window-metadata" "1.0.0"
 | 
			
		||||
    detect-browser "5.2.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/client@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.4.1.tgz#c9c50df5afde23a35e23d96fe6d207c102e53850"
 | 
			
		||||
| 
						 | 
				
			
			@ -2261,6 +2284,16 @@
 | 
			
		|||
    "@walletconnect/types" "^1.4.1"
 | 
			
		||||
    "@walletconnect/utils" "^1.4.1"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/client@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685"
 | 
			
		||||
  integrity sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/core" "^1.6.5"
 | 
			
		||||
    "@walletconnect/iso-crypto" "^1.6.5"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/core@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.4.1.tgz#68310ee7c9737a7a0a7f1308abbfc1c31212b9a6"
 | 
			
		||||
| 
						 | 
				
			
			@ -2270,6 +2303,39 @@
 | 
			
		|||
    "@walletconnect/types" "^1.4.1"
 | 
			
		||||
    "@walletconnect/utils" "^1.4.1"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/core@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.6.5.tgz#acb687fc7c2d71ce2adad6a921ec1b343c4b4dd7"
 | 
			
		||||
  integrity sha512-mmMTP8nZunjSCAy0ckafvt/JcdzcuSZPaAybqgKwx2rC9cc/3XWrdNsfiKMt8AFoQF87jGHem3905eFZYTqLXw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/socket-transport" "^1.6.5"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/crypto@^1.0.1":
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.1.tgz#d4c1b1cd5dd1be88fe9a82dfc54cadbbb3f9d325"
 | 
			
		||||
  integrity sha512-IgUReNrycIFxkGgq8YT9HsosCkhutakWD9Q411PR0aJfxpEa/VKJeaLRtoz6DvJpztWStwhIHnAbBoOVR72a6g==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/encoding" "^1.0.0"
 | 
			
		||||
    "@walletconnect/environment" "^1.0.0"
 | 
			
		||||
    "@walletconnect/randombytes" "^1.0.1"
 | 
			
		||||
    aes-js "^3.1.2"
 | 
			
		||||
    hash.js "^1.1.7"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/encoding@^1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.0.tgz#e24190cb5e803526f9dfd7191fb0e4dc53c6d864"
 | 
			
		||||
  integrity sha512-4nkJFnS0QF5JdieG/3VPD1/iEWkLSZ14EBInLZ00RWxmC6EMZrzAeHNAWIgm+xP3NK0lqz+7lEsmWGtcl5gYnQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    is-typedarray "1.0.0"
 | 
			
		||||
    typedarray-to-buffer "3.1.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/environment@^1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034"
 | 
			
		||||
  integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==
 | 
			
		||||
 | 
			
		||||
"@walletconnect/http-connection@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.4.1.tgz#a36d3645eea2606c876e3824b7d46549bf237833"
 | 
			
		||||
| 
						 | 
				
			
			@ -2280,6 +2346,16 @@
 | 
			
		|||
    eventemitter3 "4.0.7"
 | 
			
		||||
    xhr2-cookies "1.1.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/http-connection@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.6.5.tgz#18529b7556bc09d7c794f4adc76ef0742cd500aa"
 | 
			
		||||
  integrity sha512-5kr6wZ3DnqaBiwkeA9iKdawvIb3bIJNf8WA8X89YHE5KOzbkAsymjniZWs8asdl9Y9+8ZHJMPXtylyrkpT8wXA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
    eventemitter3 "4.0.7"
 | 
			
		||||
    xhr2-cookies "1.1.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/iso-crypto@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.4.1.tgz#0d9793c679d6c5443c49cce83f5d8dd476a65df2"
 | 
			
		||||
| 
						 | 
				
			
			@ -2289,6 +2365,30 @@
 | 
			
		|||
    "@walletconnect/types" "^1.4.1"
 | 
			
		||||
    "@walletconnect/utils" "^1.4.1"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/iso-crypto@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.6.5.tgz#1c6471506283817e7e797c5e2e733f6c3d88f8dc"
 | 
			
		||||
  integrity sha512-145VRX1+gudhHrnT2s81lLW/BEu3QgFMMRCrkxx9Tsl5JiLGcGbWkMxAl8zjGTMqnHeuQngyjvY1mO+3z27a7A==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/crypto" "^1.0.1"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/jsonrpc-types@^1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055"
 | 
			
		||||
  integrity sha512-11QXNq5H1PKZk7bP8SxgmCw3HRaDuPOVE+wObqEvmhc7OWYUZqfuaaMb+OXGRSOHL3sbC+XHfdeCxFTMXSFyng==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    keyvaluestorage-interface "^1.0.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/jsonrpc-utils@^1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.0.tgz#1a2f668d606e8f0b6e7d8fdebae86001bd037a3f"
 | 
			
		||||
  integrity sha512-qUHbKUK6sHeHn67qtHZoLoYk5hS6x1arTPjKDRkY93/6Fx+ZmNIpdm1owX3l6aYueyegJ7mz43FpvYHUqJ8xcw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/environment" "^1.0.0"
 | 
			
		||||
    "@walletconnect/jsonrpc-types" "^1.0.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/mobile-registry@^1.4.0":
 | 
			
		||||
  version "1.4.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5"
 | 
			
		||||
| 
						 | 
				
			
			@ -2305,6 +2405,32 @@
 | 
			
		|||
    preact "10.4.1"
 | 
			
		||||
    qrcode "1.4.4"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/qrcode-modal@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.6.5.tgz#58974ca8f826bd500121e85694dd342b3535cf2c"
 | 
			
		||||
  integrity sha512-XII/Pm7zS5pRxrakURuhbWO+SfwgOuLuvOBk/hr1ATK/y7R5p19P62mCSUrvSxHXca27IX1tZJRe9D161R0WgQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/browser-utils" "^1.6.5"
 | 
			
		||||
    "@walletconnect/mobile-registry" "^1.4.0"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    copy-to-clipboard "^3.3.1"
 | 
			
		||||
    preact "10.4.1"
 | 
			
		||||
    qrcode "1.4.4"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/randombytes@^1.0.1":
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.1.tgz#87f0f02d9206704ce1c9e23f07d3b28898c48385"
 | 
			
		||||
  integrity sha512-YJTyq69i0PtxVg7osEpKfvjTaWuAsR49QEcqGKZRKVQWMbGXBZ65fovemK/SRgtiFRv0V8PwsrlKSheqzfPNcg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/encoding" "^1.0.0"
 | 
			
		||||
    "@walletconnect/environment" "^1.0.0"
 | 
			
		||||
    randombytes "^2.1.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/safe-json@1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2"
 | 
			
		||||
  integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==
 | 
			
		||||
 | 
			
		||||
"@walletconnect/socket-transport@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.4.1.tgz#d9b7ebb9a2843cc44cf96c880c62be78d4a1625f"
 | 
			
		||||
| 
						 | 
				
			
			@ -2314,11 +2440,25 @@
 | 
			
		|||
    "@walletconnect/utils" "^1.4.1"
 | 
			
		||||
    ws "7.3.0"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/socket-transport@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.6.5.tgz#f190f2d994021287fdeaf071114a5415096b2535"
 | 
			
		||||
  integrity sha512-FRlgBr3EIxD3du5l/tuK6jdiva85YeRG+iZmo/RPnlVw4opy74WXb5JdCK9jXLcBEoDiY9Hz4j69aqnht6gIDQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
    ws "7.5.3"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/types@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.4.1.tgz#48297238b86f846b8c694504ca45f0059a2cca88"
 | 
			
		||||
  integrity sha512-lzS9NbXjVb5N+W/UnCZAflxjLtYepUi4ev1IeFozSvr/cWxAhEe/sjixe7WEIpYklW27kfBhKccMH/KjUoRC7w==
 | 
			
		||||
 | 
			
		||||
"@walletconnect/types@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.6.5.tgz#31ad1415fc6e1e89e25a10ad5fed6958f56cefa8"
 | 
			
		||||
  integrity sha512-S9DsODI35PbIDuOSkIiF8SzTstqCqX/4+kV7n18vyukEFPlpSSHwZMwJUfzo9yJ0pqsqLNZta+jvb88gJRuAaA==
 | 
			
		||||
 | 
			
		||||
"@walletconnect/utils@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.4.1.tgz#86108470c211a02609274a6c7bbd516c5182a22e"
 | 
			
		||||
| 
						 | 
				
			
			@ -2332,6 +2472,19 @@
 | 
			
		|||
    js-sha3 "0.8.0"
 | 
			
		||||
    query-string "6.13.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/utils@^1.6.5":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.6.5.tgz#6edd749cb52a363feda117121dc865d7cc6169f7"
 | 
			
		||||
  integrity sha512-QB5rn/1s0PKVitAQ2/mgWbay2XfN21y3ob+5g6IhxtJRW31bbMoZw5YfO6s4ixLaZZez5LNQXstvQAclRzB7jQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/browser-utils" "^1.6.5"
 | 
			
		||||
    "@walletconnect/encoding" "^1.0.0"
 | 
			
		||||
    "@walletconnect/jsonrpc-utils" "^1.0.0"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    bn.js "4.11.8"
 | 
			
		||||
    js-sha3 "0.8.0"
 | 
			
		||||
    query-string "6.13.5"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/web3-provider@^1.4.1":
 | 
			
		||||
  version "1.4.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.4.1.tgz#34f6319ab2473ab9ff0fcf1e8bc280c697fa01ff"
 | 
			
		||||
| 
						 | 
				
			
			@ -2344,6 +2497,61 @@
 | 
			
		|||
    "@walletconnect/utils" "^1.4.1"
 | 
			
		||||
    web3-provider-engine "16.0.1"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/web3-provider@^1.5.0":
 | 
			
		||||
  version "1.6.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.6.5.tgz#7c4ac2f89ddda1a4069d500ed29cc4396e7fdade"
 | 
			
		||||
  integrity sha512-SeC7+1saHxvFn2wjt/3F0sTkDemHDNDbMkdZ3jtA7vjEw91Q0CmaYIuZk2UxyVM+tC1jL1l4yci/sgaFeAcXpQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/client" "^1.6.5"
 | 
			
		||||
    "@walletconnect/http-connection" "^1.6.5"
 | 
			
		||||
    "@walletconnect/qrcode-modal" "^1.6.5"
 | 
			
		||||
    "@walletconnect/types" "^1.6.5"
 | 
			
		||||
    "@walletconnect/utils" "^1.6.5"
 | 
			
		||||
    web3-provider-engine "16.0.1"
 | 
			
		||||
 | 
			
		||||
"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8"
 | 
			
		||||
  integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==
 | 
			
		||||
 | 
			
		||||
"@walletconnect/window-metadata@1.0.0":
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5"
 | 
			
		||||
  integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/window-getters" "^1.0.0"
 | 
			
		||||
 | 
			
		||||
"@web3-react/abstract-connector@^6.0.7":
 | 
			
		||||
  version "6.0.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@web3-react/abstract-connector/-/abstract-connector-6.0.7.tgz#401b3c045f1e0fab04256311be49d5144e9badc6"
 | 
			
		||||
  integrity sha512-RhQasA4Ox8CxUC0OENc1AJJm8UTybu/oOCM61Zjg6y0iF7Z0sqv1Ai1VdhC33hrQpA8qSBgoXN9PaP8jKmtdqg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@web3-react/types" "^6.0.7"
 | 
			
		||||
 | 
			
		||||
"@web3-react/injected-connector@^6.0.7":
 | 
			
		||||
  version "6.0.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@web3-react/injected-connector/-/injected-connector-6.0.7.tgz#1e0be23f51fa07fe6547fe986768a46b74c3a426"
 | 
			
		||||
  integrity sha512-Y7aJSz6pg+MWKtvdyuqyy6LWuH+4Tqtph1LWfiyVms9II9ar/9B/de4R8wh4wjg91wmHkU+D75yP09E/Soh2RA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@web3-react/abstract-connector" "^6.0.7"
 | 
			
		||||
    "@web3-react/types" "^6.0.7"
 | 
			
		||||
    tiny-warning "^1.0.3"
 | 
			
		||||
 | 
			
		||||
"@web3-react/types@^6.0.7":
 | 
			
		||||
  version "6.0.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@web3-react/types/-/types-6.0.7.tgz#34a6204224467eedc6123abaf55fbb6baeb2809f"
 | 
			
		||||
  integrity sha512-ofGmfDhxmNT1/P/MgVa8IKSkCStFiyvXe+U5tyZurKdrtTDFU+wJ/LxClPDtFerWpczNFPUSrKcuhfPX1sI6+A==
 | 
			
		||||
 | 
			
		||||
"@web3-react/walletconnect-connector@^6.2.4":
 | 
			
		||||
  version "6.2.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@web3-react/walletconnect-connector/-/walletconnect-connector-6.2.4.tgz#0a128699fc93ddac885935f4aeca32925f6285f0"
 | 
			
		||||
  integrity sha512-IEVjCXrlcfVa6ggUBEyKtLRaLQuZGtT2lGuzOFtdbJJkN84u1++pzzeDrcsVhKAoS5wq33zyJT9baEbG1Aed8g==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@walletconnect/web3-provider" "^1.5.0"
 | 
			
		||||
    "@web3-react/abstract-connector" "^6.0.7"
 | 
			
		||||
    "@web3-react/types" "^6.0.7"
 | 
			
		||||
    tiny-invariant "^1.0.6"
 | 
			
		||||
 | 
			
		||||
"@webassemblyjs/ast@1.9.0":
 | 
			
		||||
  version "1.9.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
 | 
			
		||||
| 
						 | 
				
			
			@ -3949,6 +4157,13 @@ copy-descriptor@^0.1.0:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
 | 
			
		||||
  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 | 
			
		||||
 | 
			
		||||
copy-to-clipboard@^3.3.1:
 | 
			
		||||
  version "3.3.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
 | 
			
		||||
  integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    toggle-selection "^1.0.6"
 | 
			
		||||
 | 
			
		||||
core-js-compat@^3.12.1, core-js-compat@^3.14.0, core-js-compat@^3.15.0:
 | 
			
		||||
  version "3.15.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb"
 | 
			
		||||
| 
						 | 
				
			
			@ -11050,6 +11265,16 @@ tiny-emitter@^2.0.0:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
 | 
			
		||||
  integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
 | 
			
		||||
 | 
			
		||||
tiny-invariant@^1.0.6, tiny-invariant@^1.1.0:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
 | 
			
		||||
  integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
 | 
			
		||||
 | 
			
		||||
tiny-warning@^1.0.3:
 | 
			
		||||
  version "1.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
 | 
			
		||||
  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
 | 
			
		||||
 | 
			
		||||
tmp@^0.0.33:
 | 
			
		||||
  version "0.0.33"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
 | 
			
		||||
| 
						 | 
				
			
			@ -11111,6 +11336,11 @@ to-regex@^3.0.1, to-regex@^3.0.2:
 | 
			
		|||
    regex-not "^1.0.2"
 | 
			
		||||
    safe-regex "^1.1.0"
 | 
			
		||||
 | 
			
		||||
toggle-selection@^1.0.6:
 | 
			
		||||
  version "1.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
 | 
			
		||||
  integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI=
 | 
			
		||||
 | 
			
		||||
toidentifier@1.0.0:
 | 
			
		||||
  version "1.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
 | 
			
		||||
| 
						 | 
				
			
			@ -11227,11 +11457,16 @@ ua-parser-js@^0.7.28:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31"
 | 
			
		||||
  integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==
 | 
			
		||||
 | 
			
		||||
ufo@^0.7.4, ufo@^0.7.5, ufo@^0.7.7:
 | 
			
		||||
ufo@^0.7.4, ufo@^0.7.5:
 | 
			
		||||
  version "0.7.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.7.tgz#0062f9e5e790819b0fb23ca24d7c63a4011c036a"
 | 
			
		||||
  integrity sha512-N25aY3HBkJBnahm+2l4JRBBrX5I+JPakF/tDHYDTjd3wUR7iFLdyiPhj8mBwBz21v728BKwM9L9tgBfCntgdlw==
 | 
			
		||||
 | 
			
		||||
ufo@^0.7.9:
 | 
			
		||||
  version "0.7.9"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.7.9.tgz#0268e3734b413c9ed6f3510201f42372821b875c"
 | 
			
		||||
  integrity sha512-6t9LrLk3FhqTS+GW3IqlITtfRB5JAVr5MMNjpBECfK827W+Vh5Ilw/LhTcHWrt6b3hkeBvcbjx4Ti7QVFzmcww==
 | 
			
		||||
 | 
			
		||||
uglify-js@^3.5.1:
 | 
			
		||||
  version "3.13.10"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.10.tgz#a6bd0d28d38f592c3adb6b180ea6e07e1e540a8d"
 | 
			
		||||
| 
						 | 
				
			
			@ -11569,6 +11804,11 @@ vue-demi@*:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.2.tgz#faa06da53887c493a695b997f4fcb4784a667990"
 | 
			
		||||
  integrity sha512-J+X8Au6BhQdcej6LY4O986634hZLu55L0ewU2j8my7WIKlu8cK0dqmdUxqVHHMd/cMrKKZ9SywB/id6aLhwCtA==
 | 
			
		||||
 | 
			
		||||
vue-demi@^0.11.3:
 | 
			
		||||
  version "0.11.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.3.tgz#dd7495b92b495ecfa35675bf024b1358a7add150"
 | 
			
		||||
  integrity sha512-DpM0TTMpclRZDV6AIacgg837zrim/C9Zn+2ztXBs9hsESJN9vC83ztjTe4KC4HgJuVle8YUjPp7HTwWtwOHfmg==
 | 
			
		||||
 | 
			
		||||
vue-hot-reload-api@^2.3.0:
 | 
			
		||||
  version "2.3.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
 | 
			
		||||
| 
						 | 
				
			
			@ -12217,6 +12457,11 @@ ws@7.3.0:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd"
 | 
			
		||||
  integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==
 | 
			
		||||
 | 
			
		||||
ws@7.5.3, ws@^7.3.1:
 | 
			
		||||
  version "7.5.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
 | 
			
		||||
  integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==
 | 
			
		||||
 | 
			
		||||
ws@^3.0.0:
 | 
			
		||||
  version "3.3.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
 | 
			
		||||
| 
						 | 
				
			
			@ -12233,11 +12478,6 @@ ws@^5.1.1:
 | 
			
		|||
  dependencies:
 | 
			
		||||
    async-limiter "~1.0.0"
 | 
			
		||||
 | 
			
		||||
ws@^7.3.1:
 | 
			
		||||
  version "7.5.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
 | 
			
		||||
  integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==
 | 
			
		||||
 | 
			
		||||
xhr-request-promise@^0.1.2:
 | 
			
		||||
  version "0.1.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user