FixedProductMarketMaker msg.sender delegateCall issue

I am trying to hit a function "addFunding" within https://github.com/gnosis/conditional-tokens-market-makers/blob/master/contracts/FixedProductMarketMaker.sol from my own contract.

When I hit the contract directly from my own wallet I don't have any trouble.

But when I try to make my own contract that calls that function, I always get a "ERC20: transfer amount exceeds balance: eth_call". I assume this is because it's looking at my contracts wallet amount, instead of my own, but I don't understand how to solve.

import { IFixedProductMarketMaker } from "./IFixedProductMarketMaker.sol";

contract PassThroughContract {

    function addFunding(
        IFixedProductMarketMaker marketMaker,
        uint256 amount,
        uint256[] memory distributionHint
    ) public {
        marketMaker.addFunding(amount, distributionHint);
    }
}

I am using Remix for this development.

You are correct, the call to your_contract gets the address of PassThroughContract as the msg.sender . You will need to do a delegate call, please check the provided link for more information.

Thanks for confirming that @JulissaDantes.

I tried transforming this into a delegate call, however I'm all my call attempts are erroring as { "code": 3, "message": "execution reverted}.

Does anything obvious jump out as incorrect in my delegate attempt?

pragma solidity >=0.7.0 <0.9.0;

contract PassThroughContract  {

    function addFunding(address marketMaker, uint256 amount, uint256[] memory distributionHint) external payable returns (bytes memory) {        

        (bool success, bytes memory returndata) = marketMaker.delegatecall(abi.encodeWithSignature("addFunding(uint256,uint256[])", amount, distributionHint));    

        return returndata;
    }
}