Skip to content

Commit

Permalink
List operators that are in both SSV & CasimirRegistry
Browse files Browse the repository at this point in the history
  • Loading branch information
ccali11 committed Aug 3, 2023
1 parent e6eee6a commit 2223bf1
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 34 deletions.
41 changes: 30 additions & 11 deletions apps/web/src/composables/contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,20 +42,21 @@ interface UserOperators {
}

interface SSVOperator {
id: string
walletAddress: string
collateral?: string
availableCollateral?: string
collateralInUse?: string
rewards?: string
id: string
nodeURL?: string
rewards?: string
walletAddress: string
}

interface CasimirOperator {
id: string
collateral?: string
availableCollateral?: string
collateralInUse?: string
rewards?: string
id: string
nodeURL?: string
rewards?: string
walletAddress?: string
}


Expand Down Expand Up @@ -132,14 +133,32 @@ export default function useContracts() {

/** Get all user operators */
async function getUserOperators() {
let casimirOperators = await _getCasimirOperators()
const casimirOperators = await _getCasimirOperators()
const ssvOperators = await _getSSVOperators()

// TODO: Re-enable this when IDs are lining up again.
// Filter casimirOperators to only include operators that are in ssvOperators by id
casimirOperators = casimirOperators.filter((casimirOperator) => {
return ssvOperators.some((ssvOperator: SSVOperator) => { ssvOperator.id.toString() === casimirOperator.id })
// casimirOperators = casimirOperators.filter((casimirOperator) => {
// return ssvOperators.some((ssvOperator: SSVOperator) => { ssvOperator.id.toString() === casimirOperator.id })
// })

// Need to update each casimirOperator with availableCollateral, collateralInUse, nodeURL, rewards, and walletAddress
casimirOperators.forEach((casimirOperator) => {
const ssvOperator = ssvOperators.find((ssvOperator: SSVOperator) => ssvOperator.id.toString() === casimirOperator.id)
if (ssvOperator) {
casimirOperator.availableCollateral = ssvOperator.availableCollateral
casimirOperator.collateralInUse = ssvOperator.collateralInUse
casimirOperator.nodeURL = ssvOperator.nodeURL
casimirOperator.rewards = ssvOperator.rewards
casimirOperator.walletAddress = ssvOperator.owner_address
} else {
casimirOperator.availableCollateral = '10'
casimirOperator.collateralInUse = '5'
casimirOperator.nodeURL = 'https://node.ssv.network'
casimirOperator.rewards = '2.5'
casimirOperator.walletAddress = '0xd557a5745d4560B24D36A68b52351ffF9c86A212'
}
})

_setUserOperators('casimir', casimirOperators)
_setUserOperators('ssv', ssvOperators)
return {
Expand Down
43 changes: 20 additions & 23 deletions apps/web/src/pages/operators/Operator.vue
Original file line number Diff line number Diff line change
Expand Up @@ -65,19 +65,19 @@ const operatorTableHeaders = ref(
},
{
title: 'Operator ID',
value: 'operator_id'
value: 'id'
},
{
title: 'Wallet Address',
value: 'wallet_address'
value: 'walletAddress'
},
{
title: 'Available Collateral',
value: 'avl_collateral'
value: 'availableCollateral'
},
{
title: 'Collateral In Use',
value: 'colateral_in_use'
value: 'collateralInUse'
},
{
title: 'Rewards',
Expand Down Expand Up @@ -218,10 +218,10 @@ const removeItemFromCheckedList = (item:any) => {
const submitRegisterOperatorForm = () =>{
const newOperator = {
operator_id: selectedOperatorID.value,
wallet_address: selectedWallet,
avl_collateral: selectedCollateral,
walletAddress: selectedWallet,
availableCollateral: selectedCollateral,
node_url: selectedPublicNodeURL,
colateral_in_use: 0,
collateralInUse: 0,
rewards: 0
}
Expand All @@ -232,36 +232,33 @@ const submitRegisterOperatorForm = () =>{
const { getUserOperators, userOperators } = useContracts()
const setTableData = async () =>{
// @chris set tableData.value here
// TODO: Make sure userOperators have types defined below
// @chris set tableData.value here
await getUserOperators()
console.log('userOperators :>> ', userOperators)
/**
* operator_id: number | string,
* wallet_address: string,
* avl_collateral: string | number,
* availableCollateral: string | number,
* collateralInUse: number,
* id: number | string,
* node_url: string,
* colateral_in_use: number,
* rewards: number
* walletAddress: string,
*/
tableData.value = userOperators.value.casimir
}
watch(user, async () => {
if (user.value) {
await setTableData()
filterData()
}
// filterData()
})
// @chris adjust watcher to match varibale that we are listening to to update the table
watch(rawUserAnalytics, async () =>{
await setTableData()
// filterData()
})
onMounted(async () => {
if (user.value) {
await setTableData()
// filterData()
filterData()
}
})
Expand Down Expand Up @@ -329,7 +326,7 @@ onMounted(async () => {
</h6>
<div class="card_input w-full max-w-[300px] relative">
<input
id="wallet_address"
id="walletAddress"
v-model="selectedWallet"
type="text"
placeholder="Wallet Address.."
Expand Down Expand Up @@ -604,7 +601,7 @@ onMounted(async () => {
</button>
</div>
<div v-else>
{{ item[header.value ] }}
{{ item[header.value] }}
</div>
</td>
</tr>
Expand Down

0 comments on commit 2223bf1

Please sign in to comment.