@zoralabs/protocol-sdk 0.9.4-PRE.0 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +18 -18
- package/CHANGELOG.md +13 -4
- package/LICENSE +21 -0
- package/dist/anvil.d.ts +2 -2
- package/dist/anvil.d.ts.map +1 -1
- package/dist/apis/http-api-base.d.ts +1 -1
- package/dist/apis/http-api-base.d.ts.map +1 -1
- package/dist/create/mint-from-create.d.ts.map +1 -1
- package/dist/create/minter-defaults.d.ts +3 -1
- package/dist/create/minter-defaults.d.ts.map +1 -1
- package/dist/create/minter-setup.d.ts.map +1 -1
- package/dist/create/token-setup.d.ts +2 -2
- package/dist/create/token-setup.d.ts.map +1 -1
- package/dist/create/types.d.ts +4 -1
- package/dist/create/types.d.ts.map +1 -1
- package/dist/index.cjs +36 -28
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +36 -28
- package/dist/index.js.map +1 -1
- package/dist/mint/subgraph-mint-getter.d.ts.map +1 -1
- package/dist/mint/subgraph-queries.d.ts +2 -0
- package/dist/mint/subgraph-queries.d.ts.map +1 -1
- package/dist/mint/types.d.ts +5 -1
- package/dist/mint/types.d.ts.map +1 -1
- package/package.json +14 -15
- package/src/apis/http-api-base.ts +5 -4
- package/src/create/1155-create-helper.test.ts +40 -58
- package/src/create/1155-create-helper.ts +4 -4
- package/src/create/mint-from-create.ts +0 -1
- package/src/create/minter-defaults.ts +16 -6
- package/src/create/minter-setup.ts +7 -5
- package/src/create/token-setup.ts +7 -10
- package/src/create/types.ts +7 -1
- package/src/mint/mint-client.test.ts +4 -9
- package/src/mint/subgraph-mint-getter.ts +10 -1
- package/src/mint/subgraph-queries.ts +4 -0
- package/src/mint/types.ts +5 -1
- package/.env +0 -1
- package/yarn-error.log +0 -8602
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph-mint-getter.d.ts","sourceRoot":"","sources":["../../src/mint/subgraph-mint-getter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,kBAAkB,EAClB,QAAQ,EAER,8BAA8B,EAE/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAKL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,2BAA2B,YAAa,MAAM,KAAG,aAK7D,CAAC;
|
|
1
|
+
{"version":3,"file":"subgraph-mint-getter.d.ts","sourceRoot":"","sources":["../../src/mint/subgraph-mint-getter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EACL,kBAAkB,EAClB,QAAQ,EAER,8BAA8B,EAE/B,MAAM,SAAS,CAAC;AACjB,OAAO,EAKL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,2BAA2B,YAAa,MAAM,KAAG,aAK7D,CAAC;AAsIF,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,SAAgB,eAAe,EAAE,gBAAgB,CAAC;IAClD,aAAa,EAAE,aAAa,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB;IAMzD,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC;IAIzD,wBAAwB,CAAC,CAAC,EAAE,EAChC,KAAK,EACL,SAAS,EACT,iBAAiB,GAClB,EAAE,cAAc,CAAC,CAAC,CAAC;IAUpB,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CA0B5C;IAEI,mBAAmB,CAAC,EACxB,YAAY,EACZ,iBAAiB,EACjB,SAAS,GACV,EAAE;QACD,YAAY,EAAE,OAAO,CAAC;QACtB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;IAwBK,0BAA0B,CAAC,EAC/B,YAAY,GACb,EAAE;QACD,YAAY,EAAE,OAAO,CAAC;KACvB;;;;CAcF"}
|
|
@@ -43,6 +43,8 @@ export type ZoraTimedMinterSaleStrategyResult = {
|
|
|
43
43
|
pool: Address;
|
|
44
44
|
};
|
|
45
45
|
secondaryActivated: boolean;
|
|
46
|
+
marketCountdown?: string;
|
|
47
|
+
minimumMarketEth?: string;
|
|
46
48
|
};
|
|
47
49
|
};
|
|
48
50
|
export type SalesStrategyResult = FixedPriceSaleStrategyResult | ERC20SaleStrategyResult | PresaleSalesStrategyResult | ZoraTimedMinterSaleStrategyResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph-queries.d.ts","sourceRoot":"","sources":["../../src/mint/subgraph-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,EAAE,EAAE,OAAO,CAAC;YACZ,IAAI,EAAE,OAAO,CAAC;SACf,CAAC;QACF,kBAAkB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"subgraph-queries.d.ts","sourceRoot":"","sources":["../../src/mint/subgraph-queries.ts"],"names":[],"mappings":"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"}
|
package/dist/mint/types.d.ts
CHANGED
|
@@ -98,7 +98,11 @@ type ZoraTimedSaleStrategy = SaleStrategy<"timed"> & {
|
|
|
98
98
|
pool: Address;
|
|
99
99
|
secondaryActivated: boolean;
|
|
100
100
|
address: Address;
|
|
101
|
-
|
|
101
|
+
saleStart: string;
|
|
102
|
+
saleEnd?: string;
|
|
103
|
+
minimumMarketEth?: bigint;
|
|
104
|
+
marketCountdown?: bigint;
|
|
105
|
+
};
|
|
102
106
|
type PremintSaleStrategy = SaleStrategy<"premint"> & PricedSaleStrategy & {
|
|
103
107
|
duration: bigint;
|
|
104
108
|
};
|
package/dist/mint/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mint/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mint/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zoralabs/protocol-sdk",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"repository": "https://github.com/ourzora/zora-protocol",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,18 +15,9 @@
|
|
|
15
15
|
"default": "./dist/index.cjs"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "pnpm tsup",
|
|
20
|
-
"prepack": "pnpm build",
|
|
21
|
-
"test:js": "vitest src",
|
|
22
|
-
"test:integration": "vitest test-integration",
|
|
23
|
-
"generate-types": "echo 'npx is used here because this is a rare operation' && npx openapi-typescript https://api.zora.co/premint/openapi.json -o src/apis/generated/premint-api-types.ts",
|
|
24
|
-
"prettier:write": "prettier --write 'src/**/*.ts' 'test-integration/**/*.ts'",
|
|
25
|
-
"lint": "prettier --check 'src/**/*.ts' 'test-integration/**/*.ts'"
|
|
26
|
-
},
|
|
27
18
|
"dependencies": {
|
|
28
|
-
"
|
|
29
|
-
"
|
|
19
|
+
"abitype": "^1.0.2",
|
|
20
|
+
"@zoralabs/protocol-deployments": "^0.3.1"
|
|
30
21
|
},
|
|
31
22
|
"peerDependencies": {
|
|
32
23
|
"viem": "^2.13.2"
|
|
@@ -37,7 +28,6 @@
|
|
|
37
28
|
"@reservoir0x/reservoir-sdk": "^2.0.11",
|
|
38
29
|
"@types/node": "^20.13.0",
|
|
39
30
|
"@types/semver": "^7.5.8",
|
|
40
|
-
"@zoralabs/tsconfig": "workspace:^",
|
|
41
31
|
"graphql-prettier": "^1.0.6",
|
|
42
32
|
"multiformats": "^13.2.0",
|
|
43
33
|
"prettier": "^3.0.3",
|
|
@@ -46,6 +36,15 @@
|
|
|
46
36
|
"tsup": "^7.2.0",
|
|
47
37
|
"typescript": "^5.2.2",
|
|
48
38
|
"vite": "^4.5.0",
|
|
49
|
-
"vitest": "^2.0.5"
|
|
39
|
+
"vitest": "^2.0.5",
|
|
40
|
+
"@zoralabs/tsconfig": "^0.0.0"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "pnpm tsup",
|
|
44
|
+
"test:js": "vitest src",
|
|
45
|
+
"test:integration": "vitest test-integration",
|
|
46
|
+
"generate-types": "echo 'npx is used here because this is a rare operation' && npx openapi-typescript https://api.zora.co/premint/openapi.json -o src/apis/generated/premint-api-types.ts",
|
|
47
|
+
"prettier:write": "prettier --write 'src/**/*.ts' 'test-integration/**/*.ts'",
|
|
48
|
+
"lint": "prettier --check 'src/**/*.ts' 'test-integration/**/*.ts'"
|
|
50
49
|
}
|
|
51
|
-
}
|
|
50
|
+
}
|
|
@@ -79,15 +79,16 @@ export const post = async <T>(url: string, data: any) => {
|
|
|
79
79
|
return (await response.json()) as T;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
+
const defaultShouldRetry = (err: any) => {
|
|
83
|
+
return err instanceof BadResponseError && err.status >= 500;
|
|
84
|
+
};
|
|
85
|
+
|
|
82
86
|
export const retries = async <T>(
|
|
83
87
|
tryFn: () => T,
|
|
84
88
|
maxTries: number = 3,
|
|
85
89
|
linearBackoffMS: number = 200,
|
|
90
|
+
shouldRetry: (err: any) => boolean = defaultShouldRetry,
|
|
86
91
|
): Promise<T> => {
|
|
87
|
-
const shouldRetry = (err: any) => {
|
|
88
|
-
return err instanceof BadResponseError && err.status >= 500;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
92
|
return retriesGeneric({
|
|
92
93
|
tryFn,
|
|
93
94
|
maxTries,
|
|
@@ -10,21 +10,18 @@ import {
|
|
|
10
10
|
zoraTimedSaleStrategyAddress,
|
|
11
11
|
} from "@zoralabs/protocol-deployments";
|
|
12
12
|
import { waitForSuccess } from "src/test-utils";
|
|
13
|
-
import {
|
|
14
|
-
Address,
|
|
15
|
-
erc20Abi,
|
|
16
|
-
parseEther,
|
|
17
|
-
PublicClient,
|
|
18
|
-
TransactionReceipt,
|
|
19
|
-
} from "viem";
|
|
13
|
+
import { Address, erc20Abi, parseEther, PublicClient } from "viem";
|
|
20
14
|
import { makePrepareMint1155TokenParams } from "src/mint/mint-transactions";
|
|
21
|
-
import { forkUrls, makeAnvilTest } from "src/anvil";
|
|
15
|
+
import { forkUrls, makeAnvilTest, writeContractWithRetries } from "src/anvil";
|
|
22
16
|
import { zora } from "viem/chains";
|
|
23
17
|
import { AllowList } from "src/allow-list/types";
|
|
24
18
|
import { createAllowList } from "src/allow-list/allow-list-client";
|
|
25
19
|
import { NewContractParams } from "./types";
|
|
26
20
|
import { SubgraphContractGetter } from "./contract-getter";
|
|
27
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
DEFAULT_MINIMUM_MARKET_ETH,
|
|
23
|
+
DEFAULT_MARKET_COUNTDOWN,
|
|
24
|
+
} from "./minter-defaults";
|
|
28
25
|
|
|
29
26
|
export const demoTokenMetadataURI =
|
|
30
27
|
"ipfs://bafkreice23maski3x52tsfqgxstx3kbiifnt5jotg3a5ynvve53c4soi2u";
|
|
@@ -32,7 +29,7 @@ export const demoContractMetadataURI = "ipfs://DUMMY/contract.json";
|
|
|
32
29
|
|
|
33
30
|
const anvilTest = makeAnvilTest({
|
|
34
31
|
forkUrl: forkUrls.zoraMainnet,
|
|
35
|
-
forkBlockNumber:
|
|
32
|
+
forkBlockNumber: 19000000,
|
|
36
33
|
anvilChainId: zora.id,
|
|
37
34
|
});
|
|
38
35
|
|
|
@@ -59,14 +56,6 @@ const minterIsMinterOnToken = async ({
|
|
|
59
56
|
});
|
|
60
57
|
};
|
|
61
58
|
|
|
62
|
-
function logFailure(receipt: TransactionReceipt) {
|
|
63
|
-
if (receipt.status !== "success") {
|
|
64
|
-
console.log("transaction failed");
|
|
65
|
-
console.log(receipt.logs);
|
|
66
|
-
console.log(inspect(receipt, { depth: 10 }));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
59
|
function randomNewContract(): NewContractParams {
|
|
71
60
|
return {
|
|
72
61
|
name: `testContract-${Math.round(Math.random() * 1_000_000)}`,
|
|
@@ -74,13 +63,6 @@ function randomNewContract(): NewContractParams {
|
|
|
74
63
|
};
|
|
75
64
|
}
|
|
76
65
|
|
|
77
|
-
const add24HoursToNowInSeconds = (): number => {
|
|
78
|
-
const currentTimeInSeconds = Math.floor(Date.now() / 1000);
|
|
79
|
-
const add24Hours = 24 * 60 * 60;
|
|
80
|
-
|
|
81
|
-
return currentTimeInSeconds + add24Hours;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
66
|
describe("create-helper", () => {
|
|
85
67
|
anvilTest(
|
|
86
68
|
"when no sales config is provided, it creates a new 1155 contract and token using the timed sale strategy",
|
|
@@ -94,7 +76,6 @@ describe("create-helper", () => {
|
|
|
94
76
|
});
|
|
95
77
|
|
|
96
78
|
const saleStart = 5n;
|
|
97
|
-
const saleEnd = BigInt(add24HoursToNowInSeconds());
|
|
98
79
|
const contract = randomNewContract();
|
|
99
80
|
const {
|
|
100
81
|
parameters: parameters,
|
|
@@ -107,7 +88,6 @@ describe("create-helper", () => {
|
|
|
107
88
|
mintToCreatorCount: 1,
|
|
108
89
|
salesConfig: {
|
|
109
90
|
saleStart,
|
|
110
|
-
saleEnd,
|
|
111
91
|
type: "timed",
|
|
112
92
|
},
|
|
113
93
|
},
|
|
@@ -115,10 +95,11 @@ describe("create-helper", () => {
|
|
|
115
95
|
});
|
|
116
96
|
|
|
117
97
|
const { request } = await publicClient.simulateContract(parameters);
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
98
|
+
const receipt = await writeContractWithRetries(
|
|
99
|
+
request,
|
|
100
|
+
walletClient,
|
|
101
|
+
publicClient,
|
|
102
|
+
);
|
|
122
103
|
expect(receipt).not.toBeNull();
|
|
123
104
|
expect(receipt.to).to.equal("0x777777c338d93e2c7adf08d102d45ca7cc4ed021");
|
|
124
105
|
expect(getTokenIdFromCreateReceipt(receipt)).to.be.equal(1n);
|
|
@@ -132,12 +113,14 @@ describe("create-helper", () => {
|
|
|
132
113
|
zoraTimedSaleStrategyAddress[
|
|
133
114
|
chain.id as keyof typeof zoraTimedSaleStrategyAddress
|
|
134
115
|
],
|
|
135
|
-
functionName: "
|
|
116
|
+
functionName: "saleV2",
|
|
136
117
|
args: [contractAddress, newTokenId],
|
|
137
118
|
});
|
|
138
119
|
|
|
139
|
-
expect(salesConfig.saleEnd).toBe(
|
|
120
|
+
expect(salesConfig.saleEnd).toBe(0n);
|
|
140
121
|
expect(salesConfig.saleStart).toBe(saleStart);
|
|
122
|
+
expect(salesConfig.minimumMarketEth).toBe(DEFAULT_MINIMUM_MARKET_ETH);
|
|
123
|
+
expect(salesConfig.marketCountdown).toBe(DEFAULT_MARKET_COUNTDOWN);
|
|
141
124
|
|
|
142
125
|
const erc20Name = await publicClient.readContract({
|
|
143
126
|
abi: erc20Abi,
|
|
@@ -187,12 +170,8 @@ describe("create-helper", () => {
|
|
|
187
170
|
});
|
|
188
171
|
|
|
189
172
|
const { request } = await publicClient.simulateContract(parameters);
|
|
190
|
-
const hash = await walletClient.writeContract(request);
|
|
191
|
-
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
192
173
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
expect(receipt.status).toBe("success");
|
|
174
|
+
await writeContractWithRetries(request, walletClient, publicClient);
|
|
196
175
|
|
|
197
176
|
expect(
|
|
198
177
|
await minterIsMinterOnToken({
|
|
@@ -234,13 +213,13 @@ describe("create-helper", () => {
|
|
|
234
213
|
});
|
|
235
214
|
const { request: simulateResponse } =
|
|
236
215
|
await publicClient.simulateContract(request);
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
216
|
+
const receipt = await writeContractWithRetries(
|
|
217
|
+
simulateResponse,
|
|
218
|
+
walletClient,
|
|
219
|
+
publicClient,
|
|
220
|
+
);
|
|
241
221
|
const firstTokenId = getTokenIdFromCreateReceipt(receipt);
|
|
242
222
|
expect(firstTokenId).to.be.equal(1n);
|
|
243
|
-
expect(receipt).not.toBeNull();
|
|
244
223
|
|
|
245
224
|
// creator should have mint to creator count balance
|
|
246
225
|
expect(
|
|
@@ -279,18 +258,16 @@ describe("create-helper", () => {
|
|
|
279
258
|
const { request: simulateRequest } = await publicClient.simulateContract(
|
|
280
259
|
newTokenOnExistingContract.parameters,
|
|
281
260
|
);
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
logFailure(receipt);
|
|
261
|
+
const newReceipt = await writeContractWithRetries(
|
|
262
|
+
simulateRequest,
|
|
263
|
+
walletClient,
|
|
264
|
+
publicClient,
|
|
265
|
+
);
|
|
288
266
|
|
|
289
|
-
expect(newReceipt.status).toBe("success");
|
|
290
267
|
const tokenId = getTokenIdFromCreateReceipt(newReceipt);
|
|
291
268
|
expect(tokenId).to.be.equal(2n);
|
|
292
269
|
},
|
|
293
|
-
|
|
270
|
+
30 * 1000,
|
|
294
271
|
);
|
|
295
272
|
anvilTest(
|
|
296
273
|
"creates a new token with a create referral address",
|
|
@@ -317,9 +294,11 @@ describe("create-helper", () => {
|
|
|
317
294
|
});
|
|
318
295
|
const { request: simulationResponse } =
|
|
319
296
|
await publicClient.simulateContract(request);
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
297
|
+
const receipt = await writeContractWithRetries(
|
|
298
|
+
simulationResponse,
|
|
299
|
+
walletClient,
|
|
300
|
+
publicClient,
|
|
301
|
+
);
|
|
323
302
|
expect(receipt.to).to.equal("0x777777c338d93e2c7adf08d102d45ca7cc4ed021");
|
|
324
303
|
expect(getTokenIdFromCreateReceipt(receipt)).to.be.equal(newTokenId);
|
|
325
304
|
|
|
@@ -357,8 +336,10 @@ describe("create-helper", () => {
|
|
|
357
336
|
});
|
|
358
337
|
const { request: createSimulation } =
|
|
359
338
|
await publicClient.simulateContract(request);
|
|
360
|
-
|
|
361
|
-
|
|
339
|
+
|
|
340
|
+
await writeContractWithRetries(
|
|
341
|
+
createSimulation,
|
|
342
|
+
walletClient,
|
|
362
343
|
publicClient,
|
|
363
344
|
);
|
|
364
345
|
|
|
@@ -420,8 +401,9 @@ describe("create-helper", () => {
|
|
|
420
401
|
});
|
|
421
402
|
const { request: createSimulation } =
|
|
422
403
|
await publicClient.simulateContract(request);
|
|
423
|
-
await
|
|
424
|
-
|
|
404
|
+
await writeContractWithRetries(
|
|
405
|
+
createSimulation,
|
|
406
|
+
walletClient,
|
|
425
407
|
publicClient,
|
|
426
408
|
);
|
|
427
409
|
|
|
@@ -199,7 +199,7 @@ async function createNew1155ContractAndToken({
|
|
|
199
199
|
minter,
|
|
200
200
|
newToken,
|
|
201
201
|
setupActions: tokenSetupActions,
|
|
202
|
-
} =
|
|
202
|
+
} = prepareSetupActions({
|
|
203
203
|
chainId,
|
|
204
204
|
account,
|
|
205
205
|
contractVersion,
|
|
@@ -271,7 +271,7 @@ async function createNew1155Token({
|
|
|
271
271
|
minter,
|
|
272
272
|
newToken,
|
|
273
273
|
setupActions: tokenSetupActions,
|
|
274
|
-
} =
|
|
274
|
+
} = prepareSetupActions({
|
|
275
275
|
chainId,
|
|
276
276
|
account,
|
|
277
277
|
contractVersion,
|
|
@@ -307,7 +307,7 @@ async function createNew1155Token({
|
|
|
307
307
|
};
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
-
|
|
310
|
+
function prepareSetupActions({
|
|
311
311
|
chainId,
|
|
312
312
|
account,
|
|
313
313
|
contractVersion,
|
|
@@ -325,7 +325,7 @@ async function prepareSetupActions({
|
|
|
325
325
|
minter,
|
|
326
326
|
newToken,
|
|
327
327
|
setupActions: tokenSetupActions,
|
|
328
|
-
} =
|
|
328
|
+
} = constructCreate1155TokenCalls({
|
|
329
329
|
chainId: chainId,
|
|
330
330
|
ownerAddress: account,
|
|
331
331
|
contractVersion,
|
|
@@ -28,7 +28,6 @@ async function toSalesStrategyFromSubgraph({
|
|
|
28
28
|
// for now we hardcode this
|
|
29
29
|
mintFeePerQuantity: parseEther("0.000111"),
|
|
30
30
|
saleStart: salesConfig.saleStart.toString(),
|
|
31
|
-
saleEnd: salesConfig.saleEnd.toString(),
|
|
32
31
|
// the following are not needed for now but we wanna satisfy concrete
|
|
33
32
|
erc20Z: zeroAddress,
|
|
34
33
|
mintFee: 0n,
|
|
@@ -10,6 +10,12 @@ import {
|
|
|
10
10
|
TimedSaleParamsType,
|
|
11
11
|
} from "./types";
|
|
12
12
|
|
|
13
|
+
// 200 mints worth of eth
|
|
14
|
+
export const DEFAULT_MINIMUM_MARKET_ETH = 2220000000000000n;
|
|
15
|
+
|
|
16
|
+
// 24 hour countdown
|
|
17
|
+
export const DEFAULT_MARKET_COUNTDOWN = BigInt(24 * 60 * 60);
|
|
18
|
+
|
|
13
19
|
// Sales end forever amount (uint64 max)
|
|
14
20
|
export const SALE_END_FOREVER = 18446744073709551615n;
|
|
15
21
|
|
|
@@ -74,20 +80,24 @@ export const parseNameIntoSymbol = (name: string) => {
|
|
|
74
80
|
return result;
|
|
75
81
|
};
|
|
76
82
|
|
|
77
|
-
const timedSaleSettingsWithDefaults =
|
|
83
|
+
const timedSaleSettingsWithDefaults = (
|
|
78
84
|
params: TimedSaleParamsType,
|
|
79
85
|
contractName: string,
|
|
80
|
-
):
|
|
86
|
+
): Concrete<TimedSaleParamsType> => {
|
|
81
87
|
// If the name is not provided, try to fetch it from the metadata
|
|
82
88
|
const erc20Name = params.erc20Name || contractName;
|
|
83
89
|
const symbol = params.erc20Symbol || parseNameIntoSymbol(erc20Name);
|
|
90
|
+
const start = params.saleStart || 0n;
|
|
91
|
+
const countdown = params.marketCountdown || DEFAULT_MARKET_COUNTDOWN;
|
|
92
|
+
const minimumEth = params.minimumMarketEth || DEFAULT_MINIMUM_MARKET_ETH;
|
|
84
93
|
|
|
85
94
|
return {
|
|
86
95
|
type: "timed",
|
|
87
|
-
...DEFAULT_SALE_START_AND_END,
|
|
88
|
-
...params,
|
|
89
96
|
erc20Name: erc20Name,
|
|
90
97
|
erc20Symbol: symbol,
|
|
98
|
+
saleStart: start,
|
|
99
|
+
marketCountdown: countdown,
|
|
100
|
+
minimumMarketEth: minimumEth,
|
|
91
101
|
};
|
|
92
102
|
};
|
|
93
103
|
|
|
@@ -106,10 +116,10 @@ const isFixedPrice = (
|
|
|
106
116
|
);
|
|
107
117
|
};
|
|
108
118
|
|
|
109
|
-
export const getSalesConfigWithDefaults =
|
|
119
|
+
export const getSalesConfigWithDefaults = (
|
|
110
120
|
salesConfig: SalesConfigParamsType | undefined,
|
|
111
121
|
contractName: string,
|
|
112
|
-
):
|
|
122
|
+
): ConcreteSalesConfig => {
|
|
113
123
|
if (!salesConfig) return timedSaleSettingsWithDefaults({}, contractName);
|
|
114
124
|
if (isAllowList(salesConfig)) {
|
|
115
125
|
return allowListWithDefaults(salesConfig);
|
|
@@ -156,7 +156,8 @@ function setupTimedSaleMinter({
|
|
|
156
156
|
erc20Name: erc20zName,
|
|
157
157
|
erc20Symbol: erc20zSymbol,
|
|
158
158
|
saleStart,
|
|
159
|
-
|
|
159
|
+
marketCountdown,
|
|
160
|
+
minimumMarketEth,
|
|
160
161
|
}: SetupTimedMinterProps): {
|
|
161
162
|
minter: Address;
|
|
162
163
|
setupActions: Hex[];
|
|
@@ -165,7 +166,7 @@ function setupTimedSaleMinter({
|
|
|
165
166
|
zoraTimedSaleStrategyAddress[
|
|
166
167
|
chainId as keyof typeof zoraTimedSaleStrategyAddress
|
|
167
168
|
];
|
|
168
|
-
const
|
|
169
|
+
const minterApproval = encodeFunctionData({
|
|
169
170
|
abi: zoraCreator1155ImplABI,
|
|
170
171
|
functionName: "addPermission",
|
|
171
172
|
args: [BigInt(tokenId), minterAddress, PERMISSION_BITS.MINTER],
|
|
@@ -173,12 +174,13 @@ function setupTimedSaleMinter({
|
|
|
173
174
|
|
|
174
175
|
const saleData = encodeFunctionData({
|
|
175
176
|
abi: zoraTimedSaleStrategyABI,
|
|
176
|
-
functionName: "
|
|
177
|
+
functionName: "setSaleV2",
|
|
177
178
|
args: [
|
|
178
179
|
BigInt(tokenId),
|
|
179
180
|
{
|
|
180
181
|
saleStart,
|
|
181
|
-
|
|
182
|
+
marketCountdown,
|
|
183
|
+
minimumMarketEth,
|
|
182
184
|
name: erc20zName,
|
|
183
185
|
symbol: erc20zSymbol,
|
|
184
186
|
},
|
|
@@ -193,7 +195,7 @@ function setupTimedSaleMinter({
|
|
|
193
195
|
|
|
194
196
|
return {
|
|
195
197
|
minter: minterAddress,
|
|
196
|
-
setupActions: [
|
|
198
|
+
setupActions: [minterApproval, callSale],
|
|
197
199
|
};
|
|
198
200
|
}
|
|
199
201
|
|
|
@@ -6,11 +6,11 @@ import { OPEN_EDITION_MINT_SIZE } from "src/constants";
|
|
|
6
6
|
import { getSalesConfigWithDefaults } from "./minter-defaults";
|
|
7
7
|
import { setupMinters } from "./minter-setup";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
function applyNew1155Defaults(
|
|
10
10
|
props: CreateNew1155TokenProps,
|
|
11
11
|
ownerAddress: Address,
|
|
12
12
|
contractName: string,
|
|
13
|
-
):
|
|
13
|
+
): New1155Token {
|
|
14
14
|
const { payoutRecipient: fundsRecipient } = props;
|
|
15
15
|
const fundsRecipientOrOwner =
|
|
16
16
|
fundsRecipient && fundsRecipient !== zeroAddress
|
|
@@ -25,10 +25,7 @@ async function applyNew1155Defaults(
|
|
|
25
25
|
: BigInt(props.maxSupply),
|
|
26
26
|
royaltyBPS: props.royaltyBPS || 1000,
|
|
27
27
|
tokenMetadataURI: props.tokenMetadataURI,
|
|
28
|
-
salesConfig:
|
|
29
|
-
props.salesConfig,
|
|
30
|
-
contractName,
|
|
31
|
-
),
|
|
28
|
+
salesConfig: getSalesConfigWithDefaults(props.salesConfig, contractName),
|
|
32
29
|
};
|
|
33
30
|
}
|
|
34
31
|
|
|
@@ -113,7 +110,7 @@ function makeAdminMintCall({
|
|
|
113
110
|
});
|
|
114
111
|
}
|
|
115
112
|
|
|
116
|
-
export
|
|
113
|
+
export function constructCreate1155TokenCalls(
|
|
117
114
|
props: CreateNew1155TokenProps &
|
|
118
115
|
ContractProps & {
|
|
119
116
|
ownerAddress: Address;
|
|
@@ -121,11 +118,11 @@ export async function constructCreate1155TokenCalls(
|
|
|
121
118
|
} & {
|
|
122
119
|
contractName: string;
|
|
123
120
|
},
|
|
124
|
-
):
|
|
121
|
+
): {
|
|
125
122
|
setupActions: `0x${string}`[];
|
|
126
123
|
newToken: New1155Token;
|
|
127
124
|
minter: Address;
|
|
128
|
-
}
|
|
125
|
+
} {
|
|
129
126
|
const {
|
|
130
127
|
chainId,
|
|
131
128
|
nextTokenId,
|
|
@@ -134,7 +131,7 @@ export async function constructCreate1155TokenCalls(
|
|
|
134
131
|
contractVersion,
|
|
135
132
|
} = props;
|
|
136
133
|
|
|
137
|
-
const new1155TokenPropsWithDefaults =
|
|
134
|
+
const new1155TokenPropsWithDefaults = applyNew1155Defaults(
|
|
138
135
|
props,
|
|
139
136
|
ownerAddress,
|
|
140
137
|
props.contractName,
|
package/src/create/types.ts
CHANGED
|
@@ -27,12 +27,18 @@ export type FixedPriceParamsType = SaleStartAndEnd &
|
|
|
27
27
|
pricePerToken: bigint;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
export type TimedSaleParamsType =
|
|
30
|
+
export type TimedSaleParamsType = {
|
|
31
31
|
type?: "timed";
|
|
32
32
|
// Name of the erc20z token to create for the secondary sale. If not provided, uses the contract name
|
|
33
33
|
erc20Name?: string;
|
|
34
34
|
// Symbol of the erc20z token to create for the secondary sale. If not provided, extracts it from the name.
|
|
35
35
|
erc20Symbol?: string;
|
|
36
|
+
// Sale start time
|
|
37
|
+
saleStart?: bigint;
|
|
38
|
+
// Market countdown
|
|
39
|
+
marketCountdown?: bigint;
|
|
40
|
+
// Minimum market ETH amount
|
|
41
|
+
minimumMarketEth?: bigint;
|
|
36
42
|
};
|
|
37
43
|
|
|
38
44
|
export type Erc20ParamsType = SaleStartAndEnd &
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
zoraCreator1155ImplABI,
|
|
6
6
|
zoraTimedSaleStrategyAddress,
|
|
7
7
|
} from "@zoralabs/protocol-deployments";
|
|
8
|
-
import { forkUrls, makeAnvilTest } from "src/anvil";
|
|
8
|
+
import { forkUrls, makeAnvilTest, writeContractWithRetries } from "src/anvil";
|
|
9
9
|
import { createCollectorClient, createCreatorClient } from "src/sdk";
|
|
10
10
|
import { getAllowListEntry } from "src/allow-list/allow-list-client";
|
|
11
11
|
import {
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
} from "src/create/1155-create-helper.test";
|
|
15
15
|
import { SubgraphMintGetter } from "./subgraph-mint-getter";
|
|
16
16
|
import { new1155ContractVersion } from "src/create/contract-setup";
|
|
17
|
-
import { SALE_END_FOREVER } from "src/create/minter-defaults";
|
|
18
17
|
import { ISubgraphQuerier } from "src/apis/subgraph-querier";
|
|
19
18
|
import { TokenQueryResult } from "./subgraph-queries";
|
|
20
19
|
|
|
@@ -341,7 +340,7 @@ describe("mint-helper", () => {
|
|
|
341
340
|
|
|
342
341
|
makeAnvilTest({
|
|
343
342
|
forkUrl: forkUrls.zoraMainnet,
|
|
344
|
-
forkBlockNumber:
|
|
343
|
+
forkBlockNumber: 19000000,
|
|
345
344
|
anvilChainId: zora.id,
|
|
346
345
|
})(
|
|
347
346
|
"can mint a zora timed sale strategy mint",
|
|
@@ -370,11 +369,7 @@ describe("mint-helper", () => {
|
|
|
370
369
|
|
|
371
370
|
const { request: createRequest } =
|
|
372
371
|
await publicClient.simulateContract(parameters);
|
|
373
|
-
|
|
374
|
-
const createReceipt = await publicClient.waitForTransactionReceipt({
|
|
375
|
-
hash: createHash,
|
|
376
|
-
});
|
|
377
|
-
expect(createReceipt.status).toBe("success");
|
|
372
|
+
await writeContractWithRetries(createRequest, walletClient, publicClient);
|
|
378
373
|
|
|
379
374
|
const zoraCreateToken: TokenQueryResult = {
|
|
380
375
|
contract: {
|
|
@@ -401,7 +396,7 @@ describe("mint-helper", () => {
|
|
|
401
396
|
chain.id as keyof typeof zoraTimedSaleStrategyAddress
|
|
402
397
|
],
|
|
403
398
|
mintFee: "111000000000000",
|
|
404
|
-
saleEnd:
|
|
399
|
+
saleEnd: "0",
|
|
405
400
|
saleStart: "0",
|
|
406
401
|
erc20Z: {
|
|
407
402
|
// not needed
|
|
@@ -76,6 +76,12 @@ function parseSalesConfig(
|
|
|
76
76
|
pool: targetStrategy.zoraTimedMinter.erc20Z.pool,
|
|
77
77
|
secondaryActivated: targetStrategy.zoraTimedMinter.secondaryActivated,
|
|
78
78
|
mintFeePerQuantity: BigInt(targetStrategy.zoraTimedMinter.mintFee),
|
|
79
|
+
marketCountdown: targetStrategy.zoraTimedMinter.marketCountdown
|
|
80
|
+
? BigInt(targetStrategy.zoraTimedMinter.marketCountdown)
|
|
81
|
+
: undefined,
|
|
82
|
+
minimumMarketEth: targetStrategy.zoraTimedMinter.minimumMarketEth
|
|
83
|
+
? BigInt(targetStrategy.zoraTimedMinter.minimumMarketEth)
|
|
84
|
+
: undefined,
|
|
79
85
|
};
|
|
80
86
|
}
|
|
81
87
|
|
|
@@ -100,7 +106,10 @@ function strategyIsStillValid(
|
|
|
100
106
|
return BigInt(strategy.erc20Minter.saleEnd) > blockTime;
|
|
101
107
|
}
|
|
102
108
|
if (strategy.type === "ZORA_TIMED") {
|
|
103
|
-
return
|
|
109
|
+
return (
|
|
110
|
+
BigInt(strategy.zoraTimedMinter.saleEnd) === 0n ||
|
|
111
|
+
BigInt(strategy.zoraTimedMinter.saleEnd) > blockTime
|
|
112
|
+
);
|
|
104
113
|
}
|
|
105
114
|
return BigInt(strategy.presale.presaleEnd) > blockTime;
|
|
106
115
|
}
|