Merge branch 'development' of http://gitea.loseyourip.com:4000/cindylouwho/ImmortalClanVue into development
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
return processChange($event.target.value);
|
||||
}
|
||||
"
|
||||
:max="activeWalletToken.balanceOf"
|
||||
:logo="activeToken.logo"
|
||||
>
|
||||
<template v-slot:message>
|
||||
@@ -57,6 +58,7 @@
|
||||
.balanceOf
|
||||
}}
|
||||
</div>
|
||||
<div class="input-max tiny-text" @click="addMaxTokens">Max</div>
|
||||
</template>
|
||||
</token-input>
|
||||
</div>
|
||||
@@ -167,7 +169,7 @@ import { useToast } from "vue-toastification";
|
||||
|
||||
const toast = useToast();
|
||||
import { storeToRefs } from "pinia";
|
||||
import { waitForTransaction, readContract, watchBlockNumber } from "@wagmi/core";
|
||||
import { waitForTransaction, readContract, watchBlockNumber, multicall } from "@wagmi/core";
|
||||
|
||||
import Helper from "@/utils/helper.js";
|
||||
const isMobile = inject("isMobile");
|
||||
@@ -209,6 +211,14 @@ const state = ref(0);
|
||||
const showStakingMenu = ref(false);
|
||||
const approvalData = ref(null);
|
||||
|
||||
const activeWalletToken = computed(() => {
|
||||
let returnedObject = {};
|
||||
if (activeToken.value.contractAddress) {
|
||||
returnedObject = walletStore.token.find((obj) => obj.contractAddress === activeToken.value.contractAddress);
|
||||
}
|
||||
return returnedObject;
|
||||
});
|
||||
|
||||
const stateComputed = computed(() => {
|
||||
let returnState = 0;
|
||||
if (tokenNumber.value === null || tokenNumber.value === "" || tokenNumber.value === 0) {
|
||||
@@ -363,46 +373,124 @@ async function getRewardsFor(value) {
|
||||
state.value = 0;
|
||||
return;
|
||||
}
|
||||
if (!walletStore.connected || (walletStore.connected && activeToken.value.allowance < tokenNumber.value)) {
|
||||
const rewardsForResult = await memeburnerStore.getRewardFor(
|
||||
BigInt(value * Math.pow(10, activeToken.value.decimals))
|
||||
);
|
||||
console.log("rewardsForResult", rewardsForResult);
|
||||
const rewardsForResultNumber = Number(rewardsForResult) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
newOutput = rewardsForResultNumber;
|
||||
variant = "sacrifice";
|
||||
} else {
|
||||
const rewardsForResult = await memeburnerStore.getRewardFor(
|
||||
BigInt(value * Math.pow(10, activeToken.value.decimals))
|
||||
);
|
||||
console.log(
|
||||
"tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)",
|
||||
tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)
|
||||
);
|
||||
console.log("tokenNumber.value", tokenNumber.value);
|
||||
var quoteRewards = await uniswapStore.quoteExactInputSingle(
|
||||
tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)
|
||||
);
|
||||
const rewardsForResult = await memeburnerStore.getRewardFor(
|
||||
BigInt(value * Math.pow(10, activeToken.value.decimals))
|
||||
);
|
||||
const rewardsForResultNumber = Number(rewardsForResult) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
|
||||
var quoteRewards = await uniswapStore.quoteExactInputSingle(
|
||||
tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)
|
||||
);
|
||||
|
||||
let variant = "sacrifice";
|
||||
if (quoteRewards.result) {
|
||||
console.log("quoteRewards", quoteRewards);
|
||||
const rewardsForResultNumber = Number(rewardsForResult) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
console.log("rewardsForResultNumber", rewardsForResultNumber);
|
||||
const quoteRewardsNumber = Number(quoteRewards) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
console.log("quoteRewardsNumber", quoteRewardsNumber);
|
||||
const quoteRewardsNumber = Number(quoteRewards.amount) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
if (quoteRewardsNumber * 0.995 > rewardsForResultNumber) {
|
||||
//sacrificememe
|
||||
newOutput = quoteRewardsNumber;
|
||||
variant = "buy";
|
||||
// const hash = await memeburnerStore.sacrificeMeme(tokenNumber.value);
|
||||
}
|
||||
} else {
|
||||
/**
|
||||
* case 4
|
||||
* quoter threw an error
|
||||
*/
|
||||
//
|
||||
newOutput = rewardsForResultNumber;
|
||||
}
|
||||
|
||||
const amountDecimal = BigInt(value * Math.pow(10, tokenStore.activeToken.decimals));
|
||||
console.log("amountDecimal", amountDecimal);
|
||||
if (!walletStore.connected || (walletStore.connected && activeToken.value.allowance < tokenNumber.value)) {
|
||||
/**
|
||||
* case 1
|
||||
* user is not logged in or Allowance is less than Input, then I show getRewardsForSacrifice Value
|
||||
* variante not relevant
|
||||
*/
|
||||
newOutput = rewardsForResultNumber;
|
||||
} else if (walletStore.connected && variant === "sacrifice") {
|
||||
/**
|
||||
* case 2
|
||||
* user is logged in and allowance is greater or equal input and variant is sacrifice
|
||||
*/
|
||||
newOutput = rewardsForResultNumber;
|
||||
} else if (walletStore.connected && variant === "buy") {
|
||||
/**
|
||||
* case 3
|
||||
* user is logged in and allowance is greater or equal input and variant is buy
|
||||
* compare sacrificeMeme-result and sacrificeMemeAndBuyBLOOD-result
|
||||
*/
|
||||
const amountSacrifice = await readContract({
|
||||
address: memeburnerStore.contract.address,
|
||||
abi: memeburnerStore.contract.abi,
|
||||
functionName: "sacrificeMeme",
|
||||
args: [tokenStore.activeToken.contractAddress, amountDecimal.toString(), 0],
|
||||
account: walletStore.address,
|
||||
});
|
||||
console.log("amountSacrifice", amountSacrifice);
|
||||
|
||||
const amountBuy = await readContract({
|
||||
address: memeburnerStore.contract.address,
|
||||
abi: memeburnerStore.contract.abi,
|
||||
functionName: "sacrificeMemeAndBuyBLOOD",
|
||||
args: [tokenStore.activeToken.contractAddress, amountDecimal.toString(), 0],
|
||||
account: walletStore.address,
|
||||
});
|
||||
const amountBuyNumber = Number(amountBuy) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
|
||||
const amountSacrificeNumber = Number(amountSacrifice) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
if (amountBuyNumber * 0.995 > amountSacrificeNumber) {
|
||||
variant = "buy";
|
||||
newOutput = amountBuyNumber;
|
||||
} else {
|
||||
newOutput = rewardsForResultNumber;
|
||||
variant = "sacrifice";
|
||||
//sacrificeMemeAndBuyBLOOD
|
||||
// const hash = await memeburnerStore.sacrificeMeme(tokenNumber.value);
|
||||
newOutput = amountSacrificeNumber;
|
||||
}
|
||||
}
|
||||
console.log("variant", variant);
|
||||
|
||||
// if (!walletStore.connected && variant === "sacrifice") {
|
||||
// newOutput = rewardsForResultNumber;
|
||||
// } else if (!walletStore.connected && variant === "buy") {
|
||||
// newOutput = rewardsForResultNumber;
|
||||
// }
|
||||
|
||||
// if (!walletStore.connected || (walletStore.connected && activeToken.value.allowance < tokenNumber.value)) {
|
||||
// //case 1
|
||||
// // user is not logged in or Allowance is less than Input, then I show getRewardsForSacrifice Value
|
||||
|
||||
// newOutput = rewardsForResultNumber;
|
||||
// variant = "sacrifice";
|
||||
// } else {
|
||||
// const rewardsForResult = await memeburnerStore.getRewardFor(
|
||||
// BigInt(value * Math.pow(10, activeToken.value.decimals))
|
||||
// );
|
||||
// console.log(
|
||||
// "tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)",
|
||||
// tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)
|
||||
// );
|
||||
// console.log("tokenNumber.value", tokenNumber.value);
|
||||
// var quoteRewards = await uniswapStore.quoteExactInputSingle(
|
||||
// tokenNumber.value * Math.pow(10, tokenStore.activeToken.decimals)
|
||||
// );
|
||||
// console.log("quoteRewards", quoteRewards);
|
||||
// const rewardsForResultNumber = Number(rewardsForResult[0]) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
// console.log("rewardsForResultNumber", rewardsForResultNumber);
|
||||
// const quoteRewardsNumber = Number(quoteRewards) / Math.pow(10, tokenStore.activeToken.decimals);
|
||||
// console.log("quoteRewardsNumber", quoteRewardsNumber);
|
||||
// if (quoteRewardsNumber * 0.995 > rewardsForResultNumber) {
|
||||
// //sacrificememe
|
||||
// newOutput = quoteRewardsNumber;
|
||||
// variant = "buy";
|
||||
// // const hash = await memeburnerStore.sacrificeMeme(tokenNumber.value);
|
||||
// } else {
|
||||
// newOutput = rewardsForResultNumber;
|
||||
// variant = "sacrifice";
|
||||
// //sacrificeMemeAndBuyBLOOD
|
||||
// // const hash = await memeburnerStore.sacrificeMeme(tokenNumber.value);
|
||||
// }
|
||||
// }
|
||||
// console.log("variant", variant);
|
||||
// tokenStore.activeToken.rewards = newOutput;
|
||||
output.value = newOutput;
|
||||
tokenStore.activeToken.rewards = newOutput;
|
||||
return { ouput: newOutput, variant: variant };
|
||||
} catch (error) {
|
||||
console.log("error", error);
|
||||
@@ -416,6 +504,11 @@ async function addTokens(value) {
|
||||
output.value = await getRewardsFor(tokenNumber.value).output;
|
||||
}
|
||||
|
||||
async function addMaxTokens() {
|
||||
tokenNumber.value = activeWalletToken.value.balanceOf;
|
||||
output.value = await getRewardsFor(tokenNumber.value).output;
|
||||
}
|
||||
|
||||
function showSuccessToast(value, header, subheader, info) {
|
||||
// Define the content object with the component, props and listeners
|
||||
const content = {
|
||||
@@ -612,4 +705,10 @@ function showSuccessToast(value, header, subheader, info) {
|
||||
justify-content: space-between
|
||||
.icon
|
||||
margin-left: auto
|
||||
|
||||
.input-max
|
||||
color: var(--grey, #858585)
|
||||
&:hover, &:active, &:focus
|
||||
color: var(--grey-light, #858585)
|
||||
cursor: pointer
|
||||
</style>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
@input="emit('update:modelValue', $event.target.value)"
|
||||
:value="props.modelValue"
|
||||
:placeholder="0"
|
||||
type="number"
|
||||
/>
|
||||
<div class="value-adder">
|
||||
<slot class="value-adder" name="message"></slot>
|
||||
@@ -29,6 +30,7 @@ import TokenLogo from "@/components/TokenLogo.vue";
|
||||
const props = defineProps({
|
||||
modelValue: [String, Number],
|
||||
logo: String,
|
||||
max: Number,
|
||||
});
|
||||
|
||||
const emit = defineEmits(["update:modelValue"]);
|
||||
@@ -50,6 +52,12 @@ const emit = defineEmits(["update:modelValue"]);
|
||||
font-size: 24px
|
||||
border-radius: 16px
|
||||
padding: 0 16px
|
||||
&::-webkit-outer-spin-button,
|
||||
&::-webkit-inner-spin-button
|
||||
-webkit-appearance: none
|
||||
margin: 0
|
||||
&[type=number]
|
||||
-moz-appearance: textfield
|
||||
@media (min-width: 992px)
|
||||
font-size: 24px
|
||||
.value-adder
|
||||
|
||||
Reference in New Issue
Block a user