These Files will be updated for each talk. If you are looking for a past talk check the history.
Resources for live session from SmartCon Workshop
| import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; | |
| import "@openzeppelin/contracts/utils/Counters.sol"; | |
| contract EmojiGotchi is ERC721, ERC721URIStorage { | |
| using Counters for Counters.Counter; | |
| Counters.Counter private _tokenIdCounter; | |
| constructor() ERC721("EmojiGotchi", "emg") {} |
| // SPDX-License-Identifier: MIT | |
| // An example of a consumer contract that relies on a subscription for funding. | |
| pragma solidity ^0.8.17; | |
| import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; | |
| import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; | |
| import "@openzeppelin/contracts/access/Ownable.sol"; | |
| import "@openzeppelin/contracts/utils/Counters.sol"; | |
| import "@openzeppelin/contracts/utils/Strings.sol"; | |
| import "@openzeppelin/contracts/utils/Base64.sol"; |
| // SPDX-License-Identifier: UNLICENSED | |
| pragma solidity ^0.8.7; | |
| // Importing other contracts | |
| import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; | |
| import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; | |
| import "@openzeppelin/contracts/utils/Strings.sol"; | |
| import "@openzeppelin/contracts/utils/Base64.sol"; | |
| // Importing Chainlink contracts |
| // SPDX-License-Identifier: MIT | |
| // Compatible with OpenZeppelin Contracts ^5.0.0 | |
| pragma solidity ^0.8.22; | |
| import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; | |
| import {ERC721URIStorage} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; | |
| import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; | |
| contract BloomsCollection is ERC721, ERC721URIStorage, Ownable { | |
| uint256 private _nextTokenId; |
| // Import necessary libraries | |
| import * as CCIP from '@chainlink/ccip-js' // Chainlink CCIP library for cross-chain interactions | |
| import { createWalletClient, custom} from 'viem' // Ethereum interaction library | |
| import { sepolia } from 'viem/chains' // Testnet chain configurations | |
| // Constants for the CCIP routers, tokens, and other parameters | |
| // Router addresses are specific to each network | |
| // See https://docs.chain.link/ccip/directory/ for more details | |
| const sepoliaRouterAddress = '0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59' // Sepolia network router |