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?
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.
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.
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 ?
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.
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..
This was really good y'all. Thanks for the insight.
You are the best. Regards
It was fantastic , thank you!
This is amazing..! I love this video, content and the author.!! 🥰 ❣ 💓 ❥ 💑 💜
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?
Awesome, thank you!
Amazing! Thx a ton!
Wonderful video
Great video
Great video thanks Francisco!
hey please share your editor setup, it looks so clean and elegant
thank you for sharing
brilliant
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?
_authorizeUpgrade() is internal function. So there should be corresponding public or external function which calls _authorizeUpgrade ?
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.
Awesome
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.
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()?
How can I use paymentsplitterUpgradeable?
Could you show me?
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.
Is there no scaffolding for this project?
the question now is how to remove the uups to have the final inmutable contract
wow
Great tutorial, but how to verify the contract on etherscan?
How do you do this in remix?
Hey, can you share the slides?
where can i find this code?
i want have your source code, please
37:56
Awesome