Faucet Smart Contract Tutorial | Solidity Tutorial

  Рет қаралды 14,053

Block Explorer

Block Explorer

Жыл бұрын

In this faucet smart contract tutorial we build a faucet smart contract to give away ERC20 tokens on Ethereum to anyone who requests them. Topics covered in this video include Solidity interfaces, events, working with time and sending and receiving tokens.
Project repo:
github.com/jspruance/erc20-tu...
Goerli testnet faucet:
goerlifaucet.com/
Install MetaMask:
metamask.io/
Remix IDE:
remix.ethereum.org/

Пікірлер: 46
@riyadhalkhanin8484
@riyadhalkhanin8484 Жыл бұрын
Thanks, dude! I'm working on my graduation project and you helped me so much
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
That's awesome! Glad it was helpful.
@alexeitarasov1920
@alexeitarasov1920 Ай бұрын
Super useful videos! Thanks for sharing them with us!
@adamoc
@adamoc Жыл бұрын
Excellent video, thanks 👍🏼
@thocodeditrade
@thocodeditrade Жыл бұрын
thank you so much, it is so helpful for my
@user-yg1su9dr1x
@user-yg1su9dr1x Жыл бұрын
Great content , thanks for sharing
@baselkelziye4552
@baselkelziye4552 Жыл бұрын
keep on the great content!
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
Thanks!
@jims7089
@jims7089 Жыл бұрын
Another very informative video! Is there any chance you can create future content that focuses on emit/event/indexed? Also, there was a typo on line 5 of the deploy file so I was expecting an error to be thrown but it worked ok. Was the line skipped?
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
I'll add that to my list of videos to make. I think I fixed it off screen since it was a spelling mistake that other people probably didn't make. Good catch! : )
@zakisiddiqui9527
@zakisiddiqui9527 Жыл бұрын
Thanks for this great and helpful video...I request you to make videos on building DeFi applications pls...thanks again
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
I will be doing some DeFi videos soon. Thanks!
@dekonfrost7
@dekonfrost7 4 ай бұрын
You are a smart guy.i wished i could take you to lunch.
@kpxiong3377
@kpxiong3377 Жыл бұрын
Thank you....!!!!!
@gooblio
@gooblio Жыл бұрын
I think you might have a reentrancy attack opening on your faucet and all the tokens could be drained from the balance. Maybe not a big deal, because it would only take what you put in???
@bestzenyatta3362
@bestzenyatta3362 Жыл бұрын
thanks alot man
@f_ftactics7928
@f_ftactics7928 Жыл бұрын
do you prefer truffle or hardhat? I think you have tutorials for both.
@sukiratwarring6219
@sukiratwarring6219 Жыл бұрын
Interesting!
@daniel7007
@daniel7007 Жыл бұрын
Awesome! Could u pls make a video about vault smart contract with some advanced features
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
Sure. I was thinking about something like that - a treasury or vault contract. Putting it on my list of videos to make - thanks for the suggestion.
@daniel7007
@daniel7007 Жыл бұрын
@@BlockExplorerMedia appreciate🙏
@Imperial_Dynamics
@Imperial_Dynamics Жыл бұрын
question please: Is there any difference in Solidity between 10**18 and 1e18 ?
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
They are the same.
@irakli4797
@irakli4797 Жыл бұрын
Hey, I have deployed Token contract and Faucet contract on mumbai. When I check my address it's says I have deployed Token contract but Faucet contract is missing. on remix When I paste Faucet contract and code. Functions gives correct outputs, but I cant transfer OCT token to Faucet contract. metamask is failing transactions. any solution
@adityasingh11156
@adityasingh11156 Жыл бұрын
​ @Block Explorer What is need of inerface IERC20 here I don't understand, We are niether inheritng it nor implenting their functions transfer and balanceOf ?
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
hey Aditya, the reason the interface is needed here is to communicate with other smart contracts. the pattern is to define an interface including the methods being used on the external smart contract and then instantiate a local instance of that contract by passing in the address of that contract (see line ~27 in the constructor - 'token = IERC20(tokenAddress);'). then we can call methods on that remote contract via our local instance such as 'token.transfer' (line 47) and 'token.balanceOf' (line 55). there we are interacting with the remote token smart contract, from our smart contract. does that help clarify?
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
Oh and basically the reason it's needed is so that the compiler knows what those methods on the remote contract looks like (input, output, return value, etc) since it has no way of knowing otherwise at compile time.
@adityasingh11156
@adityasingh11156 Жыл бұрын
@@BlockExplorerMedia Ok Thanks 😊 Now I understand.
@thinkingmad1685
@thinkingmad1685 Жыл бұрын
@@BlockExplorerMedia hey is this IERC20 interface which is written in this local smart contract different from the openzeppelin one ? or they work same once the token variable is instantiated i m getting confused in that
@lucifer2416
@lucifer2416 Жыл бұрын
Hi about your previous video about AWS serverless Web application i done all post,get,patch but only delete is showing 502 internal server error what should I do
@lucifer2416
@lucifer2416 Жыл бұрын
Execution log for request e34860bf-0f0e-456f-abf7-4f83a5b454ad Thu Sep 15 06:14:36 UTC 2022 : Starting execution for request: e34860bf-0f0e-456f-abf7-4f83a5b454ad Thu Sep 15 06:14:36 UTC 2022 : HTTP Method: DELETE, Resource Path: /products/-id Thu Sep 15 06:14:36 UTC 2022 : Method request path: {} Thu Sep 15 06:14:36 UTC 2022 : Method request query string: {} Thu Sep 15 06:14:36 UTC 2022 : Method request headers: {"Content-Type"="application/json"} Thu Sep 15 06:14:36 UTC 2022 : Method request body before transformations: Thu Sep 15 06:14:36 UTC 2022 : Request validation succeeded for content type application/json Thu Sep 15 06:14:36 UTC 2022 : Endpoint request URI: lambda.ap-south-1.amazonaws.com/2015-03-31/functions/arn:aws:lambda:ap-south-1:628942436337:function:hexaldelete/invocations Thu Sep 15 06:14:36 UTC 2022 : Endpoint request headers: {X-Amz-Date=20220915T061436Z, x-amzn-apigateway-api-id=04rn5os185, Accept=application/json, User-Agent=AmazonAPIGateway_04rn5os185, Host=lambda.ap-south-1.amazonaws.com, X-Amz-Content-Sha256=d1633ffa0a94a6f97e61e364580cb4e929d57bb498e3fb2f45e8132a0f9f0f13, X-Amzn-Trace-Id=Root=1-6322c2cc-9e58ffc793b3a4897f4ac801, x-amzn-lambda-integration-tag=e34860bf-0f0e-456f-abf7-4f83a5b454ad, Authorization=**********************************************************************************************************************************************************************************************************************************************************************************************************************************************0fcf9c, X-Amz-Source-Arn=arn:aws:execute-api:ap-south-1:628942436337:04rn5os185/test-invoke-stage/DELETE/products/-id, X-Amz-Security-Token=IQoJb3JpZ2luX2VjEDUaCmFwLXNvdXRoLTEiRzBFAiBNI6sDFnw5zpxwM1PQ0+Y16Ij34Bdypj8j8Tt5ce/zMwIhAInVpklx3FeV6ATpx2LUWU8xLLBqRAHSBRTBCct [TRUNCATED] Thu Sep 15 06:14:36 UTC 2022 : Endpoint request body after transformations: {"resource":"/products/-id","path":"/products/-id","httpMethod":"DELETE","headers":{"\"Content-Type\"":"\"application/json\""},"multiValueHeaders":{"\"Content-Type\"":["\"application/json\""]},"queryStringParameters":null,"multiValueQueryStringParameters":null,"pathParameters":null,"stageVariables":null,"requestContext":{"resourceId":"shm2so","resourcePath":"/products/-id","httpMethod":"DELETE","extendedRequestId":"YfNf9GD7BcwFT4w=","requestTime":"15/Sep/2022:06:14:36 +0000","path":"/products/-id","accountId":"628942436337","protocol":"HTTP/1.1","stage":"test-invoke-stage","domainPrefix":"testPrefix","requestTimeEpoch":1663222476391,"requestId":"e34860bf-0f0e-456f-abf7-4f83a5b454ad","identity":{"cognitoIdentityPoolId":null,"cognitoIdentityId":null,"apiKey":"test-invoke-api-key","principalOrgId":null,"cognitoAuthenticationType":null,"userArn":"arn:aws:iam::628942436337:root","apiKeyId":"test-invoke-api-key-id","userAgent":"aws-internal/3 aws-sdk-java/1.12.239 Linux/ [TRUNCATED] Thu Sep 15 06:14:36 UTC 2022 : Sending request to lambda.ap-south-1.amazonaws.com/2015-03-31/functions/arn:aws:lambda:ap-south-1:628942436337:function:hexaldelete/invocations Thu Sep 15 06:14:36 UTC 2022 : Received response. Status: 200, Integration latency: 40 ms Thu Sep 15 06:14:36 UTC 2022 : Endpoint response headers: {Date=Thu, 15 Sep 2022 06:14:36 GMT, Content-Type=application/json, Content-Length=353, Connection=keep-alive, x-amzn-RequestId=d2d56d25-84ab-4487-b78c-3fdb9b5e60d9, X-Amz-Function-Error=Unhandled, x-amzn-Remapped-Content-Length=0, X-Amz-Executed-Version=$LATEST, X-Amzn-Trace-Id=root=1-6322c2cc-9e58ffc793b3a4897f4ac801;sampled=0} Thu Sep 15 06:14:36 UTC 2022 : Endpoint response body before transformations: {"errorType":"TypeError","errorMessage":"Cannot destructure property 'id' of 'event.pathParameters' as it is null.","trace":["TypeError: Cannot destructure property 'id' of 'event.pathParameters' as it is null."," at Runtime.exports.handler (/var/task/index.js:10:11)"," at Runtime.handleOnceNonStreaming (file:///var/runtime/index.mjs:1028:29)"]} Thu Sep 15 06:14:36 UTC 2022 : Lambda execution failed with status 200 due to customer function error: Cannot destructure property 'id' of 'event.pathParameters' as it is null.. Lambda request id: d2d56d25-84ab-4487-b78c-3fdb9b5e60d9 Thu Sep 15 06:14:36 UTC 2022 : Method completed with status: 502
@lucifer2416
@lucifer2416 Жыл бұрын
What should I do
@aurobindonayak7128
@aurobindonayak7128 Жыл бұрын
Iam also facing same problem please solve it!!
@lucifer2416
@lucifer2416 Жыл бұрын
kzfaq.info/get/bejne/rrCmmcaYnsq7ZIk.html
@lucifer2416
@lucifer2416 Жыл бұрын
About that video
@josephdelgiorgio3997
@josephdelgiorgio3997 Жыл бұрын
or just delete my comment instead of help, that works 2 haha
@josephdelgiorgio3997
@josephdelgiorgio3997 Жыл бұрын
no worries, I figured it out
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
hey Joseph! I only delete spam or offensive comments. Did I miss something? : )
@josephdelgiorgio3997
@josephdelgiorgio3997 Жыл бұрын
@@BlockExplorerMedia haha its ok! I posted help a comment with an error message that easily could've looked like spam. I appreciate your videos they are very helpful as im teaching myself via KZfaq.
@josephdelgiorgio3997
@josephdelgiorgio3997 Жыл бұрын
*posted a help comment
@BlockExplorerMedia
@BlockExplorerMedia Жыл бұрын
Oh sorry about that!! I promise it wasn't intentional. If you ever have a question that doesn't get answered feel free to ping me directly. I try to get to as many as possible! Thanks for your support.
Web3 Tutorial Project | Build a Faucet dApp with Ethersjs & Reactjs
47:22
How to Become a Blockchain Developer
25:33
Block Explorer
Рет қаралды 52 М.
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 35 МЛН
КАКОЙ ВАШ ЛЮБИМЫЙ ЦВЕТ?😍 #game #shorts
00:17
Poopigirl
Рет қаралды 11 МЛН
Countries Treat the Heart of Palestine #countryballs
00:13
CountryZ
Рет қаралды 17 МЛН
Create Your First Ethereum Smart Contract
9:24
EatTheBlocks
Рет қаралды 8 М.
5 Interview Questions You Must know as a Backend Developer
44:30
Mehul - Codedamn
Рет қаралды 75 М.
Free Linkedin profile review
TrainWithShubham
Рет қаралды 87
Access Control | Smart Contract Security Tutorial Part 1
10:09
Block Explorer
Рет қаралды 8 М.
i love you subscriber ♥️ #iphone #iphonefold #shortvideo
0:14
Si pamerR
Рет қаралды 1,7 МЛН
keren sih #iphone #apple
0:16
Muhammad Arsyad
Рет қаралды 789 М.
How much charging is in your phone right now? 📱➡️ 🔋VS 🪫
0:11
5 НЕЛЕГАЛЬНЫХ гаджетов, за которые вас посадят
0:59
Кибер Андерсон
Рет қаралды 1,5 МЛН
ПК с Авито за 3000р
0:58
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 2 МЛН