Universal Deployer Contract proposal 🪄

first work in progress implementation of the UDC


:clap: :clap: :clap: :clap: :clap:
exitos !!!

Nice job. I’d argue that it’s just much, much better to have contract deployment functionality built inside the account contract standard. But I guess this is the best we can do right now.

i’m curious, how is it better?

1 Like

I mean for many of us that have been around in the ecosystem for quite a while it doesn’t make much of a difference, but not being able to deploy contracts directly from an account might surprise anyone from say Ethereum.

And this is not even a technical limitation. It’s just artificially left out of the account standard.

While I agree that having a small attack surface is nice, this is gonna be a very very thin wrapper around the syscall so I don’t really see a lot of risk there…

I don’t think that’s the case, you still do it through your account. The user can’t tell whether it’s implemented in the account or an external library/contract.

Consider that all transactions, even the ones targeting the account contract, are built as an external function call.

1 Like

I think the UDC should support deploying accounts at the same address as if the account was deployed using the deploy account transaction that will be introduced in 0.10.1. This would make it possible to sponsor the deployment of accounts without introducing some censorship vector.

See Add deployer preset by martriay · Pull Request #467 · OpenZeppelin/cairo-contracts · GitHub