BRUH!!!!! I learned more from your crew than hundreds of tutorial videos!!! I thought I was going crazy trying to figure out the proxy feature then I watched this video! THANK YOU FOR THE THEORY - IT PROVIDED SO MUCH VALUE!!!
What if you use a Clones factory to deploy the upgradeable ERC20 contract? Will UUPS still be enabled on that deployed ERC20Upgradeable contract even though I didn't use the {kind: 'UUPS'} option when using the deployProxy helper?
Why should transparent proxy check for admin privs on every call? If we place upgradeTo function on proxy, we have to check privs on this function call only. And we can forward all other function calls to implementation without check. So the only problem is that implementation can't have function named upgradeTo.
I am just learning this so this is a guess - I think the actual reason might be that the transparent proxy doesn't check for admin privs, but needs to check if the function being called is defined before using the fallback and delegating. If the only function in the proxy is the fallback I guess this check is cheaper.
Great video. I love the openzeppelin libraries. Im learning solidity for a couple of month now and im still having problems understanding when reading from storage costs gas? I build a web3 dapp and im reading state variables constantly and it doesnt cost eth. Also i deployed some training contracts via remix and reading never costs gas. But i saw some other videos on omptimzing gas cost and the example was for reading state variables. So maybe some one can clarify this topic for me.
if your function alters the state, calling other functions taht only read the state (view) or that only operates over its parameters (pure), cost gas, the gas is billed based on the amount of code that is executed in functions that alter state I hope I was clear enough, explaining is not my best skill jajaja
it doesnt cost eth if you ONLY read smart contracts (without triggering a transaction), however if you create a transaction, every read (and write) that happens as PART OF that transaction will cost gas.
With UUPS does the proxy itself half to redundantly inherit most of the admin / upgrade features now passed to the implementation, or does it suffice to just include the simple fallback (and impl slot)?
Could you change the variable storage via assembly and place it in the next storage slot, probably not ideal and easier to just not change the storage slots? But curious.
So if I were wanting to add a proxy to Mars V1 before you upgraded into V2 would I have to deploy the proxy first and then change the ownership of Mars V1 to the proxy using the ownable package? From there all other forms of interacting with Mars Vx would be through the proxy as it would inherit the functions of Mars Vx or would the proxy have its own separate set of functions set up to give it that interaction ?
BRUH!!!!! I learned more from your crew than hundreds of tutorial videos!!! I thought I was going crazy trying to figure out the proxy feature then I watched this video! THANK YOU FOR THE THEORY - IT PROVIDED SO MUCH VALUE!!!
word!
Great job explaining a complicated setup. Only person so far i have come across that was able to explain this well. Thanks!
beast of beasts, the one and only frangio.
Came here for the theory, it was what made it all clicked. Thanks.
Amazing content as always. Used the UUPS pattern to upgrade contracts and it's great to have the implementations verified on Etherscan..
hey please share your editor setup, it looks so clean and elegant
This was really good y'all. Thanks for the insight.
Awesome, thank you!
Great video thanks Francisco!
Wonderful video
It was fantastic , thank you!
Great video
Amazing! Thx a ton!
thank you for sharing
You are the best. Regards
What if you use a Clones factory to deploy the upgradeable ERC20 contract? Will UUPS still be enabled on that deployed ERC20Upgradeable contract even though I didn't use the {kind: 'UUPS'} option when using the deployProxy helper?
Why should transparent proxy check for admin privs on every call? If we place upgradeTo function on proxy, we have to check privs on this function call only. And we can forward all other function calls to implementation without check. So the only problem is that implementation can't have function named upgradeTo.
I am just learning this so this is a guess - I think the actual reason might be that the transparent proxy doesn't check for admin privs, but needs to check if the function being called is defined before using the fallback and delegating. If the only function in the proxy is the fallback I guess this check is cheaper.
Great video. I love the openzeppelin libraries. Im learning solidity for a couple of month now and im still having problems understanding when reading from storage costs gas? I build a web3 dapp and im reading state variables constantly and it doesnt cost eth. Also i deployed some training contracts via remix and reading never costs gas. But i saw some other videos on omptimzing gas cost and the example was for reading state variables. So maybe some one can clarify this topic for me.
if your function alters the state, calling other functions taht only read the state (view) or that only operates over its parameters (pure), cost gas, the gas is billed based on the amount of code that is executed in functions that alter state
I hope I was clear enough, explaining is not my best skill jajaja
it doesnt cost eth if you ONLY read smart contracts (without triggering a transaction), however if you create a transaction, every read (and write) that happens as PART OF that transaction will cost gas.
This is amazing..! I love this video, content and the author.!! 🥰 ❣ 💓 ❥ 💑 💜
With UUPS does the proxy itself half to redundantly inherit most of the admin / upgrade features now passed to the implementation, or does it suffice to just include the simple fallback (and impl slot)?
Does it work for BSC token too?
Could you change the variable storage via assembly and place it in the next storage slot, probably not ideal and easier to just not change the storage slots? But curious.
Great tutorial, but how to verify the contract on etherscan?
Hey, can you share the slides?
_authorizeUpgrade() is internal function. So there should be corresponding public or external function which calls _authorizeUpgrade ?
brilliant
How can I use paymentsplitterUpgradeable?
Could you show me?
the question now is how to remove the uups to have the final inmutable contract
How do you do this in remix?
Is there no scaffolding for this project?
So if I were wanting to add a proxy to Mars V1 before you upgraded into V2 would I have to deploy the proxy first and then change the ownership of Mars V1 to the proxy using the ownable package? From there all other forms of interacting with Mars Vx would be through the proxy as it would inherit the functions of Mars Vx or would the proxy have its own separate set of functions set up to give it that interaction ?
May i know is __UUPSUpgradeable_init() required in smart contract initialize()?
where can i find this code?
37:56
i want have your source code, please
Awesome
wow
Awesome