ethers5
master
see issue for details: https://github.com/ethers-io/ethers.js/issues/920#issuecomment-650836642
It seems the new ethers.js version returns contract data as a non- extensible object. We have to clone it before adding the IPFS data.