Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions src/actions/arcActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@ export function createProposal(proposalOptions: IProposalCreateOptions, daoAvata
};
}

export function executeProposal(avatarAddress: string, proposalId: string, _accountAddress: string) {
export function executeProposal(_avatarAddress: string, proposalId: string, _accountAddress: string) {
return async (dispatch: Redux.Dispatch<any, any>) => {
const avatarAddress = _avatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(avatarAddress);
const observer = operationNotifierObserver(dispatch, "Execute proposal");
const proposalObj = await arc.dao(avatarAddress).proposal(proposalId);
Expand All @@ -71,9 +72,10 @@ export function executeProposal(avatarAddress: string, proposalId: string, _acco
};
}

export function executeCalls(avatarAddress: string, proposalId: string) {
export function executeCalls(_avatarAddress: string, proposalId: string) {
return async (dispatch: Redux.Dispatch<any, any>) => {
try {
const avatarAddress = _avatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(avatarAddress);
const observer = operationNotifierObserver(dispatch, "Execute calls");
const proposalObj = await arc.dao(avatarAddress).proposal(proposalId);
Expand All @@ -97,8 +99,9 @@ export type VoteAction = IAsyncAction<"ARC_VOTE", {
voter: any;
}>;

export function voteOnProposal(daoAvatarAddress: string, proposalId: string, voteOption: IProposalOutcome) {
export function voteOnProposal(_daoAvatarAddress: string, proposalId: string, voteOption: IProposalOutcome) {
return async (dispatch: Redux.Dispatch<any, any>, _getState: () => IRootState) => {
const daoAvatarAddress = _daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
const proposalObj = await arc.dao(daoAvatarAddress).proposal(proposalId);
const observer = operationNotifierObserver(dispatch, "Vote");
Expand All @@ -117,8 +120,9 @@ export type StakeAction = IAsyncAction<"ARC_STAKE", {
proposal: any;
}>;

export function stakeProposal(daoAvatarAddress: string, proposalId: string, prediction: number, stakeAmount: number) {
export function stakeProposal(_daoAvatarAddress: string, proposalId: string, prediction: number, stakeAmount: number) {
return async (dispatch: Redux.Dispatch<any, any>, ) => {
const daoAvatarAddress = _daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
const proposalObj = await arc.dao(daoAvatarAddress).proposal(proposalId);
const observer = operationNotifierObserver(dispatch, "Stake");
Expand Down Expand Up @@ -148,8 +152,9 @@ export type RedeemAction = IAsyncAction<"ARC_REDEEM", {
currentAccountRedemptions: IRedemptionState;
}>;

export function redeemProposal(daoAvatarAddress: string, proposalId: string, accountAddress: string) {
export function redeemProposal(_daoAvatarAddress: string, proposalId: string, accountAddress: string) {
return async (dispatch: Redux.Dispatch<any, any>) => {
const daoAvatarAddress = _daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
const proposalObj = await arc.dao(daoAvatarAddress).proposal(proposalId);
const observer = operationNotifierObserver(dispatch, "Reward");
Expand Down
2 changes: 1 addition & 1 deletion src/arc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ const ACCOUNT_STORAGEKEY = "currentAddress";

export function cacheWeb3Info(account: Address): void {
if (account) {
localStorage.setItem(ACCOUNT_STORAGEKEY, account);
localStorage.setItem(ACCOUNT_STORAGEKEY, account.toLowerCase());
} else {
localStorage.removeItem(ACCOUNT_STORAGEKEY);
}
Expand Down
9 changes: 5 additions & 4 deletions src/components/Account/AccountBalances.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,12 @@ export default withSubscription({
if (!arc) {
return of([]);
}
const addrs = address?.toLowerCase();
return combineLatest(
address,
(address && dao && dao.dao.member(address).state( standardPolling())) || of(null),
ethBalance(address, arc, network).pipe(ethErrorHandler()),
arc?.GENToken().balanceOf(address).pipe(ethErrorHandler()),
addrs,
(addrs && dao && dao.dao.member(addrs).state( standardPolling())) || of(null),
ethBalance(addrs, arc, network).pipe(ethErrorHandler()),
arc?.GENToken().balanceOf(addrs).pipe(ethErrorHandler()),
);
},
});
4 changes: 2 additions & 2 deletions src/components/Account/AccountProfilePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,8 @@ const SubscribedAccountProfilePage = withSubscription({

createObservable: (props: IProps) => {
const queryValues = parse(props.location.search);
const daoAvatarAddress = queryValues.daoAvatarAddress as string;
const accountAddress = props.match.params.accountAddress;
const daoAvatarAddress = queryValues.daoAvatarAddress?.toLocaleString();
const accountAddress = props.match.params.accountAddress?.toLowerCase();
let dao: DAO;
if (daoAvatarAddress) {
const arc = getArcByDAOAddress(queryValues.daoAvatarAddress as string);
Expand Down
2 changes: 1 addition & 1 deletion src/components/Dao/DaoContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ const SubscribedDaoContainer = withSubscription({
errorComponent: (props) => <div>{props.error.message}</div>,
checkForUpdate: ["daoAvatarAddress"],
createObservable: (props: IExternalProps) => {
const daoAddress = props.match.params.daoAvatarAddress;
const daoAddress = props.match.params.daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAddress);
const dao = arc.dao(daoAddress);
const observable = combineLatest(
Expand Down
5 changes: 3 additions & 2 deletions src/components/Dao/ProposalSchemeCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,9 @@ export default withSubscription({
},

createObservable: (props: IExternalProps) => {
const arc = getArcByDAOAddress(props.dao.address);
const dao = arc.dao(props.dao.address);
const address = props.dao.address?.toLowerCase();
const arc = getArcByDAOAddress(address);
const dao = arc.dao(address);
return combineLatest(
props.scheme.state(standardPolling()),
dao.proposals({ where: {
Expand Down
2 changes: 1 addition & 1 deletion src/components/Daos/DaosPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ const createSubscriptionObservable = (props: IStateProps, data: SubscriptionData
const memberDAOsquery = gql`
query ReputationHolderSearch {
reputationHolders(where: {
address: "${currentAccountAddress}"
address: "${currentAccountAddress?.toLowerCase()}"
${followingDAOs.length ? "dao_not_in: [" + followingDAOs.map(dao => "\"" + dao + "\"").join(",") + "]" : ""}
},
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -421,8 +421,9 @@ const SubscribedCreateContributionReward = withSubscription({
wrappedComponent: CreateContributionReward,
checkForUpdate: ["daoAvatarAddress"],
createObservable: (props: IExternalProps) => {
const arc = getArcByDAOAddress(props.daoAvatarAddress);
return arc.dao(props.daoAvatarAddress).state();
const daoAvatarAddress = props.daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
return arc.dao(daoAvatarAddress).state();
},
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -598,8 +598,9 @@ const SubscribedCreateSchemeRegistrarProposal = withSubscription({
errorComponent: null,
checkForUpdate: ["daoAvatarAddress"],
createObservable: (props: IExternalProps) => {
const arc = getArc(getNetworkByDAOAddress(props.daoAvatarAddress));
return arc.dao(props.daoAvatarAddress).schemes({ where: { isRegistered: true } }, { fetchAllData: true });
const daoAvatarAddress = props.daoAvatarAddress.toLowerCase();
const arc = getArc(getNetworkByDAOAddress(daoAvatarAddress));
return arc.dao(daoAvatarAddress).schemes({ where: { isRegistered: true } }, { fetchAllData: true });
},
});

Expand Down
2 changes: 1 addition & 1 deletion src/components/Proposal/Create/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const SubscribedCreateProposalPage: any = withSubscription<any, any>({
errorComponent: null,
checkForUpdate: ["daoAvatarAddress", "schemeId"],
createObservable: (props: IExternalStateProps) => {
const arc = getArcByDAOAddress(props.daoAvatarAddress);
const arc = getArcByDAOAddress(props.daoAvatarAddress?.toLowerCase());
if (props.schemeId) {
const scheme = arc.scheme(props.schemeId);
return scheme.state();
Expand Down
6 changes: 3 additions & 3 deletions src/components/Proposal/Voting/VotersModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ const voterModalWithSubscriptions = withSubscription({
checkForUpdate: [],

createObservable: (props: IExternalProps) => {
const arc = getArcByDAOAddress(props.dao.dao.id);
const dao = arc.dao(props.dao.address);
const proposalId = props.proposal.id;
const arc = getArcByDAOAddress(props.dao.dao.id?.toLowerCase());
const dao = arc.dao(props.dao.address?.toLowerCase());
const proposalId = props.proposal.id?.toLowerCase();
const proposal = dao.proposal(proposalId);
// subscribe is false by default
return proposal.votes({}, { });
Expand Down
5 changes: 3 additions & 2 deletions src/components/Redemptions/RedemptionsMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,9 @@ const SubscribedMenuItemContent = withSubscription({
checkForUpdate: [], // Parent component will rerender anyway.
createObservable: (props: IMenuItemProps) => {
const { currentAccountAddress, proposal } = props;
const arc = getArcByDAOAddress(proposal.dao.id);
const dao = arc.dao(proposal.dao.id);
const proposalDaoId = proposal.dao.id?.toLowerCase();
const arc = getArcByDAOAddress(proposalDaoId);
const dao = arc.dao(proposalDaoId);
const daoEthBalance = concat(of(new BN("0")), ethBalance(proposal.dao.id, arc)).pipe(ethErrorHandler());
const rewards = proposal.proposal.rewards({ where: { beneficiary: currentAccountAddress } })
.pipe(map((rewards: Reward[]): Reward => rewards.length === 1 && rewards[0] || null))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -656,8 +656,9 @@ const SubscribedCreateContributionRewardExProposal = withSubscription({
wrappedComponent: CreateProposal,
checkForUpdate: ["daoAvatarAddress"],
createObservable: (props: IExternalProps) => {
const arc = getArc(getNetworkByDAOAddress(props.daoAvatarAddress));
return arc.dao(props.daoAvatarAddress).state();
const daoAvatarAddress = props.daoAvatarAddress?.toLowerCase();
const arc = getArc(getNetworkByDAOAddress(daoAvatarAddress));
return arc.dao(daoAvatarAddress).state();
},
});

Expand Down
5 changes: 3 additions & 2 deletions src/components/Shared/UserSearchField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,9 @@ const SubscribedUserSearchField = withSubscription({
checkForUpdate: ["daoAvatarAddress"],

createObservable: (props: IExternalProps) => {
const arc = getArcByDAOAddress(props.daoAvatarAddress);
return arc.dao(props.daoAvatarAddress).members();
const daoAvatarAddress = props.daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
return arc.dao(daoAvatarAddress).members();
},
});

Expand Down
5 changes: 3 additions & 2 deletions src/layouts/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,10 @@ const SubscribedHeader = withSubscription({
checkForUpdate: ["daoAvatarAddress"],
createObservable: (props: IProps) => {
if (props.daoAvatarAddress) {
const arc = getArcByDAOAddress(props.daoAvatarAddress);
const daoAvatarAddress = props.daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
// subscribe if only to get DAO reputation supply updates
return arc.dao(props.daoAvatarAddress).state(standardPolling());
return arc.dao(daoAvatarAddress).state(standardPolling());
} else {
return of(null);
}
Expand Down
5 changes: 3 additions & 2 deletions src/layouts/SidebarMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -326,8 +326,9 @@ const SubscribedSidebarMenu = withSubscription({
loadingComponent: <div></div>,
createObservable: (props: IProps) => {
if (props.daoAvatarAddress) {
const arc = getArcByDAOAddress(props.daoAvatarAddress);
return arc.dao(props.daoAvatarAddress).state(standardPolling());
const daoAvatarAddress = props.daoAvatarAddress?.toLowerCase();
const arc = getArcByDAOAddress(daoAvatarAddress);
return arc.dao(daoAvatarAddress).state(standardPolling());
} else {
return of(null);
}
Expand Down
14 changes: 8 additions & 6 deletions src/lib/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ export function checkTotalPercent(split: any) {

}

export const getDAONameByID = (daoAddress: string): string => {
export const getDAONameByID = (_daoAddress: string): string => {
const daos = getDAOs();
for (const network in daos) {
const daoAddress = _daoAddress?.toLowerCase();
if (daos[network][daoAddress] !== undefined) {
return daos[network][daoAddress];
}
Expand Down Expand Up @@ -293,7 +294,7 @@ export const getArcByProvider = async (provider: any): Promise<Arc> => {
export const getNetworkByDAOAddress = (daoAddress: string): Networks => {
const daos = getDAOs();
for (const network in daos) {
if (daos[network][daoAddress] !== undefined) {
if (daos[network][daoAddress?.toLowerCase()] !== undefined) {
return network as Networks;
}
}
Expand All @@ -306,21 +307,22 @@ export const getNetworkByDAOAddress = (daoAddress: string): Networks => {
* @returns {Arc}
*/
export const getArcByDAOAddress = (daoAddress: string): Arc => {
const network = getNetworkByDAOAddress(daoAddress);
const network = getNetworkByDAOAddress(daoAddress?.toLowerCase());
return network ? getArcs()[network] : undefined;
};


/**
* Given an address returns the network
* @param {string} daoAddress
* @param {string} _daoAddress
* @returns {Networks}
*/
export const getNetworkByAddress = (daoAddress: string): Networks => {
export const getNetworkByAddress = (_daoAddress: string): Networks => {
const arcs = getArcs();
for (const network in arcs) {
const arc = arcs[network];
try {
const daoAddress = _daoAddress?.toLowerCase();
if (arc.getContractInfo(daoAddress, undefined, "readonly") !== null) {
return network as Networks;
}
Expand Down Expand Up @@ -813,7 +815,7 @@ export const buf2hex = (buffer: Array<any>): string => { // buffer is an ArrayBu
export const getContractName = (address: string, daoAddress: string): string => {
const arc = getArc(getNetworkByDAOAddress(daoAddress));
try {
return arc.getContractInfo(address.toLowerCase()).name;
return arc.getContractInfo(address?.toLowerCase()).name;
} catch (e) {
return "unknown name";
}
Expand Down