mirror of https://github.com/embarklabs/embark.git
Fixing function invokation and result showing
- Booleans weren't being sent correctly (it always assumed true) - Booleans now are shown on the results - Handling result visualization when there's more than one parameter
This commit is contained in:
parent
42db8258e0
commit
8da0d60b42
|
@ -89,7 +89,35 @@ class FunctionForm extends React.Component {
|
||||||
{
|
{
|
||||||
!this.state.error && this.state.message != null
|
!this.state.error && this.state.message != null
|
||||||
?
|
?
|
||||||
<React.Fragment>{this.state.message}</React.Fragment>
|
<React.Fragment>{
|
||||||
|
(this.state.message !== null && typeof this.state.message === 'object')
|
||||||
|
?
|
||||||
|
(
|
||||||
|
<ul>
|
||||||
|
{
|
||||||
|
this.props.abi.outputs.filter(x => x.name !== "").length > 0
|
||||||
|
?
|
||||||
|
Object.keys(this.state.message).map((key, index) => {
|
||||||
|
if(isNaN(key)){
|
||||||
|
return <li key={index}>{key}: {this.state.message[key]}</li>
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
})
|
||||||
|
:
|
||||||
|
Object.keys(this.state.message).map((key, index) => {
|
||||||
|
return <li key={index}>{key}: {this.state.message[key]}</li>
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
:
|
||||||
|
(typeof this.state.message === "boolean" ?
|
||||||
|
(this.state.message ? 'true' : 'false')
|
||||||
|
:
|
||||||
|
this.state.message)
|
||||||
|
}</React.Fragment>
|
||||||
: '' }
|
: '' }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -86,11 +86,14 @@ class Function extends React.Component {
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if(this.props.abi.type == 'fallback')
|
if(this.props.abi.type == 'fallback')
|
||||||
_receipt = await this.web3.eth.sendTransaction(executionParams);
|
_receipt = await web3.eth.sendTransaction(executionParams);
|
||||||
else
|
else
|
||||||
_receipt = await this.props.contract
|
_receipt = await this.props.contract
|
||||||
.methods[this.props.abi.name + '(' + this.props.abi.inputs.map(input => input.type).join(',') + ')']
|
.methods[this.props.abi.name + '(' + this.props.abi.inputs.map(input => input.type).join(',') + ')']
|
||||||
.apply(null, Object.keys(fields).map(val => fields[val]))
|
.apply(null, Object.keys(fields).map(val => {
|
||||||
|
let input = this.props.abi.inputs.filter(x => x.name == val)[0];
|
||||||
|
return input.type.indexOf('bool') == -1 ? fields[val] : (fields[val].toLowerCase() === 'true')
|
||||||
|
}))
|
||||||
[this._getMethodType()](executionParams)
|
[this._getMethodType()](executionParams)
|
||||||
|
|
||||||
if(this._getMethodType() == 'call'){
|
if(this._getMethodType() == 'call'){
|
||||||
|
@ -196,7 +199,7 @@ class Function extends React.Component {
|
||||||
_getFunctionParamString(){
|
_getFunctionParamString(){
|
||||||
if(this.props.abi.type == 'fallback') return '';
|
if(this.props.abi.type == 'fallback') return '';
|
||||||
return this.props.abi.inputs
|
return this.props.abi.inputs
|
||||||
.map((input, i) => (input.type.indexOf('int') == -1 ? '"' : '') + (this.state.fields[input.name] || (input.type.indexOf('int') == -1 ? '' : '0')) + (input.type.indexOf('int') == -1 ? '"' : ''))
|
.map((input, i) => (input.type.indexOf('int') == -1 && input.type.indexOf('bool') == -1 ? '"' : '') + (this.state.fields[input.name] || (input.type.indexOf('int') == -1 ? '' : '0')) + (input.type.indexOf('int') == -1 ? '"' : ''))
|
||||||
.join(', ');
|
.join(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue