smart contract • An ERC-20 token is a smart contract that has an established data structure. • ERC20 de f ines balanceOf , totalSupply , transfer , transferFrom , approve , and allowance and also name, symbol, and the number of decimals. • Any one token is exactly equal to any other token; no tokens have special rights or behavior associated with them. • ERC20 tokens are useful for things like a medium of exchange currency, voting rights, staking,
smart contract • An ERC-20 token is a smart contract that has an established data structure. • ERC20 de f ines balanceOf , totalSupply , transfer , transferFrom , approve , and allowance and also name, symbol, and the number of decimals.
also known as deeds. • Used in situations like real estate, voting rights, or collectibles, where some items are valued more than others, due to their usefulness, rarity, etc. • ERC721 is a standard for representing ownership of non-fungible tokens, that is, where each token is unique. • ERC721 is a more complex standard than ERC20, with multiple optional extensions, and is split across a number of contracts. • https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
also known as deeds. • An ERC-721 provides basic functionality to track and transfer NFTs. • NFTs can represent ownership over digital or physical assets
write Smart Contracts for production use cases, we need more tools • Use your own IDE • Linting • Programmable deployment toolchain • Local blockchain for inspection • Testing support
contract • The Contract Application Binary Interface (ABI) is the standard way to interact with contracts in the Ethereum ecosystem, both from outside the blockchain and for contract-to-contract interaction. Data is encoded according to its type, as described in this speci f ication. • EVM (Ethereum Virtual Machine) is the core component of the Ethereum network, and smart contract is pieces of code stored on the Ethereum blockchain which are executed on EVM. Smart contracts written in high-level languages like Solidity or Vyper need to be compiled in EVM executable bytecode. • Languages that compile for the EVM maintain strict conventions about these conversions, but in order to perform them, one must know the precise names and types associated with the operations. • The ABI documents these names and types precisely, easily parseable format, doing translations between human-intended method calls and smart-contract operations discoverable and reliable. • ABI de f ines the methods and structures used to interact with the binary contract, just like API does but on a lower-level.
standard layer of APIs to connect to a wallet • private keys are never shared, but transactions are routed through the wallet • metamask injects a window.ethereum variable • we need a frontend library to handle Metamask and Smart Contract APIs
can use speci f ic providers (i.e. Alchemy or a standard Web3 provider) • returns a signer to sign transactions • returns a contract interface to call contract functions
blockchain • Upload the documentation, De f ine your portfolio and sell it in a global market. • Improved portfolio management • Improved negotiation and transfer of credits • Access to a global market • Guaranteed security on transactions • High level of con f identiality www.wizkey.io/en
application development • it is not developer friendly, but powerful • Forge: Ethereum testing framework (like Tru ff le, Hardhat and Dapptools). • Blockchain Forking • Write Tests in Solidity • Support for Fuzz testing • Cast: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. https://github.com/gakonst/foundry https://book.getfoundry.sh/
Unix design philosophy • it is not developer friendly, but powerful • dapp - All you need Ethereum development tool. Build, test, fuzz, formally verify, debug & deploy solidity contracts. • seth - Ethereum CLI. Query contracts, send transactions, follow logs, slice & dice data. • hevm - Testing oriented EVM implementation. Debug, fuzz, or symbolically execute code against local or mainnet state. • ethsign - Sign Ethereum transactions from a local keystore or hardware wallet. https://github.com/dapphub/dapptools http://dapp.tools