Link to: Curriculum Vitae
Link to: Research / Teaching
Link to: Faculty Page (Finance)
Link to: Faculty Page (Business Analytics)
Link to: SSRN page
Back to Main Page



Sample Smart Contract Code from Ch.9 (Download: LittleBear.sol)
//This source code can be compiled and deployed via the Remix IDE;

pragma solidity 0.8.6;

contract LittleBear {

   event LogMsg(string message);

   string public storedMsg;

   constructor() {
     storedMsg = "Hello Little Bear (a.k.a. Maddie)!";
     emit LogMsg(storedMsg);
   }

   function updateMsg(string memory newMsg) public {
     storedMsg = newMsg;
     emit LogMsg(storedMsg);
   }

}

Contract Account on the Ropsten Test Network

LittleBear Contract Account Address: 0x1F922670Ce8bC699e780b9b12960Fb80F998573e



Sample NFT Code from Ch.11 (Download: NFTFD.sol)
//This source code can be compiled and deployed via the Remix IDE;

pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

contract NFTFD is ERC721URIStorage {

   address public founder;

   constructor() ERC721("NFTs for Dummies", "NFTFD") {
     founder = msg.sender;

     for (uint tokenID=1; tokenID<=5; tokenID++) {
       _mint(founder, tokenID);
       _setTokenURI(tokenID, "NFTFD Limited Edition Initial Release");
     }
   }

   function mintNFT(address to, uint256 tokenID, string memory tokenURI) public {
     require(msg.sender == founder, "not an authorized minter");
     _mint(to, tokenID);
     _setTokenURI(tokenID, tokenURI);
   }

}

Contract Account on the Ropsten Test Network

NFTFD Contract Account Address: 0xd4139A846b5561c31df03FbbCE3583f1A7d8A814

NFTFD Token Tracker: 0xd4139A846b5561c31df03FbbCE3583f1A7d8A814