外部ERC20トークンの承認関数にdelegatecallを行う方法は?
Aug 23 2020
私がやりたいのは次のようなものです。
function testCall(uint amount) public virtual returns (bool) {
address tta = address(0xE7B6....);
(bool success, bytes memory result) = tta.delegatecall(abi.encodeWithSignature("approve(address, uint256)", address(this), amount));
return success;
}
トークンは次のようになります(承認機能があります)
ただし、関数が実行されるたびに、エラーで元に戻ります。
私は何が間違っているのですか?
私が達成する必要があるのは、最初にtransferFrom
契約のtestCall()
機能を実行することによって、ユーザーが契約を承認して作成できるようにすることです。
回答
1 ShaneFontaine Aug 23 2020 at 04:26
別のメソッドシグネチャを生成するスペースを関数に追加しています。
> provider.eth.abi.encodeFunctionSignature('approve(address, uint256)')
0x8b069f2a
provider.eth.abi.encodeFunctionSignature('approve(address,uint256)')
0x095ea7b3
スペースを削除すると、機能するはずです。