Before watching the video, I already knew about the issues you were going to have with the BuggyProxy contract. But you explained it so simply that I still feel like I learned something. Thanks, really informative.
Hi! I love your videos and am learning a lot from them. Can you explain if possible what is the purpose behind setting interface of CountV1 at the address of the proxy at 6:09?
So I followed along with my remix, and ran inc and saw that the implementation address had 1 added to it. Then I ran inc a second time and expected it to go up by 1 again. It did not! I was boggled until I understood what's going on. There's no contract at that address + 1, so something is failing internally, even though the transaction seems to have gone through with no problem.
I learned a lot with your videos, thx! I just didn't understand why you need to implement the receive function since it will be called only when msg.data is empty.
Hi :) Thanks for nice video! I am curious, doesn't it the Proxy keep the state, not the implementation contract? Actually, this is the benefit when just upgrading the implementation, you gonna still have the memory (data) from all the funds/transactions/etc. ?
proxy keeps the state, implementation executes the code. Proxy is like the database that stores data. Implementation is like the web app that executes code
@@smartcontractprogrammer yeah, that is what I know, but why then the admin and the implementation addresses are instantiated in the Counter V1 and V2? I thought that somehow the V1 and V2 add to the state of the Proxy somehow. However, it will most likely clear out when see the other parts of the proxies.
@@smartcontractprogrammer okay. Thank you for your response. Please if you can kindly recommend Any material to point me in the right direction about how to go about it? I would deeply appreciate.
I know that maybe it's asking too much, but it would be perfect if you did tutorials on Substrate(Ink!), or CosmWasm in Rust in the future. I do not know in all UA-cam or any site in general that explains things better than you
Before watching the video, I already knew about the issues you were going to have with the BuggyProxy contract. But you explained it so simply that I still feel like I learned something. Thanks, really informative.
0:00 - Intro
1:15 - Code proxy contract (wrong way)
5:09 - Deploy the contracts
8:19 - Summary
Code
solidity-by-example.org/app/upgradeable-proxy/
OpenZeppelin Implementation
github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/transparent/TransparentUpgradeableProxy.sol
Take a course
www.smartcontract.engineer/
can't wait to watch the upcoming video.😁
Thank you so much. I literally wanted to learn about this topic.
Hi! I love your videos and am learning a lot from them. Can you explain if possible what is the purpose behind setting interface of CountV1 at the address of the proxy at 6:09?
So I followed along with my remix, and ran inc and saw that the implementation address had 1 added to it. Then I ran inc a second time and expected it to go up by 1 again. It did not! I was boggled until I understood what's going on. There's no contract at that address + 1, so something is failing internally, even though the transaction seems to have gone through with no problem.
I love this. Same case here😅
Amazing! Thanks
I learned a lot with your videos, thx! I just didn't understand why you need to implement the receive function since it will be called only when msg.data is empty.
implementation contract may contain some code inside receive()
I want to learn smart contract development.Thanku brother😘
Hi :) Thanks for nice video!
I am curious, doesn't it the Proxy keep the state, not the implementation contract? Actually, this is the benefit when just upgrading the implementation, you gonna still have the memory (data) from all the funds/transactions/etc. ?
proxy keeps the state, implementation executes the code.
Proxy is like the database that stores data.
Implementation is like the web app that executes code
@@smartcontractprogrammer yeah, that is what I know, but why then the admin and the implementation addresses are instantiated in the Counter V1 and V2? I thought that somehow the V1 and V2 add to the state of the Proxy somehow.
However, it will most likely clear out when see the other parts of the proxies.
Great content! Are you planning to make a video about diamond pattern?
Sure once I get a chance to use or review code using a diamond pattern
Nice!
Love u bro
@Smartcontract Programmer, Can you pls show how to implement proxy algorithmic stablecoin
no that's too broad topic
@@smartcontractprogrammer okay. Thank you for your response.
Please if you can kindly recommend Any material to point me in the right direction about how to go about it?
I would deeply appreciate.
I know that maybe it's asking too much, but it would be perfect if you did tutorials on Substrate(Ink!), or CosmWasm in Rust in the future. I do not know in all UA-cam or any site in general that explains things better than you
I might make videos on CosmWasm