Update ZEIP-ID propagation

This commit is contained in:
Jacob Evans
2019-07-16 16:38:42 +10:00
parent a31056a4ec
commit e69ad24737
6 changed files with 24 additions and 23 deletions

View File

@@ -91,8 +91,7 @@ export const proposals: Proposals = {
links: [
{
text: 'View Code',
url:
'',
url: '',
},
{
text: 'View Audit',

View File

@@ -156,6 +156,7 @@ export class Governance extends React.Component<RouteComponentProps<any>> {
/>
<ModalContact isOpen={this.state.isContactModalOpen} onDismiss={this._onDismissContactModal} />
<ModalVote
zeipId={this._proposalData.zeipId}
isOpen={this.state.isVoteModalOpen}
onDismiss={this._onDismissVoteModal}
onWalletConnected={this._onWalletConnected.bind(this)}
@@ -206,7 +207,9 @@ export class Governance extends React.Component<RouteComponentProps<any>> {
};
private async _fetchVoteStatusAsync(): Promise<void> {
try {
const voteDomain = utils.isProduction() ? `https://${configs.DOMAIN_VOTE}` : `https://${configs.DOMAIN_VOTE}/staging`;
const voteDomain = utils.isProduction()
? `https://${configs.DOMAIN_VOTE}`
: `https://${configs.DOMAIN_VOTE}/staging`;
const voteEndpoint = `${voteDomain}/v1/tally/${this._proposalData.zeipId}`;
const response = await fetch(voteEndpoint, {
method: 'get',

View File

@@ -24,6 +24,7 @@ interface Props {
onDismiss?: () => void;
onWalletConnected?: (providerName: string) => void;
onVoted?: (voteInfo: VoteInfo) => void;
zeipId: number;
}
interface State {
@@ -38,7 +39,6 @@ interface State {
isU2fSupported: boolean;
isVoted: boolean;
votePreference: string | null;
zeip: number;
voteHash?: string;
signedVote?: any;
errorMessage?: string;
@@ -76,7 +76,6 @@ export class ModalVote extends React.Component<Props> {
isSuccessful: false,
isVoted: false,
votePreference: null,
zeip: 23,
errors: {},
};
// shared fields
@@ -84,7 +83,7 @@ export class ModalVote extends React.Component<Props> {
super(props);
}
public render(): React.ReactNode {
const { isOpen, onDismiss } = this.props;
const { isOpen, onDismiss, zeipId } = this.props;
const { isSuccessful, selectedAddress, currentBalance, isErrorModalOpen, errorMessage } = this.state;
const bigNumberFormat = {
decimalSeparator: '.',
@@ -109,7 +108,7 @@ export class ModalVote extends React.Component<Props> {
<StyledDialogContent>
{this._renderFormContent()}
<Confirmation isSuccessful={isSuccessful}>
<Icon name="zeip-23" size="large" margin={[0, 0, 'default', 0]} />
<Icon name={`zeip-${zeipId}`} size="large" margin={[0, 0, 'default', 0]} />
<Heading color={colors.textDarkPrimary} size={34} asElement="h2">
Vote Received!
</Heading>
@@ -153,7 +152,8 @@ export class ModalVote extends React.Component<Props> {
}
}
private _shareViaTwitterAsync(): void {
const tweetText = encodeURIComponent(`I voted on ZEIP-23! 🗳️#VoteWithZRX https://0x.org/vote`);
const { zeipId } = this.props;
const tweetText = encodeURIComponent(`I voted on ZEIP-${zeipId}! 🗳️#VoteWithZRX https://0x.org/vote`);
window.open(`https://twitter.com/intent/tweet?text=${tweetText}`, 'Share your vote', 'width=500,height=400');
}
private _renderConnectWalletFormContent(): React.ReactNode {
@@ -190,6 +190,7 @@ export class ModalVote extends React.Component<Props> {
isLedger={isLedger}
ledgerSubproviderIfExists={ledgerSubproviderIfExists}
provider={providerEngine}
zeipId={this.props.zeipId}
onVoted={this._onVoted.bind(this)}
onError={this._onError.bind(this)}
/>

View File

@@ -45,6 +45,7 @@ interface Props {
injectedProvider?: InjectedProvider;
ledgerSubproviderIfExists?: LedgerSubprovider;
provider?: ZeroExProvider;
zeipId: number;
}
interface State {
@@ -55,7 +56,6 @@ interface State {
isVoted: boolean;
selectedAddress?: string;
votePreference?: string;
zeip: number;
voteHash?: string;
signedVote?: SignedVote;
comment?: string;
@@ -91,7 +91,7 @@ export class VoteForm extends React.Component<Props> {
isSuccessful: false,
isLedger: false,
isVoted: false,
zeip: defaultZeip,
// zeipId: defaultZeip,
errors: {},
};
public networkId: number;
@@ -102,7 +102,6 @@ export class VoteForm extends React.Component<Props> {
isSuccessful: false,
isVoted: false,
votePreference: null,
zeip: VoteForm.defaultProps.zeip,
errors: {},
};
// shared fields
@@ -191,8 +190,8 @@ export class VoteForm extends React.Component<Props> {
private readonly _createAndSubmitVoteAsync = async (e: React.FormEvent): Promise<void> => {
e.preventDefault();
const { zeip, votePreference, comment } = this.state;
const { currentBalance, selectedAddress, isLedger } = this.props;
const { votePreference, comment } = this.state;
const { currentBalance, selectedAddress, isLedger, zeipId } = this.props;
const makerAddress = selectedAddress;
if (isLedger) {
@@ -209,7 +208,7 @@ export class VoteForm extends React.Component<Props> {
name: '0x Protocol Governance',
};
const message = {
zeip,
zeip: zeipId,
preference: votePreference,
from: makerAddress,
};
@@ -236,7 +235,9 @@ export class VoteForm extends React.Component<Props> {
isAwaitingLedgerSignature: false,
}));
const voteDomain = utils.isProduction() ? `https://${configs.DOMAIN_VOTE}` : 'http://localhost:3000';
const voteDomain = utils.isProduction()
? `https://${configs.DOMAIN_VOTE}`
: `https://${configs.DOMAIN_VOTE}/staging`;
const voteEndpoint = `${voteDomain}/v1/vote`;
const requestBody = { ...signedVote, comment };
const response = await fetch(voteEndpoint, {

View File

@@ -64,7 +64,9 @@ export class VoteIndex extends React.Component<VoteIndexProps, VoteIndexState> {
}
private async _fetchVoteStatusAsync(zeipId: number): Promise<TallyInterface> {
try {
const voteDomain = utils.isProduction() ? `https://${configs.DOMAIN_VOTE}` : `https://${configs.DOMAIN_VOTE}/staging`;
const voteDomain = utils.isProduction()
? `https://${configs.DOMAIN_VOTE}`
: `https://${configs.DOMAIN_VOTE}/staging`;
const voteEndpoint = `${voteDomain}/v1/tally/${zeipId}`;
const response = await fetch(voteEndpoint, {
method: 'get',
@@ -101,7 +103,7 @@ export class VoteIndex extends React.Component<VoteIndexProps, VoteIndexState> {
private async _fetchTallysAsync(): Promise<void> {
const tallyResponses = await Promise.all(ZEIP_IDS.map(async zeipId => this._fetchVoteStatusAsync(zeipId)));
const tallys: { [key: number]: TallyInterface } = {};
ZEIP_IDS.forEach((zeipId, i) => tallys[zeipId] = tallyResponses[i]);
ZEIP_IDS.forEach((zeipId, i) => (tallys[zeipId] = tallyResponses[i]));
this.setState({ tallys });
}
}

View File

@@ -8079,11 +8079,6 @@ got@^6.7.1:
graceful-fs@4.1.15, graceful-fs@^3.0.0, graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~1.2.0:
version "4.1.15"
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
graceful-fs@~1.2.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
"graceful-readlink@>= 1.0.0":
version "1.0.1"