作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Solidity 很陌生。我对 javascript html 和 css 更有经验。但我现在正在我的前端网站上制作免费的代币提供者。用户输入他或她的地址并获得免费 token 的地方。契约(Contract)链接到我的 web3js,一切运行良好。但我不能自动转移代币,而无需批准 metamask 上的交易。我真的很想自动化这个过程,这样我就可以在我的网站上实现很多新功能。
当我在 remix 中与我的合约交互时,它运行良好,但在 java 中它必须做 metamask 的事情。
这是我在 javascript 中的函数代码:
function Coingiver()
{
const web3 = new Web3(window.ethereum);
var slotContract = new web3.eth.Contract(abi, address);
const addressreceive = document.getElementById("address").value;
const addressend = "0x582077e61D52bB1Ae6FB9EcEDa1eb39153E9A269";
window.ethereum.enable();
slotContract.methods.transferFrom(addressend, addressreceive, 1).send({from : addressend},function(err, res)
{
if(err)
{
console.log("error", err)
return
}
console.log("Hash of the transaction: ", res)
});
checkBalance();
}
那么我如何使这个过程自动化,这样我就不必每次都批准交易了?
最佳答案
为了让用户发送交易以获取您的硬币,他们必须为交易支付汽油费。 metamask 在发送交易之前总是先询问用户的一个原因是为了防止网站通过重复将他们的 ETH 作为气体来消耗所有用户的 ETH。
如果您真的想免费为用户执行此操作,您可以在服务器上使用 node.js 或 python,并在用户填写表格时让它签名并发送硬币。
请注意,收集空投存在大量欺诈行为,如果您只是发送到任何地址,诈骗者将生成无穷无尽的地址来获取硬币,并且您还将支付gas费用。
关于javascript - 在没有元掩码的情况下自动进行solidity传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68243658/
我是一名优秀的程序员,十分优秀!