Files
hardhat-simple-storage/deployments/localhost/FundMe.json
T

212 lines
28 KiB
JSON

{
"address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "priceFeedAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "NotOwner",
"type": "error"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "MINIMUM_USD",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "addressToAmountFunded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "fund",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "funders",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "i_owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "priceFeed",
"outputs": [
{
"internalType": "contract AggregatorV3Interface",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"transactionHash": "0xee5f527d8a195ad5909a2ec516483cb1f62c73dc93c8cc7edf1316380411394c",
"receipt": {
"to": null,
"from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
"contractAddress": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
"transactionIndex": 0,
"gasUsed": "855613",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0xb4e85c54d81b89dd58a2c11e02935d04b8b3d7d536a33d346ae0d0d207c1f95d",
"transactionHash": "0xee5f527d8a195ad5909a2ec516483cb1f62c73dc93c8cc7edf1316380411394c",
"logs": [],
"blockNumber": 2,
"cumulativeGasUsed": "855613",
"status": 1,
"byzantium": true
},
"args": [
"0x5FbDB2315678afecb367f032d93F642f64180aa3"
],
"numDeployments": 1,
"solcInputHash": "2addf7ea1ebec6fe07221842a0f5af20",
"metadata": "{\"compiler\":{\"version\":\"0.8.8+commit.dddeac2f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeedAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"MINIMUM_USD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressToAmountFunded\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"funders\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceFeed\",\"outputs\":[{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FundMe.sol\":\"FundMe\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface AggregatorV3Interface {\\n function decimals() external view returns (uint8);\\n\\n function description() external view returns (string memory);\\n\\n function version() external view returns (uint256);\\n\\n // getRoundData and latestRoundData should both raise \\\"No data present\\\"\\n // if they do not have data to report, instead of returning unset values\\n // which could be misinterpreted as actual reported values.\\n function getRoundData(uint80 _roundId)\\n external\\n view\\n returns (\\n uint80 roundId,\\n int256 answer,\\n uint256 startedAt,\\n uint256 updatedAt,\\n uint80 answeredInRound\\n );\\n\\n function latestRoundData()\\n external\\n view\\n returns (\\n uint80 roundId,\\n int256 answer,\\n uint256 startedAt,\\n uint256 updatedAt,\\n uint80 answeredInRound\\n );\\n}\\n\",\"keccak256\":\"0xf2b6c9adb3552254df1445b73563cf014434ff5e78663e9b961b6c059506ceb5\",\"license\":\"MIT\"},\"contracts/FundMe.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n/*\\n Get funds from users\\n Withdraw funds\\n Set a minimum funding value in USD\\n*/\\npragma solidity ^0.8.0;\\n\\nimport \\\"./PriceConverter.sol\\\";\\n// Save Gas by using constant, immutable for variables\\n\\nerror NotOwner();\\n\\n// 816914\\ncontract FundMe {\\n /*\\n Transaction Fields\\n Nonce\\n Gas Price\\n Gas Limit - Max Gas that this TX can use\\n To - Address\\n Value - Amount of wei to send\\n Data - What to send to the Address (Can Empty)\\n v, r, s - components of TX signature\\n */\\n\\n using PriceConverter for uint256;\\n uint256 public constant MINIMUM_USD = 50 * 1e18;\\n\\n address[] public funders;\\n mapping(address => uint256) public addressToAmountFunded;\\n\\n // immutable only can declare 1 time at contructor\\n address public immutable i_owner;\\n\\n AggregatorV3Interface public priceFeed;\\n\\n constructor(address priceFeedAddress) {\\n i_owner = msg.sender;\\n priceFeed = AggregatorV3Interface(priceFeedAddress);\\n }\\n\\n function fund() public payable {\\n /*\\n Want to be able to set a minimum fund amount in USD\\n 1. How do we send ETH to this contract\\n */\\n //require (msg.value >= 1e18, \\\"Didn't send enough\\\"); // 1e18 = 1 * 10 * 18 = 1000000000000000000\\n require(\\n msg.value.getConversionRate(priceFeed) >= MINIMUM_USD,\\n \\\"Didn't send enough\\\"\\n );\\n funders.push(msg.sender);\\n addressToAmountFunded[msg.sender] = msg.value;\\n }\\n\\n // Owner of this contract only can withdraw\\n function withdraw() public onlyOwner {\\n // Can use modifier to replace\\n // require(msg.sender == owner, \\\"Sender is not owner\\\");\\n\\n /* starting index, eding index, step amount */\\n for (\\n uint256 funderIndex = 0;\\n funderIndex < funders.length;\\n funderIndex++\\n ) {\\n address funder = funders[funderIndex];\\n addressToAmountFunded[funder] = 0;\\n }\\n // reset the array\\n funders = new address[](0);\\n\\n /*\\n // transfer - over 2300 gas will cause exception\\n payable(msg.sender).transfer(address(this).balance);\\n // send - over 2300 gas will not cause exception, only will return true or false\\n bool sendSuccess = payable(msg.sender).send(address(this).balance);\\n require(sendSuccess, \\\"Send failed\\\");\\n */\\n\\n // call - lower level\\n (bool callSuccess, ) = payable(msg.sender).call{\\n value: address(this).balance\\n }(\\\"\\\");\\n require(callSuccess, \\\"Call failed\\\");\\n }\\n\\n modifier onlyOwner() {\\n // require(msg.sender == i_owner, \\\"Sender is not owner!\\\");\\n if (msg.sender != i_owner) {\\n revert NotOwner();\\n }\\n\\n _; // doing the rest of the code\\n }\\n\\n // What happens if someone send this contract ETH without calling the fund fucntion\\n /*\\n receive - people send money / empty money into this contract\\n fallback - cannot identify which function to run\\n */\\n receive() external payable {\\n fund();\\n }\\n\\n fallback() external payable {\\n fund();\\n }\\n}\\n\",\"keccak256\":\"0x11413f2dc35ecb4cc60b378c27a1bf190ceebffd4b41917ef6c921c36fae807b\",\"license\":\"MIT\"},\"contracts/PriceConverter.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.8;\\n\\n//import \\\"@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\\\";\\nimport \\\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\\\";\\n\\n// Why is this a library and not abstract?\\n// Why not an interface?\\nlibrary PriceConverter {\\n // We could make this public, but then we'd have to deploy it\\n function getPrice(\\n AggregatorV3Interface priceFeed\\n ) internal view returns (uint256) {\\n (, int256 answer, , , ) = priceFeed.latestRoundData();\\n // ETH/USD rate in 18 digit\\n return uint256(answer * 10000000000);\\n // or (Both will do the same thing)\\n // return uint256(answer * 1e10); // 1* 10 ** 10 == 10000000000\\n }\\n\\n // 1000000000\\n function getConversionRate(\\n uint256 ethAmount,\\n AggregatorV3Interface priceFeed\\n ) internal view returns (uint256) {\\n uint256 ethPrice = getPrice(priceFeed);\\n uint256 ethAmountInUsd = (ethPrice * ethAmount) / 1000000000000000000;\\n // or (Both will do the same thing)\\n // uint256 ethAmountInUsd = (ethPrice * ethAmount) / 1e18; // 1 * 10 ** 18 == 1000000000000000000\\n // the actual ETH/USD conversion rate, after adjusting the extra 0s.\\n return ethAmountInUsd;\\n }\\n}\\n\",\"keccak256\":\"0x8b46f020b58a7c28ae6d4ae8a68377c46aff7c9e656e7cfa3471af5ee88218d8\",\"license\":\"MIT\"}},\"version\":1}",
"bytecode": "0x60a060405234801561001057600080fd5b50604051610f7d380380610f7d83398181016040528101906100329190610113565b3373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610140565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e0826100b5565b9050919050565b6100f0816100d5565b81146100fb57600080fd5b50565b60008151905061010d816100e7565b92915050565b600060208284031215610129576101286100b0565b5b6000610137848285016100fe565b91505092915050565b60805160601c610e18610165600039600081816102d4015261055f0152610e186000f3fe6080604052600436106100745760003560e01c8063741bef1a1161004e578063741bef1a1461010c578063b60d428814610137578063dba6335f14610141578063dc0d3dff1461016c57610083565b80633ccfd60b1461008d5780633e47d6f3146100a45780636b69a592146100e157610083565b36610083576100816101a9565b005b61008b6101a9565b005b34801561009957600080fd5b506100a26102d2565b005b3480156100b057600080fd5b506100cb60048036038101906100c691906107a6565b610512565b6040516100d891906107ec565b60405180910390f35b3480156100ed57600080fd5b506100f661052a565b60405161010391906107ec565b60405180910390f35b34801561011857600080fd5b50610121610537565b60405161012e9190610866565b60405180910390f35b61013f6101a9565b005b34801561014d57600080fd5b5061015661055d565b6040516101639190610890565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e91906108d7565b610581565b6040516101a09190610890565b60405180910390f35b6802b5e3af16b18800006101e8600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346105c090919063ffffffff16565b1015610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610961565b60405180910390fd5b6000339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610357576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b60008054905081101561040257600080828154811061037c5761037b610981565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505080806103fa906109df565b91505061035a565b50600067ffffffffffffffff81111561041e5761041d610a28565b5b60405190808252806020026020018201604052801561044c5781602001602082028036833780820191505090505b506000908051906020019061046292919061069c565b5060003373ffffffffffffffffffffffffffffffffffffffff164760405161048990610a88565b60006040518083038185875af1925050503d80600081146104c6576040519150601f19603f3d011682016040523d82523d6000602084013e6104cb565b606091505b505090508061050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610ae9565b60405180910390fd5b50565b60016020528060005260406000206000915090505481565b6802b5e3af16b188000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818154811061059157600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806105cc836105fc565b90506000670de0b6b3a764000085836105e59190610b09565b6105ef9190610b92565b9050809250505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561064557600080fd5b505afa158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610c50565b5050509150506402540be400816106949190610ccb565b915050919050565b828054828255906000526020600020908101928215610715579160200282015b828111156107145782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906106bc565b5b5090506107229190610726565b5090565b5b8082111561073f576000816000905550600101610727565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061077382610748565b9050919050565b61078381610768565b811461078e57600080fd5b50565b6000813590506107a08161077a565b92915050565b6000602082840312156107bc576107bb610743565b5b60006107ca84828501610791565b91505092915050565b6000819050919050565b6107e6816107d3565b82525050565b600060208201905061080160008301846107dd565b92915050565b6000819050919050565b600061082c61082761082284610748565b610807565b610748565b9050919050565b600061083e82610811565b9050919050565b600061085082610833565b9050919050565b61086081610845565b82525050565b600060208201905061087b6000830184610857565b92915050565b61088a81610768565b82525050565b60006020820190506108a56000830184610881565b92915050565b6108b4816107d3565b81146108bf57600080fd5b50565b6000813590506108d1816108ab565b92915050565b6000602082840312156108ed576108ec610743565b5b60006108fb848285016108c2565b91505092915050565b600082825260208201905092915050565b7f4469646e27742073656e6420656e6f7567680000000000000000000000000000600082015250565b600061094b601283610904565b915061095682610915565b602082019050919050565b6000602082019050818103600083015261097a8161093e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006109ea826107d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610a1d57610a1c6109b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081905092915050565b50565b6000610a72600083610a57565b9150610a7d82610a62565b600082019050919050565b6000610a9382610a65565b9150819050919050565b7f43616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b6000610ad3600b83610904565b9150610ade82610a9d565b602082019050919050565b60006020820190508181036000830152610b0281610ac6565b9050919050565b6000610b14826107d3565b9150610b1f836107d3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b5857610b576109b0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b9d826107d3565b9150610ba8836107d3565b925082610bb857610bb7610b63565b5b828204905092915050565b600069ffffffffffffffffffff82169050919050565b610be281610bc3565b8114610bed57600080fd5b50565b600081519050610bff81610bd9565b92915050565b6000819050919050565b610c1881610c05565b8114610c2357600080fd5b50565b600081519050610c3581610c0f565b92915050565b600081519050610c4a816108ab565b92915050565b600080600080600060a08688031215610c6c57610c6b610743565b5b6000610c7a88828901610bf0565b9550506020610c8b88828901610c26565b9450506040610c9c88828901610c3b565b9350506060610cad88828901610c3b565b9250506080610cbe88828901610bf0565b9150509295509295909350565b6000610cd682610c05565b9150610ce183610c05565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482116000841360008413161615610d2057610d1f6109b0565b5b817f80000000000000000000000000000000000000000000000000000000000000000583126000841260008413161615610d5d57610d5c6109b0565b5b827f80000000000000000000000000000000000000000000000000000000000000000582126000841360008412161615610d9a57610d996109b0565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0582126000841260008412161615610dd757610dd66109b0565b5b82820290509291505056fea2646970667358221220f4c39e4263afc6b8450dc3ccbf79b9f8d5f02c5fad9e76c978d0d45f6c7833df64736f6c63430008080033",
"deployedBytecode": "0x6080604052600436106100745760003560e01c8063741bef1a1161004e578063741bef1a1461010c578063b60d428814610137578063dba6335f14610141578063dc0d3dff1461016c57610083565b80633ccfd60b1461008d5780633e47d6f3146100a45780636b69a592146100e157610083565b36610083576100816101a9565b005b61008b6101a9565b005b34801561009957600080fd5b506100a26102d2565b005b3480156100b057600080fd5b506100cb60048036038101906100c691906107a6565b610512565b6040516100d891906107ec565b60405180910390f35b3480156100ed57600080fd5b506100f661052a565b60405161010391906107ec565b60405180910390f35b34801561011857600080fd5b50610121610537565b60405161012e9190610866565b60405180910390f35b61013f6101a9565b005b34801561014d57600080fd5b5061015661055d565b6040516101639190610890565b60405180910390f35b34801561017857600080fd5b50610193600480360381019061018e91906108d7565b610581565b6040516101a09190610890565b60405180910390f35b6802b5e3af16b18800006101e8600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346105c090919063ffffffff16565b1015610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610961565b60405180910390fd5b6000339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610357576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b60008054905081101561040257600080828154811061037c5761037b610981565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505080806103fa906109df565b91505061035a565b50600067ffffffffffffffff81111561041e5761041d610a28565b5b60405190808252806020026020018201604052801561044c5781602001602082028036833780820191505090505b506000908051906020019061046292919061069c565b5060003373ffffffffffffffffffffffffffffffffffffffff164760405161048990610a88565b60006040518083038185875af1925050503d80600081146104c6576040519150601f19603f3d011682016040523d82523d6000602084013e6104cb565b606091505b505090508061050f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050690610ae9565b60405180910390fd5b50565b60016020528060005260406000206000915090505481565b6802b5e3af16b188000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818154811061059157600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806105cc836105fc565b90506000670de0b6b3a764000085836105e59190610b09565b6105ef9190610b92565b9050809250505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561064557600080fd5b505afa158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610c50565b5050509150506402540be400816106949190610ccb565b915050919050565b828054828255906000526020600020908101928215610715579160200282015b828111156107145782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906106bc565b5b5090506107229190610726565b5090565b5b8082111561073f576000816000905550600101610727565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061077382610748565b9050919050565b61078381610768565b811461078e57600080fd5b50565b6000813590506107a08161077a565b92915050565b6000602082840312156107bc576107bb610743565b5b60006107ca84828501610791565b91505092915050565b6000819050919050565b6107e6816107d3565b82525050565b600060208201905061080160008301846107dd565b92915050565b6000819050919050565b600061082c61082761082284610748565b610807565b610748565b9050919050565b600061083e82610811565b9050919050565b600061085082610833565b9050919050565b61086081610845565b82525050565b600060208201905061087b6000830184610857565b92915050565b61088a81610768565b82525050565b60006020820190506108a56000830184610881565b92915050565b6108b4816107d3565b81146108bf57600080fd5b50565b6000813590506108d1816108ab565b92915050565b6000602082840312156108ed576108ec610743565b5b60006108fb848285016108c2565b91505092915050565b600082825260208201905092915050565b7f4469646e27742073656e6420656e6f7567680000000000000000000000000000600082015250565b600061094b601283610904565b915061095682610915565b602082019050919050565b6000602082019050818103600083015261097a8161093e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006109ea826107d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610a1d57610a1c6109b0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081905092915050565b50565b6000610a72600083610a57565b9150610a7d82610a62565b600082019050919050565b6000610a9382610a65565b9150819050919050565b7f43616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b6000610ad3600b83610904565b9150610ade82610a9d565b602082019050919050565b60006020820190508181036000830152610b0281610ac6565b9050919050565b6000610b14826107d3565b9150610b1f836107d3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b5857610b576109b0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b9d826107d3565b9150610ba8836107d3565b925082610bb857610bb7610b63565b5b828204905092915050565b600069ffffffffffffffffffff82169050919050565b610be281610bc3565b8114610bed57600080fd5b50565b600081519050610bff81610bd9565b92915050565b6000819050919050565b610c1881610c05565b8114610c2357600080fd5b50565b600081519050610c3581610c0f565b92915050565b600081519050610c4a816108ab565b92915050565b600080600080600060a08688031215610c6c57610c6b610743565b5b6000610c7a88828901610bf0565b9550506020610c8b88828901610c26565b9450506040610c9c88828901610c3b565b9350506060610cad88828901610c3b565b9250506080610cbe88828901610bf0565b9150509295509295909350565b6000610cd682610c05565b9150610ce183610c05565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482116000841360008413161615610d2057610d1f6109b0565b5b817f80000000000000000000000000000000000000000000000000000000000000000583126000841260008413161615610d5d57610d5c6109b0565b5b827f80000000000000000000000000000000000000000000000000000000000000000582126000841360008412161615610d9a57610d996109b0565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0582126000841260008412161615610dd757610dd66109b0565b5b82820290509291505056fea2646970667358221220f4c39e4263afc6b8450dc3ccbf79b9f8d5f02c5fad9e76c978d0d45f6c7833df64736f6c63430008080033",
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 61,
"contract": "contracts/FundMe.sol:FundMe",
"label": "funders",
"offset": 0,
"slot": "0",
"type": "t_array(t_address)dyn_storage"
},
{
"astId": 65,
"contract": "contracts/FundMe.sol:FundMe",
"label": "addressToAmountFunded",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 70,
"contract": "contracts/FundMe.sol:FundMe",
"label": "priceFeed",
"offset": 0,
"slot": "2",
"type": "t_contract(AggregatorV3Interface)45"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_address)dyn_storage": {
"base": "t_address",
"encoding": "dynamic_array",
"label": "address[]",
"numberOfBytes": "32"
},
"t_contract(AggregatorV3Interface)45": {
"encoding": "inplace",
"label": "contract AggregatorV3Interface",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
}
}