I need to use the kyberswap zap function but I want to do this from within a smart contract I wrote. Is this possible? Or do I need a backend?