等到铸币完成
Wait until the minting is done
我正在使用 React 构建我的 NFT Minting DApp 的前端。
我试图在交易生成后在控制台中打印 URL 到 etherscan/hash,但是当交易开始时我得到了日志,所以,它不是已在 etherscan 中可用。
我已经检查了其他站点,但没有一个是确定性的。
铸币过程完成后如何获取交易收据?
try {
ethereum
.request({
method: "eth_sendTransaction",
params: [tx],
})
.then(
async (result) =>
{
let nftTxn = await nftContract.safeMint;
console.log("Minting... please wait");
web3.eth.getTransactionReceipt(result)
.then(console.log(`Mined, see transaction: https://ropsten.etherscan.io/tx/${result}`));
}
)
没有可以订阅的听众吗?
web3.eth.subscribe("alchemy_fullPendingTransactions")
终于,我做到了。我决定使用间隔。资料来源:here
if (result!=null){
const interval = setInterval(()=>{
console.log("Attempting to get transaction receipt...");
web3.eth.getTransactionReceipt(result, function(err, rec){
if (rec) {
console.log(`See transaciton in https://ropsten.etherscan.io/tx/${rec.transactionHash}`);
clearInterval(interval);
} else {
console.log(err);
}
});
}, 1000);
}
我在 web3js 中的做法是这样的,transactionHash
会很快注销,然后收据就会到达。
myContract.methods
.myMethod(123)
.send({ from: "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe" })
.on("transactionHash", function (hash) {
console.log("transactionHash", hash);
})
.on("confirmation", function (confirmationNumber, receipt) {
console.log("confirmationNumber", confirmationNumber);
console.log("receipt", receipt);
})
.on("receipt", function (receipt) {
// receipt example
console.log(receipt);
})
.on("error", function (error, receipt) {
// If the transaction was rejected by the network with a receipt, the second parameter will be the receipt.
console.log("error", error);
console.log("receipt", receipt);
});
https://web3js.readthedocs.io/en/v1.7.0/web3-eth-contract.html#id37
我正在使用 React 构建我的 NFT Minting DApp 的前端。
我试图在交易生成后在控制台中打印 URL 到 etherscan/hash,但是当交易开始时我得到了日志,所以,它不是已在 etherscan 中可用。
我已经检查了其他站点,但没有一个是确定性的。
铸币过程完成后如何获取交易收据?
try {
ethereum
.request({
method: "eth_sendTransaction",
params: [tx],
})
.then(
async (result) =>
{
let nftTxn = await nftContract.safeMint;
console.log("Minting... please wait");
web3.eth.getTransactionReceipt(result)
.then(console.log(`Mined, see transaction: https://ropsten.etherscan.io/tx/${result}`));
}
)
没有可以订阅的听众吗?
web3.eth.subscribe("alchemy_fullPendingTransactions")
终于,我做到了。我决定使用间隔。资料来源:here
if (result!=null){
const interval = setInterval(()=>{
console.log("Attempting to get transaction receipt...");
web3.eth.getTransactionReceipt(result, function(err, rec){
if (rec) {
console.log(`See transaciton in https://ropsten.etherscan.io/tx/${rec.transactionHash}`);
clearInterval(interval);
} else {
console.log(err);
}
});
}, 1000);
}
我在 web3js 中的做法是这样的,transactionHash
会很快注销,然后收据就会到达。
myContract.methods
.myMethod(123)
.send({ from: "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe" })
.on("transactionHash", function (hash) {
console.log("transactionHash", hash);
})
.on("confirmation", function (confirmationNumber, receipt) {
console.log("confirmationNumber", confirmationNumber);
console.log("receipt", receipt);
})
.on("receipt", function (receipt) {
// receipt example
console.log(receipt);
})
.on("error", function (error, receipt) {
// If the transaction was rejected by the network with a receipt, the second parameter will be the receipt.
console.log("error", error);
console.log("receipt", receipt);
});
https://web3js.readthedocs.io/en/v1.7.0/web3-eth-contract.html#id37