React 获取 metamask 最新交易状态
React get metamask latest transaction status
我正在使用它,通过反应中的元掩码在智能合约中进行函数调用:
export default class EthereumForm1 extends Component {
constructor (props) {
super (props);
const MyContract = window.web3.eth.contract(ContractABI);
this.state = {
ContractInstance: MyContract.at('ContractAddress')
}
this.doPause = this.doPause.bind (this);
}
doPause() {
const { pause } = this.state.ContractInstance;
pause (
{
gas: 30000,
gasPrice: 32000000000,
value: window.web3.toWei (0, 'ether')
},
(err) => {
if (err) console.error ('Error1::::', err);
console.log ('Contract should be paused');
})
}
我想要的是 运行 jQuery 加载 gif 的代码:$(".Loading").show();
在处理事务时将其删除。此外,最好在 div 之后添加交易状态,例如在 metamask 中(通过或拒绝)。
Metamask transaction status image
您不需要 jquery 来执行此操作。 React 状态可以自动管理进度的状态。您所要做的就是调用 setState
函数。
class EthereumFrom1 extends React.Component {
state = {
loading: false
};
constructor(props) {
super(props);
this.doPause = this.doPause.bind(this);
}
doPause() {
const {pause} = this.state.ContractInstance;
pause(
{
gas: 30000,
gasPrice: 32000000000,
value: window.web3.toWei(0, 'ether')
},
(err) => {
if (err) console.error('Error1::::', err);
this.setState({loading: true});
})
}
render() {
return (
<div>
{this.state.loading ?
<div className="Loading">
Loading...
</div> : <div>done</div>
}
</div>
)
}
}
对我有帮助的是每隔几秒检查一次我的交易是否完成,如果完成则隐藏加载器。
if (latestTx != null) {
window.web3.eth.getTransactionReceipt(latestTx, function (error, result) {
if (error) {
$(".Loading").hide();
console.error ('Error1::::', error);
}
console.log(result);
if(result != null){
latestTx = null;
$(".Loading").hide();
}
});
}
我正在使用它,通过反应中的元掩码在智能合约中进行函数调用:
export default class EthereumForm1 extends Component {
constructor (props) {
super (props);
const MyContract = window.web3.eth.contract(ContractABI);
this.state = {
ContractInstance: MyContract.at('ContractAddress')
}
this.doPause = this.doPause.bind (this);
}
doPause() {
const { pause } = this.state.ContractInstance;
pause (
{
gas: 30000,
gasPrice: 32000000000,
value: window.web3.toWei (0, 'ether')
},
(err) => {
if (err) console.error ('Error1::::', err);
console.log ('Contract should be paused');
})
}
我想要的是 运行 jQuery 加载 gif 的代码:$(".Loading").show();
在处理事务时将其删除。此外,最好在 div 之后添加交易状态,例如在 metamask 中(通过或拒绝)。
Metamask transaction status image
您不需要 jquery 来执行此操作。 React 状态可以自动管理进度的状态。您所要做的就是调用 setState
函数。
class EthereumFrom1 extends React.Component {
state = {
loading: false
};
constructor(props) {
super(props);
this.doPause = this.doPause.bind(this);
}
doPause() {
const {pause} = this.state.ContractInstance;
pause(
{
gas: 30000,
gasPrice: 32000000000,
value: window.web3.toWei(0, 'ether')
},
(err) => {
if (err) console.error('Error1::::', err);
this.setState({loading: true});
})
}
render() {
return (
<div>
{this.state.loading ?
<div className="Loading">
Loading...
</div> : <div>done</div>
}
</div>
)
}
}
对我有帮助的是每隔几秒检查一次我的交易是否完成,如果完成则隐藏加载器。
if (latestTx != null) {
window.web3.eth.getTransactionReceipt(latestTx, function (error, result) {
if (error) {
$(".Loading").hide();
console.error ('Error1::::', error);
}
console.log(result);
if(result != null){
latestTx = null;
$(".Loading").hide();
}
});
}