The Spender contract is responsible for moving ERC20 tokens (and equivalents on side chains). To get the address, you can call getTokenTransferProxy() on Augustus.
pragmasolidity 0.7.5;import { IERC20 } from"@openzeppelin/contracts/token/ERC20/IERC20.sol";interface IFeeClaimer {/** * @notice register partner's, affiliate's and PP's fee * @dev only callable by AugustusSwapper contract * @param _account account address used to withdraw fees * @param _token token address * @param _fee fee amount in token */functionregisterFee(address_account,IERC20_token,uint256_fee ) external;/** * @notice claim partner share fee in ERC20 token * @dev transfers ERC20 token balance to the caller's account * the call will fail if withdrawer have zero balance in the contract * @param _token address of the ERC20 token * @param _recipient address * @return true if the withdraw was successfull */functionwithdrawAllERC20(IERC20_token,address_recipient) externalreturns (bool);/** * @notice batch claim whole balance of fee share amount * @dev transfers ERC20 token balance to the caller's account * the call will fail if withdrawer have zero balance in the contract * @param _tokens list of addresses of the ERC20 token * @param _recipient address of recipient * @return true if the withdraw was successfull */functionbatchWithdrawAllERC20(IERC20[] calldata_tokens,address_recipient) externalreturns (bool);/** * @notice claim some partner share fee in ERC20 token * @dev transfers ERC20 token amount to the caller's account * the call will fail if withdrawer have zero balance in the contract * @param _token address of the ERC20 token * @param _recipient address * @return true if the withdraw was successfull */functionwithdrawSomeERC20(IERC20_token,uint256_tokenAmount,address_recipient ) externalreturns (bool);/** * @notice batch claim some amount of fee share in ERC20 token * @dev transfers ERC20 token balance to the caller's account * the call will fail if withdrawer have zero balance in the contract * @param _tokens address of the ERC20 tokens * @param _tokenAmounts array of amounts * @param _recipient destination account addresses * @return true if the withdraw was successfull */functionbatchWithdrawSomeERC20(IERC20[] calldata_tokens,uint256[] calldata_tokenAmounts,address_recipient ) externalreturns (bool);/** * @notice compute unallocated fee in token * @param _token address of the ERC20 token * @return amount of unallocated token in fees */functiongetUnallocatedFees(IERC20_token) externalviewreturns (uint256);/** * @notice returns unclaimed fee amount given the token * @dev retrieves the balance of ERC20 token fee amount for a partner * @param _token address of the ERC20 token * @param _partner account address of the partner * @return amount of balance */functiongetBalance(IERC20_token,address_partner) externalviewreturns (uint256);/** * @notice returns unclaimed fee amount given the token in batch * @dev retrieves the balance of ERC20 token fee amount for a partner in batch * @param _tokens list of ERC20 token addresses * @param _partner account address of the partner * @return _fees array of the token amount */functionbatchGetBalance(IERC20[] calldata_tokens,address_partner)externalviewreturns (uint256[] memory_fees);}