{"version":1,"pages":[{"id":"3QZ3OThx4QIci7TAYWkL","title":"Introduction","pathname":"/eth-dev","siteSpaceId":"sitesp_L7y5j","description":"An Ethereum Network"},{"id":"MhbSEvHVOKnNNORWEF3q","title":"What is a Transaction","pathname":"/eth-dev/introduction/what-is-a-transaction","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"X638gzcB4q7zsrz5aFlB","title":"Accounts and Signing","pathname":"/eth-dev/introduction/accounts-and-signing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"kbxOB5UeoTPwZsEU9lrY","title":"What is a smart contract","pathname":"/eth-dev/introduction/what-is-a-smart-contract","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Introduction"}]},{"id":"Dawy0JMIPvjagcbGhoGb","title":"Introduction","pathname":"/eth-dev/learning-solidity/introduction","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"IrFSybvVlNvfVDh9If9C","title":"Module 1","pathname":"/eth-dev/learning-solidity/module-1","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"B8CSQYJF8dlHMh4tJ95w","title":"Variable Types","pathname":"/eth-dev/learning-solidity/module-1/variable-types","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"WMJ8TPrvYRl0p39MkjkU","title":"Variable Scope: State & Local variables","pathname":"/eth-dev/learning-solidity/module-1/variable-scope-state-and-local-variables","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"CsMYYEIQHWX8bWsdiiT4","title":"Global variables","pathname":"/eth-dev/learning-solidity/module-1/global-variables","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"j5JXoLsx44IVVruKzTON","title":"Functions","pathname":"/eth-dev/learning-solidity/module-1/functions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"5R3D6ZkRV05mkNqkAI6W","title":"View and Pure","pathname":"/eth-dev/learning-solidity/module-1/functions/view-and-pure","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"},{"label":"Functions"}]},{"id":"qFz7EkHAR6FlJROOmuAP","title":"Shadowing in Fuctions","pathname":"/eth-dev/learning-solidity/module-1/functions/shadowing-in-fuctions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"},{"label":"Functions"}]},{"id":"IgkR1170QEXWJYLUBGiX","title":"Mapping","pathname":"/eth-dev/learning-solidity/module-1/mapping","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"UQcSp6mzuHQ3z9poUz98","title":"Require","pathname":"/eth-dev/learning-solidity/module-1/require","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"5HSLdhbD8oWYTj7GO7if","title":"Events","pathname":"/eth-dev/learning-solidity/module-1/events","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 1"}]},{"id":"r6hoMoY02QpTL0zmcZIG","title":"Project #1: Simple Registry","pathname":"/eth-dev/learning-solidity/project-1-simple-registry","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"80lPwX5mOL59GDIGRfQO","title":"Module 2","pathname":"/eth-dev/learning-solidity/module-2","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"F0A4u8Zdo8bybktacjpo","title":"Constructor","pathname":"/eth-dev/learning-solidity/module-2/constructor","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"JIvoMsOOQAs0q06lcPgU","title":"Data Location: Value & Reference","pathname":"/eth-dev/learning-solidity/module-2/data-location-value-and-reference","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"ApXbDffJD4resBJK8c8d","title":"Interface","pathname":"/eth-dev/learning-solidity/module-2/interface","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"2cqq54npmrzSol2RS5HK","title":"Import","pathname":"/eth-dev/learning-solidity/module-2/import","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"1piRbxxp3GysFmIGcXUE","title":"Importing in Foundry","pathname":"/eth-dev/learning-solidity/module-2/import/importing-in-foundry","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"},{"label":"Import"}]},{"id":"1GrDiJUQWJ25YkJsFm8O","title":"Inheritance","pathname":"/eth-dev/learning-solidity/module-2/inheritance","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"BqfsocSgaDoqDBx9XtOH","title":"ERC-20","pathname":"/eth-dev/learning-solidity/module-2/erc-20","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"AxcsnCnzgzKt7hmM2tdU","title":"Checks-effect-interaction pattern","pathname":"/eth-dev/learning-solidity/module-2/checks-effect-interaction-pattern","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 2"}]},{"id":"65RafoyLNI4GcHNHw8zP","title":"Project #2: Basic Vault","pathname":"/eth-dev/learning-solidity/project-2-basic-vault","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"nvAUAvDXGTcAr3MpJr52","title":"Module 3","pathname":"/eth-dev/learning-solidity/module-3","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"1AI8fVC6kuXpLFg3fXRS","title":"Payable","pathname":"/eth-dev/learning-solidity/module-3/payable","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 3"}]},{"id":"f5iK9Ny7V8s8Y6ZjWA76","title":"Receive","pathname":"/eth-dev/learning-solidity/module-3/receive","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 3"}]},{"id":"FFQDhj9EG2rwozedQKe4","title":"Fallback","pathname":"/eth-dev/learning-solidity/module-3/fallback","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 3"}]},{"id":"4DL3YHSDcHN1cLYwPyDJ","title":"Returns","pathname":"/eth-dev/learning-solidity/module-3/returns","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 3"}]},{"id":"DmGLAM7PZyLVUHgth2dH","title":"Project #3: ERC20+ETH Wrapper","pathname":"/eth-dev/learning-solidity/project-3-erc20+eth-wrapper","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"fNvwjAE75NCvK7VCCWdN","title":"Module 4","pathname":"/eth-dev/learning-solidity/module-4","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"SZGmnaDFlSVDJMHQlHjg","title":"Immutable and Constant","pathname":"/eth-dev/learning-solidity/module-4/immutable-and-constant","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"gLX4Xdb27ZTWX04EJHM5","title":"Fixed-point Math","pathname":"/eth-dev/learning-solidity/module-4/fixed-point-math","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"hLKYnXHJcRP85EoUbnPD","title":"Abstract contracts","pathname":"/eth-dev/learning-solidity/module-4/abstract-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"65muVaZAQY6cl9q2iJI5","title":"ERC-4626","pathname":"/eth-dev/learning-solidity/module-4/erc-4626","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"61vV1B8NuFQg4sGyNsfq","title":"Modifier + Inheritance +Ownable","pathname":"/eth-dev/learning-solidity/module-4/modifier-+-inheritance-+ownable","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"2Lqlx3wqaCuDUxIlakqO","title":"Type","pathname":"/eth-dev/learning-solidity/module-4/type","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 4"}]},{"id":"ID9TC8fTzfHhrFiYGDB9","title":"Project #4: Fractional Wrapper","pathname":"/eth-dev/learning-solidity/project-4-fractional-wrapper","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"Zk2ifjVzriixeEJUX2WX","title":"Module 5","pathname":"/eth-dev/learning-solidity/module-5","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"rLjt4InYiwcSv8w47QPY","title":"If-else","pathname":"/eth-dev/learning-solidity/module-5/if-else","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 5"}]},{"id":"7aBRSvPGHZM4B2ukrPqU","title":"Libraries","pathname":"/eth-dev/learning-solidity/module-5/libraries","siteSpaceId":"sitesp_L7y5j","description":"using TransferHelper for IERC20Decimals;","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 5"}]},{"id":"24hUvgJ1ZJzjnGonafh6","title":"TransferHelper","pathname":"/eth-dev/learning-solidity/module-5/libraries/transferhelper","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 5"},{"label":"Libraries"}]},{"id":"URcYa3OkJJ0dyCZBBOFs","title":"Chainlink Oracle","pathname":"/eth-dev/learning-solidity/module-5/chainlink-oracle","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"},{"label":"Module 5"}]},{"id":"IdNw3BBdQcmS0TxWo6t1","title":"Project #5: Collateralized Vault","pathname":"/eth-dev/learning-solidity/project-5-collateralized-vault","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Learning Solidity"}]},{"id":"x7o3gKB8JIMdTD0sJ9v8","title":"Solidity Basics","pathname":"/eth-dev/compendium/solidity-basics","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"5hKZCKxfpGgticZsTvAx","title":"Variable Types","pathname":"/eth-dev/compendium/solidity-basics/variable-types","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"PVihuueetf82CMZpF2TM","title":"Value Types","pathname":"/eth-dev/compendium/solidity-basics/value-types","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"09aTQNCtOVYqfUgt0HJY","title":"address","pathname":"/eth-dev/compendium/solidity-basics/value-types/address","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Value Types"}]},{"id":"rvWvEs8QeSuGfgN8Ebx9","title":"enum","pathname":"/eth-dev/compendium/solidity-basics/value-types/enum","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Value Types"}]},{"id":"wJT0WZNcVlxa9ccEz74H","title":"Reference Types","pathname":"/eth-dev/compendium/solidity-basics/reference-types","siteSpaceId":"sitesp_L7y5j","description":"mapping, struct, arrays","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"BMlVfLrgYNrxwlNQavZz","title":"strings","pathname":"/eth-dev/compendium/solidity-basics/reference-types/strings","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Reference Types"}]},{"id":"48za8uQCC9A4a3DuJOLu","title":"mappings","pathname":"/eth-dev/compendium/solidity-basics/reference-types/mappings","siteSpaceId":"sitesp_L7y5j","description":"https://medium.com/coinmonks/solidity-tutorial-all-about-mappings-29a12269ee14","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Reference Types"}]},{"id":"bFFzG5KKncqjjyYnMtHZ","title":"struct","pathname":"/eth-dev/compendium/solidity-basics/reference-types/struct","siteSpaceId":"sitesp_L7y5j","description":"mappings + structs are a powerful combination","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Reference Types"}]},{"id":"hkiQesKrIMnX751FDc2P","title":"Arrays","pathname":"/eth-dev/compendium/solidity-basics/reference-types/arrays","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Reference Types"}]},{"id":"KksbxcREOgitXLbDuf6H","title":"Multi-Dimensional arrays","pathname":"/eth-dev/compendium/solidity-basics/reference-types/multi-dimensional-arrays","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Reference Types"}]},{"id":"EZwjifQL8DhTocGnzrfj","title":"Global Objects","pathname":"/eth-dev/compendium/solidity-basics/global-objects","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"OenfING0d5LkgtgIvICz","title":"Functions","pathname":"/eth-dev/compendium/solidity-basics/functions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"bQsCEOfbNkN9FoAZ0de4","title":"Function types","pathname":"/eth-dev/compendium/solidity-basics/functions/function-types","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Functions"}]},{"id":"s7kqGYFNHRLuWkotYB2v","title":"Constructor Function","pathname":"/eth-dev/compendium/solidity-basics/functions/constructor-function","siteSpaceId":"sitesp_L7y5j","description":"https://docs.soliditylang.org/en/v0.8.12/contracts.html","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Functions"}]},{"id":"UoBRPRx8kHQM3rELOIOZ","title":"Transaction vs Call","pathname":"/eth-dev/compendium/solidity-basics/functions/transaction-vs-call","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Functions"}]},{"id":"UFs7qpKeaqzeQIl60qLm","title":"Require, Revert, Assert","pathname":"/eth-dev/compendium/solidity-basics/functions/require-revert-assert","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Functions"}]},{"id":"dobhMaWJXoe6WjD93GIR","title":"Function signature + selectors","pathname":"/eth-dev/compendium/solidity-basics/function-signature-+-selectors","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"yb5dsuhUcIrQwT4yhuhB","title":"Payable","pathname":"/eth-dev/compendium/solidity-basics/payable","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"hdW2Vd3zjFYXdz3e2fuL","title":"Payable + withdraw","pathname":"/eth-dev/compendium/solidity-basics/payable/payable-+-withdraw","siteSpaceId":"sitesp_L7y5j","description":"Adding a dumb withdraw function withdrawMoney()","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Payable"}]},{"id":"kt7C2WXzOn1nK2pptwaJ","title":"msg.value & payable functions","pathname":"/eth-dev/compendium/solidity-basics/payable/msg.value-and-payable-functions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Payable"}]},{"id":"b4jJUAYOLRZkmVEnEkGM","title":"Receive","pathname":"/eth-dev/compendium/solidity-basics/receive","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"VgB8gD3mmwzVejE0wqqh","title":"Fallback function (sol v 0.8)","pathname":"/eth-dev/compendium/solidity-basics/fallback-function-sol-v-0.8","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"APWvZArWGGLZ3UqpEQMF","title":"Fallback function (sol v 0.6)","pathname":"/eth-dev/compendium/solidity-basics/fallback-function-sol-v-0.8/fallback-function-sol-v-0.6","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"},{"label":"Fallback function (sol v 0.8)"}]},{"id":"X4EaWbjlatMD9Ad5uJoR","title":"call, staticcall, delegatecall","pathname":"/eth-dev/compendium/solidity-basics/call-staticcall-delegatecall","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Solidity Basics"}]},{"id":"MOatukqnH4Y7E8xFCJG4","title":"Return & Events","pathname":"/eth-dev/compendium/return-and-events","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"zsnHr0g34Cg8y2Sbxv8s","title":"Control Variable Visibility","pathname":"/eth-dev/compendium/control-variable-visibility","siteSpaceId":"sitesp_L7y5j","description":"for variables","breadcrumbs":[{"label":"Compendium"}]},{"id":"E8WcXdfbIVvdEMkRb2yD","title":"Local Variables (Storage v Memory)","pathname":"/eth-dev/compendium/local-variables-storage-v-memory","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"MAPgSIQFHm2H0wxWpv7p","title":"Data Location and Assignment Behaviors","pathname":"/eth-dev/compendium/data-location-and-assignment-behaviors","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"AdPWgKyheo5u5WgjXvWq","title":"Modifiers & Inheritance & Import","pathname":"/eth-dev/compendium/modifiers-and-inheritance-and-import","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"o2qlH7UVIc5ENJ0SpDSe","title":"import styles","pathname":"/eth-dev/compendium/modifiers-and-inheritance-and-import/import-styles","siteSpaceId":"sitesp_L7y5j","description":"https://betterprogramming.pub/solidity-tutorial-all-about-imports-c65110e41f3a","breadcrumbs":[{"label":"Compendium"},{"label":"Modifiers & Inheritance & Import"}]},{"id":"ASEo9wONinMrdOJOjM0Y","title":"Interface & Abstract Contracts","pathname":"/eth-dev/compendium/interface-and-abstract-contracts","siteSpaceId":"sitesp_L7y5j","description":"https://forum.openzeppelin.com/t/import-vs-import-and-inherit/4772/7","breadcrumbs":[{"label":"Compendium"}]},{"id":"77Fh0vSNYA7QxFoDzvbz","title":"ABI & Debugging","pathname":"/eth-dev/compendium/abi-and-debugging","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"3i2jhNeiH1k4clTLvbyQ","title":"Libraries","pathname":"/eth-dev/compendium/libraries","siteSpaceId":"sitesp_L7y5j","description":"https://jeancvllr.medium.com/solidity-tutorial-all-about-libraries-762e5a3692f9  https://medium.com/coinmonks/all-you-should-know-about-libraries-in-solidity-dd8bc953eae7","breadcrumbs":[{"label":"Compendium"}]},{"id":"x7QMM4ejS1fuO0905KFv","title":"Conditional(ternary) operators","pathname":"/eth-dev/compendium/conditional-ternary-operators","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"yFM5KQmOQ92BpNI9Zctt","title":"Smart Contract Life-cycle","pathname":"/eth-dev/compendium/smart-contract-life-cycle","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"}]},{"id":"60VMVXoXHdJzNYcSttf7","title":"Pausing Smart Contracts","pathname":"/eth-dev/compendium/smart-contract-life-cycle/pausing-smart-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Smart Contract Life-cycle"}]},{"id":"yAn689QBDnj4Kjn4Bzcx","title":"Destroying Smart Contracts","pathname":"/eth-dev/compendium/smart-contract-life-cycle/destroying-smart-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Compendium"},{"label":"Smart Contract Life-cycle"}]},{"id":"xo8tocaeZDry9v1hzz1e","title":"Merkle Trie and MPT","pathname":"/eth-dev/compendium/merkle-trie-and-mpt","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Compendium"}]},{"id":"Qs6kgQHCN0fx346oaLqQ","title":"Merkle Tree Airdrop","pathname":"/eth-dev/compendium/merkle-tree-airdrop","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Compendium"}]},{"id":"wPIYI8rKlSNzIFLlbbbk","title":"Try & catch","pathname":"/eth-dev/try-and-catch","siteSpaceId":"sitesp_L7y5j","description":""},{"id":"8XfAXfefxfauocX6gl42","title":"Ethereum Signatures","pathname":"/eth-dev/ethereum-signatures","siteSpaceId":"sitesp_L7y5j","description":""},{"id":"6TktkEpKKtix6Z252ET2","title":"EVM, Storage, Opcodes","pathname":"/eth-dev/evm-storage-opcodes","siteSpaceId":"sitesp_L7y5j","description":""},{"id":"cOxxGKvvH4EIii62AC00","title":"EVM","pathname":"/eth-dev/evm-storage-opcodes/evm","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"EVM, Storage, Opcodes"}]},{"id":"hsi0jQLudmHVKokv9jhq","title":"Wei, Ether, Gas","pathname":"/eth-dev/evm-storage-opcodes/wei-ether-gas","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"EVM, Storage, Opcodes"}]},{"id":"E00ThdHl8LooVpo9Rktw","title":"Storage","pathname":"/eth-dev/evm-storage-opcodes/storage","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"EVM, Storage, Opcodes"}]},{"id":"uTCUB8C9DGatgNv64xMQ","title":"ByteCode and Opcodes","pathname":"/eth-dev/evm-storage-opcodes/bytecode-and-opcodes","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"EVM, Storage, Opcodes"}]},{"id":"RPA8bjdG3jFdXVaV82DR","title":"Transaction costs & Execution costs","pathname":"/eth-dev/evm-storage-opcodes/transaction-costs-and-execution-costs","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"EVM, Storage, Opcodes"}]},{"id":"Xh3WUspBBEU64K7gORQJ","title":"Reading txn input data","pathname":"/eth-dev/reading-txn-input-data","siteSpaceId":"sitesp_L7y5j"},{"id":"gpI21F0syZsFdFiJaXnO","title":"Data Representation","pathname":"/eth-dev/data-representation","siteSpaceId":"sitesp_L7y5j"},{"id":"wjWxvnFpHyTRcGAhz6pq","title":"Yul","pathname":"/eth-dev/yul/yul","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"}]},{"id":"nCxR3l0HKwzV2cu9Ttag","title":"Intro","pathname":"/eth-dev/yul/yul/intro","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"SkpKpxrUdPDC0b894Ku3","title":"Basic operations","pathname":"/eth-dev/yul/yul/basic-operations","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/RareSkills/Udemy-Yul-Code/blob/main/Video-03-Basic-Operations.sol","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"xGcM7ghpiccrxe4Cx16g","title":"Storage Slots","pathname":"/eth-dev/yul/yul/storage-slots","siteSpaceId":"sitesp_L7y5j","description":"sload(slot) | sstore(slot, value) | (variable name).slot","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"0msI4Vz2vNjNnhaROBM8","title":"Storage of Arrays and Mappings","pathname":"/eth-dev/yul/yul/storage-of-arrays-and-mappings","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"dbpDYFmj09jkgoQvRbYQ","title":"Memory Operations","pathname":"/eth-dev/yul/yul/memory-operations","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"0eTCQ6bRFAr2sh7JMTwl","title":"Memory: how solidity uses memory","pathname":"/eth-dev/yul/yul/memory-how-solidity-uses-memory","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"HnDKXfDxaLz3aAQzMBoI","title":"Memory: Return, Require, Tuples and Keccak256","pathname":"/eth-dev/yul/yul/memory-return-require-tuples-and-keccak256","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/RareSkills/Udemy-Yul-Code/blob/main/Video-10-Require-Return-Tuple-Keccak256.sol","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"e3Gwt5tZ5rJVIeo0ImdG","title":"Memory: Logs and Events","pathname":"/eth-dev/yul/yul/memory-logs-and-events","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"pwMiANP5Ucb8a2LIoajT","title":"Inter-contract calls","pathname":"/eth-dev/yul/yul/inter-contract-calls","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/RareSkills/Udemy-Yul-Code/blob/main/Video-12-13-External-Calls.sol","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"YJasTs9cdckx9WtrhgLc","title":"calldata","pathname":"/eth-dev/yul/yul/calldata","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"6im092DmfuO47788qqRE","title":"free memory pointer","pathname":"/eth-dev/yul/yul/free-memory-pointer","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul"}]},{"id":"MovaAFAm04wn1r7HEeUA","title":"Yul Exercises","pathname":"/eth-dev/yul/yul-exercises","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"}]},{"id":"w8mU5wIyoyE40Uk6y47v","title":"read state variable","pathname":"/eth-dev/yul/yul-exercises/read-state-variable","siteSpaceId":"sitesp_L7y5j","description":"// TODO: Read the state variable \"e\" using only assembly","breadcrumbs":[{"label":"Yul"},{"label":"Yul Exercises"}]},{"id":"9cWel5Bd6qGBGbtgPOUU","title":"read mapping","pathname":"/eth-dev/yul/yul-exercises/read-mapping","siteSpaceId":"sitesp_L7y5j","description":"// TODO: Read the mapping value without calling ownerOf[tokenId]","breadcrumbs":[{"label":"Yul"},{"label":"Yul Exercises"}]},{"id":"0nFBJeFeS39Zr2Av3lN8","title":"iterate Array, Return Sum","pathname":"/eth-dev/yul/yul-exercises/iterate-array-return-sum","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yul"},{"label":"Yul Exercises"}]},{"id":"Jvyp3mUPj3vKttvxvqnT","title":"memory-safe","pathname":"/eth-dev/yul/memory-safe","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Yul"}]},{"id":"aEf9zh3UofXzvN0zE1Vu","title":"Upgradability & Proxies","pathname":"/eth-dev/upgradable-contracts/upgradability-and-proxies","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Upgradable Contracts"}]},{"id":"DAHW9ge5BNEfAq4FZpD4","title":"UUPS Example","pathname":"/eth-dev/upgradable-contracts/uups-example","siteSpaceId":"sitesp_L7y5j","description":"EIP-1822","breadcrumbs":[{"label":"Upgradable Contracts"}]},{"id":"XM4PlPK7Gai4g5XG4ST1","title":"Minimal Proxy Example","pathname":"/eth-dev/upgradable-contracts/minimal-proxy-example","siteSpaceId":"sitesp_L7y5j","description":"ERC-1167","breadcrumbs":[{"label":"Upgradable Contracts"}]},{"id":"y6vgaPwPr2AJ440MXMRp","title":"TPP Example","pathname":"/eth-dev/upgradable-contracts/tpp-example","siteSpaceId":"sitesp_L7y5j","description":"EIP-1538","breadcrumbs":[{"label":"Upgradable Contracts"}]},{"id":"rYDq27L4J8LgNlxxBdSd","title":"Diamond","pathname":"/eth-dev/upgradable-contracts/diamond","siteSpaceId":"sitesp_L7y5j","emoji":"1f6a7","breadcrumbs":[{"label":"Upgradable Contracts"}]},{"id":"rEiEG6fLTEr9wr346SCK","title":"On Storage","pathname":"/eth-dev/upgradable-contracts/diamond/on-storage","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Upgradable Contracts"},{"label":"Diamond","emoji":"1f6a7"}]},{"id":"C7xyK2bduVHOKgaIKgbE","title":"Block Limit","pathname":"/eth-dev/gas-opt/block-limit","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"OCeMtl0yyyJXWYIYdYQB","title":"gasLimit & min cost","pathname":"/eth-dev/gas-opt/gaslimit-and-min-cost","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"HdW6vNgqbIRNZ01a1yrR","title":"Solidity Optimiser","pathname":"/eth-dev/gas-opt/solidity-optimiser","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"tLk8vF4BBiNWBiCewIce","title":"Memory v calldata","pathname":"/eth-dev/gas-opt/memory-v-calldata","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"awwB5JJO88xxqup8BiO2","title":"Memory caching vs direct storage vs pointers","pathname":"/eth-dev/gas-opt/memory-caching-vs-direct-storage-vs-pointers","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"lPCDX1d0SCMy7XBiup9s","title":"<  vs  <=","pathname":"/eth-dev/gas-opt/less-than-vs-less-than","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"0N6FCsJxe9lef4STqRbD","title":"reverting early","pathname":"/eth-dev/gas-opt/reverting-early","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"QNdwtgOMVd40SVeVa1DD","title":"X && Y, ||","pathname":"/eth-dev/gas-opt/x-and-and-y-or-or","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"CzraJEoLwVMWB3tqqd4N","title":"constant and immutable","pathname":"/eth-dev/gas-opt/constant-and-immutable","siteSpaceId":"sitesp_L7y5j","description":"Use constant and immutable variables for variable that don't change","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"vQUgteHvyuKfOtMZojXa","title":"caching sload into mload","pathname":"/eth-dev/gas-opt/caching-sload-into-mload","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"s9ddVvnCVughjXQL5Ep0","title":"Syntactic Sugar","pathname":"/eth-dev/gas-opt/syntactic-sugar","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"Lp14HBvO4DME0s7Z37wS","title":"using unchecked w/o require","pathname":"/eth-dev/gas-opt/using-unchecked-w-o-require","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"TocM9x1UDKJYqMcNh2Un","title":"Compact Strings","pathname":"/eth-dev/gas-opt/compact-strings","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"g1bqscL9FxnHmkPxZhcl","title":"Calling a view function","pathname":"/eth-dev/gas-opt/calling-a-view-function","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"2XWMit8kbPbWrHa2Z2Dz","title":"Custom errors over require","pathname":"/eth-dev/gas-opt/custom-errors-over-require","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"e5teo5zk9QrJIowMWFc0","title":"usage of this.","pathname":"/eth-dev/gas-opt/usage-of-this.","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"}]},{"id":"oRq07GSUal2zWmxv3Mtu","title":"multiple address(this)","pathname":"/eth-dev/gas-opt/usage-of-this./multiple-address-this","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Gas Opt"},{"label":"usage of this."}]},{"id":"UlWl4W3Dn8P4D3Cq2xoy","title":"ERC-20.sol","pathname":"/eth-dev/ercs-and-eips/erc-20.sol","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol","breadcrumbs":[{"label":"ERCs & EIPs"}]},{"id":"3gn7q02SjRHIzaogBBcr","title":"Core functions","pathname":"/eth-dev/ercs-and-eips/erc-20.sol/core-functions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"ERC-20.sol"}]},{"id":"yRHW4LKa5YAd0Zvollsu","title":"transfer()","pathname":"/eth-dev/ercs-and-eips/erc-20.sol/transfer","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"ERC-20.sol"}]},{"id":"9sLpyGK6tHY2qYmXvmwJ","title":"transferFrom()","pathname":"/eth-dev/ercs-and-eips/erc-20.sol/transferfrom","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"ERC-20.sol"}]},{"id":"ZUMmkCuMrwNQrxHpP7RB","title":"TLDR transfer vs transferFrom","pathname":"/eth-dev/ercs-and-eips/erc-20.sol/tldr-transfer-vs-transferfrom","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"ERC-20.sol"}]},{"id":"cTNPi6Erv2UJqclsCU4i","title":"Landing","pathname":"/eth-dev/ercs-and-eips/landing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"}]},{"id":"8XZ0Un8nBXsIzv9geGuI","title":"ERC721.sol","pathname":"/eth-dev/ercs-and-eips/landing/erc721.sol","siteSpaceId":"sitesp_L7y5j","description":"https://docs.openzeppelin.com/contracts/3.x/erc721#constructing_an_erc721_token_contract","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"nqTFvU39aNqXOC9urwvQ","title":"EIP-721","pathname":"/eth-dev/ercs-and-eips/landing/eip-721","siteSpaceId":"sitesp_L7y5j","description":"Based on LooksRare","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"bydFaU0GRLIs60dyfJ67","title":"LooksRare","pathname":"/eth-dev/ercs-and-eips/landing/eip-721/looksrare","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"},{"label":"EIP-721"}]},{"id":"ciu93AklRuEQW9OCD1dr","title":"Page 1","pathname":"/eth-dev/ercs-and-eips/landing/eip-721/page-1","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"},{"label":"EIP-721"}]},{"id":"r8SZ4uanUtajOsyuC8Hp","title":"ERC-1271","pathname":"/eth-dev/ercs-and-eips/landing/erc-1271","siteSpaceId":"sitesp_L7y5j","description":"Allow smart contracts signage","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"ECXFUqLN4YuB2DEaq1OV","title":"EIP-2981","pathname":"/eth-dev/ercs-and-eips/landing/eip-2981","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"Hid4KRsNrYrXK4ZFrhZR","title":"ERC-165","pathname":"/eth-dev/ercs-and-eips/landing/erc-165","siteSpaceId":"sitesp_L7y5j","description":"Standard Interface Detection","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"OL8QtF2TMvDSplJkwDqB","title":"EIP-1167: Minimal Proxy Contract","pathname":"/eth-dev/ercs-and-eips/landing/eip-1167-minimal-proxy-contract","siteSpaceId":"sitesp_L7y5j","description":"https://solidity-by-example.org/app/minimal-proxy/","breadcrumbs":[{"label":"ERCs & EIPs"},{"label":"Landing"}]},{"id":"HPoeGVe3PY87JmFylkzo","title":"VRFConsumerBase","pathname":"/eth-dev/ercs-and-eips/vrfconsumerbase","siteSpaceId":"sitesp_L7y5j","description":"VRF v1","breadcrumbs":[{"label":"ERCs & EIPs"}]},{"id":"lQEdTTZJvG3u5Fi9zrIP","title":"UniswapV2Library","pathname":"/eth-dev/ercs-and-eips/uniswapv2library","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"ERCs & EIPs"}]},{"id":"W2l8sDXJDC5V4slt92yX","title":"Projects","pathname":"/eth-dev/yield-mentorship-2022/projects","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"6WZC5PvT0rbqUOaqNsPE","title":"#1 Simple Registry","pathname":"/eth-dev/yield-mentorship-2022/projects/1-simple-registry","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/yieldprotocol/mentorship2022/issues/1","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"Lm8i72A9JxjQBBZC6ewy","title":"#2 Basic Vault","pathname":"/eth-dev/yield-mentorship-2022/projects/2-basic-vault","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/yieldprotocol/mentorship2022/issues/2","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"CuPtIfTqwfnVg13K4afd","title":"#3 ERC20+ETH Wrapper","pathname":"/eth-dev/yield-mentorship-2022/projects/3-erc20+eth-wrapper","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/calnix/ERC20-Wrapper","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"ypLt4sZSINukGfmGsV2E","title":"setFailTransferTrue","pathname":"/eth-dev/yield-mentorship-2022/projects/3-erc20+eth-wrapper/setfailtransfertrue","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/calnix/ERC20-Wrapper/blob/AddedCode/test/wQTMTokenTest.t.sol","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#3 ERC20+ETH Wrapper"}]},{"id":"C4yeVyIXdTJtpHR79OFS","title":"#4 Fractional Wrapper","pathname":"/eth-dev/yield-mentorship-2022/projects/4-fractional-wrapper","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"wcjnDyPScLPACCtq7pNH","title":"#5 Collateralized Vault","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/yieldprotocol/mentorship2022/issues/5","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"Sfu7XTZ7Wu19Q6gVqhHP","title":"Process","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/process","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"DSPMTjih1LEGYLlf8wqv","title":"Vault.sol","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/vault.sol","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"TbOuC5qaFC76HargDQKw","title":"Testing","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/testing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"KIw3Q4QRIP9PJl0OfeYB","title":"Chainlink Oracles","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/chainlink-oracles","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"i2YDYTeplSHV5J3ZLRbI","title":"Pricing + Decimal scaling","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/pricing-+-decimal-scaling","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"9NVuGZ1vs8jKeBhi2Mcl","title":"Refactor for Simplicity","pathname":"/eth-dev/yield-mentorship-2022/projects/5-collateralized-vault/refactor-for-simplicity","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#5 Collateralized Vault"}]},{"id":"UPUSw3Z7cHM7zXTwYvTo","title":"#9 Flash Loan Vault","pathname":"/eth-dev/yield-mentorship-2022/projects/9-flash-loan-vault","siteSpaceId":"sitesp_L7y5j","description":"ERC 3156 & ERC 4626 compliant","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"}]},{"id":"ellZNKury0w7qy6ywwDJ","title":"Implementing ERC3156","pathname":"/eth-dev/yield-mentorship-2022/projects/9-flash-loan-vault/implementing-erc3156","siteSpaceId":"sitesp_L7y5j","description":"https://eips.ethereum.org/EIPS/eip-3156","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#9 Flash Loan Vault"}]},{"id":"vui34aQF57xr152RZaqd","title":"Full code for lender","pathname":"/eth-dev/yield-mentorship-2022/projects/9-flash-loan-vault/full-code-for-lender","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#9 Flash Loan Vault"}]},{"id":"ppdR51EDBVRhgfG0eemK","title":"Ex-rate calculation","pathname":"/eth-dev/yield-mentorship-2022/projects/9-flash-loan-vault/ex-rate-calculation","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"},{"label":"Projects"},{"label":"#9 Flash Loan Vault"}]},{"id":"gZ3hKSirHhH7uD0JgPjh","title":"State Inheritance Testing","pathname":"/eth-dev/yield-mentorship-2022/state-inheritance-testing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"xbMOxmVvQIQbRAKlxDW9","title":"Testing w/ Mocks","pathname":"/eth-dev/yield-mentorship-2022/testing-w-mocks","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/yieldprotocol/vault-v2/blob/master/packages/foundry/contracts/test/utils/Mocks.sol","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"ebKoEfS1gYcjbHOCELGZ","title":"Yield Style Guide","pathname":"/eth-dev/yield-mentorship-2022/yield-style-guide","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"VsnWCDA4BJT2MKTCZzLb","title":"Github Actions","pathname":"/eth-dev/yield-mentorship-2022/github-actions","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"kFqtIh2Jbem5nmONrrCt","title":"TransferHelper.sol","pathname":"/eth-dev/yield-mentorship-2022/transferhelper.sol","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"NgDY57PTGwGlzZi0ZnoR","title":"math logic + internal fn","pathname":"/eth-dev/yield-mentorship-2022/math-logic-+-internal-fn","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/hashedMae/mentorshipProjects/pull/4","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"UQp2vruPRsuyHWp23S3g","title":"Interfaces: IERC20","pathname":"/eth-dev/yield-mentorship-2022/interfaces-ierc20","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Yield Mentorship 2022"}]},{"id":"A4aAlvuxbG3el7VkgIG2","title":"Overview","pathname":"/eth-dev/foundry/overview","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"}]},{"id":"mXuTabWj89aLW8EKPyON","title":"Importing Contracts","pathname":"/eth-dev/foundry/importing-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"}]},{"id":"mEvlhOXpJJsSvZSODzFd","title":"Testing","pathname":"/eth-dev/foundry/testing","siteSpaceId":"sitesp_L7y5j","description":"Forge is a command-line tool that ships with Foundry. Forge tests, builds, and deploys your smart contracts.","breadcrumbs":[{"label":"Foundry"}]},{"id":"3IyuTIlbllDGVdUkLp6D","title":"stdError.arithmeticError","pathname":"/eth-dev/foundry/testing/stderror.arithmeticerror","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"},{"label":"Testing"}]},{"id":"O1rmEc8Dv6THbuEmU5aG","title":"assume vs bound","pathname":"/eth-dev/foundry/testing/assume-vs-bound","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"},{"label":"Testing"}]},{"id":"rigXOth6O5mEGUBzubVa","title":"Traces","pathname":"/eth-dev/foundry/testing/traces","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"},{"label":"Testing"}]},{"id":"jV4KmCLn0WyplzQZbKvu","title":"label & console2","pathname":"/eth-dev/foundry/testing/label-and-console2","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Foundry"},{"label":"Testing"}]},{"id":"t5aMgKX3rGUZTC4UW0WF","title":"std-storage","pathname":"/eth-dev/foundry/testing/std-storage","siteSpaceId":"sitesp_L7y5j","description":"https://book.getfoundry.sh/reference/forge-std/std-storage.html","breadcrumbs":[{"label":"Foundry"},{"label":"Testing"}]},{"id":"DbgYCKTeIjlobmkGRX2L","title":"Damn Vulnerable Defi","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi","siteSpaceId":"sitesp_L7y5j","description":"https://github.com/calnix/damn-vulnerable-defi-foundry","breadcrumbs":[{"label":"Smart Contract Security"}]},{"id":"kSQiizOoczU1s76t2Vb2","title":"1. Unstoppable","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/1.-unstoppable","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/unstoppable/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"XJjGWUbLewHcR17GA92R","title":"2. Naive receiver","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/2.-naive-receiver","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"nw92cid411TAKzeZN7gn","title":"3. Truster","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/3.-truster","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/truster/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"PhLoinnt3hrTpaEwfniN","title":"4. Side Entrance","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/4.-side-entrance","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/side-entrance/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"1ww0hOY7hNZWneMF1xZ2","title":"5. The Rewarder","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/5.-the-rewarder","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/the-rewarder/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"KSSIDxgrwOrH2eOJgOP2","title":"6. Selfie","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/6.-selfie","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/selfie/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"Jo8wW6R1Lsm5l34kkzJF","title":"7. Compromised","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/7.-compromised","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/compromised/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"C8WKjHbh2eijKgBAc5jO","title":"8. Puppet","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/8.-puppet","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/puppet/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"QeOOr6u42Btj6YkHjWNM","title":"9. Puppet V2","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/9.-puppet-v2","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/puppet-v2/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"qpjH2EBthZjK34CrVO6A","title":"10 - Free Rider","pathname":"/eth-dev/smart-contract-security/damn-vulnerable-defi/10-free-rider","siteSpaceId":"sitesp_L7y5j","description":"https://www.damnvulnerabledefi.xyz/challenges/free-rider/","breadcrumbs":[{"label":"Smart Contract Security"},{"label":"Damn Vulnerable Defi"}]},{"id":"3k6R2SIHhSoyFIX7NZm6","title":"Merkle Tree: shortened proof attack","pathname":"/eth-dev/smart-contract-security/merkle-tree-shortened-proof-attack","siteSpaceId":"sitesp_L7y5j","description":"https://www.rareskills.io/post/merkle-tree-second-preimage-attack","breadcrumbs":[{"label":"Smart Contract Security"}]},{"id":"5js4l6PvIZRHNB9jcF6Z","title":"AMM Math","pathname":"/eth-dev/fixed-point-math/amm-math","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Fixed-Point Math"}]},{"id":"pbmRPvrXYM5sFkdTCCVY","title":"checks-effects-interactions pattern","pathname":"/eth-dev/solidity-patterns/checks-effects-interactions-pattern","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Solidity Patterns"}]},{"id":"QTF0usQ4MNEYvWpwGKBs","title":"Router // batch","pathname":"/eth-dev/solidity-patterns/router-batch","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Solidity Patterns"}]},{"id":"CTdj0D57Z6iDHpk55ZK4","title":"claimDelegate: stack unique owners","pathname":"/eth-dev/solidity-patterns/claimdelegate-stack-unique-owners","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Solidity Patterns"}]},{"id":"j9m1R4ChvdHMj9xRTE8v","title":"claimDelegate: cache previous user","pathname":"/eth-dev/solidity-patterns/claimdelegate-cache-previous-user","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Solidity Patterns"}]},{"id":"wJtO4CIUJdayLD1eH8lq","title":"Array: dup/ascending check","pathname":"/eth-dev/array-dup-ascending-check","siteSpaceId":"sitesp_L7y5j"},{"id":"MIzrgBpfyiKIND8bx4Nm","title":"Behind the Scenes","pathname":"/eth-dev/deployment/behind-the-scenes","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Deployment"}]},{"id":"WwZsS4cCX0C5dzU4uHEG","title":"Interacting with External Contracts","pathname":"/eth-dev/deployment/interacting-with-external-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Deployment"}]},{"id":"7xdjNbKa4C53euF26L7n","title":"Logging, Events, Solidity, Bloom Filter","pathname":"/eth-dev/deployment/logging-events-solidity-bloom-filter","siteSpaceId":"sitesp_L7y5j","description":"https://blog.chain.link/events-and-logging-in-solidity/  | https://www.youtube.com/watch?v=w18c9HLEuBs","breadcrumbs":[{"label":"Deployment"}]},{"id":"kqtPkBV26BGgPWoLKTFJ","title":"Mnemonic Phrases","pathname":"/eth-dev/misc/mnemonic-phrases","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Misc"}]},{"id":"XvIliIkJ0VOLK0q5Rt2Q","title":"Bidul Ideas","pathname":"/eth-dev/misc/bidul-ideas","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Misc"}]},{"id":"I4xhk93w2Bs2kbUrQIdW","title":"Brownie Framework","pathname":"/eth-dev/archive/brownie-framework","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"}]},{"id":"stRenU9lrcqAdZYVoQd7","title":"Brownie basics","pathname":"/eth-dev/archive/brownie-framework/brownie-basics","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"}]},{"id":"63k5EHRNQnpyu5bhxU1c","title":"storing wallets in .env","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/storing-wallets-in-.env","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"2o73gBdpeHyeJLPxqUHh","title":"Deployment to ganache","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/deployment-to-ganache","siteSpaceId":"sitesp_L7y5j","description":"brownie automatically handles ganache initiation through ganache-cli","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"eP3kAuMBe8RDl1uaFqxb","title":"Interacting with contract","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/interacting-with-contract","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"0ATnRqoHPR2sLbqOabll","title":"Unit Testing","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/unit-testing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"oYT1b416Tn5zTIAjP5Tc","title":"Testnet deployment","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/testnet-deployment","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"kghVGsEhOceoUkM7wdXg","title":"Interacting w/ deployed contract","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/interacting-w-deployed-contract","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"4gsG2wuRqCgKMwHdtn8P","title":"Brownie console","pathname":"/eth-dev/archive/brownie-framework/brownie-basics/brownie-console","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie basics"}]},{"id":"zclcyvWeHxoQ74NQ5frm","title":"Brownie Advanced","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"}]},{"id":"O2rCz2AeUXkXP6oVfiZK","title":"Dependencies: import contracts","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/dependencies-import-contracts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"aDTIhx17GOo9WlqTqVgE","title":"helpful_scripts.py","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/helpful_scripts.py","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"nFickspaPOvWhHCxe7Qx","title":"verify and publish","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/verify-and-publish","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"gYmjzKvLxljVjLivi5zd","title":"Forking and Mocking","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/forking-and-mocking","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"BC0WWqcg7xMipDkkX5Y9","title":"Mocking","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/mocking","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"ZYsKJSvXPOurK9PVM8W9","title":"Forking","pathname":"/eth-dev/archive/brownie-framework/brownie-advanced/forking","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Brownie Advanced"}]},{"id":"5gZEePU0kyh0WyCc6PuV","title":"Testing","pathname":"/eth-dev/archive/brownie-framework/testing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"}]},{"id":"xsoHxBnHD7dlWl4gAyr0","title":"Scripts Framework","pathname":"/eth-dev/archive/brownie-framework/scripts-framework","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"}]},{"id":"MPWaqAsYINaIwWUWZpMM","title":"deploy.py","pathname":"/eth-dev/archive/brownie-framework/scripts-framework/deploy.py","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Scripts Framework"}]},{"id":"OS8Z3qqTd1ihOgM1NlTf","title":"get_accounts","pathname":"/eth-dev/archive/brownie-framework/scripts-framework/get_accounts","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Scripts Framework"}]},{"id":"pRdUMkqjLQN8Qc8kD9VZ","title":"deploy_mocks()","pathname":"/eth-dev/archive/brownie-framework/scripts-framework/deploy_mocks","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Scripts Framework"}]},{"id":"gfkmhXZGSuYhHomrDgXG","title":"fund_with_<token>()","pathname":"/eth-dev/archive/brownie-framework/scripts-framework/fund_with_less-than-token-greater-than","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"},{"label":"Scripts Framework"}]},{"id":"dFIg3K57s5C25ljRzJQp","title":"Brownie Networks","pathname":"/eth-dev/archive/brownie-framework/brownie-networks","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Framework"}]},{"id":"2brwXYcPByeSV68KRVqG","title":"Brownie Projects","pathname":"/eth-dev/archive/brownie-projects","siteSpaceId":"sitesp_L7y5j","breadcrumbs":[{"label":"Archive"}]},{"id":"OftRCfd6MvEdt5sf4leA","title":"SharedWallet","pathname":"/eth-dev/archive/brownie-projects/sharedwallet","siteSpaceId":"sitesp_L7y5j","description":"https://ethereum-blockchain-developer.com/040-shared-wallet-project/03-open-zeppelin/","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"J5gEtkyL5hbQ1wsbX5lM","title":"Multiple Beneficiaries","pathname":"/eth-dev/archive/brownie-projects/sharedwallet/multiple-beneficiaries","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"SharedWallet"}]},{"id":"tzbtwhJEwNhOHBbCxyjK","title":"Common Code Contract","pathname":"/eth-dev/archive/brownie-projects/sharedwallet/common-code-contract","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"SharedWallet"}]},{"id":"qUKOpnVyH3vtghL6TBB9","title":"Adding Events","pathname":"/eth-dev/archive/brownie-projects/sharedwallet/adding-events","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"SharedWallet"}]},{"id":"y8aK3rdJNIXzJqYeJCzZ","title":"Renounce Ownership","pathname":"/eth-dev/archive/brownie-projects/sharedwallet/renounce-ownership","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"SharedWallet"}]},{"id":"rMDGgmdEzBUJU5i2qUjv","title":"Separate Files","pathname":"/eth-dev/archive/brownie-projects/sharedwallet/separate-files","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"SharedWallet"}]},{"id":"XlGsRVnh1O7aryeDSVMC","title":"Supply Chain","pathname":"/eth-dev/archive/brownie-projects/supply-chain","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"rMabTCsclKKlYz3rbQfQ","title":"ItemManager()","pathname":"/eth-dev/archive/brownie-projects/supply-chain/itemmanager","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Supply Chain"}]},{"id":"8nxrai2rTpz4YcUrXibD","title":"Adding Events","pathname":"/eth-dev/archive/brownie-projects/supply-chain/adding-events","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Supply Chain"}]},{"id":"Sf5dwg33OTq73q3GGCVC","title":"Adding unique address to each item","pathname":"/eth-dev/archive/brownie-projects/supply-chain/adding-unique-address-to-each-item","siteSpaceId":"sitesp_L7y5j","description":"https://medium.com/upstate-interactive/creating-a-contract-with-a-smart-contract-bdb67c5c8595","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Supply Chain"}]},{"id":"MH6WXdTYdsMMm8lqBntc","title":"Lottery","pathname":"/eth-dev/archive/brownie-projects/lottery","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"bQ34KOXL1yYmR8MXFdlB","title":"Aave - Lending and Borrowing","pathname":"/eth-dev/archive/brownie-projects/aave-lending-and-borrowing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"F5uHT5lFRBsN6IFlnc9B","title":"Approve & Deposit","pathname":"/eth-dev/archive/brownie-projects/aave-lending-and-borrowing/approve-and-deposit","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Aave - Lending and Borrowing"}]},{"id":"i3hj3UkDULpHEYb8uxrU","title":"Borrow","pathname":"/eth-dev/archive/brownie-projects/aave-lending-and-borrowing/borrow","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Aave - Lending and Borrowing"}]},{"id":"oGXtotpcwpGzzoNW7A8g","title":"NFT","pathname":"/eth-dev/archive/brownie-projects/nft","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"fxjrI7wT5gSmdFxtUCWO","title":"Advanced Collectible","pathname":"/eth-dev/archive/brownie-projects/advanced-collectible","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"}]},{"id":"xi69do4UmRPfttRNxeRE","title":"adv_deploy() + Testing","pathname":"/eth-dev/archive/brownie-projects/advanced-collectible/adv_deploy-+-testing","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Advanced Collectible"}]},{"id":"CxpECRZc53HXl2W0SmhF","title":"Create Metadata","pathname":"/eth-dev/archive/brownie-projects/advanced-collectible/create-metadata","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Advanced Collectible"}]},{"id":"YJcHrRsqvW8fvbBJwVMa","title":"Setting the TokenURI","pathname":"/eth-dev/archive/brownie-projects/advanced-collectible/setting-the-tokenuri","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"},{"label":"Brownie Projects"},{"label":"Advanced Collectible"}]},{"id":"4a8ePhhYEeSiXtQAezf3","title":"node npm","pathname":"/eth-dev/archive/node-npm","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"}]},{"id":"fMeicQsZa4kGEpF2X3A8","title":"Ganache","pathname":"/eth-dev/archive/ganache","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"}]},{"id":"7UC8PqBnbK6UhrhKdDku","title":"Truffle","pathname":"/eth-dev/archive/truffle","siteSpaceId":"sitesp_L7y5j","description":"https://ethereum-blockchain-developer.com/050-supply-chain-project/04-install-truffle/","breadcrumbs":[{"label":"Archive"}]},{"id":"yd3tHchhOZpq35uGoqbp","title":"Remix","pathname":"/eth-dev/archive/remix","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"}]},{"id":"iqN2jWu602jKxN42KJSV","title":"Installing Env","pathname":"/eth-dev/archive/installing-env","siteSpaceId":"sitesp_L7y5j","description":"","breadcrumbs":[{"label":"Archive"}]}]}