Skip to content

Commit

Permalink
Use solidity to crete urn
Browse files Browse the repository at this point in the history
  • Loading branch information
sunbreak1211 committed Dec 8, 2023
1 parent 5cda4c3 commit d3e4a6b
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions src/LockstakeEngine.sol
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,8 @@ contract LockstakeEngine {
// --- urn/delegation functions ---

function open() external returns (address urn) {
uint256 salt = uint256(keccak256(abi.encode(msg.sender, usrAmts[msg.sender]++)));
bytes memory code = abi.encodePacked(type(LockstakeUrn).creationCode, abi.encode(vat, stkGov));
assembly {
urn := create2(0, add(code, 0x20), mload(code), salt)
}
bytes32 salt = keccak256(abi.encode(msg.sender, usrAmts[msg.sender]++));
urn = address(new LockstakeUrn{salt: salt}(address(vat), address(stkGov)));
require(urn != address(0), "LockstakeEngine/urn-creation-failed");
urnOwners[urn] = msg.sender;
emit Open(msg.sender, urn);
Expand Down

0 comments on commit d3e4a6b

Please sign in to comment.