@zoralabs/protocol-sdk 0.5.8-DEV.2 → 0.5.9
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 +15 -0
- package/CHANGELOG.md +7 -8
- package/dist/create/1155-create-helper.d.ts +2 -1
- package/dist/create/1155-create-helper.d.ts.map +1 -1
- package/dist/index.cjs +221 -52
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +221 -51
- package/dist/index.js.map +1 -1
- package/dist/mints/mints-contracts.d.ts +2849 -74
- package/dist/mints/mints-contracts.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/create/1155-create-helper.test.ts +137 -0
- package/src/create/1155-create-helper.ts +3 -0
- package/src/mint/mint-client.test.ts +114 -0
- package/src/mints/mints-contracts.test.ts +719 -0
- package/src/mints/mints-contracts.ts +310 -63
- package/src/mints/mints-queries.test.ts +105 -0
- package/src/premint/premint-client.test.ts +239 -0
- package/src/premint/preminter.test.ts +619 -0
- package/test-integration/premint-client.test.ts +146 -0
- package/tsconfig.build.json +10 -0
- package/tsup.config.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mints-contracts.d.ts","sourceRoot":"","sources":["../../src/mints/mints-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"mints-contracts.d.ts","sourceRoot":"","sources":["../../src/mints/mints-contracts.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAoCpB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0iEAUzE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zoralabs/protocol-sdk",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.9",
|
|
4
4
|
"repository": "https://github.com/ourzora/zora-protocol",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"lint": "prettier --check 'src/**/*.ts' 'test-integration/**/*.ts'"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@zoralabs/protocol-deployments": "
|
|
28
|
+
"@zoralabs/protocol-deployments": "*",
|
|
29
29
|
"abitype": "^0.10.3"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"graphql-request": "^6.1.0",
|
|
33
|
+
"viem": "^1.19.15"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@lavamoat/preinstall-always-fail": "2.0.0",
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { parseEther } from "viem";
|
|
2
|
+
import { describe, expect } from "vitest";
|
|
3
|
+
import {
|
|
4
|
+
create1155CreatorClient,
|
|
5
|
+
getTokenIdFromCreateReceipt,
|
|
6
|
+
} from "./1155-create-helper";
|
|
7
|
+
import { anvilTest } from "src/anvil";
|
|
8
|
+
|
|
9
|
+
const demoTokenMetadataURI = "ipfs://DUMMY/token.json";
|
|
10
|
+
const demoContractMetadataURI = "ipfs://DUMMY/contract.json";
|
|
11
|
+
|
|
12
|
+
describe("create-helper", () => {
|
|
13
|
+
anvilTest(
|
|
14
|
+
"creates a new contract given arguments",
|
|
15
|
+
async ({ viemClients: { testClient, publicClient, walletClient } }) => {
|
|
16
|
+
const addresses = await walletClient.getAddresses();
|
|
17
|
+
const creatorAddress = addresses[0]!;
|
|
18
|
+
await testClient.setBalance({
|
|
19
|
+
address: creatorAddress,
|
|
20
|
+
value: parseEther("1"),
|
|
21
|
+
});
|
|
22
|
+
const creatorClient = create1155CreatorClient({
|
|
23
|
+
publicClient: publicClient,
|
|
24
|
+
});
|
|
25
|
+
const { request } = await creatorClient.createNew1155Token({
|
|
26
|
+
contract: {
|
|
27
|
+
name: "testContract",
|
|
28
|
+
uri: demoContractMetadataURI,
|
|
29
|
+
},
|
|
30
|
+
tokenMetadataURI: demoTokenMetadataURI,
|
|
31
|
+
account: creatorAddress,
|
|
32
|
+
mintToCreatorCount: 1,
|
|
33
|
+
});
|
|
34
|
+
const { request: simulationResponse } =
|
|
35
|
+
await publicClient.simulateContract(request);
|
|
36
|
+
const hash = await walletClient.writeContract(simulationResponse);
|
|
37
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
38
|
+
expect(receipt).not.toBeNull();
|
|
39
|
+
expect(receipt.to).to.equal("0x777777c338d93e2c7adf08d102d45ca7cc4ed021");
|
|
40
|
+
expect(getTokenIdFromCreateReceipt(receipt)).to.be.equal(1n);
|
|
41
|
+
},
|
|
42
|
+
20 * 1000,
|
|
43
|
+
);
|
|
44
|
+
anvilTest(
|
|
45
|
+
"creates a new contract, than creates a new token on this existing contract",
|
|
46
|
+
async ({ viemClients: { publicClient, walletClient } }) => {
|
|
47
|
+
const addresses = await walletClient.getAddresses();
|
|
48
|
+
const creatorAccount = addresses[0]!;
|
|
49
|
+
|
|
50
|
+
const creatorClient = create1155CreatorClient({
|
|
51
|
+
publicClient: publicClient,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const { request, contractAddress, contractExists } =
|
|
55
|
+
await creatorClient.createNew1155Token({
|
|
56
|
+
contract: {
|
|
57
|
+
name: "testContract2",
|
|
58
|
+
uri: demoContractMetadataURI,
|
|
59
|
+
},
|
|
60
|
+
tokenMetadataURI: demoTokenMetadataURI,
|
|
61
|
+
account: creatorAccount,
|
|
62
|
+
mintToCreatorCount: 1,
|
|
63
|
+
});
|
|
64
|
+
expect(contractAddress).to.be.equal(
|
|
65
|
+
"0xb1A8928dF830C21eD682949Aa8A83C1C215194d3",
|
|
66
|
+
);
|
|
67
|
+
expect(contractExists).to.be.false;
|
|
68
|
+
const { request: simulateResponse } =
|
|
69
|
+
await publicClient.simulateContract(request);
|
|
70
|
+
const hash = await walletClient.writeContract(simulateResponse);
|
|
71
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
72
|
+
const firstTokenId = getTokenIdFromCreateReceipt(receipt);
|
|
73
|
+
expect(firstTokenId).to.be.equal(1n);
|
|
74
|
+
expect(receipt).not.toBeNull();
|
|
75
|
+
|
|
76
|
+
const newTokenOnExistingContract = await creatorClient.createNew1155Token(
|
|
77
|
+
{
|
|
78
|
+
contract: {
|
|
79
|
+
name: "testContract2",
|
|
80
|
+
uri: demoContractMetadataURI,
|
|
81
|
+
},
|
|
82
|
+
tokenMetadataURI: demoTokenMetadataURI,
|
|
83
|
+
account: creatorAccount,
|
|
84
|
+
mintToCreatorCount: 1,
|
|
85
|
+
},
|
|
86
|
+
);
|
|
87
|
+
expect(newTokenOnExistingContract.contractAddress).to.be.equal(
|
|
88
|
+
"0xb1A8928dF830C21eD682949Aa8A83C1C215194d3",
|
|
89
|
+
);
|
|
90
|
+
expect(newTokenOnExistingContract.contractExists).to.be.true;
|
|
91
|
+
const { request: simulateRequest } = await publicClient.simulateContract(
|
|
92
|
+
newTokenOnExistingContract.request,
|
|
93
|
+
);
|
|
94
|
+
const newHash = await walletClient.writeContract(simulateRequest);
|
|
95
|
+
const newReceipt = await publicClient.waitForTransactionReceipt({
|
|
96
|
+
hash: newHash,
|
|
97
|
+
});
|
|
98
|
+
const tokenId = getTokenIdFromCreateReceipt(newReceipt);
|
|
99
|
+
expect(tokenId).to.be.equal(2n);
|
|
100
|
+
expect(newReceipt).not.toBeNull();
|
|
101
|
+
},
|
|
102
|
+
20 * 1000,
|
|
103
|
+
);
|
|
104
|
+
anvilTest(
|
|
105
|
+
"creates a new token with a create referral address",
|
|
106
|
+
async ({ viemClients: { testClient, publicClient, walletClient } }) => {
|
|
107
|
+
const addresses = await walletClient.getAddresses();
|
|
108
|
+
const creatorAddress = addresses[0]!;
|
|
109
|
+
await testClient.setBalance({
|
|
110
|
+
address: creatorAddress,
|
|
111
|
+
value: parseEther("1"),
|
|
112
|
+
});
|
|
113
|
+
const creatorClient = create1155CreatorClient({
|
|
114
|
+
publicClient: publicClient,
|
|
115
|
+
});
|
|
116
|
+
const { request } = await creatorClient.createNew1155Token({
|
|
117
|
+
contract: {
|
|
118
|
+
name: "testContract",
|
|
119
|
+
uri: demoContractMetadataURI,
|
|
120
|
+
},
|
|
121
|
+
tokenMetadataURI: demoTokenMetadataURI,
|
|
122
|
+
account: creatorAddress,
|
|
123
|
+
mintToCreatorCount: 1,
|
|
124
|
+
createReferral: creatorAddress,
|
|
125
|
+
});
|
|
126
|
+
const { request: simulationResponse } =
|
|
127
|
+
await publicClient.simulateContract(request);
|
|
128
|
+
const hash = await walletClient.writeContract(simulationResponse);
|
|
129
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
130
|
+
expect(receipt).not.toBeNull();
|
|
131
|
+
console.log(receipt);
|
|
132
|
+
expect(receipt.to).to.equal("0xa72724cc3dcef210141a1b84c61824074151dc99");
|
|
133
|
+
expect(getTokenIdFromCreateReceipt(receipt)).to.be.equal(2n);
|
|
134
|
+
},
|
|
135
|
+
20 * 1000,
|
|
136
|
+
);
|
|
137
|
+
});
|
|
@@ -246,6 +246,7 @@ export function create1155CreatorClient({
|
|
|
246
246
|
maxSupply,
|
|
247
247
|
account,
|
|
248
248
|
royaltySettings,
|
|
249
|
+
createReferral,
|
|
249
250
|
getAdditionalSetupActions,
|
|
250
251
|
}: {
|
|
251
252
|
account: Address;
|
|
@@ -256,6 +257,7 @@ export function create1155CreatorClient({
|
|
|
256
257
|
tokenMetadataURI: string;
|
|
257
258
|
mintToCreatorCount?: bigint | number;
|
|
258
259
|
salesConfig?: SalesConfigParamsType;
|
|
260
|
+
createReferral?: Address;
|
|
259
261
|
getAdditionalSetupActions?: (args: {
|
|
260
262
|
tokenId: bigint;
|
|
261
263
|
contractAddress: Address;
|
|
@@ -296,6 +298,7 @@ export function create1155CreatorClient({
|
|
|
296
298
|
account,
|
|
297
299
|
mintToCreatorCount,
|
|
298
300
|
royaltySettings,
|
|
301
|
+
createReferral,
|
|
299
302
|
});
|
|
300
303
|
if (getAdditionalSetupActions) {
|
|
301
304
|
tokenSetupActions = [
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Address, parseAbi, parseEther } from "viem";
|
|
2
|
+
import { zora } from "viem/chains";
|
|
3
|
+
import { describe, expect } from "vitest";
|
|
4
|
+
import { createMintClient } from "./mint-client";
|
|
5
|
+
import { zoraCreator1155ImplABI } from "@zoralabs/protocol-deployments";
|
|
6
|
+
import { anvilTest, forkUrls, makeAnvilTest } from "src/anvil";
|
|
7
|
+
|
|
8
|
+
const erc721ABI = parseAbi([
|
|
9
|
+
"function balanceOf(address owner) public view returns (uint256)",
|
|
10
|
+
] as const);
|
|
11
|
+
|
|
12
|
+
describe("mint-helper", () => {
|
|
13
|
+
anvilTest(
|
|
14
|
+
"mints a new 1155 token",
|
|
15
|
+
async ({ viemClients }) => {
|
|
16
|
+
const { testClient, walletClient, publicClient } = viemClients;
|
|
17
|
+
const creatorAccount = (await walletClient.getAddresses())[0]!;
|
|
18
|
+
await testClient.setBalance({
|
|
19
|
+
address: creatorAccount,
|
|
20
|
+
value: parseEther("2000"),
|
|
21
|
+
});
|
|
22
|
+
const targetContract: Address =
|
|
23
|
+
"0xa2fea3537915dc6c7c7a97a82d1236041e6feb2e";
|
|
24
|
+
const targetTokenId = 1n;
|
|
25
|
+
const minter = createMintClient({ chain: zora });
|
|
26
|
+
|
|
27
|
+
const params = await minter.makePrepareMintTokenParams({
|
|
28
|
+
minterAccount: creatorAccount,
|
|
29
|
+
tokenId: targetTokenId,
|
|
30
|
+
tokenAddress: targetContract,
|
|
31
|
+
mintArguments: {
|
|
32
|
+
mintToAddress: creatorAccount,
|
|
33
|
+
quantityToMint: 1,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const oldBalance = await publicClient.readContract({
|
|
38
|
+
abi: zoraCreator1155ImplABI,
|
|
39
|
+
address: targetContract,
|
|
40
|
+
functionName: "balanceOf",
|
|
41
|
+
args: [creatorAccount, targetTokenId],
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const simulationResult = await publicClient.simulateContract(params);
|
|
45
|
+
|
|
46
|
+
const hash = await walletClient.writeContract(simulationResult.request);
|
|
47
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
48
|
+
const newBalance = await publicClient.readContract({
|
|
49
|
+
abi: zoraCreator1155ImplABI,
|
|
50
|
+
address: targetContract,
|
|
51
|
+
functionName: "balanceOf",
|
|
52
|
+
args: [creatorAccount, targetTokenId],
|
|
53
|
+
});
|
|
54
|
+
expect(receipt).to.not.be.null;
|
|
55
|
+
expect(oldBalance).to.be.equal(0n);
|
|
56
|
+
expect(newBalance).to.be.equal(1n);
|
|
57
|
+
},
|
|
58
|
+
12 * 1000,
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
makeAnvilTest({
|
|
62
|
+
forkUrl: forkUrls.zoraMainnet,
|
|
63
|
+
forkBlockNumber: 6133407,
|
|
64
|
+
})(
|
|
65
|
+
"mints a new 721 token",
|
|
66
|
+
async ({ viemClients }) => {
|
|
67
|
+
const { testClient, walletClient, publicClient } = viemClients;
|
|
68
|
+
const creatorAccount = (await walletClient.getAddresses())[0]!;
|
|
69
|
+
await testClient.setBalance({
|
|
70
|
+
address: creatorAccount,
|
|
71
|
+
value: parseEther("2000"),
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const targetContract: Address =
|
|
75
|
+
"0x7aae7e67515A2CbB8585C707Ca6db37BDd3EA839";
|
|
76
|
+
const targetTokenId = undefined;
|
|
77
|
+
const minter = createMintClient({ chain: zora });
|
|
78
|
+
|
|
79
|
+
const params = await minter.makePrepareMintTokenParams({
|
|
80
|
+
tokenId: targetTokenId,
|
|
81
|
+
tokenAddress: targetContract,
|
|
82
|
+
minterAccount: creatorAccount,
|
|
83
|
+
mintArguments: {
|
|
84
|
+
mintToAddress: creatorAccount,
|
|
85
|
+
quantityToMint: 1,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
const oldBalance = await publicClient.readContract({
|
|
89
|
+
abi: erc721ABI,
|
|
90
|
+
address: targetContract,
|
|
91
|
+
functionName: "balanceOf",
|
|
92
|
+
args: [creatorAccount],
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const simulated = await publicClient.simulateContract(params);
|
|
96
|
+
|
|
97
|
+
const hash = await walletClient.writeContract(simulated.request);
|
|
98
|
+
|
|
99
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
100
|
+
expect(receipt).not.to.be.null;
|
|
101
|
+
|
|
102
|
+
const newBalance = await publicClient.readContract({
|
|
103
|
+
abi: erc721ABI,
|
|
104
|
+
address: targetContract,
|
|
105
|
+
functionName: "balanceOf",
|
|
106
|
+
args: [creatorAccount],
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
expect(oldBalance).to.be.equal(0n);
|
|
110
|
+
expect(newBalance).to.be.equal(1n);
|
|
111
|
+
},
|
|
112
|
+
12 * 1000,
|
|
113
|
+
);
|
|
114
|
+
});
|