From 4971d64373b4573849e9a13d92edbcfd74f4c668 Mon Sep 17 00:00:00 2001 From: josemarinas <36479864+josemarinas@users.noreply.github.com> Date: Tue, 21 May 2024 16:12:04 +0200 Subject: [PATCH 1/3] chore: APP-3221 - update dependencies and add osx-commons-configs (#1349) * chore: update dependencies and add osx-commons-configs * fix: subgraph queries * fix: toMultisig transforming functions * fix: members * fix: lint * fix: adapt imports of SupportedNetworks and SupportedVersions * chore: update sdk version * chore: update subgraph version * fix: network resolution --- package.json | 5 +- .../createDaoDialog/utils/createDaoUtils.ts | 6 +- .../settings/versionInfoCard/index.tsx | 17 ++-- src/context/update.tsx | 21 +++-- src/hooks/useClient.tsx | 15 ++-- src/hooks/useUpdateExists.ts | 4 +- src/pages/explore.tsx | 9 +-- .../actionEncoder/actionEncoderService.ts | 25 +++--- .../aragon-sdk/queryHelpers/proposal.ts | 5 +- .../aragon-sdk/queryHelpers/proposals.ts | 7 +- src/services/aragon-sdk/selectors/proposal.ts | 4 +- .../aragon-sdk/selectors/proposals.ts | 2 +- .../transactions/transactionsService.ts | 3 +- src/utils/aragonGateway.ts | 13 ++- src/utils/constants/api.ts | 10 +-- src/utils/library.ts | 36 +++++---- src/utils/proposals.ts | 21 ++--- src/utils/types.ts | 11 +-- yarn.lock | 80 ++++++++++++------- 19 files changed, 156 insertions(+), 138 deletions(-) diff --git a/package.json b/package.json index b764fdf10..813f54610 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,9 @@ "dependencies": { "@apollo/client": "^3.5.8", "@aragon/ods": "^1.0.20", - "@aragon/sdk-client": "^1.22.1", - "@aragon/sdk-client-common": "^1.14.1", + "@aragon/osx-commons-configs": "^0.4.0", + "@aragon/sdk-client": "^1.23.5", + "@aragon/sdk-client-common": "^1.15.3", "@playwright/test": "^1.42.1", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-dialog": "^1.0.4", diff --git a/src/containers/createDaoDialog/utils/createDaoUtils.ts b/src/containers/createDaoDialog/utils/createDaoUtils.ts index 2e85fb900..66ea4f01f 100644 --- a/src/containers/createDaoDialog/utils/createDaoUtils.ts +++ b/src/containers/createDaoDialog/utils/createDaoUtils.ts @@ -10,10 +10,8 @@ import { PluginSetupProcessor__factory, } from '@aragon/osx-ethers'; import {parseUnits} from 'ethers/lib/utils'; -import { - PluginInstallItem, - SupportedNetwork as SdkSupportedNetworks, -} from '@aragon/sdk-client-common'; +import {PluginInstallItem} from '@aragon/sdk-client-common'; +import {SupportedNetworks as SdkSupportedNetworks} from '@aragon/osx-commons-configs'; import { GaslessPluginVotingSettings, GaslessVotingClient, diff --git a/src/containers/settings/versionInfoCard/index.tsx b/src/containers/settings/versionInfoCard/index.tsx index 4cc4c882d..a33e9f33f 100644 --- a/src/containers/settings/versionInfoCard/index.tsx +++ b/src/containers/settings/versionInfoCard/index.tsx @@ -3,10 +3,10 @@ import {useTranslation} from 'react-i18next'; import {Link} from '@aragon/ods-old'; import {IconType} from '@aragon/ods'; import { - LIVE_CONTRACTS, - SupportedNetworksArray, - SupportedVersion, -} from '@aragon/sdk-client-common'; + SupportedNetworks, + SupportedVersions, + getNetworkDeployments, +} from '@aragon/osx-commons-configs'; import {useNetwork} from 'context/network'; import {AppVersion, CHAIN_METADATA} from 'utils/constants'; @@ -35,14 +35,15 @@ export const VersionInfoCard: React.FC<{ let OSxAddress = ''; const translatedNetwork = translateToNetworkishName(network); + const currentVersion = `v${versions?.join('.')}` as SupportedVersions; if ( translatedNetwork !== 'unsupported' && - SupportedNetworksArray.includes(translatedNetwork) + Object.values(SupportedNetworks).includes(translatedNetwork) && + Object.values(SupportedVersions).includes(currentVersion) ) { OSxAddress = - LIVE_CONTRACTS[versions?.join('.') as SupportedVersion]?.[ - translatedNetwork - ]?.daoFactoryAddress; + getNetworkDeployments(translatedNetwork)[currentVersion]?.DAOFactory + .address ?? ''; } let pluginName = ''; diff --git a/src/context/update.tsx b/src/context/update.tsx index 49c380411..f85a6868a 100644 --- a/src/context/update.tsx +++ b/src/context/update.tsx @@ -7,11 +7,8 @@ import { TokenVotingClient, TokenVotingPluginPrepareUpdateParams, } from '@aragon/sdk-client'; -import { - ApplyUpdateParams, - SupportedVersion, - VersionTag, -} from '@aragon/sdk-client-common'; +import {ApplyUpdateParams, VersionTag} from '@aragon/sdk-client-common'; +import {SupportedVersions} from '@aragon/osx-commons-configs'; import React, { createContext, ReactElement, @@ -173,18 +170,18 @@ const UpdateProvider: React.FC<{children: ReactElement}> = ({children}) => { if (versions) { const OSXVersions = new Map(); - Object.keys(SupportedVersion).forEach(key => { + Object.keys(SupportedVersions).forEach(key => { if ( compareVersions( - SupportedVersion[key as keyof typeof SupportedVersion], + SupportedVersions[key as keyof typeof SupportedVersions], versions.join('.') ) === 1 ) { OSXVersions.set( - SupportedVersion[key as keyof typeof SupportedVersion], + SupportedVersions[key as keyof typeof SupportedVersions], { - version: SupportedVersion[ - key as keyof typeof SupportedVersion + version: SupportedVersions[ + key as keyof typeof SupportedVersions ] as string, ...(key === 'LATEST' && {isLatest: true}), } as OSX @@ -192,8 +189,8 @@ const UpdateProvider: React.FC<{children: ReactElement}> = ({children}) => { if (key === 'LATEST') { setValue('osSelectedVersion', { - version: SupportedVersion[ - key as keyof typeof SupportedVersion + version: SupportedVersions[ + key as keyof typeof SupportedVersions ] as string, }); } diff --git a/src/hooks/useClient.tsx b/src/hooks/useClient.tsx index fc21a433d..871c58f1a 100644 --- a/src/hooks/useClient.tsx +++ b/src/hooks/useClient.tsx @@ -1,9 +1,8 @@ import {Client, Context as SdkContext, ContextParams} from '@aragon/sdk-client'; import { - LIVE_CONTRACTS, - SupportedVersion, - SupportedNetworksArray, -} from '@aragon/sdk-client-common'; + getLatestNetworkDeployment, + SupportedNetworks as SdkSupportedNetworks, +} from '@aragon/osx-commons-configs'; import {useNetwork} from 'context/network'; import React, { @@ -55,7 +54,7 @@ export const UseClientProvider: React.FC<{children: ReactNode}> = ({ // when network not supported by the SDK, don't set network if ( translatedNetwork === 'unsupported' || - !SupportedNetworksArray.includes(translatedNetwork) + !Object.values(SdkSupportedNetworks).includes(translatedNetwork) ) { return; } @@ -66,11 +65,11 @@ export const UseClientProvider: React.FC<{children: ReactNode}> = ({ headers: {'X-API-KEY': import.meta.env.VITE_GATEWAY_IPFS_API_KEY}, }, ]; + const daoFactoryAddress = + getLatestNetworkDeployment(translatedNetwork)?.DAOFactory.address ?? ''; const contextParams: ContextParams = { - daoFactoryAddress: - LIVE_CONTRACTS[SupportedVersion.LATEST][translatedNetwork] - .daoFactoryAddress, + DAOFactory: daoFactoryAddress, network: translatedNetwork, signer: signer ?? undefined, web3Providers: aragonGateway.buildRpcUrl(network)!, diff --git a/src/hooks/useUpdateExists.ts b/src/hooks/useUpdateExists.ts index c96beef67..26156469a 100644 --- a/src/hooks/useUpdateExists.ts +++ b/src/hooks/useUpdateExists.ts @@ -1,4 +1,4 @@ -import {SupportedVersion} from '@aragon/sdk-client-common'; +import {SupportedVersions} from '@aragon/osx-commons-configs'; import {usePluginVersions} from 'services/aragon-sdk/queries/use-plugin-versions'; import {useProtocolVersion} from 'services/aragon-sdk/queries/use-protocol-version'; @@ -17,7 +17,7 @@ export const useUpdateExists = (): boolean => { const {data: installedProtocol} = useProtocolVersion(daoAddress); // check whether protocol update exists - const latestProtocolVersion = SupportedVersion.LATEST as string; + const latestProtocolVersion = SupportedVersions.V1_3_0 as string; const installedProtocolVersion = installedProtocol?.join('.'); const protocolUpdateExists = !!( diff --git a/src/pages/explore.tsx b/src/pages/explore.tsx index 3f1d76e4e..9cc139103 100644 --- a/src/pages/explore.tsx +++ b/src/pages/explore.tsx @@ -1,7 +1,3 @@ -import { - SupportedNetworksArray, - SupportedNetwork, -} from '@aragon/sdk-client-common'; import React, {useEffect} from 'react'; import 'react-responsive-carousel/lib/styles/carousel.min.css'; import styled from 'styled-components'; @@ -12,6 +8,7 @@ import {DaoExplorer} from 'containers/daoExplorer'; import Hero from 'containers/hero'; import {useNetwork} from 'context/network'; import {translateToNetworkishName} from 'utils/library'; +import {SupportedNetworks} from '@aragon/osx-commons-configs'; export const Explore: React.FC = () => { const {network, setNetwork} = useNetwork(); @@ -20,10 +17,10 @@ export const Explore: React.FC = () => { //FIXME: temporarily when network not supported by the SDK, default to ethereum const translatedNetwork = translateToNetworkishName( network - ) as SupportedNetwork; + ) as SupportedNetworks; // when network not supported by the SDK, don't set network - if (!SupportedNetworksArray.includes(translatedNetwork)) { + if (!Object.values(SupportedNetworks).includes(translatedNetwork)) { console.warn('Unsupported network, defaulting to ethereum'); setNetwork('ethereum'); } diff --git a/src/services/actionEncoder/actionEncoderService.ts b/src/services/actionEncoder/actionEncoderService.ts index 1f0b3dfe1..a59e24ab4 100644 --- a/src/services/actionEncoder/actionEncoderService.ts +++ b/src/services/actionEncoder/actionEncoderService.ts @@ -1,11 +1,4 @@ -import { - DaoAction, - LIVE_CONTRACTS, - SupportedNetworksArray, - SupportedVersion, - TokenType, - hexToBytes, -} from '@aragon/sdk-client-common'; +import {DaoAction, TokenType, hexToBytes} from '@aragon/sdk-client-common'; import {IEncodeActionParams} from './actionEncoderService.api'; import {ethers} from 'ethers'; import {isNativeToken} from 'utils/tokens'; @@ -30,6 +23,11 @@ import { isGaslessVotingSettings, isMultisigVotingSettings, } from 'services/aragon-sdk/queries/use-voting-settings'; +import { + SupportedNetworks, + getNetworkDeployments, + SupportedVersions, +} from '@aragon/osx-commons-configs'; class ActionEncoderService { encodeActions = async ( @@ -206,18 +204,19 @@ class ActionEncoderService { case 'os_update': { if ( translatedNetwork !== 'unsupported' && - SupportedNetworksArray.includes(translatedNetwork) && + Object.values(SupportedNetworks).includes(translatedNetwork) && daoAddress && versions ) { + const daoFactoryAddress = + getNetworkDeployments(translatedNetwork)[ + action.inputs.version as SupportedVersions + ]?.DAOFactory.address; actionPromises.push( Promise.resolve( client.encoding.daoUpdateAction(daoAddress, { previousVersion: versions as [number, number, number], - daoFactoryAddress: - LIVE_CONTRACTS[action.inputs.version as SupportedVersion][ - translatedNetwork - ].daoFactoryAddress, + daoFactoryAddress, }) ) ); diff --git a/src/services/aragon-sdk/queryHelpers/proposal.ts b/src/services/aragon-sdk/queryHelpers/proposal.ts index 302b16b61..6ddef74eb 100644 --- a/src/services/aragon-sdk/queryHelpers/proposal.ts +++ b/src/services/aragon-sdk/queryHelpers/proposal.ts @@ -29,8 +29,11 @@ export const QueryMultisigProposal = gql` executed approvalReached isSignaling - approvers(first: 1000) { + approvals(first: 1000) { id + approver { + address + } } } } diff --git a/src/services/aragon-sdk/queryHelpers/proposals.ts b/src/services/aragon-sdk/queryHelpers/proposals.ts index bd3b1fffd..1540148b1 100644 --- a/src/services/aragon-sdk/queryHelpers/proposals.ts +++ b/src/services/aragon-sdk/queryHelpers/proposals.ts @@ -97,14 +97,17 @@ export const QueryMultisigProposals = gql` executed approvalReached isSignaling - approvals + approvalCount startDate endDate executionDate executionBlockNumber creationBlockNumber - approvers { + approvals { id + approver { + address + } } actions { to diff --git a/src/services/aragon-sdk/selectors/proposal.ts b/src/services/aragon-sdk/selectors/proposal.ts index 9cfd219a4..ce7543b75 100644 --- a/src/services/aragon-sdk/selectors/proposal.ts +++ b/src/services/aragon-sdk/selectors/proposal.ts @@ -488,9 +488,7 @@ export function toMultisigProposal( }), status: computeMultisigProposalStatus(proposal), // eslint-disable-next-line @typescript-eslint/no-explicit-any - approvals: proposal.approvers.map((approver: any) => - approver.id.slice(0, 42) - ), + approvals: proposal.approvals.map(approval => approval.approver.address), }; } diff --git a/src/services/aragon-sdk/selectors/proposals.ts b/src/services/aragon-sdk/selectors/proposals.ts index 63117f194..030ff2187 100644 --- a/src/services/aragon-sdk/selectors/proposals.ts +++ b/src/services/aragon-sdk/selectors/proposals.ts @@ -40,7 +40,7 @@ export function toMultisigProposalListItem( title: metadata.title, summary: metadata.summary, }, - approvals: proposal.approvers.map(approver => approver.id.slice(0, 42)), + approvals: proposal.approvals.map(approval => approval.approver.address), actions: proposal.actions.map((action: SubgraphAction): DaoAction => { return { data: hexToBytes(action.data), diff --git a/src/services/transactions/transactionsService.ts b/src/services/transactions/transactionsService.ts index 8897dec58..916b6c818 100644 --- a/src/services/transactions/transactionsService.ts +++ b/src/services/transactions/transactionsService.ts @@ -21,6 +21,7 @@ import { import {ITransaction} from './domain/transaction'; import {decodeProposalId, hexToBytes} from '@aragon/sdk-client-common'; import {isMultisigClient, isTokenVotingClient} from 'hooks/usePluginClient'; +import {ContractNames} from '@aragon/osx-commons-configs'; class TransactionsService { buildCreateDaoTransaction = async ( @@ -36,7 +37,7 @@ class TransactionsService { } = params; const signer = client.web3.getConnectedSigner(); - const daoFactoryAddress = client.web3.getAddress('daoFactoryAddress'); + const daoFactoryAddress = client.web3.getAddress(ContractNames.DAO_FACTORY); const daoFactoryInstance = DAOFactory__factory.connect( daoFactoryAddress, diff --git a/src/utils/aragonGateway.ts b/src/utils/aragonGateway.ts index 300c9e56d..f03afa6bb 100644 --- a/src/utils/aragonGateway.ts +++ b/src/utils/aragonGateway.ts @@ -1,8 +1,3 @@ -import { - LIVE_CONTRACTS, - SupportedVersion, - SupportedNetwork as SdkSupportedNetworks, -} from '@aragon/sdk-client-common'; import {JsonRpcProvider, Networkish} from '@ethersproject/providers'; import { CHAIN_METADATA, @@ -11,6 +6,10 @@ import { getSupportedNetworkByChainId, } from './constants'; import {translateToNetworkishName} from './library'; +import { + SupportedNetworks as SdkSupportedNetworks, + getLatestNetworkDeployment, +} from '@aragon/osx-commons-configs'; class AragonGateway { private rpcVersion = '1.0'; @@ -38,11 +37,10 @@ class AragonGateway { if (NETWORKS_WITH_CUSTOM_REGISTRY.includes(network)) { options.ensAddress = - LIVE_CONTRACTS[SupportedVersion.LATEST][sdkNetwork]?.ensRegistryAddress; + getLatestNetworkDeployment(sdkNetwork)?.ENSRegistry?.address; } const rpcUrl = this.buildRpcUrl(network)!; - return new JsonRpcProvider(rpcUrl, options); }; @@ -58,7 +56,6 @@ class AragonGateway { const {gatewayNetwork} = CHAIN_METADATA[network]; const gatewayKey = import.meta.env.VITE_GATEWAY_RPC_API_KEY; const rpcUrl = `${this.baseUrl}/v${this.rpcVersion}/rpc/${gatewayNetwork}/${gatewayKey}`; - return rpcUrl; }; diff --git a/src/utils/constants/api.ts b/src/utils/constants/api.ts index c4a930c18..2b9ed4029 100644 --- a/src/utils/constants/api.ts +++ b/src/utils/constants/api.ts @@ -22,17 +22,17 @@ export const pinataFileAPI = 'https://api.pinata.cloud/pinning/pinFileToIPFS'; export const SUBGRAPH_API_URL: SubgraphNetworkUrl = { arbitrum: - 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-arbitrum/version/v1.4.0/api', + 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-arbitrum/version/v1.4.2/api', - base: 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-baseMainnet/version/v1.4.0/api', + base: 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-baseMainnet/version/v1.4.2/api', ethereum: - 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-mainnet/version/v1.4.0/api', + 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-mainnet/version/v1.4.2/api', polygon: - 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-polygon/version/v1.4.0/api', + 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-polygon/version/v1.4.2/api', sepolia: - 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-sepolia/version/v1.4.0/api', + 'https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-sepolia/version/v1.4.2/api', unsupported: undefined, }; diff --git a/src/utils/library.ts b/src/utils/library.ts index 9163d134f..da5fcd9b8 100644 --- a/src/utils/library.ts +++ b/src/utils/library.ts @@ -15,10 +15,6 @@ import {DAO__factory} from '@aragon/osx-ethers'; import { DaoAction, DecodedApplyUpdateParams, - LIVE_CONTRACTS, - SupportedNetwork as SdkSupportedNetworks, - SupportedNetworksArray, - SupportedVersion, Uint8ArraySchema, bytesToHex, resolveIpfsCid, @@ -78,6 +74,13 @@ import {getTokenInfo} from './tokens'; import {daoABI} from 'abis/daoABI'; import {SupportedChainID} from './constants/chains'; import {ipfsService} from 'services/ipfs/ipfsService'; +import { + SupportedNetworks as SdkSupportedNetworks, + SupportedVersions, + getLatestNetworkDeployment, + getNetworkDeployments, + getNetworkNameByAlias, +} from '@aragon/osx-commons-configs'; export function formatUnits(amount: BigNumberish, decimals: number) { if (amount.toString().includes('.') || !decimals) { @@ -568,8 +571,8 @@ export async function decodeOSUpdateActions( const translatedNetwork = translateToNetworkishName(network ?? 'unsupported'); if (translatedNetwork !== 'unsupported') { - const {daoFactoryAddress} = - LIVE_CONTRACTS[SupportedVersion.LATEST][translatedNetwork]; + const daoFactoryAddress = + getLatestNetworkDeployment(translatedNetwork)?.DAOFactory.address ?? ''; let daoImplementationAddress: string | undefined; @@ -844,9 +847,10 @@ export function sleepFor(time = 600) { * @returns translated equivalent app supported network */ export const translateToAppNetwork = ( - sdkNetwork: SdkContext['network'] + ethersNetwork: SdkContext['network'] ): SupportedNetworks => { - switch (sdkNetwork.name as SdkSupportedNetworks) { + const sdkNetwork = getNetworkNameByAlias(ethersNetwork.name); + switch (sdkNetwork as SdkSupportedNetworks) { case SdkSupportedNetworks.ARBITRUM: return 'arbitrum'; case SdkSupportedNetworks.BASE: @@ -878,7 +882,7 @@ export function translateToNetworkishName( case 'arbitrum': return SdkSupportedNetworks.ARBITRUM; case 'arbitrum-goerli': - return SdkSupportedNetworks.ARBITRUM_GOERLI; + throw new Error('Arbitrum Goerli is not supported by the SDK'); case 'base': return SdkSupportedNetworks.BASE; case 'base-goerli': @@ -1301,16 +1305,16 @@ export function getPluginRepoAddress( protocolVersion: [number, number, number] ) { const translatedNetwork = translateToNetworkishName(network); + const version = `v${protocolVersion.join('.')}` as SupportedVersions; if ( translatedNetwork !== 'unsupported' && - SupportedNetworksArray.includes(translatedNetwork) + Object.values(SdkSupportedNetworks).includes(translatedNetwork) && + Object.values(SupportedVersions).includes(version) ) { return pluginType === 'multisig.plugin.dao.eth' - ? LIVE_CONTRACTS[protocolVersion?.join('.') as SupportedVersion]?.[ - translatedNetwork - ].multisigRepoAddress - : LIVE_CONTRACTS[protocolVersion?.join('.') as SupportedVersion]?.[ - translatedNetwork - ].tokenVotingRepoAddress; + ? getNetworkDeployments(translatedNetwork)[version]?.MultisigRepoProxy + .address + : getNetworkDeployments(translatedNetwork)[version]?.TokenVotingRepoProxy + .address; } } diff --git a/src/utils/proposals.ts b/src/utils/proposals.ts index 89dcaac0d..b68c2c27d 100644 --- a/src/utils/proposals.ts +++ b/src/utils/proposals.ts @@ -20,13 +20,12 @@ import { VotingMode, VotingSettings, } from '@aragon/sdk-client'; +import {ProposalMetadata, ProposalStatus} from '@aragon/sdk-client-common'; import { - LIVE_CONTRACTS, - ProposalMetadata, - ProposalStatus, - SupportedNetworksArray, - SupportedVersion, -} from '@aragon/sdk-client-common'; + SupportedVersions, + getNetworkDeployments, + SupportedNetworks as SdkSupportedNetworks, +} from '@aragon/osx-commons-configs'; import { GaslessPluginVotingSettings, GaslessVotingProposal, @@ -1055,7 +1054,7 @@ export function recalculateProposalStatus< */ export async function encodeOsUpdateAction( currentVersion: [number, number, number] | undefined, - selectedVersion: SupportedVersion, + selectedVersion: SupportedVersions, network: SupportedNetworks | undefined, daoAddress: string | undefined, client: Client | undefined @@ -1063,16 +1062,18 @@ export async function encodeOsUpdateAction( const translatedNetwork = translateToNetworkishName(network ?? 'unsupported'); if ( translatedNetwork !== 'unsupported' && - SupportedNetworksArray.includes(translatedNetwork) && + Object.values(SdkSupportedNetworks).includes(translatedNetwork) && currentVersion && daoAddress && client ) { try { + const daoFactoryAddress = + getNetworkDeployments(translatedNetwork)[selectedVersion]?.DAOFactory + .address; const encodedAction = await client.encoding.daoUpdateAction(daoAddress, { previousVersion: currentVersion, - daoFactoryAddress: - LIVE_CONTRACTS[selectedVersion][translatedNetwork].daoFactoryAddress, + daoFactoryAddress, }); return encodedAction; } catch (error) { diff --git a/src/utils/types.ts b/src/utils/types.ts index e1be2e1f6..92bea1ce4 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -11,11 +11,7 @@ import { VoteValues, VotingSettings, } from '@aragon/sdk-client'; -import { - ApplyUpdateParams, - SupportedVersion, - VersionTag, -} from '@aragon/sdk-client-common'; +import {ApplyUpdateParams, VersionTag} from '@aragon/sdk-client-common'; import { CreateGasslessProposalParams, GaslessPluginVotingSettings, @@ -31,6 +27,7 @@ import {Web3Address} from './library'; import {TokenType} from './validators'; import {SubgraphTokenVotingMember} from '@aragon/sdk-client/dist/tokenVoting/internal/types'; import {ITagProps} from '@aragon/ods'; +import {SupportedVersions} from '@aragon/osx-commons-configs'; /************************************************* * DAO Creation types * @@ -350,7 +347,7 @@ export type ActionMintToken = { export type ActionOSUpdate = { name: 'os_update'; inputs: { - version: SupportedVersion; + version: SupportedVersions; }; }; @@ -729,7 +726,7 @@ export type SubgraphMultisigProposalBase = SubgraphProposalBase & { plugin: SubgraphMultisigVotingSettings; minApprovals: number; approvalReached: boolean; - approvers: {id: string}[]; + approvals: {id: string; approver: {address: string}}[]; }; export type SubgraphMultisigProposalListItem = SubgraphMultisigProposalBase; diff --git a/yarn.lock b/yarn.lock index f2eb6b6f4..062e95c98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -86,6 +86,13 @@ dependencies: tslib "^2.6.2" +"@aragon/osx-commons-configs@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@aragon/osx-commons-configs/-/osx-commons-configs-0.4.0.tgz#5b6ae025de1ccf7f9a135bfbcb0aa822c774acf9" + integrity sha512-/2wIQCbv/spMRdOjRXK0RrXG1TK5aMcbD73RvMgMwQwSrKcA1dCntUuSxmTm2W8eEtOzs8E1VPjqZk0cXL4SSQ== + dependencies: + tslib "^2.6.2" + "@aragon/osx-ethers-v1.0.0@npm:@aragon/osx-ethers@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@aragon/osx-ethers/-/osx-ethers-1.2.1.tgz#a442048137153ed5a3ca4eff3f3927b45a5134b5" @@ -125,7 +132,26 @@ graphql-request "^4.3.0" yup "^1.2.0" -"@aragon/sdk-client@1.22.1", "@aragon/sdk-client@^1.22.1": +"@aragon/sdk-client-common@^1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@aragon/sdk-client-common/-/sdk-client-common-1.15.3.tgz#039efbdb41fead05f34f999086ec198d1201a1c2" + integrity sha512-quZiR9UEYE5atEcFPyohkpU9RvAtal9gqitEv+15IFxf8bkQyH/g/tG7icFseYcCZkHAgzBnjgk/PNfqr4attw== + dependencies: + "@aragon/osx-commons-configs" "^0.4.0" + "@aragon/osx-ethers" "^1.3.1" + "@aragon/osx-ethers-v1.0.0" "npm:@aragon/osx-ethers@1.2.1" + "@aragon/sdk-ipfs" "^1.1.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/contracts" "^5.5.0" + "@ethersproject/providers" "^5.5.0" + "@ethersproject/wallet" "^5.6.0" + graphql "^16.5.0" + graphql-request "^4.3.0" + yup "^1.2.0" + +"@aragon/sdk-client@1.22.1": version "1.22.1" resolved "https://registry.yarnpkg.com/@aragon/sdk-client/-/sdk-client-1.22.1.tgz#229f5e2f97982fc54c36afd6a8655c2fbfa8a88a" integrity sha512-AaL+z40RDCwToVYH54xj333KuR674eO0JZ9fCgDCru9rii3mX/Y/tmsa4aFz4/Hu3LA5PVFS5vnXbi3fp0P2Ug== @@ -145,6 +171,27 @@ graphql-request "^4.3.0" yup "^1.2.0" +"@aragon/sdk-client@^1.23.5": + version "1.23.5" + resolved "https://registry.yarnpkg.com/@aragon/sdk-client/-/sdk-client-1.23.5.tgz#84cc4047e4fad766a175002befced605bd8e6b16" + integrity sha512-EcQv10RkASZQPLyDOLGRY1ZnVRVWV1cKpNjJWEbOkwCicihH5JuPp8XFPfRp5794yEpkCAxfq1SFl9NYyS1qeA== + dependencies: + "@aragon/osx-commons-configs" "^0.4.0" + "@aragon/osx-ethers" "1.3.0" + "@aragon/sdk-client-common" "^1.15.3" + "@aragon/sdk-ipfs" "^1.1.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/contracts" "^5.5.0" + "@ethersproject/providers" "^5.5.0" + "@ethersproject/wallet" "^5.6.0" + "@openzeppelin/contracts" "^4.8.1" + "@openzeppelin/contracts-upgradeable" "^4.8.1" + graphql "^16.5.0" + graphql-request "^4.3.0" + yup "^1.2.0" + "@aragon/sdk-ipfs@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@aragon/sdk-ipfs/-/sdk-ipfs-1.1.0.tgz#178ee5ce840ce40b44ba0345dd5068e1b5608f9d" @@ -10864,16 +10911,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10944,14 +10982,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11863,7 +11894,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -11881,15 +11912,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 43d47794ccb49ebf884af2f56d09f5daed4560c8 Mon Sep 17 00:00:00 2001 From: Evan Aronson <93671071+evanaronson@users.noreply.github.com> Date: Tue, 21 May 2024 18:39:45 +0200 Subject: [PATCH 2/3] Update to latest Polygon logo (#1343) They've updated their logo since we launched with them last year --- src/utils/constants/chains.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/constants/chains.ts b/src/utils/constants/chains.ts index 04d7c5ed3..cd648a1a7 100644 --- a/src/utils/constants/chains.ts +++ b/src/utils/constants/chains.ts @@ -132,7 +132,7 @@ export const CHAIN_METADATA: Record = { id: 137, name: i18n.t('explore.modal.filterDAOs.label.polygon'), domain: 'L2 Blockchain', - logo: 'https://assets.coingecko.com/coins/images/4713/large/matic-token-icon.png?1624446912', + logo: 'https://assets.coingecko.com/coins/images/4713/large/polygon.png', explorer: 'https://polygonscan.com/', explorerName: 'Polygonscan', isTestnet: false, From a62dac8b5f462823a625917f194fc41cb47fd3f2 Mon Sep 17 00:00:00 2001 From: Sepehr Sanaei <46657145+sepehr2github@users.noreply.github.com> Date: Wed, 22 May 2024 16:07:02 +0330 Subject: [PATCH 3/3] fix proposals metadata on members list (#1353) --- .../queries/use-creator-proposals.ts | 21 ++++++++++++------- .../aragon-sdk/queries/use-proposal.ts | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/services/aragon-sdk/queries/use-creator-proposals.ts b/src/services/aragon-sdk/queries/use-creator-proposals.ts index 81c9e4fb9..44e33568c 100644 --- a/src/services/aragon-sdk/queries/use-creator-proposals.ts +++ b/src/services/aragon-sdk/queries/use-creator-proposals.ts @@ -19,6 +19,9 @@ import { GaslessVotingClient, GaslessVotingProposal, } from '@vocdoni/gasless-voting'; +import {SupportedNetworks} from 'utils/constants'; + +import {getProposal} from 'services/aragon-sdk/queries/use-proposal'; type Proposal = MultisigProposal | TokenVotingProposal | GaslessVotingProposal; @@ -60,7 +63,8 @@ export const multisigProposalsQuery = gql` const fetchCreatorGaslessProposals = async ( {pluginAddress, address, blockNumber}: IFetchCreatorProposalsParams, - client?: PluginClient + client?: PluginClient, + network?: SupportedNetworks ): Promise => { invariant(client != null, 'fetchCreatorProposals: client is not defined'); @@ -74,8 +78,8 @@ const fetchCreatorGaslessProposals = async ( ProposalSortBy.CREATED_AT ); - const proposalQueriesPromises = resultProposalsIds.map( - (id: string) => client?.methods.getProposal(id) + const proposalQueriesPromises = resultProposalsIds.map((id: string) => + getProposal(client, id, network as SupportedNetworks) ); const resultsProposals = await Promise.all(proposalQueriesPromises); @@ -90,7 +94,8 @@ const fetchCreatorProposals = async ( pluginType, blockNumber, }: IFetchCreatorProposalsParams, - client?: PluginClient + client?: PluginClient, + network?: SupportedNetworks ): Promise => { invariant(client != null, 'fetchCreatorProposals: client is not defined'); @@ -124,8 +129,8 @@ const fetchCreatorProposals = async ( ? response.multisigProposals : response.tokenVotingProposals) || []; - const proposalQueriesPromises = resultProposalsIds.map( - item => client?.methods.getProposal(item.id) + const proposalQueriesPromises = resultProposalsIds.map(item => + getProposal(client, item.id, network as SupportedNetworks) ); const resultsProposals = await Promise.all(proposalQueriesPromises); @@ -151,8 +156,8 @@ export const useCreatorProposals = ( queryKey: aragonSdkQueryKeys.getCreatorProposals(baseParams, params), queryFn: () => params.pluginType === GaslessPluginName - ? fetchCreatorGaslessProposals(params, client) - : fetchCreatorProposals(params, client), + ? fetchCreatorGaslessProposals(params, client, network) + : fetchCreatorProposals(params, client, network), ...options, }); }; diff --git a/src/services/aragon-sdk/queries/use-proposal.ts b/src/services/aragon-sdk/queries/use-proposal.ts index b2d58b919..f12f243ca 100644 --- a/src/services/aragon-sdk/queries/use-proposal.ts +++ b/src/services/aragon-sdk/queries/use-proposal.ts @@ -36,7 +36,7 @@ import { QueryMultisigProposal, } from '../queryHelpers/proposal'; -async function getProposal( +export async function getProposal( client: PluginClient, proposalId: string, network: SupportedNetworks