首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从可靠智能契约中发送带有编码数据的事务

如何从可靠智能契约中发送带有编码数据的事务
EN

Stack Overflow用户
提问于 2022-09-12 18:22:11
回答 1查看 160关注 0票数 1

我想将事务从我的可靠智能契约发送到另一个智能契约,并且所有的操作都已经被编码了。

Ex(0x7a1eb1b9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a 0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000a0000 0000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000009b1ea631e125f),意思是用特定的令牌交换令牌(不只是一个例子)

但是我看不出用已经编码的数据从可靠的智能契约发送事务的任何方法,所有的例子都显示了如何通过调用其他智能契约中的函数来发送事务。

我不想破译我的编码数据

我知道如何使用ethers.js进行操作,如下所示:

代码语言:javascript
复制
const transaction = {
data:`0x7a1eb1b9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000009b1ea631e125f`,  
to: Contract address,  
value: 0,  
from: my address,  
gasPrice: 21000,  
gasLimit: 4000000. 
    };   
const wallet = new ethers.Wallet(Address);  
const connectedWallet = wallet.connect(provider);  
const tx = await connectedWallet.sendTransaction(transaction);  

“数据”有我想要做的所有动作,我想用稳固做同样的事情,有办法吗?

谢谢你的帮助和时间

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-12 22:03:45

您可以使用低级.call()方法( address类型的成员).

data字段是必需的(您可以传递一个空值,如果它适合您的用例)。

可选的value发送指定的ETH值(请注意,您的合同至少需要持有这个金额,或者只需要通过这个函数调用接收到)。可选的gas是传递给这个特定调用(以及随后的调用)的气体单元的最大数量。

由于您的合同总是充当调用方(换句话说,您的合同地址是被调用的合同中的msg.sender ),所以您不能设置任意的from字段值。对于整个主事务来说,gasPrice也是静态的,不能对后续调用进行更改。

代码语言:javascript
复制
function callAnotherContract() external {
    address anotherContract = address(0x123);
    bytes memory data = hex"7a1eb1b900";
    uint256 myValue = 0;
    uint256 myGasLimit = 100000;

    // data is required (can be empty), other params are optional
    anotherContract.call{value: myValue, gas: myGasLimit}(data);
}

医生:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73693677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档