├── .gitignore ├── Makefile ├── docs ├── geth_reference.html ├── geth_reference.md ├── index.html ├── index.md ├── solidity_cheatsheet.html ├── solidity_cheatsheet.md ├── solidity_reference.pdf ├── web3py.html └── web3py.md ├── exams ├── final-s22.pdf ├── final-s23.pdf ├── index.html ├── index.md ├── midterm-f22.pdf ├── midterm-f23.pdf ├── midterm-s22.pdf ├── midterm-s23.pdf ├── midterm-s24.pdf └── midterm-s25.pdf ├── hws ├── Makefile ├── arbitrage │ ├── Arbitrage.sol │ ├── Arbitrage.sol.html │ ├── Makefile │ ├── arbitrage.py │ ├── arbitrage.py.html │ ├── arbitrage_config.py │ ├── arbitrage_config.py.html │ ├── extra.html │ ├── extra.md │ ├── formulas │ │ ├── .gitignore │ │ ├── formulas.tex │ │ └── formulas │ │ │ ├── .gitignore │ │ │ ├── img1.svg │ │ │ ├── img3.svg │ │ │ ├── img5.svg │ │ │ ├── img7.svg │ │ │ └── img9.svg │ ├── img │ │ ├── d10c.webp │ │ ├── d12c.webp │ │ ├── d20c.webp │ │ ├── d4c.webp │ │ ├── d6c.webp │ │ ├── d8c.webp │ │ ├── ddc.webp │ │ ├── index.html │ │ └── index.md │ ├── index-full.html │ ├── index.html │ └── index.md ├── auction │ ├── .gitignore │ ├── IAuctioneer.sol │ ├── IAuctioneer.sol.html │ ├── IERC165.sol │ ├── IERC165.sol.html │ ├── IERC721.sol │ ├── IERC721.sol.html │ ├── IERC721Metadata.sol │ ├── IERC721Metadata.sol.html │ ├── Makefile │ ├── auction.py │ ├── auction.py.html │ ├── index-full.html │ ├── index.html │ └── index.md ├── btcparser │ ├── .gitignore │ ├── Makefile │ ├── blk00000-b0.blk │ ├── blk00000-b170.blk │ ├── blk00000-b26816.blk │ ├── blk00000-b2812.blk │ ├── blk00000-b29664.blk │ ├── blk00000-b49820.blk │ ├── blk00000-b53066.blk │ ├── blk00000-b546.blk │ ├── blk00000-b586.blk │ ├── blk00000-f10.blk │ ├── blk00000-f100.blk │ ├── change_byte.py │ ├── change_byte.py.html │ ├── check_genesis_json.py │ ├── check_genesis_json.py.html │ ├── index-full.html │ ├── index.html │ └── index.md ├── btcscript │ ├── Makefile │ ├── bitcoinctl.py │ ├── bitcoinctl.py.html │ ├── index-full.html │ ├── index.html │ ├── index.md │ ├── scripts.py │ └── scripts.py.html ├── daoweb3 │ ├── .gitignore │ ├── IDAO.abi.txt │ ├── IDAO.sol │ ├── IDAO.sol.html │ ├── IERC165.sol │ ├── IERC165.sol.html │ ├── Makefile │ ├── dao-screenshot.webp │ ├── daoweb3.py │ ├── daoweb3.py.html │ ├── get-url-ext.py │ ├── get-url-ext.py.html │ ├── index-full.html │ ├── index.html │ ├── index.md │ └── js-events.webp ├── dappintro │ ├── .gitignore │ ├── IPoll.abi.txt │ ├── IPoll.sol │ ├── IPoll.sol.html │ ├── Makefile │ ├── Poll-normal.bin.txt │ ├── Poll-optimized.bin.txt │ ├── Poll.abi.txt │ ├── Poll.asm.txt │ ├── Poll.sol │ ├── Poll.sol.html │ ├── dappintro.py │ ├── dappintro.py.html │ ├── evm-options.webp │ ├── img │ │ ├── .gitignore │ │ ├── debuggerLogo.webp │ │ ├── deployAndRun.webp │ │ ├── fileManager.webp │ │ ├── pluginManager.webp │ │ ├── remixLogo.webp │ │ ├── search_icon.webp │ │ ├── settings.webp │ │ ├── solidityLogo.webp │ │ └── unitTesting.webp │ ├── index-full.html │ ├── index.html │ ├── index.md │ └── remix-cors.webp ├── dex │ ├── DEXtest.sol │ ├── DEXtest.sol.html │ ├── EtherPriceOracleConstant.sol │ ├── EtherPriceOracleConstant.sol.html │ ├── IDEX.sol │ ├── IDEX.sol.html │ ├── IERC165.sol │ ├── IERC165.sol.html │ ├── IERC20.sol │ ├── IERC20.sol.html │ ├── IERC20Metadata.sol │ ├── IERC20Metadata.sol.html │ ├── IERC20Receiver.sol │ ├── IERC20Receiver.sol.html │ ├── IEtherPriceOracle.sol │ ├── IEtherPriceOracle.sol.html │ ├── ITokenCC.sol │ ├── ITokenCC.sol.html │ ├── Makefile │ ├── dex.py │ ├── dex.py.html │ ├── index-full.html │ ├── index.html │ └── index.md ├── ecdsa │ ├── Makefile │ ├── index-full.html │ ├── index.html │ └── index.md ├── ethprivate │ ├── Makefile │ ├── copy.svg │ ├── ethprivate.py │ ├── ethprivate.py.html │ ├── geth-on-windows.png │ ├── index-full.html │ ├── index.html │ └── index.md ├── gradebook │ ├── .gitignore │ ├── IGradebook.sol │ ├── IGradebook.sol.html │ ├── Makefile │ ├── gradebook.py │ ├── gradebook.py.html │ ├── index-full.html │ ├── index.html │ └── index.md ├── hwflow.dot ├── hwflow.svg ├── index.html ├── index.md ├── intro │ ├── Makefile │ ├── Sample.java │ ├── Sample.java.html │ ├── basic-test.sh │ ├── basic-test.sh.html │ ├── index-full.html │ ├── index.html │ ├── index.md │ ├── sample.py │ └── sample.py.html ├── maketabs.csv ├── maketabs.py ├── metamask │ ├── .gitignore │ ├── IAuctioneer-full.abi.txt │ ├── IAuctioneer.abi.txt │ ├── INFTManager-full.abi.txt │ ├── INFTManager.abi.txt │ ├── Makefile │ ├── final-web-page.webp │ ├── index-full.html │ ├── index.html │ ├── index.md │ ├── metamask-account-icon.webp │ ├── metamask-confirmation.webp │ ├── metamask-fox.svg │ ├── metamask-pop-up.webp │ ├── metamask.py │ └── metamask.py.html └── tokens │ ├── .gitignore │ ├── Address.sol │ ├── Address.sol.html │ ├── Context.sol │ ├── Context.sol.html │ ├── ERC165.sol │ ├── ERC165.sol.html │ ├── ERC20.sol │ ├── ERC20.sol.html │ ├── ERC721.sol │ ├── ERC721.sol.html │ ├── ERC721Utils.sol │ ├── ERC721Utils.sol.html │ ├── Errors.sol │ ├── Errors.sol.html │ ├── IERC165.sol │ ├── IERC165.sol.html │ ├── IERC20.sol │ ├── IERC20.sol.html │ ├── IERC20Metadata.sol │ ├── IERC20Metadata.sol.html │ ├── IERC721.sol │ ├── IERC721.sol.html │ ├── IERC721Metadata.sol │ ├── IERC721Metadata.sol.html │ ├── IERC721Receiver.sol │ ├── IERC721Receiver.sol.html │ ├── INFTManager.abi │ ├── INFTManager.sol │ ├── INFTManager.sol.html │ ├── ITokenCC.sol │ ├── ITokenCC.sol.html │ ├── Makefile │ ├── Math.sol │ ├── Math.sol.html │ ├── Panic.sol │ ├── Panic.sol.html │ ├── SafeCast.sol │ ├── SafeCast.sol.html │ ├── SignedMath.sol │ ├── SignedMath.sol.html │ ├── Strings.sol │ ├── Strings.sol.html │ ├── draft-IERC6093.sol │ ├── draft-IERC6093.sol.html │ ├── index-full.html │ ├── index.html │ ├── index.md │ ├── inheritance.dot │ ├── inheritance.dot.1.svg │ ├── inheritance.dot.2.svg │ ├── logo-template.png │ ├── sol-includes.zip │ ├── tokens.py │ └── tokens.py.html ├── index.html ├── markdown.css ├── readme.html ├── readme.md ├── slides ├── .gitignore ├── Makefile ├── _quarto-sigcse2025.yml ├── _quarto.yml ├── algorand.html ├── applications.html ├── bitcoin.html ├── ccc.css ├── code │ ├── .gitignore │ ├── Debts-no-interface.sol │ ├── Debts-no-interface.sol.html │ ├── Debts.sol │ ├── Debts.sol.html │ ├── IDebts.sol │ ├── IDebts.sol.abi.txt │ ├── IDebts.sol.html │ ├── Makefile │ ├── MyContract.sol │ └── MyContract.sol.html ├── coins.html ├── coins.md ├── conclusion.html ├── consensus.html ├── darkside.html ├── encryption.html ├── encryption.qmd ├── ethereum.html ├── ethics-legal-policy.html ├── images │ ├── applications │ │ ├── The-dao-logo.webp │ │ ├── aku-nft-lock.webp │ │ ├── bancor-insurance.webp │ │ ├── ethetc │ │ │ ├── Makefile │ │ │ ├── ethetc.dot │ │ │ └── ethetc.dot.1.svg │ │ └── graphs │ │ │ ├── Makefile │ │ │ ├── cpamm-price-curve-a.svg │ │ │ ├── cpamm-price-curve-b.svg │ │ │ ├── cpamm-price-curve-c.svg │ │ │ ├── cpamm-price-curve-d.svg │ │ │ ├── cpamm-price-curve-e.svg │ │ │ ├── cpamm-price-curve-f.svg │ │ │ ├── cpamm-price-curve-g.svg │ │ │ ├── cpamm-price-curve-h.svg │ │ │ ├── cpamm-price-curve-i.svg │ │ │ ├── cpamm-price-curve-j.svg │ │ │ ├── graphs.octave │ │ │ └── impermanent-loss.svg │ ├── bitcoin │ │ ├── Hash_Tree.svg │ │ ├── attack │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── attack.dot │ │ │ ├── attack.dot.1.svg │ │ │ ├── attack.dot.2.svg │ │ │ ├── attack.dot.3.svg │ │ │ ├── attack.dot.4.svg │ │ │ ├── attack.dot.5.svg │ │ │ └── attack.dot.6.svg │ │ ├── blocks │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── blocks.dot │ │ │ ├── blocks.dot.1.svg │ │ │ ├── blocks.dot.2.svg │ │ │ ├── blocks.dot.3.svg │ │ │ ├── blocks.dot.4.svg │ │ │ ├── blocks.dot.5.svg │ │ │ └── blocks.dot.6.svg │ │ ├── merkle │ │ │ ├── Makefile │ │ │ ├── merkle.dot │ │ │ ├── merkle.dot.1.png │ │ │ ├── merkle.dot.1.svg │ │ │ ├── merkle.dot.2.png │ │ │ ├── merkle.dot.2.svg │ │ │ ├── merkle.dot.3.png │ │ │ ├── merkle.dot.3.svg │ │ │ ├── merkle.dot.4.png │ │ │ ├── merkle.dot.4.svg │ │ │ ├── merkle.dot.5.png │ │ │ ├── merkle.dot.5.svg │ │ │ ├── perfect-tree.dot │ │ │ ├── perfect-tree.png │ │ │ └── perfect-tree.svg │ │ ├── multisig │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── multisig.dot │ │ │ ├── multisig.dot.1.svg │ │ │ ├── multisig.dot.2.svg │ │ │ ├── multisig.dot.3.svg │ │ │ ├── multisig.dot.4.svg │ │ │ └── multisig.dot.5.svg │ │ └── p2pkh │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── p2pkh.dot │ │ │ ├── p2pkh.dot.1.svg │ │ │ ├── p2pkh.dot.2.svg │ │ │ ├── p2pkh.dot.3.svg │ │ │ ├── p2pkh.dot.4.svg │ │ │ ├── p2pkh.dot.5.svg │ │ │ ├── p2pkh.dot.6.svg │ │ │ └── p2pkh.dot.7.svg │ ├── cc-by-sa-icon.svg │ ├── conclusion │ │ ├── .gitignore │ │ └── beam-desktop.webp │ ├── consensus │ │ ├── 2gen │ │ │ ├── 2gen-comm.dot │ │ │ ├── 2gen-comm.dot.1.svg │ │ │ ├── 2gen-comm.dot.2.svg │ │ │ ├── 2gen-comm.dot.3.svg │ │ │ ├── 2gen-comm.dot.4.svg │ │ │ ├── 2gen-comm.dot.5.svg │ │ │ ├── 2gen-comm.dot.6.svg │ │ │ ├── 2gen-communication.svg │ │ │ ├── 2gen-map.svg │ │ │ ├── Makefile │ │ │ ├── green-general.svg │ │ │ └── purple-general.svg │ │ ├── 3gen │ │ │ ├── 3gen.dot │ │ │ ├── 3gen.dot.1.svg │ │ │ ├── 3gen.dot.2.svg │ │ │ ├── 3gen.dot.3.svg │ │ │ ├── 3gen.dot.4.svg │ │ │ ├── 3gen.dot.5.svg │ │ │ ├── 3gen.dot.6.svg │ │ │ ├── 3gen.dot.7.svg │ │ │ ├── 3gen.dot.8.svg │ │ │ ├── 3gen.dot.9.svg │ │ │ └── Makefile │ │ ├── Byzantine_Generals.webp │ │ ├── bgp │ │ │ ├── 2gen.svg │ │ │ ├── 3gen.svg │ │ │ ├── bgp.svg │ │ │ ├── communication.svg │ │ │ ├── om0.svg │ │ │ ├── om1-a.svg │ │ │ ├── om1-b.svg │ │ │ ├── om1-c.svg │ │ │ ├── om1-d.svg │ │ │ ├── om1-e.svg │ │ │ ├── om1-f.svg │ │ │ ├── om1-g.svg │ │ │ ├── om2-a.svg │ │ │ ├── om2-b.svg │ │ │ ├── om2-c.svg │ │ │ ├── om2-d.svg │ │ │ ├── om2-e.svg │ │ │ ├── om2-f.svg │ │ │ ├── om2-g.svg │ │ │ ├── om2-h.svg │ │ │ ├── om2-i.svg │ │ │ ├── sm1-a.svg │ │ │ ├── sm1-b.svg │ │ │ ├── sm1-c.svg │ │ │ └── sm1-d.svg │ │ ├── readme.html │ │ ├── readme.md │ │ └── tendermint │ │ │ ├── tendermint-1.png │ │ │ ├── tendermint-2.png │ │ │ ├── tendermint-3.png │ │ │ └── tendermint-4.png │ ├── darkside │ │ ├── .gitignore │ │ ├── mist-icon2x.webp │ │ ├── readme.html │ │ ├── readme.md │ │ ├── web3isgoinggreat-grift.webp │ │ └── web3isgoinggreat.webp │ ├── embedsvg.py │ ├── encryption │ │ ├── EllipticCurveCatalog.svg │ │ ├── otp │ │ │ ├── otp-1.png │ │ │ ├── otp-1e.png │ │ │ ├── otp-2.png │ │ │ ├── otp-2e.png │ │ │ ├── otp-ans.png │ │ │ └── otp.png │ │ └── secp256k1 │ │ │ ├── Makefile │ │ │ ├── secp256k1-a.svg │ │ │ ├── secp256k1-b-2points.svg │ │ │ ├── secp256k1-c-2points-line.svg │ │ │ ├── secp256k1-d-3points-line.svg │ │ │ ├── secp256k1-e-4points-line.svg │ │ │ ├── secp256k1-f-point-p.svg │ │ │ ├── secp256k1-g-point-p-tangent.svg │ │ │ ├── secp256k1-h-points-pq-tangent.svg │ │ │ ├── secp256k1-i-points-pq-tangent.svg │ │ │ ├── secp256k1-j-to-find-3p.svg │ │ │ ├── secp256k1-k-to-find-3p.svg │ │ │ ├── secp256k1-l-found-3p.svg │ │ │ ├── secp256k1-m-showing-found-points.svg │ │ │ ├── secp256k1-n-associative-1.svg │ │ │ ├── secp256k1-o-associative-2.svg │ │ │ ├── secp256k1-p-associative-3.svg │ │ │ ├── secp256k1-q-point-at-infinity.svg │ │ │ ├── secp256k1-q-zoomed-out.svg │ │ │ ├── secp256k1-r-zoomed-out-with-line.svg │ │ │ ├── secp256k1-x-signing.svg │ │ │ └── secp256k1.octave │ ├── ethereum │ │ ├── VitalikButerinProfile.webp │ │ ├── graphs │ │ │ ├── Makefile │ │ │ ├── ethereum.dot │ │ │ └── ethereum.dot.1.svg │ │ ├── patricia.webp │ │ ├── trees │ │ │ ├── Patricia_trie.svg │ │ │ └── Trie_example.svg │ │ └── tries │ │ │ ├── Makefile │ │ │ ├── tries.dot │ │ │ ├── tries.dot.1.svg │ │ │ ├── tries.dot.2.svg │ │ │ ├── tries.dot.3.svg │ │ │ └── tries.dot.4.svg │ ├── flags │ │ ├── car.svg │ │ ├── elsalvador.svg │ │ ├── estonia.svg │ │ ├── japan.svg │ │ ├── russia.svg │ │ ├── sweden.svg │ │ ├── uae.svg │ │ └── venezuela.svg │ ├── introduction │ │ ├── aaronbloomfield.jpg │ │ └── bitcoin-mining.svg │ ├── logos │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── algo-coin-symbol.svg │ │ ├── atom-coin-symbol.svg │ │ ├── aust-coin-symbol.svg │ │ ├── beam-coin-symbol.svg │ │ ├── btc-coin-symbol.svg │ │ ├── btg-coin-symbol.svg │ │ ├── dai-coin-symbol.svg │ │ ├── dot-coin-symbol.svg │ │ ├── erg-coin-symbol.svg │ │ ├── etc-coin-symbol-old.svg │ │ ├── etc-coin-symbol.svg │ │ ├── etc-logo.svg │ │ ├── eth-coin-symbol.svg │ │ ├── eth-logo.svg │ │ ├── fei-coin-symbol.svg │ │ ├── fil-coin-symbol.svg │ │ ├── firo-coin-symbol.svg │ │ ├── frax-coin-symbol.svg │ │ ├── juno-coin-symbol.svg │ │ ├── lunac-coin-symbol.svg │ │ ├── matic-coin-symbol.svg │ │ ├── mim-coin-symbol.svg │ │ ├── mkr-coin-symbol.svg │ │ ├── neox-coin-symbol.svg │ │ ├── nmc-coin-symbol.svg │ │ ├── ppc-coin-symbol.svg │ │ ├── readme.html │ │ ├── readme.md │ │ ├── rvn-coin-symbol.svg │ │ ├── rvn-logo.svg │ │ ├── sai-coin-symbol.svg │ │ ├── shib-coin-symbol.svg │ │ ├── sol-coin-symbol.svg │ │ ├── spell-coin-symbol.svg │ │ ├── storj-coin-symbol.svg │ │ ├── tomb-coin-symbol.svg │ │ ├── tribe-coin-symbol.svg │ │ ├── uniswap-uni-logo.svg │ │ ├── usdc-coin-symbol.svg │ │ ├── usdt-coin-symbol.svg │ │ ├── usdt-logo.svg │ │ ├── ustc-coin-symbol.svg │ │ ├── wbtc-coin-symbol.svg │ │ ├── weth-coin-symbol.svg │ │ ├── xlm-coin-symbol.svg │ │ ├── xpd-coin-symbol.svg │ │ ├── xpm-coin-symbol.svg │ │ └── zec-coin-symbol.svg │ ├── mining │ │ ├── .gitignore │ │ ├── dag │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── dag.dot │ │ │ ├── dag.dot.1.svg │ │ │ ├── dag.dot.10.svg │ │ │ ├── dag.dot.11.svg │ │ │ ├── dag.dot.12.svg │ │ │ ├── dag.dot.13.svg │ │ │ ├── dag.dot.14.svg │ │ │ ├── dag.dot.15.svg │ │ │ ├── dag.dot.16.svg │ │ │ ├── dag.dot.17.svg │ │ │ ├── dag.dot.18.svg │ │ │ ├── dag.dot.19.svg │ │ │ ├── dag.dot.2.svg │ │ │ ├── dag.dot.20.svg │ │ │ ├── dag.dot.3.svg │ │ │ ├── dag.dot.4.svg │ │ │ ├── dag.dot.5.svg │ │ │ ├── dag.dot.6.svg │ │ │ ├── dag.dot.7.svg │ │ │ ├── dag.dot.8.svg │ │ │ ├── dag.dot.9.svg │ │ │ └── dag.py │ │ ├── nonce-tweet-graph.webp │ │ ├── nonce-tweet.webp │ │ └── orphan │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── orphan.dot │ │ │ ├── orphan.dot.1.svg │ │ │ ├── orphan.dot.2.svg │ │ │ ├── orphan.dot.3.svg │ │ │ ├── orphan.dot.4.svg │ │ │ ├── orphan.dot.5.svg │ │ │ └── orphan.dot.6.svg │ ├── overview │ │ ├── aaron-dollar.png │ │ ├── aaron-dollar.svg │ │ ├── bitcoin-coin.webp │ │ └── graphs │ │ │ ├── Makefile │ │ │ ├── overview.dot │ │ │ └── overview.dot.1.svg │ ├── parallax-1.webp │ ├── print-icon.png │ ├── print-icon.svg │ ├── qrcode.webp │ ├── quarto.webp │ ├── scalability │ │ ├── Makefile │ │ ├── concurrency │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── concurrency.dot │ │ │ ├── concurrency.dot.1.svg │ │ │ ├── concurrency.dot.2.svg │ │ │ ├── concurrency.dot.3.svg │ │ │ ├── concurrency.dot.4.svg │ │ │ └── concurrency.dot.5.svg │ │ ├── graphs │ │ │ ├── Makefile │ │ │ ├── scalability.dot │ │ │ ├── scalability.dot.1.svg │ │ │ ├── scalability.dot.2.svg │ │ │ └── scalability.dot.3.svg │ │ └── shards │ │ │ ├── Makefile │ │ │ ├── shards.dot │ │ │ ├── shards.dot.1.svg │ │ │ └── shards.dot.2.svg │ ├── spacer.gif │ ├── stablecoins │ │ ├── graphs │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── dai-eth.plot │ │ │ ├── dai-eth.svg │ │ │ ├── dai-usd-max.csv │ │ │ ├── eth-usd-max.csv │ │ │ ├── get-cv.py │ │ │ ├── readme.html │ │ │ ├── readme.md │ │ │ └── sai-usd-max.csv │ │ └── oracles │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── bigfish.svg │ │ │ ├── oracles.dot │ │ │ ├── oracles.dot.1.svg │ │ │ ├── oracles.dot.2.svg │ │ │ ├── oracles.dot.3.svg │ │ │ ├── oracles.dot.4.svg │ │ │ ├── oracles.dot.5.svg │ │ │ ├── readme.html │ │ │ └── readme.md │ ├── timely │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── btc-difficulty-all-time-2022-01-17.png │ │ ├── btc-difficulty-all-time-2022-08-23.webp │ │ ├── btc-difficulty-all-time-2023-01-17.webp │ │ ├── btc-difficulty-all-time-2023-08-27.webp │ │ ├── btc-difficulty-all-time-2024-01-18.webp │ │ ├── btc-difficulty-all-time.webp │ │ ├── btc-difficulty-last-3-years-2022-01-17.png │ │ ├── btc-difficulty-last-3-years-2022-08-23.webp │ │ ├── btc-difficulty-last-3-years-2023-01-17.webp │ │ ├── btc-difficulty-last-3-years-2023-08-27.webp │ │ ├── btc-difficulty-last-3-years-2024-01-18.webp │ │ ├── btc-difficulty-last-3-years.webp │ │ ├── btc-dominance-2022-01-18.svg │ │ ├── btc-dominance-2022-08-23.svg │ │ ├── btc-dominance-2023-01-17.svg │ │ ├── btc-dominance-2023-08-22.svg │ │ ├── btc-dominance-2024-01-13.svg │ │ ├── btc-dominance.webp │ │ ├── btc-eth-fees-1year-2022-04-17.webp │ │ ├── btc-eth-fees-1year-2023-04-20.webp │ │ ├── btc-eth-fees-1year-2023-11-09.webp │ │ ├── btc-eth-fees-1year.webp │ │ ├── btc-eth-fees-alltime-2022-04-17.webp │ │ ├── btc-eth-fees-alltime-2023-04-20.webp │ │ ├── btc-eth-fees-alltime-2023-11-09.webp │ │ ├── btc-eth-fees-alltime.webp │ │ ├── btc-hashes-per-sec-2022-01-17.png │ │ ├── btc-hashes-per-sec-2022-08-23.webp │ │ ├── btc-hashes-per-sec-2023-01-17.webp │ │ ├── btc-hashes-per-sec-2023-08-27.webp │ │ ├── btc-hashes-per-sec-2024-01-18.webp │ │ ├── btc-hashes-per-sec.webp │ │ ├── btc-nodes-2022-02-06.png │ │ ├── btc-nodes-2022-09-06.webp │ │ ├── btc-nodes.webp │ │ ├── btc-price-2022-01-17.png │ │ ├── btc-price-2022-08-23.webp │ │ ├── btc-price-2023-01-17.webp │ │ ├── btc-price-2023-08-27.webp │ │ ├── btc-price-2024-01-18.webp │ │ ├── btc-price.webp │ │ ├── btc-tps-2022-04-17.webp │ │ ├── btc-tps-2022-11-09.webp │ │ ├── btc-tps-2023-04-20.webp │ │ ├── btc-tps.webp │ │ ├── cc-market-cap-2022-01-18.svg │ │ ├── cc-market-cap-2022-08-23.svg │ │ ├── cc-market-cap-2023-01-17.svg │ │ ├── cc-market-cap-2023-08-22.svg │ │ ├── cc-market-cap-2024-01-13.svg │ │ ├── cc-market-cap-no-btc-2022-01-18.svg │ │ ├── cc-market-cap-no-btc-2022-08-23.svg │ │ ├── cc-market-cap-no-btc-2023-01-17.svg │ │ ├── cc-market-cap-no-btc-2023-08-22.svg │ │ ├── cc-market-cap-no-btc-2024-01-13.svg │ │ ├── cc-market-cap.webp │ │ ├── readme.html │ │ └── readme.md │ ├── tokens │ │ ├── atomic-wallet.webp │ │ ├── dollar-bill.webp │ │ ├── graphs │ │ │ ├── Makefile │ │ │ ├── tokens.dot │ │ │ ├── tokens.dot.1.svg │ │ │ └── tokens.dot.2.svg │ │ └── quarter.webp │ └── zksnarks │ │ ├── MartinHandfordWallyandFriends.webp │ │ ├── Zkip_alibaba1.webp │ │ ├── Zkip_alibaba2.webp │ │ ├── Zkip_alibaba3.webp │ │ ├── bill_gates_hacked.webp │ │ ├── firo-wallet-modified.webp │ │ └── graphs │ │ ├── Makefile │ │ ├── zksnarks.dot │ │ ├── zksnarks.dot.1.svg │ │ ├── zksnarks.dot.2.svg │ │ ├── zksnarks.dot.3.svg │ │ ├── zksnarks.dot.4.svg │ │ ├── zksnarks.dot.5.svg │ │ ├── zksnarks.dot.6.svg │ │ ├── zksnarks.dot.7.svg │ │ └── zksnarks.dot.8.svg ├── index.html ├── index.md ├── introduction.html ├── introduction.qmd ├── mining.html ├── mining.qmd ├── overview.html ├── overview.qmd ├── quarto_files │ ├── clipboard │ │ └── clipboard.min.js │ ├── quarto-html │ │ ├── light-border.css │ │ ├── popper.min.js │ │ ├── quarto-html.min.css │ │ ├── quarto-syntax-highlighting-dark-8ea72dc5fed832574809a9c94082fbbb.css │ │ ├── quarto-syntax-highlighting-dark.css │ │ ├── quarto-syntax-highlighting.css │ │ ├── tabby.min.js │ │ ├── tippy.css │ │ └── tippy.umd.min.js │ └── revealjs │ │ ├── dist │ │ ├── reset.css │ │ ├── reveal.css │ │ ├── reveal.esm.js │ │ ├── reveal.esm.js.map │ │ ├── reveal.js │ │ ├── reveal.js.map │ │ └── theme │ │ │ ├── fonts │ │ │ ├── league-gothic │ │ │ │ ├── LICENSE │ │ │ │ ├── league-gothic.css │ │ │ │ ├── league-gothic.eot │ │ │ │ ├── league-gothic.ttf │ │ │ │ └── league-gothic.woff │ │ │ └── source-sans-pro │ │ │ │ ├── LICENSE │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ └── source-sans-pro.css │ │ │ ├── quarto-5b48f34d633aed70c74c672477009ffc.css │ │ │ └── quarto.css │ │ └── plugin │ │ ├── highlight │ │ ├── highlight.esm.js │ │ ├── highlight.js │ │ ├── monokai.css │ │ ├── plugin.js │ │ └── zenburn.css │ │ ├── markdown │ │ ├── markdown.esm.js │ │ ├── markdown.js │ │ └── plugin.js │ │ ├── math │ │ ├── katex.js │ │ ├── math.esm.js │ │ ├── math.js │ │ ├── mathjax2.js │ │ ├── mathjax3.js │ │ └── plugin.js │ │ ├── notes │ │ ├── notes.esm.js │ │ ├── notes.js │ │ ├── plugin.js │ │ └── speaker-view.html │ │ ├── pdf-export │ │ ├── pdfexport.js │ │ └── plugin.yml │ │ ├── quarto-line-highlight │ │ ├── line-highlight.css │ │ ├── line-highlight.js │ │ └── plugin.yml │ │ ├── quarto-support │ │ ├── footer.css │ │ ├── plugin.yml │ │ └── support.js │ │ ├── reveal-chalkboard │ │ ├── README.html │ │ ├── README.md │ │ ├── font-awesome │ │ │ ├── LICENSE.txt │ │ │ ├── css │ │ │ │ ├── all.css │ │ │ │ ├── brands.css │ │ │ │ ├── fontawesome.css │ │ │ │ ├── regular.css │ │ │ │ ├── solid.css │ │ │ │ ├── svg-with-js.css │ │ │ │ ├── v4-shims.css │ │ │ │ └── v4-shims.min.css │ │ │ └── webfonts │ │ │ │ ├── fa-brands-400.eot │ │ │ │ ├── fa-brands-400.svg │ │ │ │ ├── fa-brands-400.ttf │ │ │ │ ├── fa-brands-400.woff │ │ │ │ ├── fa-brands-400.woff2 │ │ │ │ ├── fa-regular-400.eot │ │ │ │ ├── fa-regular-400.svg │ │ │ │ ├── fa-regular-400.ttf │ │ │ │ ├── fa-regular-400.woff │ │ │ │ ├── fa-regular-400.woff2 │ │ │ │ ├── fa-solid-900.eot │ │ │ │ ├── fa-solid-900.svg │ │ │ │ ├── fa-solid-900.ttf │ │ │ │ ├── fa-solid-900.woff │ │ │ │ └── fa-solid-900.woff2 │ │ ├── img │ │ │ ├── blackboard.png │ │ │ ├── boardmarker-black.png │ │ │ ├── boardmarker-blue.png │ │ │ ├── boardmarker-green.png │ │ │ ├── boardmarker-orange.png │ │ │ ├── boardmarker-purple.png │ │ │ ├── boardmarker-red.png │ │ │ ├── boardmarker-yellow.png │ │ │ ├── chalk-blue.png │ │ │ ├── chalk-green.png │ │ │ ├── chalk-orange.png │ │ │ ├── chalk-purple.png │ │ │ ├── chalk-red.png │ │ │ ├── chalk-white.png │ │ │ ├── chalk-yellow.png │ │ │ ├── sponge.png │ │ │ └── whiteboard.png │ │ ├── plugin.js │ │ ├── plugin.yml │ │ └── style.css │ │ ├── reveal-menu │ │ ├── menu.css │ │ ├── menu.js │ │ ├── plugin.yml │ │ ├── quarto-menu.css │ │ └── quarto-menu.js │ │ ├── search │ │ ├── plugin.js │ │ ├── search.esm.js │ │ └── search.js │ │ └── zoom │ │ ├── plugin.js │ │ ├── zoom.esm.js │ │ └── zoom.js ├── reveal.js │ ├── .github │ │ ├── CONTRIBUTING.md │ │ ├── FUNDING.yml │ │ └── workflows │ │ │ └── js.yml │ ├── .gitignore │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── css │ │ ├── layout.scss │ │ ├── print │ │ │ ├── paper.scss │ │ │ └── pdf.scss │ │ ├── reveal.scss │ │ └── theme │ │ │ ├── README.md │ │ │ ├── source │ │ │ ├── beige.scss │ │ │ ├── black-contrast.scss │ │ │ ├── black.scss │ │ │ ├── blood.scss │ │ │ ├── dracula.scss │ │ │ ├── league.scss │ │ │ ├── moon.scss │ │ │ ├── night.scss │ │ │ ├── serif.scss │ │ │ ├── simple.scss │ │ │ ├── sky.scss │ │ │ ├── solarized.scss │ │ │ ├── white-contrast.scss │ │ │ └── white.scss │ │ │ └── template │ │ │ ├── exposer.scss │ │ │ ├── mixins.scss │ │ │ ├── settings.scss │ │ │ └── theme.scss │ ├── demo.html │ ├── dist │ │ ├── reset.css │ │ ├── reveal.css │ │ ├── reveal.esm.js │ │ ├── reveal.esm.js.map │ │ ├── reveal.js │ │ ├── reveal.js.map │ │ └── theme │ │ │ ├── beige.css │ │ │ ├── black-contrast.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── dracula.css │ │ │ ├── fonts │ │ │ ├── league-gothic │ │ │ │ ├── LICENSE │ │ │ │ ├── league-gothic.css │ │ │ │ ├── league-gothic.eot │ │ │ │ ├── league-gothic.ttf │ │ │ │ └── league-gothic.woff │ │ │ └── source-sans-pro │ │ │ │ ├── LICENSE │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ └── source-sans-pro.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── white-contrast.css │ │ │ ├── white.css │ │ │ └── white_contrast_compact_verbatim_headers.css │ ├── examples │ │ ├── 500-slides.html │ │ ├── assets │ │ │ ├── beeping.txt │ │ │ ├── beeping.wav │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── auto-animate.html │ │ ├── backgrounds.html │ │ ├── barebones.html │ │ ├── layout-helpers.html │ │ ├── markdown.html │ │ ├── markdown.md │ │ ├── math.html │ │ ├── media.html │ │ ├── multiple-presentations.html │ │ ├── scroll.html │ │ └── transitions.html │ ├── gulpfile.js │ ├── index.html │ ├── js │ │ ├── components │ │ │ └── playback.js │ │ ├── config.js │ │ ├── controllers │ │ │ ├── autoanimate.js │ │ │ ├── backgrounds.js │ │ │ ├── controls.js │ │ │ ├── focus.js │ │ │ ├── fragments.js │ │ │ ├── jumptoslide.js │ │ │ ├── keyboard.js │ │ │ ├── location.js │ │ │ ├── notes.js │ │ │ ├── overview.js │ │ │ ├── plugins.js │ │ │ ├── pointer.js │ │ │ ├── printview.js │ │ │ ├── progress.js │ │ │ ├── scrollview.js │ │ │ ├── slidecontent.js │ │ │ ├── slidenumber.js │ │ │ └── touch.js │ │ ├── index.js │ │ ├── reveal.js │ │ └── utils │ │ │ ├── color.js │ │ │ ├── constants.js │ │ │ ├── device.js │ │ │ ├── loader.js │ │ │ └── util.js │ ├── package-lock.json │ ├── package.json │ ├── plugin │ │ ├── highlight │ │ │ ├── highlight.esm.js │ │ │ ├── highlight.js │ │ │ ├── monokai.css │ │ │ ├── plugin.js │ │ │ └── zenburn.css │ │ ├── markdown │ │ │ ├── markdown.esm.js │ │ │ ├── markdown.js │ │ │ └── plugin.js │ │ ├── math │ │ │ ├── katex.js │ │ │ ├── math.esm.js │ │ │ ├── math.js │ │ │ ├── mathjax2.js │ │ │ ├── mathjax3.js │ │ │ └── plugin.js │ │ ├── notes │ │ │ ├── notes.esm.js │ │ │ ├── notes.js │ │ │ ├── plugin.js │ │ │ └── speaker-view.html │ │ ├── search │ │ │ ├── plugin.js │ │ │ ├── search.esm.js │ │ │ └── search.js │ │ └── zoom │ │ │ ├── plugin.js │ │ │ ├── zoom.esm.js │ │ │ └── zoom.js │ └── test │ │ ├── assets │ │ ├── external-script-a.js │ │ ├── external-script-b.js │ │ ├── external-script-c.js │ │ └── external-script-d.js │ │ ├── simple.md │ │ ├── test-auto-animate.html │ │ ├── test-dependencies-async.html │ │ ├── test-dependencies.html │ │ ├── test-grid-navigation.html │ │ ├── test-iframe-backgrounds.html │ │ ├── test-iframes.html │ │ ├── test-markdown.html │ │ ├── test-multiple-instances-es5.html │ │ ├── test-multiple-instances.html │ │ ├── test-pdf.html │ │ ├── test-plugins.html │ │ ├── test-scroll.html │ │ ├── test-state.html │ │ └── test.html ├── scalability.html ├── settings.js ├── sigcse2025.html ├── sigcse2025.qmd ├── solidity.html ├── solidity.qmd ├── stablecoins.html ├── template.html ├── tests.html ├── title-slide-sigcse2025.html ├── title-slide.html ├── tokens.html ├── zksnarks-full.html └── znps.html ├── tabs.js └── uva ├── .gitignore ├── Makefile ├── daily-announcements.html ├── grades.html ├── grades.md ├── hw-policies.html ├── hw-policies.md ├── images └── magic-8-ball.png ├── index.html ├── index.md ├── old ├── daily-announcements-fall-2022.html ├── daily-announcements-fall-2023.html ├── daily-announcements-spring-2022.html ├── daily-announcements-spring-2023.html ├── daily-announcements-spring-2024.html ├── grades-spring-2023.html ├── grades-spring-2023.md ├── index-fall-2022.html ├── index-fall-2022.md ├── index-fall-2023.html ├── index-fall-2023.md ├── index-spring-2022.html ├── index-spring-2022.md ├── index-spring-2023.html ├── index-spring-2023.md ├── index-spring-2024.html ├── index-spring-2024.md ├── index.html ├── index.md ├── prices-spring-2022.data ├── prices-spring-2022.svg ├── syllabus-fall-2022.html ├── syllabus-fall-2022.md ├── syllabus-fall-2023.html ├── syllabus-fall-2023.md ├── syllabus-spring-2022.html ├── syllabus-spring-2022.md ├── syllabus-spring-2023.html ├── syllabus-spring-2023.md ├── syllabus-spring-2024.html └── syllabus-spring-2024.md ├── prices.data ├── prices.graph ├── prices.svg ├── sdac.html ├── sdac.md ├── syllabus.html ├── syllabus.md └── zoom-announcements.html /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .SUFFIXES: .md .html 2 | LICENSE =
Released under a CC BY-SA