From 4565a2e793eb6be948f507a5596ebf45aa85d46a Mon Sep 17 00:00:00 2001 From: Christopher Cali Date: Thu, 6 Apr 2023 17:33:25 -0400 Subject: [PATCH 01/34] Connect v1 smart contract interface with auth flow --- apps/web/src/composables/wallet.ts | 2 ++ apps/web/src/pages/dashboard/components/Stake.vue | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/web/src/composables/wallet.ts b/apps/web/src/composables/wallet.ts index 7cbeb9cd7..8f8250327 100644 --- a/apps/web/src/composables/wallet.ts +++ b/apps/web/src/composables/wallet.ts @@ -8,6 +8,7 @@ import useUsers from '@/composables/users' import { Account, ProviderString, Currency } from '@casimir/types' import { MessageInit, TransactionInit } from '@/interfaces/index' import * as Session from 'supertokens-web-js/recipe/session' +import router from './router' // Test ethereum send to address : 0xD4e5faa8aD7d499Aa03BDDE2a3116E66bc8F8203 // Test ethereum send to address : 0xd557a5745d4560B24D36A68b52351ffF9c86A212 @@ -94,6 +95,7 @@ export default function useWallet() { primaryAddress.value = user?.address } loadingUserWallets.value = false + router.push('/') } else { // Add account console.log('already logged in') console.log('checking if account exists on user') diff --git a/apps/web/src/pages/dashboard/components/Stake.vue b/apps/web/src/pages/dashboard/components/Stake.vue index 762b76d34..c10d8c3e6 100644 --- a/apps/web/src/pages/dashboard/components/Stake.vue +++ b/apps/web/src/pages/dashboard/components/Stake.vue @@ -265,7 +265,7 @@ onMounted(async ()=>{

+
{
-
-
- - From - -
- -
+
Date: Mon, 10 Apr 2023 12:47:02 -0400 Subject: [PATCH 07/34] Fix performData encode/decode test --- contracts/ethereum/src/CasimirAutomation.sol | 5 +---- contracts/ethereum/test/fixtures/shared.ts | 13 +++++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/contracts/ethereum/src/CasimirAutomation.sol b/contracts/ethereum/src/CasimirAutomation.sol index 74d8c5fec..98ccaf2e1 100644 --- a/contracts/ethereum/src/CasimirAutomation.sol +++ b/contracts/ethereum/src/CasimirAutomation.sol @@ -49,10 +49,7 @@ contract CasimirAutomation is ICasimirAutomation { console.log(abi.decode(checkData, (string))); upkeepNeeded = validateUpkeep(); - - if (upkeepNeeded) { - performData = abi.encodePacked("Performing upkeep"); - } + performData = abi.encodePacked("Performing upkeep"); } /** diff --git a/contracts/ethereum/test/fixtures/shared.ts b/contracts/ethereum/test/fixtures/shared.ts index d0f9a7599..1086c7711 100644 --- a/contracts/ethereum/test/fixtures/shared.ts +++ b/contracts/ethereum/test/fixtures/shared.ts @@ -93,12 +93,17 @@ export async function firstUserDepositFixture() { const value = ethers.utils.parseEther(depositAmount.toString()) const deposit = await casimirManager.connect(firstUser).deposit({ value }) await deposit.wait() - - const checkData = ethers.utils.keccak256(ethers.utils.toUtf8Bytes('Checking upkeep')) - const { ...check } = await casimirAutomation.checkUpkeep(checkData) + + const checkData = 'Checking upkeep' + const { ...check } = await casimirAutomation.checkUpkeep( + ethers.utils.defaultAbiCoder.encode(['string'], [checkData]) + ) const { upkeepNeeded, performData } = check + const performDataString = ethers.utils.toUtf8String(performData) if (upkeepNeeded) { - const performUpkeep = await casimirAutomation.performUpkeep(performData) + const performUpkeep = await casimirAutomation.performUpkeep( + ethers.utils.defaultAbiCoder.encode(['string'], [performDataString]) + ) await performUpkeep.wait() } From bd77052c147057ea7ef87b279869b42d9e5195a4 Mon Sep 17 00:00:00 2001 From: Shane Earley <32200924+shanejearley@users.noreply.github.com> Date: Mon, 10 Apr 2023 12:51:03 -0400 Subject: [PATCH 08/34] Point automation at PoR in contract diagram --- contracts/ethereum/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ethereum/README.md b/contracts/ethereum/README.md index afddc3118..72b4371e7 100644 --- a/contracts/ethereum/README.md +++ b/contracts/ethereum/README.md @@ -38,7 +38,7 @@ graph LR E2 --> F24(SSV Operator 8) end - G --> B + H --> G H --> B subgraph Chainlink From a9de238901b7e2926fa7507f49995b7e0b410be9 Mon Sep 17 00:00:00 2001 From: Shane Earley <32200924+shanejearley@users.noreply.github.com> Date: Mon, 10 Apr 2023 12:53:45 -0400 Subject: [PATCH 09/34] Fix automation contract reference in table --- contracts/ethereum/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ethereum/README.md b/contracts/ethereum/README.md index 72b4371e7..4177e937a 100644 --- a/contracts/ethereum/README.md +++ b/contracts/ethereum/README.md @@ -64,7 +64,7 @@ The Casimir SSV contracts are located in the [src](./src) directory. | Contract | Description | Docs | | --- | --- | --- | | [CasimirManager](./src/CasimirManager.sol) | Manages Casimir SSV stake distribution | [docs/index.md#casimirmanager](./docs/index.md#casimirmanager) | -| [CasimirAutomator](./src/CasimirAutomation.sol) | Automates Casimir SSV event handling | [docs/index.md#casimirautomator](./docs/index.md#casimirautomator) | +| [CasimirAutomation](./src/CasimirAutomation.sol) | Automates Casimir SSV event handling | [docs/index.md#casimirautomation](./docs/index.md#casimirautomation) | > 🚩 The Casimir SSV contracts are configured with a Hardhat development environment in the [hardhat.config.ts](./hardhat.config.ts) file. From c5aa36136ce13426d905dfb16cc5318fe8fbbea6 Mon Sep 17 00:00:00 2001 From: demogorgod Date: Mon, 10 Apr 2023 13:45:47 -0400 Subject: [PATCH 10/34] Add add responsiveness to tabe in DataTable component --- .../pages/dashboard/components/DataTable.vue | 118 ++++++++++++------ 1 file changed, 77 insertions(+), 41 deletions(-) diff --git a/apps/web/src/pages/dashboard/components/DataTable.vue b/apps/web/src/pages/dashboard/components/DataTable.vue index faf9aa343..59acbce29 100644 --- a/apps/web/src/pages/dashboard/components/DataTable.vue +++ b/apps/web/src/pages/dashboard/components/DataTable.vue @@ -28,12 +28,14 @@ const page_size = ref(16) const page_number = ref(1) const max_pages = ref(0) -const data = ref() +const data = ref(null as any) const filteredData = ref() const filterData = () => { filteredData.value = data.value.slice((page_number.value - 1) * page_size.value, page_number.value * page_size.value) max_pages.value = data.value.length/page_size.value + + if(page_number.value >= (Math.ceil(max_pages.value) + 1)) page_number.value = 1 } onMounted(()=>{ @@ -42,7 +44,7 @@ onMounted(()=>{ randomData.push( { id: i + 'as;dkfjajsdfa', - amount: i * 100 + ' $', + amount: i * Math.floor(Math.random() * 100) + ' $', autoRestake: true, date: '1/1/' + i } @@ -54,9 +56,10 @@ onMounted(()=>{ filterData() }) -watch([page_number, page_size], ()=>{ +watch([page_number, page_size, data, tableHeaders], ()=>{ filterData() }) + const paginationOptions = ref(['Show All', 6, 8, 10, 12, 14, 16, 18, 20,]) const openPaginationOptions = ref(false) @@ -104,47 +107,80 @@ const openPaginationOptions = ref(false)
- - - - + + +
- + {{ item[header.value] }} +
+
+ No Data +
+
+
+
+
+
+ {{ row.title }} +
+
+ {{ item[row.value] }} +
+
+
+
-
Are you logged in?
-
{{ loggedIn ? 'Yes!' : 'No.' }}
Primary Account:
{{ primaryAddress ? primaryAddress : 'Please log in first.' }}