Smart Contracts are cool. Noting that NFTs such as the multi-million dollar BAYC are just sitting on the IPFS, why can't any smart contract just point to them? I asked ChatGPT-3 to show me how to do this, and here is it's response:
Here is the full example of a smart contract that connects to existing IPFS files:
pragma solidity ^0.4.24;
contract SmartContract {
address public owner;
bytes32[] public ipfsHashes;
constructor() public {
owner = msg.sender;
}
function addIpfsHash(bytes32 _ipfsHash) public {
require(msg.sender == owner);
ipfsHashes.push(_ipfsHash);
}
function getIpfsHash(uint _index) public view returns (bytes32) {
require(_index >= 0 && _index < ipfsHashes.length);
return ipfsHashes[_index];
}
}
The contract has an array of IPFS hashes and allows the owner to add new hashes to the array. Other users can retrieve a specific hash by its index in the array.