From 9565f494ea8e892a4563b4c7d4d66ccfe18e21ee Mon Sep 17 00:00:00 2001 From: EmberSpirit Date: Mon, 10 Jul 2023 21:16:30 +0200 Subject: [PATCH] rounds implemented + over all improvements --- .eslintrc.cjs | 18 ++-- src/App.vue | 133 ++++++++++++++++++------------ src/components/BloodChart.vue | 55 ++++++------ src/components/SacrificeToken.vue | 34 +++++--- src/components/TokenClaim.vue | 25 +++++- src/helper/helper.js | 14 ++++ src/stores/memeburner.js | 3 +- src/stores/rewardlocker.js | 21 +++++ src/stores/rounds.js | 64 ++++++++++++++ src/stores/tokens.js | 48 ++++++++--- src/views/HomeView.vue | 40 +++++---- src/views/TestView.vue | 22 ++++- 12 files changed, 350 insertions(+), 127 deletions(-) create mode 100644 src/stores/rounds.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 379addf..b997821 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,12 +1,12 @@ /* eslint-env node */ module.exports = { - root: true, - extends: [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - ], - parserOptions: { - ecmaVersion: 'latest' - } -} + root: true, + extends: ["plugin:vue/vue3-essential", "eslint:recommended"], + parserOptions: { + ecmaVersion: "latest", + }, + global: { + BigInt: true, + }, +}; diff --git a/src/App.vue b/src/App.vue index 3eb30a2..209dced 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,20 +11,18 @@ import { useContractStore } from "@/stores/contracts"; import { useMemeburnerStore } from "@/stores/memeburner"; import { useRewardLockerStore } from "@/stores/rewardlocker"; import { useMultiCallStore } from "@/stores/multicall"; +import { useRoundsStore } from "@/stores/rounds"; const tokenStore = useTokenStore(); const contractStore = useContractStore(); const memeBurnerStore = useMemeburnerStore(); const rewardLockerStore = useRewardLockerStore(); const multiCallStore = useMultiCallStore(); -const { memeBurner } = storeToRefs(tokenStore); +const roundsStore = useRoundsStore(); +const { memeBurner, token } = storeToRefs(tokenStore); const { list } = storeToRefs(contractStore); const isMobile = ref(false); isMobile.value = isMobileFunc(); - -onMounted(() => { - window.addEventListener("resize", handleWindowSizeChange); - handleWindowSizeChange(); -}); +let subscription; onUnmounted(() => { window.removeEventListener("resize", handleWindowSizeChange); }); @@ -43,74 +41,107 @@ function isMobileFunc() { provide("isMobile", isMobile); onMounted(async () => { + window.addEventListener("resize", handleWindowSizeChange); + handleWindowSizeChange(); //more or less tests var test = await walletStore.isConnected(); console.log("test", test); let web3 = new Web3("https://eth-goerli.g.alchemy.com/v2/0-W9tOm6v_QP1PfRV8RuBCpWr-qoEbkN"); + let web3socket = new Web3( + new Web3.providers.WebsocketProvider("wss://eth-goerli.g.alchemy.com/v2/0-W9tOm6v_QP1PfRV8RuBCpWr-qoEbkN") + ); + console.log("web3socket", web3socket); + + //init walletStore.web3 = web3; - const contract = new web3.eth.Contract(memeBurner.value.config.abi, memeBurner.value.config.contractAddress); + // const contract = new web3.eth.Contract(memeBurner.value.config.abi, memeBurner.value.config.contractAddress); list.value.memeBurnerPublic = new web3.eth.Contract( memeBurner.value.config.abi, memeBurner.value.config.contractAddress ); //Memeburner Contract - memeBurnerStore.contract = new web3.eth.Contract( - memeBurnerStore.config.abi, - memeBurnerStore.config.contractAddress - ); - var getGoal = await memeBurnerStore.getGoal(1); - var getSacrificedMeme1 = await memeBurnerStore.getSacrificedMeme(1, "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b"); - var getSacrificedMeme2 = await memeBurnerStore.getSacrificedMeme(1, "0xa0B7b2a78dF87eDc70736f7ED9D40d86c37B533F"); - var blub1 = (getSacrificedMeme1.amountAchieved / getGoal) * 100; - var blub2 = (getSacrificedMeme2.amountAchieved / getGoal) * 100; + // var testabc = await memeBurnerStore.contract.methods + // .getSacrificedMeme(1, "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b") + // .call(); + // console.log("testabc", testabc); - memeBurnerStore.contract = new web3.eth.Contract( - memeBurnerStore.config.abi, - memeBurnerStore.config.contractAddress - ); + // var data = await memeBurnerStore.getSacrificedRound(1); + // console.log("data", data); + // console.log("blub1", blub1); + // console.log("blub2", blub2); + // console.log("getSacrificedMeme", getSacrificedMeme1.amountAchieved); + // console.log("getGoal", getGoal); + // console.log("memeBurnerStore.contract", memeBurnerStore.contract); + // console.log("list", list.value); + // const rounds = await contract.methods.rounds("0x0e349D42C125acA39ea58024FFC23ED0fE5feE32").call(); + // console.log("rounds", rounds); - var testabc = await memeBurnerStore.contract.methods - .getSacrificedMeme(1, "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b") - .call(); - console.log("testabc", testabc); + // var claim = await rewardLockerStore.getTotalRewardsOf("0x60dd9D0e015115b9aEf61bEDCcBE1390CEEfC247", [1]); + // console.log("claim", claim); - multiCallStore.contract = new web3.eth.Contract(multiCallStore.config.abi, multiCallStore.config.contractAddress); - - var data = await memeBurnerStore.getSacrificedRound(1); - console.log("data", data); - memeBurnerStore.contract = new web3.eth.Contract( - memeBurnerStore.config.abi, - memeBurnerStore.config.contractAddress - ); - - console.log("blub1", blub1); - console.log("blub2", blub2); - console.log("getSacrificedMeme", getSacrificedMeme1.amountAchieved); - console.log("getGoal", getGoal); - console.log("memeBurnerStore.contract", memeBurnerStore.contract); - console.log("list", list.value); - const currentRound = await memeBurnerStore.getCurrentRound(); - const rounds = await contract.methods.rounds("0x0e349D42C125acA39ea58024FFC23ED0fE5feE32").call(); - console.log("currentRound", currentRound); - console.log("rounds", rounds); + // var lastCompletedRound = await rewardLockerStore.lastCompletedRound(); + // console.log("lastCompletedRound", lastCompletedRound); + // var getwards = await rewardLockerStore.getRewards( + // "0x60dd9D0e015115b9aEf61bEDCcBE1390CEEfC247", + // 1, + // "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b" + // ); + // console.log("getwards", getwards); + //contracts rewardLockerStore.contract = new web3.eth.Contract( rewardLockerStore.config.abi, rewardLockerStore.config.contractAddress ); - - var lastCompletedRound = await rewardLockerStore.lastCompletedRound(); - console.log("lastCompletedRound", lastCompletedRound); - var getwards = await rewardLockerStore.getRewards( - walletStore.address, - 1, - "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b" + memeBurnerStore.contract = new web3.eth.Contract( + memeBurnerStore.config.abi, + memeBurnerStore.config.contractAddress ); - console.log("getwards", getwards); + tokenStore.memeToken.contract = new web3.eth.Contract( + tokenStore.memeToken.config.abi, + tokenStore.memeToken.config.contractAddress + ); + const websocketMemeBurner = new web3socket.eth.Contract( + memeBurnerStore.config.abi, + memeBurnerStore.config.contractAddress + ); + multiCallStore.contract = new web3.eth.Contract(multiCallStore.config.abi, multiCallStore.config.contractAddress); + + //init + roundsStore.currentRound = parseInt(await memeBurnerStore.getCurrentRound()); + console.log("roundsStore.currentRound", roundsStore.currentRound); + roundsStore.activeRound = roundsStore.currentRound; + await roundsStore.fillRound(roundsStore.activeRound); + + tokenStore.memeToken.decimals = parseInt(await tokenStore.memeToken.contract.methods.decimals().call()); + for (let index = 0; index < token.value.length; index++) { + const _token = token.value[index]; + _token.contract = new web3.eth.Contract(_token.abi, _token.contractAddress); + _token.decimals = parseInt(await _token.contract.methods.decimals().call()); + } + + console.log("token123", token.value); + + //events + // var bleb = roundsStore.rounds[roundsStore.currentRound].find( + // (obj) => obj.contractAddress === "0x4435ABC578136e2Eca50b5EFf950F17CAF42485b" + // ); + // console.log("roundsStore.rounds[roundsStore.currentRound]", bleb); + websocketMemeBurner.events + .MemeSacrificed() + .on("data", async (event) => { + console.log("sacrificedAmount", event.returnValues.sacrificedAmount); + console.log("sacrificedToken", event.returnValues.sacrificedToken); + await roundsStore.updateCurrentRound( + event.returnValues.sacrificedToken, + event.returnValues.sacrificedAmount + ); + }) + .on("error", (error) => console.log("MemeSacrificederror", error)); }); diff --git a/src/components/BloodChart.vue b/src/components/BloodChart.vue index 98805c2..135b6d9 100644 --- a/src/components/BloodChart.vue +++ b/src/components/BloodChart.vue @@ -1,15 +1,15 @@