Align contract event log l&f with transactions (#2812)
* Event into own component, align with transactions * Pass value & type through from event log params * Reformat display columns
This commit is contained in:
@@ -110,6 +110,10 @@ export default class Events extends Component {
|
||||
|
||||
logToEvent = (log) => {
|
||||
log.key = api.util.sha3(JSON.stringify(log));
|
||||
log.params = Object.keys(log.params).reduce((params, name) => {
|
||||
params[name] = log.params[name].value;
|
||||
return params;
|
||||
}, {});
|
||||
|
||||
return log;
|
||||
}
|
||||
|
||||
@@ -114,6 +114,10 @@ export default class Events extends Component {
|
||||
|
||||
logToEvent = (log) => {
|
||||
log.key = api.util.sha3(JSON.stringify(log));
|
||||
log.params = Object.keys(log.params).reduce((params, name) => {
|
||||
params[name] = log.params[name].value;
|
||||
return params;
|
||||
}, {});
|
||||
|
||||
return log;
|
||||
}
|
||||
@@ -139,7 +143,6 @@ export default class Events extends Component {
|
||||
.concat(pendingEvents)
|
||||
.filter((log) => !minedNew.find((event) => event.transactionHash === log.transactionHash));
|
||||
const events = [].concat(pendingNew).concat(minedNew);
|
||||
console.log('*** events', events.map((event) => event.address));
|
||||
this.setState({ loading: false, events, minedEvents: minedNew, pendingEvents: pendingNew });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,10 @@ export default class Events extends Component {
|
||||
logIndex,
|
||||
transactionHash,
|
||||
transactionIndex,
|
||||
params,
|
||||
params: Object.keys(params).reduce((data, name) => {
|
||||
data[name] = params[name].value;
|
||||
return data;
|
||||
}, {}),
|
||||
key
|
||||
};
|
||||
};
|
||||
|
||||
@@ -48,9 +48,9 @@ const renderEvent = (classNames, verb) => (e, accounts, contacts) => {
|
||||
|
||||
return (
|
||||
<tr key={ e.key } className={ classes }>
|
||||
<td>{ renderAddress(e.parameters.owner, accounts, contacts) }</td>
|
||||
<td>{ renderAddress(e.parameters.owner.value, accounts, contacts) }</td>
|
||||
<td><abbr title={ e.transaction }>{ verb }</abbr></td>
|
||||
<td><code>{ renderHash(bytesToHex(e.parameters.name)) }</code></td>
|
||||
<td><code>{ renderHash(bytesToHex(e.parameters.name.value)) }</code></td>
|
||||
<td>{ renderStatus(e.timestamp, e.state === 'pending') }</td>
|
||||
</tr>
|
||||
);
|
||||
@@ -64,10 +64,10 @@ const renderDataChanged = (e, accounts, contacts) => {
|
||||
|
||||
return (
|
||||
<tr key={ e.key } className={ classNames }>
|
||||
<td>{ renderAddress(e.parameters.owner, accounts, contacts) }</td>
|
||||
<td>{ renderAddress(e.parameters.owner.value, accounts, contacts) }</td>
|
||||
<td><abbr title={ e.transaction }>updated</abbr></td>
|
||||
<td>
|
||||
key <code>{ new Buffer(e.parameters.plainKey).toString('utf8') }</code> of <code>{ renderHash(bytesToHex(e.parameters.name)) }</code>
|
||||
key <code>{ new Buffer(e.parameters.plainKey.value).toString('utf8') }</code> of <code>{ renderHash(bytesToHex(e.parameters.name.value)) }</code>
|
||||
</td>
|
||||
<td>{ renderStatus(e.timestamp, e.state === 'pending') }</td>
|
||||
</tr>
|
||||
|
||||
@@ -30,7 +30,10 @@ const logToEvent = (log) => {
|
||||
logIndex,
|
||||
transactionHash,
|
||||
transactionIndex,
|
||||
params,
|
||||
params: Object.keys(params).reduce((data, name) => {
|
||||
data[name] = params[name].value;
|
||||
return data;
|
||||
}, {}),
|
||||
key
|
||||
};
|
||||
};
|
||||
|
||||
@@ -148,27 +148,27 @@ export const subscribeEvents = () => (dispatch, getState) => {
|
||||
return dispatch(setTokenData(params.id.toNumber(), {
|
||||
tla: '...',
|
||||
base: -1,
|
||||
address: params.addr,
|
||||
name: params.name,
|
||||
address: params.addr.value,
|
||||
name: params.name.value,
|
||||
isPending: true
|
||||
}));
|
||||
}
|
||||
|
||||
if (event === 'Registered' && type === 'mined') {
|
||||
return dispatch(loadToken(params.id.toNumber()));
|
||||
return dispatch(loadToken(params.id.value.toNumber()));
|
||||
}
|
||||
|
||||
if (event === 'Unregistered' && type === 'pending') {
|
||||
return dispatch(setTokenPending(params.id.toNumber(), true));
|
||||
return dispatch(setTokenPending(params.id.value.toNumber(), true));
|
||||
}
|
||||
|
||||
if (event === 'Unregistered' && type === 'mined') {
|
||||
return dispatch(deleteToken(params.id.toNumber()));
|
||||
return dispatch(deleteToken(params.id.value.toNumber()));
|
||||
}
|
||||
|
||||
if (event === 'MetaChanged' && type === 'pending') {
|
||||
return dispatch(setTokenData(
|
||||
params.id.toNumber(),
|
||||
params.id.value.toNumber(),
|
||||
{ metaPending: true, metaMined: false }
|
||||
));
|
||||
}
|
||||
@@ -176,13 +176,13 @@ export const subscribeEvents = () => (dispatch, getState) => {
|
||||
if (event === 'MetaChanged' && type === 'mined') {
|
||||
setTimeout(() => {
|
||||
dispatch(setTokenData(
|
||||
params.id.toNumber(),
|
||||
params.id.value.toNumber(),
|
||||
{ metaPending: false, metaMined: false }
|
||||
));
|
||||
}, 5000);
|
||||
|
||||
return dispatch(setTokenData(
|
||||
params.id.toNumber(),
|
||||
params.id.value.toNumber(),
|
||||
{ metaPending: false, metaMined: true }
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user