我想创建一个智能合约,人们可以在钱包中不使用以太币的情况下转移代币。
假设A想将ERC20代币转移到B,但他的钱包中没有以太币。
第三方C可以为A发送交易并因此支付气体吗?是否可以在合同中为这个usgae创建一个函数?
我在网上搜索了一个soloution,但找不到。
不可以,在标准的ERC20代币合约中,代币持有者必须至少发起一笔交易(以调用转账()
或批准()
),并且交易必须始终由其发起方支付。
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);
这是以太坊dApp开发的关键问题,也是令牌的关键问题。这里是以太坊栈交换上一个很老的线程,也是这个。
有两种选择及其优缺点:
> < li>
使用签名
签名
参数。 交易结束时退还用过的汽油。修饰符< 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.但空矿还是被开采出来了。有人能帮忙吗?
以太坊智能合约是否有可能实现身份证明和电子邮件检查? 是否需要进行外部呼叫,或者一切都可以在区块链中实现。如何添加新身份到区块链,以便以后检查? 我搜索这个话题有一段时间没有成功。