当前位置: 首页 > 知识库问答 >
问题:

第三方可以将ERC20代币交易发送到以太坊区块链吗?

葛航
2023-03-14

我想创建一个智能合约,人们可以在钱包中不使用以太币的情况下转移代币。

假设A想将ERC20代币转移到B,但他的钱包中没有以太币。

第三方C可以为A发送交易并因此支付气体吗?是否可以在合同中为这个usgae创建一个函数?

我在网上搜索了一个soloution,但找不到。

共有3个答案

洪涵亮
2023-03-14

不可以,在标准的ERC20代币合约中,代币持有者必须至少发起一笔交易(以调用转账()批准()),并且交易必须始终由其发起方支付。

闾丘才哲
2023-03-14

ERC20标准中已经定义了这种情况。它的这个功能:

function transferFrom(address from, address to, uint tokens) public returns (bool success);

但是,在C方使用它并将令牌从A发送到B之前,A必须批准C通过以下函数执行此操作,该函数也在ERC20标准中定义:

function approve(address spender, uint tokens) public returns (bool success);
荣俊
2023-03-14

这是以太坊dApp开发的关键问题,也是令牌的关键问题。这里是以太坊栈交换上一个很老的线程,也是这个。

有两种选择及其优缺点:

> < li>

使用签名

  • 智能合约中的每个函数都必须具有签名参数。
  • 想要与智能合约交互的人必须使用其账户的私钥签署功能参数,并将其发送给智能合约所有者(通过任何通信渠道)。
  • 然后,所有者将参数与签名一起提交给区块链,为gas付费。签名保证邮件已得到用户的批准。

交易结束时退还用过的汽油。修饰符< code>refundGasCost可用于此(见下文)。

但是(1)真的很难应用于令牌转移,你只是不知道谁在使用令牌,(2)并没有真正解决这个问题。

最近发生了很多事情,有一篇关于如何让你的以太坊Dapp用户免于为交易支付汽油的博客帖子,既然你问及代币,有一个ERC建议在一次交易中用代币而不是汽油支付转账,如果你有代币但没有以太网,这将很好。

我希望这有帮助。

 类似资料:
  • 我试图在windows上开发一个简单的去中心化应用程序,使用以太坊的教程-“DAPPS初学者”。它需要三款软件:Alethzers、Mist和Mix。我在不同的层面上有很多问题,因为很明显,他们停止了与Alethzerand Mix的合作。还有其他选择吗?有没有一个解决方案来开发一个好的Dapp,在那里我可以看到区块链最重要的部分?比如采矿和安全系统?

  • 签署以太坊交易 要使脱机签名交易得到签署,需要设定一个RawTransaction类型。RawTransaction类似于前面提到的Transaction类型,但是它不需要通过具体的账号地址来请求,因为可以从签名中推断出来。 为了创建和签署原生交易,交易的顺序如下: 1.确定交易发起者帐户的下一个可用随机数nonce 2.创建RawTransaction对象 3.使用递归长度前缀编码(RLP即Re

  • 我已经使用NodeJS创建了简单的区块链应用程序。区块链数据文件存储在本地文件系统中。该区块链不涉及采矿区块,也不涉及难度级别。 请建议,如果我可以在私有以太坊/hyperledge上托管此应用程序,以及为此需要做哪些更改?下面是我用来创建块的代码。

  • 以太币从一方交易到另一方 在双方之间发送以太币Ether需要交易对象的最少量的信息: to :目的地钱包地址 value:价值,希望发送到目的地的以太币数量 BigInteger value = Convert.toWei("1.0", Convert.Unit.ETHER).toBigInteger(); RawTransaction rawTransaction = RawTransacti

  • 我已经建立了一个私有区块链,其中2个节点1是miner节点。然而,我们看到许多空矿正在被开采。我尝试了在这个链接上建议的解决方案https://ethereum.stackexchange.com/questions/3151/how-to-make-miner-to-mine-only-when-there-are-pending-transactions.但空矿还是被开采出来了。有人能帮忙吗?

  • 以太坊智能合约是否有可能实现身份证明和电子邮件检查? 是否需要进行外部呼叫,或者一切都可以在区块链中实现。如何添加新身份到区块链,以便以后检查? 我搜索这个话题有一段时间没有成功。