Update ZEIP-ID propagation
This commit is contained in:
		@@ -91,8 +91,7 @@ export const proposals: Proposals = {
 | 
				
			|||||||
            links: [
 | 
					            links: [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    text: 'View Code',
 | 
					                    text: 'View Code',
 | 
				
			||||||
                    url:
 | 
					                    url: '',
 | 
				
			||||||
                        '',
 | 
					 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    text: 'View Audit',
 | 
					                    text: 'View Audit',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -156,6 +156,7 @@ export class Governance extends React.Component<RouteComponentProps<any>> {
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
                <ModalContact isOpen={this.state.isContactModalOpen} onDismiss={this._onDismissContactModal} />
 | 
					                <ModalContact isOpen={this.state.isContactModalOpen} onDismiss={this._onDismissContactModal} />
 | 
				
			||||||
                <ModalVote
 | 
					                <ModalVote
 | 
				
			||||||
 | 
					                    zeipId={this._proposalData.zeipId}
 | 
				
			||||||
                    isOpen={this.state.isVoteModalOpen}
 | 
					                    isOpen={this.state.isVoteModalOpen}
 | 
				
			||||||
                    onDismiss={this._onDismissVoteModal}
 | 
					                    onDismiss={this._onDismissVoteModal}
 | 
				
			||||||
                    onWalletConnected={this._onWalletConnected.bind(this)}
 | 
					                    onWalletConnected={this._onWalletConnected.bind(this)}
 | 
				
			||||||
@@ -206,7 +207,9 @@ export class Governance extends React.Component<RouteComponentProps<any>> {
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
    private async _fetchVoteStatusAsync(): Promise<void> {
 | 
					    private async _fetchVoteStatusAsync(): Promise<void> {
 | 
				
			||||||
        try {
 | 
					        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 voteEndpoint = `${voteDomain}/v1/tally/${this._proposalData.zeipId}`;
 | 
				
			||||||
            const response = await fetch(voteEndpoint, {
 | 
					            const response = await fetch(voteEndpoint, {
 | 
				
			||||||
                method: 'get',
 | 
					                method: 'get',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ interface Props {
 | 
				
			|||||||
    onDismiss?: () => void;
 | 
					    onDismiss?: () => void;
 | 
				
			||||||
    onWalletConnected?: (providerName: string) => void;
 | 
					    onWalletConnected?: (providerName: string) => void;
 | 
				
			||||||
    onVoted?: (voteInfo: VoteInfo) => void;
 | 
					    onVoted?: (voteInfo: VoteInfo) => void;
 | 
				
			||||||
 | 
					    zeipId: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface State {
 | 
					interface State {
 | 
				
			||||||
@@ -38,7 +39,6 @@ interface State {
 | 
				
			|||||||
    isU2fSupported: boolean;
 | 
					    isU2fSupported: boolean;
 | 
				
			||||||
    isVoted: boolean;
 | 
					    isVoted: boolean;
 | 
				
			||||||
    votePreference: string | null;
 | 
					    votePreference: string | null;
 | 
				
			||||||
    zeip: number;
 | 
					 | 
				
			||||||
    voteHash?: string;
 | 
					    voteHash?: string;
 | 
				
			||||||
    signedVote?: any;
 | 
					    signedVote?: any;
 | 
				
			||||||
    errorMessage?: string;
 | 
					    errorMessage?: string;
 | 
				
			||||||
@@ -76,7 +76,6 @@ export class ModalVote extends React.Component<Props> {
 | 
				
			|||||||
        isSuccessful: false,
 | 
					        isSuccessful: false,
 | 
				
			||||||
        isVoted: false,
 | 
					        isVoted: false,
 | 
				
			||||||
        votePreference: null,
 | 
					        votePreference: null,
 | 
				
			||||||
        zeip: 23,
 | 
					 | 
				
			||||||
        errors: {},
 | 
					        errors: {},
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    // shared fields
 | 
					    // shared fields
 | 
				
			||||||
@@ -84,7 +83,7 @@ export class ModalVote extends React.Component<Props> {
 | 
				
			|||||||
        super(props);
 | 
					        super(props);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    public render(): React.ReactNode {
 | 
					    public render(): React.ReactNode {
 | 
				
			||||||
        const { isOpen, onDismiss } = this.props;
 | 
					        const { isOpen, onDismiss, zeipId } = this.props;
 | 
				
			||||||
        const { isSuccessful, selectedAddress, currentBalance, isErrorModalOpen, errorMessage } = this.state;
 | 
					        const { isSuccessful, selectedAddress, currentBalance, isErrorModalOpen, errorMessage } = this.state;
 | 
				
			||||||
        const bigNumberFormat = {
 | 
					        const bigNumberFormat = {
 | 
				
			||||||
            decimalSeparator: '.',
 | 
					            decimalSeparator: '.',
 | 
				
			||||||
@@ -109,7 +108,7 @@ export class ModalVote extends React.Component<Props> {
 | 
				
			|||||||
                    <StyledDialogContent>
 | 
					                    <StyledDialogContent>
 | 
				
			||||||
                        {this._renderFormContent()}
 | 
					                        {this._renderFormContent()}
 | 
				
			||||||
                        <Confirmation isSuccessful={isSuccessful}>
 | 
					                        <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">
 | 
					                            <Heading color={colors.textDarkPrimary} size={34} asElement="h2">
 | 
				
			||||||
                                Vote Received!
 | 
					                                Vote Received!
 | 
				
			||||||
                            </Heading>
 | 
					                            </Heading>
 | 
				
			||||||
@@ -153,7 +152,8 @@ export class ModalVote extends React.Component<Props> {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private _shareViaTwitterAsync(): void {
 | 
					    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');
 | 
					        window.open(`https://twitter.com/intent/tweet?text=${tweetText}`, 'Share your vote', 'width=500,height=400');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private _renderConnectWalletFormContent(): React.ReactNode {
 | 
					    private _renderConnectWalletFormContent(): React.ReactNode {
 | 
				
			||||||
@@ -190,6 +190,7 @@ export class ModalVote extends React.Component<Props> {
 | 
				
			|||||||
                    isLedger={isLedger}
 | 
					                    isLedger={isLedger}
 | 
				
			||||||
                    ledgerSubproviderIfExists={ledgerSubproviderIfExists}
 | 
					                    ledgerSubproviderIfExists={ledgerSubproviderIfExists}
 | 
				
			||||||
                    provider={providerEngine}
 | 
					                    provider={providerEngine}
 | 
				
			||||||
 | 
					                    zeipId={this.props.zeipId}
 | 
				
			||||||
                    onVoted={this._onVoted.bind(this)}
 | 
					                    onVoted={this._onVoted.bind(this)}
 | 
				
			||||||
                    onError={this._onError.bind(this)}
 | 
					                    onError={this._onError.bind(this)}
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,7 @@ interface Props {
 | 
				
			|||||||
    injectedProvider?: InjectedProvider;
 | 
					    injectedProvider?: InjectedProvider;
 | 
				
			||||||
    ledgerSubproviderIfExists?: LedgerSubprovider;
 | 
					    ledgerSubproviderIfExists?: LedgerSubprovider;
 | 
				
			||||||
    provider?: ZeroExProvider;
 | 
					    provider?: ZeroExProvider;
 | 
				
			||||||
 | 
					    zeipId: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface State {
 | 
					interface State {
 | 
				
			||||||
@@ -55,7 +56,6 @@ interface State {
 | 
				
			|||||||
    isVoted: boolean;
 | 
					    isVoted: boolean;
 | 
				
			||||||
    selectedAddress?: string;
 | 
					    selectedAddress?: string;
 | 
				
			||||||
    votePreference?: string;
 | 
					    votePreference?: string;
 | 
				
			||||||
    zeip: number;
 | 
					 | 
				
			||||||
    voteHash?: string;
 | 
					    voteHash?: string;
 | 
				
			||||||
    signedVote?: SignedVote;
 | 
					    signedVote?: SignedVote;
 | 
				
			||||||
    comment?: string;
 | 
					    comment?: string;
 | 
				
			||||||
@@ -91,7 +91,7 @@ export class VoteForm extends React.Component<Props> {
 | 
				
			|||||||
        isSuccessful: false,
 | 
					        isSuccessful: false,
 | 
				
			||||||
        isLedger: false,
 | 
					        isLedger: false,
 | 
				
			||||||
        isVoted: false,
 | 
					        isVoted: false,
 | 
				
			||||||
        zeip: defaultZeip,
 | 
					        // zeipId: defaultZeip,
 | 
				
			||||||
        errors: {},
 | 
					        errors: {},
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    public networkId: number;
 | 
					    public networkId: number;
 | 
				
			||||||
@@ -102,7 +102,6 @@ export class VoteForm extends React.Component<Props> {
 | 
				
			|||||||
        isSuccessful: false,
 | 
					        isSuccessful: false,
 | 
				
			||||||
        isVoted: false,
 | 
					        isVoted: false,
 | 
				
			||||||
        votePreference: null,
 | 
					        votePreference: null,
 | 
				
			||||||
        zeip: VoteForm.defaultProps.zeip,
 | 
					 | 
				
			||||||
        errors: {},
 | 
					        errors: {},
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    // shared fields
 | 
					    // shared fields
 | 
				
			||||||
@@ -191,8 +190,8 @@ export class VoteForm extends React.Component<Props> {
 | 
				
			|||||||
    private readonly _createAndSubmitVoteAsync = async (e: React.FormEvent): Promise<void> => {
 | 
					    private readonly _createAndSubmitVoteAsync = async (e: React.FormEvent): Promise<void> => {
 | 
				
			||||||
        e.preventDefault();
 | 
					        e.preventDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const { zeip, votePreference, comment } = this.state;
 | 
					        const { votePreference, comment } = this.state;
 | 
				
			||||||
        const { currentBalance, selectedAddress, isLedger } = this.props;
 | 
					        const { currentBalance, selectedAddress, isLedger, zeipId } = this.props;
 | 
				
			||||||
        const makerAddress = selectedAddress;
 | 
					        const makerAddress = selectedAddress;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (isLedger) {
 | 
					        if (isLedger) {
 | 
				
			||||||
@@ -209,7 +208,7 @@ export class VoteForm extends React.Component<Props> {
 | 
				
			|||||||
            name: '0x Protocol Governance',
 | 
					            name: '0x Protocol Governance',
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        const message = {
 | 
					        const message = {
 | 
				
			||||||
            zeip,
 | 
					            zeip: zeipId,
 | 
				
			||||||
            preference: votePreference,
 | 
					            preference: votePreference,
 | 
				
			||||||
            from: makerAddress,
 | 
					            from: makerAddress,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
@@ -236,7 +235,9 @@ export class VoteForm extends React.Component<Props> {
 | 
				
			|||||||
                isAwaitingLedgerSignature: false,
 | 
					                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 voteEndpoint = `${voteDomain}/v1/vote`;
 | 
				
			||||||
            const requestBody = { ...signedVote, comment };
 | 
					            const requestBody = { ...signedVote, comment };
 | 
				
			||||||
            const response = await fetch(voteEndpoint, {
 | 
					            const response = await fetch(voteEndpoint, {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,9 @@ export class VoteIndex extends React.Component<VoteIndexProps, VoteIndexState> {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    private async _fetchVoteStatusAsync(zeipId: number): Promise<TallyInterface> {
 | 
					    private async _fetchVoteStatusAsync(zeipId: number): Promise<TallyInterface> {
 | 
				
			||||||
        try {
 | 
					        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 voteEndpoint = `${voteDomain}/v1/tally/${zeipId}`;
 | 
				
			||||||
            const response = await fetch(voteEndpoint, {
 | 
					            const response = await fetch(voteEndpoint, {
 | 
				
			||||||
                method: 'get',
 | 
					                method: 'get',
 | 
				
			||||||
@@ -100,8 +102,8 @@ export class VoteIndex extends React.Component<VoteIndexProps, VoteIndexState> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private async _fetchTallysAsync(): Promise<void> {
 | 
					    private async _fetchTallysAsync(): Promise<void> {
 | 
				
			||||||
        const tallyResponses = await Promise.all(ZEIP_IDS.map(async zeipId => this._fetchVoteStatusAsync(zeipId)));
 | 
					        const tallyResponses = await Promise.all(ZEIP_IDS.map(async zeipId => this._fetchVoteStatusAsync(zeipId)));
 | 
				
			||||||
        const tallys: {[key: number]: TallyInterface} = {};
 | 
					        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 });
 | 
					        this.setState({ tallys });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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:
 | 
					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"
 | 
					  version "4.1.15"
 | 
				
			||||||
  resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
 | 
					  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":
 | 
					"graceful-readlink@>= 1.0.0":
 | 
				
			||||||
  version "1.0.1"
 | 
					  version "1.0.1"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user