// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { api } from '../parity';
import { callRegister, postRegister } from '../services';
import Button from '../Button';
import styles from './import.css';
export default class Import extends Component {
static propTypes = {
instance: PropTypes.object.isRequired,
visible: PropTypes.bool.isRequired,
onClose: PropTypes.func.isRequired
}
state = {
abi: null,
abiParsed: null,
abiError: 'Please add a valid ABI definition',
functions: null,
fnstate: {}
}
render () {
const { visible, onClose } = this.props;
const { abiError } = this.state;
if (!visible) {
return null;
}
return (
Provide the ABI (Contract Interface) in the space provided below. Only non-constant functions (names & types) will be imported, while constant functions and existing signatures will be ignored.
{ abiError }
);
}
renderRegister () {
const count = this.countFunctions();
let buttons = null;
if (count) {
buttons = (
);
}
return (
The following functions have been extracted from the ABI provided and the state has been determined from interacting with the signature contract.
{ this.renderFunctions() }
{ count || 'no' } functions available for registration