Skip to content

Commit e2c5e03

Browse files
committed
revert changes to utils
1 parent 8bb51e5 commit e2c5e03

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

packages/protocol-deployments/src/DeploymentTestingUtils.sol

+28-14
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,33 @@ pragma solidity ^0.8.13;
33

44
import "forge-std/Script.sol";
55
import {IMinter1155} from "@zoralabs/zora-1155-contracts/src/interfaces/IMinter1155.sol";
6+
import {IZoraCreator1155PremintExecutor} from "@zoralabs/zora-1155-contracts/src/interfaces/IZoraCreator1155PremintExecutor.sol";
67
import {ZoraCreator1155PremintExecutorImpl} from "@zoralabs/zora-1155-contracts/src/delegation/ZoraCreator1155PremintExecutorImpl.sol";
78
import {ZoraCreator1155FactoryImpl} from "@zoralabs/zora-1155-contracts/src/factory/ZoraCreator1155FactoryImpl.sol";
8-
import {ZoraCreator1155Attribution, ContractCreationConfig, PremintConfig, TokenCreationConfig} from "@zoralabs/zora-1155-contracts/src/delegation/ZoraCreator1155Attribution.sol";
9+
import {ZoraCreator1155Attribution, ContractCreationConfig, PremintConfigV2, TokenCreationConfigV2} from "@zoralabs/zora-1155-contracts/src/delegation/ZoraCreator1155Attribution.sol";
910
import {ZoraCreator1155Impl} from "@zoralabs/zora-1155-contracts/src/nft/ZoraCreator1155Impl.sol";
1011

1112
contract DeploymentTestingUtils is Script {
12-
function signAndExecutePremint(address premintExecutorProxyAddress) internal {
13+
function signAndExecutePremint(address premintExecutorProxyAddress, address payoutRecipient) internal {
1314
console2.log("preminter proxy", premintExecutorProxyAddress);
1415

1516
(address creator, uint256 creatorPrivateKey) = makeAddrAndKey("creator");
16-
ZoraCreator1155PremintExecutorImpl preminterAtProxy = ZoraCreator1155PremintExecutorImpl(premintExecutorProxyAddress);
17+
IZoraCreator1155PremintExecutor preminterAtProxy = IZoraCreator1155PremintExecutor(premintExecutorProxyAddress);
1718

1819
IMinter1155 fixedPriceMinter = ZoraCreator1155FactoryImpl(address(preminterAtProxy.zora1155Factory())).fixedPriceMinter();
1920

20-
PremintConfig memory premintConfig = PremintConfig({
21-
tokenConfig: TokenCreationConfig({
21+
PremintConfigV2 memory premintConfig = PremintConfigV2({
22+
tokenConfig: TokenCreationConfigV2({
2223
tokenURI: "blah.token",
2324
maxSupply: 10,
2425
maxTokensPerAddress: 5,
2526
pricePerToken: 0,
2627
mintStart: 0,
2728
mintDuration: 0,
28-
royaltyMintSchedule: 0,
2929
royaltyBPS: 100,
30-
royaltyRecipient: creator,
31-
fixedPriceMinter: address(fixedPriceMinter)
30+
payoutRecipient: payoutRecipient,
31+
fixedPriceMinter: address(fixedPriceMinter),
32+
createReferral: address(0)
3233
}),
3334
uid: 100,
3435
version: 0,
@@ -39,18 +40,31 @@ contract DeploymentTestingUtils is Script {
3940
ContractCreationConfig memory contractConfig = ContractCreationConfig({contractAdmin: creator, contractName: "blah", contractURI: "blah.contract"});
4041
address deterministicAddress = preminterAtProxy.getContractAddress(contractConfig);
4142

42-
// sign the premint
43-
bytes32 digest = ZoraCreator1155Attribution.premintHashedTypeDataV4(premintConfig, deterministicAddress, block.chainid);
43+
uint256 quantityToMint = 1;
4444

45-
(uint8 v, bytes32 r, bytes32 s) = vm.sign(creatorPrivateKey, digest);
45+
address mintRecipient = creator;
4646

47-
uint256 quantityToMint = 1;
47+
IZoraCreator1155PremintExecutor.MintArguments memory mintArguments = IZoraCreator1155PremintExecutor.MintArguments({
48+
mintRecipient: mintRecipient,
49+
mintComment: "",
50+
mintReferral: address(0)
51+
});
4852

49-
bytes memory signature = abi.encodePacked(r, s, v);
53+
bytes memory signature = signPremint(premintConfig, deterministicAddress, creatorPrivateKey);
5054

5155
// execute the premint
52-
uint256 tokenId = preminterAtProxy.premint{value: 0.000777 ether}(contractConfig, premintConfig, signature, quantityToMint, "");
56+
uint256 tokenId = preminterAtProxy.premintV2{value: 0.000777 ether}(contractConfig, premintConfig, signature, quantityToMint, mintArguments).tokenId;
5357

5458
require(ZoraCreator1155Impl(deterministicAddress).delegatedTokenId(premintConfig.uid) == tokenId, "token id not created for uid");
5559
}
60+
61+
function signPremint(PremintConfigV2 memory premintConfig, address deterministicAddress, uint256 privateKey) private view returns (bytes memory signature) {
62+
bytes32 signatureVersion = ZoraCreator1155Attribution.HASHED_VERSION_2;
63+
bytes32 structHash = ZoraCreator1155Attribution.hashPremint(premintConfig);
64+
// sign the premint
65+
bytes32 digest = ZoraCreator1155Attribution.premintHashedTypeDataV4(structHash, deterministicAddress, signatureVersion, block.chainid);
66+
67+
(uint8 v, bytes32 r, bytes32 s) = vm.sign(privateKey, digest);
68+
return abi.encodePacked(r, s, v);
69+
}
5670
}

0 commit comments

Comments
 (0)