以太坊元交易:原理、实现与应用
1. 基于智能账户构建元交易
元交易需要一个能够处理、验证它们的合约,该合约要检查签名者是否有权执行所请求的操作,并代表其执行。幸运的是,我们已经有一个可以持有资金并代表用户的不同账户执行操作的合约,即身份合约。
我们将修改现有的身份合约以处理元交易。转发函数现在将接收由用户账户之一预签名的元交易,而不是直接来自其中一个账户的调用。这样,用户无需实际向身份合约发送交易,只需签署操作,让中继器发送即可。这使用户可以将所有资金存放在一个智能账户中,而无需在其设备上持有任何ETH来支付燃气费。
以下是修改后的身份合约中的转发函数示例:
// 08-meta-txs/contracts/IdentityWithMetaTxs.sol
// Prevent replay attacks
uint256 public nonce;
// Use ECDSA library for retrieving the signer
using ECDSA for bytes32;
// Forward an action to a recipient validating the signer
// Note that the onlyUser modifier is no longer needed
function forward(
address to, uint256 value, bytes memory data,
bytes memory signature
) public returns (bytes memory) {
// Get hash of t
超级会员免费看
订阅专栏 解锁全文
1011

被折叠的 条评论
为什么被折叠?



