假设本来是钱包A和合约C进行交互,比如deposit withdraw之类的资金操作,msg.sender是钱包地址A。现在我想把钱包A与C交互的参数打包,由B合约通过abi发送给C,但是C里面lp之类的存储变量要用到msg.sender,这里是B合约地址。而B合约本身没有资金往来(只有授权),我想msg.sender依然是A地址,请问这有办法实现吗?
msg.sender 是调用者地址, 这个是没法修改的。
要修改不是msg.sender, 而是实现的思路, 你可以使用 tx.origin 或者 使用 A 提交签名后的信息, 让 B 提交给 C , 这样 C 都可以获得 A 的地址。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!