From c38f122f42f8440d73dd29275aacf50e79460a0c Mon Sep 17 00:00:00 2001 From: Noah Saso Date: Sun, 2 Jun 2024 00:01:31 -0400 Subject: [PATCH] moved active threshold formula to common voting route and added active threshold transformers --- src/data/formulas/contract/voting/common.ts | 7 +++++++ src/data/formulas/contract/voting/daoVotingCw20Staked.ts | 7 ++----- src/data/formulas/contract/voting/index.ts | 1 + src/data/transformers/voting/daoVotingCw20Staked.ts | 7 ++++++- src/data/transformers/voting/daoVotingCw721Staked.ts | 6 ++++++ src/data/transformers/voting/daoVotingNativeStaked.ts | 7 ++++++- src/data/transformers/voting/daoVotingTokenStaked.ts | 6 ++++++ 7 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 src/data/formulas/contract/voting/common.ts diff --git a/src/data/formulas/contract/voting/common.ts b/src/data/formulas/contract/voting/common.ts new file mode 100644 index 00000000..e7bac5c7 --- /dev/null +++ b/src/data/formulas/contract/voting/common.ts @@ -0,0 +1,7 @@ +import { ContractFormula } from '@/core/types' + +export const activeThreshold: ContractFormula = { + compute: async ({ contractAddress, get, getTransformationMatch }) => + (await getTransformationMatch(contractAddress, 'activeThreshold'))?.value || + (await get(contractAddress, 'active_threshold')), +} diff --git a/src/data/formulas/contract/voting/daoVotingCw20Staked.ts b/src/data/formulas/contract/voting/daoVotingCw20Staked.ts index 7e792644..20505a70 100644 --- a/src/data/formulas/contract/voting/daoVotingCw20Staked.ts +++ b/src/data/formulas/contract/voting/daoVotingCw20Staked.ts @@ -7,6 +7,8 @@ import { totalStaked, } from '../staking/cw20Stake' +export { activeThreshold } from './common' + export const tokenContract: ContractFormula = { compute: async ({ contractAddress, get, getTransformationMatch }) => (await getTransformationMatch(contractAddress, 'token'))?.value ?? @@ -74,11 +76,6 @@ export const dao: ContractFormula = { (await get(contractAddress, 'dao')), } -export const activeThreshold: ContractFormula = { - compute: async ({ contractAddress, get }) => - await get(contractAddress, 'active_threshold'), -} - type Staker = StakerBalance & { votingPowerPercent: number } diff --git a/src/data/formulas/contract/voting/index.ts b/src/data/formulas/contract/voting/index.ts index a47c4885..e063b1d1 100644 --- a/src/data/formulas/contract/voting/index.ts +++ b/src/data/formulas/contract/voting/index.ts @@ -1,3 +1,4 @@ +export * as daoVoting from './common' export * as daoVotingCw20Staked from './daoVotingCw20Staked' export * as daoVotingCw4 from './daoVotingCw4' export * as daoVotingCw721Staked from './daoVotingCw721Staked' diff --git a/src/data/transformers/voting/daoVotingCw20Staked.ts b/src/data/transformers/voting/daoVotingCw20Staked.ts index ea217d3d..c401833d 100644 --- a/src/data/transformers/voting/daoVotingCw20Staked.ts +++ b/src/data/transformers/voting/daoVotingCw20Staked.ts @@ -9,5 +9,10 @@ const stakingContract = makeTransformer( ) const dao = makeTransformer(CODE_IDS_KEYS, 'dao') const token = makeTransformer(CODE_IDS_KEYS, 'token') +const activeThreshold = makeTransformer( + CODE_IDS_KEYS, + 'activeThreshold', + 'active_threshold' +) -export default [stakingContract, dao, token] +export default [stakingContract, dao, token, activeThreshold] diff --git a/src/data/transformers/voting/daoVotingCw721Staked.ts b/src/data/transformers/voting/daoVotingCw721Staked.ts index 37498b45..cf793b35 100644 --- a/src/data/transformers/voting/daoVotingCw721Staked.ts +++ b/src/data/transformers/voting/daoVotingCw721Staked.ts @@ -11,6 +11,11 @@ const KEY_PREFIX_NB = dbKeyForKeys('nb', '') const config = makeTransformer(CODE_IDS_KEYS, 'config') const dao = makeTransformer(CODE_IDS_KEYS, 'dao') const totalStakedNfts = makeTransformer(CODE_IDS_KEYS, 'tsn') +const activeThreshold = makeTransformer( + CODE_IDS_KEYS, + 'activeThreshold', + 'active_threshold' +) const stakedNftPerOwner: Transformer = { filter: { @@ -63,4 +68,5 @@ export default [ stakedNftPerOwner, stakedNftOwner, stakedCount, + activeThreshold, ] diff --git a/src/data/transformers/voting/daoVotingNativeStaked.ts b/src/data/transformers/voting/daoVotingNativeStaked.ts index 9b069b47..71e0e189 100644 --- a/src/data/transformers/voting/daoVotingNativeStaked.ts +++ b/src/data/transformers/voting/daoVotingNativeStaked.ts @@ -14,5 +14,10 @@ const totalStaked = makeTransformer( 'totalStaked', 'total_staked' ) +const activeThreshold = makeTransformer( + CODE_IDS_KEYS, + 'activeThreshold', + 'active_threshold' +) -export default [config, dao, stakedBalance, totalStaked] +export default [config, dao, stakedBalance, totalStaked, activeThreshold] diff --git a/src/data/transformers/voting/daoVotingTokenStaked.ts b/src/data/transformers/voting/daoVotingTokenStaked.ts index 33589266..7451839f 100644 --- a/src/data/transformers/voting/daoVotingTokenStaked.ts +++ b/src/data/transformers/voting/daoVotingTokenStaked.ts @@ -20,6 +20,11 @@ const totalStaked = makeTransformer( 'totalStaked', 'total_staked' ) +const activeThreshold = makeTransformer( + CODE_IDS_KEYS, + 'activeThreshold', + 'active_threshold' +) export default [ config, @@ -28,4 +33,5 @@ export default [ tokenIssuerContract, stakedBalance, totalStaked, + activeThreshold, ]