Component
Heimdall (Core)
Have you ensured that you are up to date?
What version of Heimdall are you on?
v0.8.1
Operating System
Linux
Describe the bug
contract address:https://arbiscan.io/address/0xa8a36cdf8891267c246fd47fe01cf364f02ce57e#code
Actual Decompiled Output
/// @custom:selector 0x3e86e13b
/// @custom:signature startSwap(address arg0, uint256 arg1, address arg2) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
function startSwap(address arg0, uint256 arg1, address arg2) public payable {
require(arg0 == (address(arg0)));
if (arg2 == (address(arg2))) {
}
}
Expected Decompiled Output
The following content is gpt4-0 according to https://ethervm.io/decompile
function startSwap(address arg0, uint256 arg1, address arg2) public payable {
require(arg0 != address(0), "Invalid token address");
require(arg2 != address(0), "Invalid recipient address");
address sender = msg.sender;
IERC20 token = IERC20(arg0);
require(token.transferFrom(sender, address(this), arg1), "Transfer from sender failed");
require(token.transfer(arg2, arg1), "Transfer to recipient failed");
}
Related Assembly Code
if (var0 == 0x3e86e13b) {
// Dispatch table entry for startSwap(address,uint256,address)
var var1 = 0x007a;
var var2 = 0x0075;
var var3 = msg.data.length;
var var4 = 0x04;
var2, var3, var4 = func_066C(var3, var4);
var1 =func_0075(var2, var3, var4);
label_007A:
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = !!var1;
var1 = temp0 + 0x20;
label_0086:
var temp1 = memory[0x40:0x60];
return memory[temp1:temp1 + var1 - temp1];
Definitions of func_066C
function func_066C(var arg0, var arg1) returns (var r0, var arg0, var arg1) {
var var0 = 0x00;
var var1 = var0;
var var2 = 0x00;
if (arg0 - arg1 i< 0x60) { revert(memory[0x00:0x00]); }
var var3 = 0x068a;
var var4 = arg1;
var3 = [func_0655](https://ethervm.io/decompile#func_func_0655)(var4);
var0 = var3;
var temp0 = arg1;
var1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20];
var3 = 0x069f;
var4 = temp0 + 0x40;
var3 = [func_0655](https://ethervm.io/decompile#func_func_0655)(var4);
arg1 = var3;
arg0 = var1;
r0 = var0;
return r0, arg0, arg1;
}
func_0075 is quite lengthy to include here directly.
Component
Heimdall (Core)
Have you ensured that you are up to date?
What version of Heimdall are you on?
v0.8.1
Operating System
Linux
Describe the bug
contract address:https://arbiscan.io/address/0xa8a36cdf8891267c246fd47fe01cf364f02ce57e#code
Actual Decompiled Output
Expected Decompiled Output
The following content is gpt4-0 according to https://ethervm.io/decompile
Related Assembly Code
Definitions of func_066C
function func_066C(var arg0, var arg1) returns (var r0, var arg0, var arg1) {
var var0 = 0x00;
var var1 = var0;
var var2 = 0x00;