Merge branch 'features/improve-gas-estimator' into develop_51

This commit is contained in:
Jonathan Rainville 2018-10-27 06:06:14 -04:00
commit e77e08c84e
17 changed files with 37 additions and 30 deletions

View File

@ -13,7 +13,8 @@ CardTitleIdenticon.propTypes = {
id: PropTypes.string,
children: PropTypes.oneOfType([
PropTypes.object,
PropTypes.array
PropTypes.array,
PropTypes.string
])
};

View File

@ -44,7 +44,7 @@ class Communication extends Component {
render() {
return (
<Row className="mt-3 justify-content-md-center">
<Row className="justify-content-md-center">
<Col xs="12" sm="9" lg="9">
<Card>
<CardHeader>

View File

@ -95,8 +95,8 @@ class ContractFunction extends Component {
render() {
return (
<Card className="contract-function-container">
<CardHeader>
<CardTitle className="collapsable" onClick={() => this.toggleFunction()}>
<CardHeader className="collapsable" onClick={() => this.toggleFunction()}>
<CardTitle>
{ContractFunction.isPureCall(this.props.method) &&
<button className="btn btn-warning btn-sm float-right" onClick={(e) => this.handleCall(e)}>call</button>
}

View File

@ -180,7 +180,7 @@ const EmbarkContract = ({contract, toggleContractOverview}) => (
);
const ContractsHeader = ({deploymentPipeline, updateDeploymentPipeline}) => (
<Row className="mt-3">
<Row>
<div className="ml-auto mr-5">
<FormGroup row>
<span className="mr-2">Deploy using</span>

View File

@ -35,7 +35,7 @@ class Converter extends React.Component {
render() {
return(
<Row className="mt-3 justify-content-md-center">
<Row className="justify-content-md-center">
<Col xs="12" sm="9" lg="9">
<Card>
<CardHeader>

View File

@ -1,23 +1,23 @@
.explorer-row {
#root .explorer-row {
border-top-width: 0 !important; /*Bootstrap uses important, so we need to override it*/
}
.explorer-overview .card-body {
#root .explorer-overview .card-body {
overflow: hidden;
}
.explorer-row + .explorer-row {
#root .explorer-row + .explorer-row {
margin-top: 5px;
padding-top: 20px;
border-top-width: 1px !important;
}
.explorer-row .text-truncate {
#root .explorer-row .text-truncate {
width: 90%;
display: inline-block;
}
.explorer-row .text-truncate {
#root .explorer-row .text-truncate {
width: 90%;
display: inline-block;
}

View File

@ -12,7 +12,7 @@ import './Explorer.css';
const ExplorerDashboardLayout = () => (
<div className="explorer-overview">
<Row className="mt-4">
<Row>
<Col>
<AccountsContainer />
</Col>

View File

@ -51,7 +51,7 @@ const SIDEBAR_NAV_ITEMS = {
{url: "/embark/explorer/accounts", icon: "fa fa-users", name: "Accounts"},
{url: "/embark/explorer/blocks", icon: "fa fa-stop", name: "Blocks"},
{url: "/embark/explorer/contracts", icon: "fa fa-file-code-o", name: "Contracts"},
{url: "/embark/explorer/transactions", icon: "fa fa-tree", name: "Transactions"}
{url: "/embark/explorer/transactions", icon: "fa fa-exchange", name: "Transactions"}
]},
"/embark/utilities/": {items: [
{url: "/embark/utilities/converter", icon: "fa fa-plug", name: "Converter"},
@ -249,7 +249,7 @@ class Layout extends React.Component {
{searchResult.error}
</Alert>
<Container fluid className="h-100">
<Container fluid className="h-100 pt-4">
{children}
</Container>
</main>

View File

@ -29,7 +29,7 @@ Process.propTypes = {
};
const Processes = ({processes}) => (
<Row className="mt-3">
<Row>
{processes.map((process) => <Process key={process.name} process={process} />)}
</Row>
);

View File

@ -19,7 +19,7 @@ class SignAndVerify extends React.Component {
this.state = {
selectedAccount: this.props.accounts[0].address,
messageToSign: '',
messageToVerify: '',
messageToVerify: ''
};
}
@ -40,7 +40,7 @@ class SignAndVerify extends React.Component {
render() {
return (
<Row className="mt-3 justify-content-md-center">
<Row className="justify-content-md-center">
<Col xs="12" sm="9" lg="6">
<Card>
<CardHeader>

View File

@ -1,6 +1,7 @@
.editor--grid {
margin-left: -30px !important;
margin-right: -30px !important;
margin-top: -1.5rem !important;
}
.hidden-toogle {

View File

@ -12,7 +12,7 @@ class EnsContainer extends Component {
showEns() {
return (
<Row className="mt-3 justify-content-md-center">
<Row className="justify-content-md-center">
<Col xs="12" sm="9" lg="6">
<EnsLookup lookup={this.props.lookup} ensRecords={this.props.ensRecords}/>
<EnsResolve resolve={this.props.resolve} ensRecords={this.props.ensRecords}/>

View File

@ -35,11 +35,11 @@ class HomeContainer extends Component {
}
isEmbark() {
return this.state.activeProcess === EMBARK_PROCESS_NAME
return this.state.activeProcess === EMBARK_PROCESS_NAME;
}
updateTab(processName = EMBARK_PROCESS_NAME) {
this.props.stopProcessLogs(this.state.activeProcess)
this.props.stopProcessLogs(this.state.activeProcess);
this.props.fetchProcessLogs(processName, LOG_LIMIT);
this.props.listenToProcessLogs(processName);
@ -93,7 +93,13 @@ HomeContainer.propTypes = {
postCommand: PropTypes.func,
postCommandSuggestions: PropTypes.func,
error: PropTypes.string,
loading: PropTypes.bool
loading: PropTypes.bool,
stopProcessLogs: PropTypes.func,
fetchProcessLogs: PropTypes.func,
listenToProcessLogs: PropTypes.func,
fetchContracts: PropTypes.func,
services: PropTypes.array,
contracts: PropTypes.array
};
function mapStateToProps(state) {

View File

@ -11,7 +11,7 @@ const getQueryParams = (props) => {
return qs.parse(props.location.search, {
ignoreQueryPrefix: true
});
}
};
class TransactionDecoderContainer extends Component {
@ -33,7 +33,7 @@ class TransactionDecoderContainer extends Component {
render() {
return (
<Row className="mt-3">
<Row>
<Col>
<TransactionDecoder transaction={this.props.transaction}
transactionHash={getQueryParams(this.props).hash}/>

View File

@ -33,7 +33,7 @@ export function getTransactionsByAccount(state, address) {
}
export function getTransactionsByBlock(state, blockNumber) {
return state.entities.transactions.filter((transaction) => transaction.blockNumber.toString() === blockNumber);
return state.entities.transactions.filter((transaction) => transaction.hasOwnProperty('blockNumber') && transaction.blockNumber.toString() === blockNumber);
}
export function getBlocks(state) {

View File

@ -1,7 +1,6 @@
require('colors');
let fs = require('./fs.js');
const date = require('date-and-time');
const constants = require('../constants');
const DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss:SSS';
const LOG_REGEX = new RegExp(/\[(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d:\d\d\d)\] (?:\[(\w*)\]:?)?\s?\s?(.*)/gmi);
@ -91,7 +90,7 @@ Logger.prototype.error = function () {
return;
}
this.events.emit("log", "error", ...arguments);
this.logFunction(...Array.from(arguments).map(t => {return t ? t.red : t;}));
this.logFunction(...Array.from(arguments).map(t => { return t ? t.red : t; }));
this.writeToFile("[error]: ", ...arguments);
};
@ -100,7 +99,7 @@ Logger.prototype.warn = function () {
return;
}
this.events.emit("log", "warn", ...arguments);
this.logFunction(...Array.from(arguments).map(t => {return t ? t.yellow : t;}));
this.logFunction(...Array.from(arguments).map(t => { return t ? t.yellow : t; }));
this.writeToFile("[warning]: ", ...arguments);
};
@ -109,7 +108,7 @@ Logger.prototype.info = function () {
return;
}
this.events.emit("log", "info", ...arguments);
this.logFunction(...Array.from(arguments).map(t => {return t ? t.green : t;}));
this.logFunction(...Array.from(arguments).map(t => { return t ? t.green : t; }));
this.writeToFile("[info]: ", ...arguments);
};

View File

@ -538,8 +538,8 @@ class BlockchainConnector {
function(next) {
async.times(limit, function(n, eachCb) {
self.web3.eth.getBlock(from - n, returnTransactionObjects, function(err, block) {
if (err) {
self.logger.error(err);
if (err && err.message) {
// FIXME Returns an error because we are too low
return eachCb();
}
blocks.push(block);