javascript - 在没有元掩码的情况下自动进行solidity传输

标签 javascript blockchain ethereum solidity web3

我对 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/

相关文章:

blockchain - Windows 10 上的 Hyperledger Composer "Error trying to instantiate composer runtime. Error: Error: Invalid results returned::NOT_FOUND"

ethereum - uniswap 低级交换调用

ethereum - uint 发起什么操作?

javascript - 我可以使用 jQuery 找到绑定(bind)在元素上的事件吗?

Go 构建失败, fatal error : rocksdb/c. h

git - 为什么 Git 不被视为 "block chain"?

javascript - 如何使用 Joi 验证以太坊地址

javascript - 所有事件都显示在左上角(Jquery Full Calendar)

javascript - jquery-ui 自动完成在内部 div 滚动时悬空

javascript - 类型 'string | number | string[]' 的参数不可分配给类型 'string' 的参数