Closed PaulRBerg closed 1 year ago
Given that we fixed the proxy abstraction with SablierV2ProxyTargetPush
, can we close this issue? @PaulRBerg
No, @andreivladbrg. We still want to implement this contract to make the integration easier for those users not interested in the proxy architecture (or for whom the proxy deployment would be a chore).
Ok, should it be a push system or a classic pull?
What license should it have?
It has to be a classic pull because the batch contract would be the same contract for all users. The push model works only when the user is in control of the contract (as is the case with PRBProxies).
The license: GPL-3.0-or-later
.
The push model works only when the user is in control of the contract
Yeah, wanted to make sure in case I was missing something out.
I currently wrote the following implementation: https://github.com/sablier-labs/v2-periphery/tree/feat/batch-create
I feel the naming might be a bit repetitive(contract + functions). Especially when:
I was thinking of renaming all functions and contract name like this but I think it would be misleading:
SablierV2BatchCreate
-> SablierV2Batch
batchCreateWithDeltas
-> createWithDeltas
batchCreateWithDurations
-> createWithDurations
batchCreateWithMilestones
-> createWithMilestones
batchCreateWithRange
-> createWithRange
@PaulRBerg What do you think? Should we keep it as it is, or do you have better suggestions?
SablierV2Batch
is cool.
And removing the batch
prefix from all those functions is cool, too.
Problem
As discussed here, it is not possible to abstract away the proxy deployment in the UI because the proxy owner is an immutable variable in PRBProxy:
https://github.com/PaulRBerg/prb-proxy/blob/84ae9671d64023c0c21316392e11e33a2eaa2511/src/PRBProxy.sol#L27
Immutable variables don't exist during construction, so any attempt to read the owner when using
deployAndExecute
will revert.Solution
Implement a contract that can batch-create streams without relying on the proxy.