@zoralabs/protocol-sdk 0.11.4 → 0.11.6-COMMENTS.0

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.
Files changed (43) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/CHANGELOG.md +32 -0
  3. package/dist/create/mint-from-create.d.ts +2 -1
  4. package/dist/create/mint-from-create.d.ts.map +1 -1
  5. package/dist/create/minter-defaults.d.ts.map +1 -1
  6. package/dist/create/types.d.ts +1 -0
  7. package/dist/create/types.d.ts.map +1 -1
  8. package/dist/index.cjs +235 -58
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.js +239 -58
  11. package/dist/index.js.map +1 -1
  12. package/dist/mint/mint-client.d.ts +3 -1
  13. package/dist/mint/mint-client.d.ts.map +1 -1
  14. package/dist/mint/mint-queries.d.ts +5 -3
  15. package/dist/mint/mint-queries.d.ts.map +1 -1
  16. package/dist/mint/mint-transactions.d.ts +4 -2
  17. package/dist/mint/mint-transactions.d.ts.map +1 -1
  18. package/dist/sdk.d.ts.map +1 -1
  19. package/dist/secondary/secondary-client.d.ts +4 -3
  20. package/dist/secondary/secondary-client.d.ts.map +1 -1
  21. package/dist/secondary/types.d.ts +7 -0
  22. package/dist/secondary/types.d.ts.map +1 -1
  23. package/dist/secondary/utils.d.ts.map +1 -1
  24. package/dist/test-utils.d.ts +3 -1
  25. package/dist/test-utils.d.ts.map +1 -1
  26. package/package.json +2 -2
  27. package/src/comments/comments.test.ts +342 -0
  28. package/src/create/1155-create-helper.test.ts +77 -14
  29. package/src/create/1155-create-helper.ts +2 -0
  30. package/src/create/mint-from-create.ts +3 -0
  31. package/src/create/minter-defaults.ts +22 -8
  32. package/src/create/types.ts +5 -3
  33. package/src/mint/mint-client.test.ts +67 -30
  34. package/src/mint/mint-client.ts +10 -1
  35. package/src/mint/mint-queries.ts +16 -5
  36. package/src/mint/mint-transactions.ts +80 -16
  37. package/src/sdk.ts +1 -0
  38. package/src/secondary/secondary-client.test.ts +149 -25
  39. package/src/secondary/secondary-client.ts +138 -7
  40. package/src/secondary/types.ts +19 -4
  41. package/src/secondary/utils.ts +30 -10
  42. package/src/sparks/sparks-sponsored-sparks-spender.test.ts +1 -1
  43. package/src/test-utils.ts +12 -0
@@ -1,5 +1,5 @@
1
1
 
2
- > @zoralabs/protocol-sdk@0.11.4 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/protocol-sdk
2
+ > @zoralabs/protocol-sdk@0.11.6-COMMENTS.0 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/protocol-sdk
3
3
  > pnpm tsup
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,9 +10,9 @@ CLI Target: es2021
10
10
  CLI Cleaning output folder
11
11
  CJS Build start
12
12
  ESM Build start
13
- CJS dist/index.cjs 224.30 KB
14
- CJS dist/index.cjs.map 454.54 KB
15
- CJS ⚡️ Build success in 351ms
16
- ESM dist/index.js 218.03 KB
17
- ESM dist/index.js.map 452.53 KB
18
- ESM ⚡️ Build success in 412ms
13
+ CJS dist/index.cjs 228.29 KB
14
+ CJS dist/index.cjs.map 462.51 KB
15
+ CJS ⚡️ Build success in 392ms
16
+ ESM dist/index.js 222.00 KB
17
+ ESM dist/index.js.map 460.67 KB
18
+ ESM ⚡️ Build success in 399ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @zoralabs/protocol-sdk
2
2
 
3
+ ## 0.11.6-COMMENTS.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 9d5d1638: When minting + commenting, and using the timed sale strategy, protocol sdk will call the CallerAndCommenter contract
8
+ - 088ec6fb: When buying on secondary, you can now add a comment, which will call the CallerAndCommenter's buyOnSecondaryAndComment
9
+ - Updated dependencies [4928687d]
10
+ - Updated dependencies [c6e1c1bc]
11
+ - Updated dependencies [7e285fb1]
12
+ - Updated dependencies [17cc9821]
13
+ - Updated dependencies [a141e322]
14
+ - @zoralabs/protocol-deployments@0.3.8-COMMENTS.0
15
+
16
+ ## 0.11.5
17
+
18
+ ### Patch Changes
19
+
20
+ - 85d09fa5: - Adds new fields to `SecondaryInfo` type to expose more information about the secondary market configuration:
21
+
22
+ - `name`: The ERC20Z token name
23
+ - `symbol`: The ERC20Z token symbol
24
+ - `saleStart`: Earliest time tokens can be minted
25
+ - `marketCountdown`: Time after minimum mints reached until secondary market launches
26
+ - `minimumMintsForCountdown`: Minimum mints required to start countdown
27
+ - `mintCount`: Total number of tokens minted so far
28
+ - Deprecates `minimumMarketEth` parameter in favor of `minimumMintsForCountdown` when creating tokens:
29
+ - `minimumMintsForCountdown` directly specifies minimum number of mints (defaults to `1111`)
30
+ - `minimumMarketEth` is still supported but calculated internally as `minimumMintsForCountdown * 0.0000111 ETH`
31
+
32
+ - Updated dependencies [c08ec3b3]
33
+ - @zoralabs/protocol-deployments@0.3.7
34
+
3
35
  ## 0.11.4
4
36
 
5
37
  ### Patch Changes
@@ -1,12 +1,13 @@
1
1
  import { Address } from "viem";
2
2
  import { ConcreteSalesConfig } from "./types";
3
3
  import { AsyncPrepareMint } from "src/mint/types";
4
- export declare function makeOnchainPrepareMintFromCreate({ contractAddress, tokenId, result, minter, getContractMintFee, contractVersion, }: {
4
+ export declare function makeOnchainPrepareMintFromCreate({ contractAddress, tokenId, result, minter, getContractMintFee, contractVersion, chainId, }: {
5
5
  contractAddress: Address;
6
6
  tokenId: bigint;
7
7
  result: ConcreteSalesConfig;
8
8
  minter: Address;
9
9
  getContractMintFee: () => Promise<bigint>;
10
10
  contractVersion: string;
11
+ chainId: number;
11
12
  }): AsyncPrepareMint;
12
13
  //# sourceMappingURL=mint-from-create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mint-from-create.d.ts","sourceRoot":"","sources":["../../src/create/mint-from-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AA+DxB,wBAAgB,gCAAgC,CAAC,EAC/C,eAAe,EACf,OAAO,EACP,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,gBAAgB,CAyBnB"}
1
+ {"version":3,"file":"mint-from-create.d.ts","sourceRoot":"","sources":["../../src/create/mint-from-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AA+DxB,wBAAgB,gCAAgC,CAAC,EAC/C,eAAe,EACf,OAAO,EACP,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,OAAO,GACR,EAAE;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,gBAAgB,CA0BnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"minter-defaults.d.ts","sourceRoot":"","sources":["../../src/create/minter-defaults.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAMrB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,0BAA0B,QAA0B,CAAC;AAElE,eAAO,MAAM,wBAAwB,QAAuB,CAAC;AAG7D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAuCtD,eAAO,MAAM,mBAAmB,SAAU,MAAM,WAsB/C,CAAC;AAsCF,eAAO,MAAM,0BAA0B,gBACxB,qBAAqB,GAAG,SAAS,gBAChC,MAAM,KACnB,mBAaF,CAAC"}
1
+ {"version":3,"file":"minter-defaults.d.ts","sourceRoot":"","sources":["../../src/create/minter-defaults.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAMrB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,0BAA0B,QAA0B,CAAC;AAElE,eAAO,MAAM,wBAAwB,QAAuB,CAAC;AAG7D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAuCtD,eAAO,MAAM,mBAAmB,SAAU,MAAM,WAsB/C,CAAC;AAoDF,eAAO,MAAM,0BAA0B,gBACxB,qBAAqB,GAAG,SAAS,gBAChC,MAAM,KACnB,mBAaF,CAAC"}
@@ -24,6 +24,7 @@ export type TimedSaleParamsType = {
24
24
  saleStart?: bigint;
25
25
  marketCountdown?: bigint;
26
26
  minimumMarketEth?: bigint;
27
+ minimumMintsForCountdown?: bigint;
27
28
  };
28
29
  export type Erc20ParamsType = SaleStartAndEnd & MaxTokensPerAddress & {
29
30
  type: "erc20Mint";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/create/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/create/types.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -3773,7 +3773,8 @@ var contractSupportsNewMintFunction = (contractVersion) => {
3773
3773
  // src/mint/mint-transactions.ts
3774
3774
  function makeOnchainMintCall({
3775
3775
  token,
3776
- mintParams
3776
+ mintParams,
3777
+ chainId
3777
3778
  }) {
3778
3779
  if (token.mintType === "721") {
3779
3780
  return makePrepareMint721TokenParams({
@@ -3786,9 +3787,55 @@ function makeOnchainMintCall({
3786
3787
  salesConfigAndTokenInfo: token,
3787
3788
  tokenContract: token.contract.address,
3788
3789
  tokenId: token.tokenId,
3790
+ chainId,
3789
3791
  ...mintParams
3790
3792
  });
3791
3793
  }
3794
+ function makeZoraTimedSaleStrategyMintCall({
3795
+ minterAccount,
3796
+ salesConfigAndTokenInfo,
3797
+ mintQuantity,
3798
+ mintTo,
3799
+ tokenContract,
3800
+ tokenId,
3801
+ mintReferral,
3802
+ mintComment,
3803
+ chainId
3804
+ }) {
3805
+ if (mintComment && mintComment !== "") {
3806
+ return makeContractParameters({
3807
+ abi: import_protocol_deployments6.callerAndCommenterABI,
3808
+ address: import_protocol_deployments6.callerAndCommenterAddress[chainId],
3809
+ functionName: "timedSaleMintAndComment",
3810
+ account: minterAccount,
3811
+ value: salesConfigAndTokenInfo.salesConfig.mintFeePerQuantity * mintQuantity,
3812
+ args: [
3813
+ mintTo,
3814
+ mintQuantity,
3815
+ tokenContract,
3816
+ tokenId,
3817
+ mintReferral || import_viem5.zeroAddress,
3818
+ mintComment
3819
+ ]
3820
+ });
3821
+ }
3822
+ return makeContractParameters({
3823
+ abi: import_protocol_deployments6.zoraTimedSaleStrategyABI,
3824
+ functionName: "mint",
3825
+ account: minterAccount,
3826
+ address: salesConfigAndTokenInfo.salesConfig.address,
3827
+ value: salesConfigAndTokenInfo.salesConfig.mintFeePerQuantity * mintQuantity,
3828
+ /* args: mintTo, quantity, collection, tokenId, mintReferral, comment */
3829
+ args: [
3830
+ mintTo,
3831
+ mintQuantity,
3832
+ tokenContract,
3833
+ BigInt(tokenId),
3834
+ mintReferral || import_viem5.zeroAddress,
3835
+ ""
3836
+ ]
3837
+ });
3838
+ }
3792
3839
  function makePrepareMint1155TokenParams({
3793
3840
  tokenContract,
3794
3841
  tokenId,
@@ -3798,7 +3845,8 @@ function makePrepareMint1155TokenParams({
3798
3845
  mintReferral,
3799
3846
  mintRecipient,
3800
3847
  quantityToMint,
3801
- allowListEntry
3848
+ allowListEntry,
3849
+ chainId
3802
3850
  }) {
3803
3851
  const mintQuantity = BigInt(quantityToMint || 1);
3804
3852
  const mintTo = mintRecipientOrAccount({ mintRecipient, minterAccount });
@@ -3817,21 +3865,16 @@ function makePrepareMint1155TokenParams({
3817
3865
  });
3818
3866
  }
3819
3867
  if (saleType === "timed") {
3820
- return makeContractParameters({
3821
- abi: import_protocol_deployments6.zoraTimedSaleStrategyABI,
3822
- functionName: "mint",
3823
- account: minterAccount,
3824
- address: salesConfigAndTokenInfo.salesConfig.address,
3825
- value: salesConfigAndTokenInfo.salesConfig.mintFeePerQuantity * mintQuantity,
3826
- /* args: mintTo, quantity, collection, tokenId, mintReferral, comment */
3827
- args: [
3828
- mintTo,
3829
- mintQuantity,
3830
- tokenContract,
3831
- BigInt(tokenId),
3832
- mintReferral || import_viem5.zeroAddress,
3833
- mintComment || ""
3834
- ]
3868
+ return makeZoraTimedSaleStrategyMintCall({
3869
+ minterAccount,
3870
+ salesConfigAndTokenInfo,
3871
+ mintQuantity,
3872
+ mintTo,
3873
+ tokenContract,
3874
+ tokenId,
3875
+ mintReferral,
3876
+ mintComment,
3877
+ chainId
3835
3878
  });
3836
3879
  }
3837
3880
  if (saleType === "erc20") {
@@ -3996,7 +4039,8 @@ async function getMint({
3996
4039
  params,
3997
4040
  mintGetter,
3998
4041
  premintGetter,
3999
- publicClient
4042
+ publicClient,
4043
+ chainId
4000
4044
  }) {
4001
4045
  const { tokenContract } = params;
4002
4046
  if (isOnChainMint(params)) {
@@ -4008,7 +4052,7 @@ async function getMint({
4008
4052
  preferredSaleType: params.preferredSaleType,
4009
4053
  blockTime
4010
4054
  });
4011
- return toMintableReturn(result);
4055
+ return toMintableReturn(result, chainId);
4012
4056
  }
4013
4057
  const premint = await premintGetter.get({
4014
4058
  collectionAddress: tokenContract,
@@ -4046,11 +4090,12 @@ async function getMintsOfContract({
4046
4090
  params,
4047
4091
  mintGetter,
4048
4092
  premintGetter,
4049
- publicClient
4093
+ publicClient,
4094
+ chainId
4050
4095
  }) {
4051
4096
  const onchainMints = (await mintGetter.getContractMintable({
4052
4097
  tokenAddress: params.tokenContract
4053
- })).map(toMintableReturn);
4098
+ })).map((result) => toMintableReturn(result, chainId));
4054
4099
  const offchainMints = await getPremintsOfContractMintable({
4055
4100
  mintGetter,
4056
4101
  premintGetter,
@@ -4167,14 +4212,15 @@ function parsePremint({
4167
4212
  }
4168
4213
  throw new Error("Invalid premint config version");
4169
4214
  }
4170
- var makeOnchainPrepareMint = (result) => (params) => {
4215
+ var makeOnchainPrepareMint = (result, chainId) => (params) => {
4171
4216
  if (!result.salesConfig) {
4172
4217
  throw new Error("No valid sales config found for token");
4173
4218
  }
4174
4219
  return {
4175
4220
  parameters: makeOnchainMintCall({
4176
4221
  token: result,
4177
- mintParams: params
4222
+ mintParams: params,
4223
+ chainId
4178
4224
  }),
4179
4225
  erc20Approval: getRequiredErc20Approvals(params, result.salesConfig),
4180
4226
  costs: parseMintCosts({
@@ -4184,7 +4230,7 @@ var makeOnchainPrepareMint = (result) => (params) => {
4184
4230
  })
4185
4231
  };
4186
4232
  };
4187
- function toMintableReturn(result) {
4233
+ function toMintableReturn(result, chainId) {
4188
4234
  const primaryMintActive = result.primaryMintActive;
4189
4235
  if (!primaryMintActive) {
4190
4236
  return {
@@ -4200,7 +4246,10 @@ function toMintableReturn(result) {
4200
4246
  primaryMintActive,
4201
4247
  primaryMintEnd: result.primaryMintEnd,
4202
4248
  secondaryMarketActive: result.secondaryMarketActive,
4203
- prepareMint: makeOnchainPrepareMint(result.salesConfigAndTokenInfo)
4249
+ prepareMint: makeOnchainPrepareMint(
4250
+ result.salesConfigAndTokenInfo,
4251
+ chainId
4252
+ )
4204
4253
  };
4205
4254
  }
4206
4255
  var makePremintPrepareMint = (mintable, mintFee, premint) => {
@@ -4263,11 +4312,13 @@ var MintClient = class {
4263
4312
  constructor({
4264
4313
  publicClient,
4265
4314
  premintGetter,
4266
- mintGetter
4315
+ mintGetter,
4316
+ chainId
4267
4317
  }) {
4268
4318
  this.publicClient = publicClient;
4269
4319
  this.mintGetter = mintGetter;
4270
4320
  this.premintGetter = premintGetter;
4321
+ this.chainId = chainId;
4271
4322
  }
4272
4323
  /**
4273
4324
  * Returns the parameters needed to prepare a transaction mint a token.
@@ -4281,7 +4332,8 @@ var MintClient = class {
4281
4332
  parameters,
4282
4333
  publicClient: this.publicClient,
4283
4334
  mintGetter: this.mintGetter,
4284
- premintGetter: this.premintGetter
4335
+ premintGetter: this.premintGetter,
4336
+ chainId: this.chainId
4285
4337
  });
4286
4338
  }
4287
4339
  /**
@@ -4295,7 +4347,8 @@ var MintClient = class {
4295
4347
  params: parameters,
4296
4348
  mintGetter: this.mintGetter,
4297
4349
  premintGetter: this.premintGetter,
4298
- publicClient: this.publicClient
4350
+ publicClient: this.publicClient,
4351
+ chainId: this.chainId
4299
4352
  });
4300
4353
  }
4301
4354
  /**
@@ -4309,7 +4362,8 @@ var MintClient = class {
4309
4362
  params,
4310
4363
  mintGetter: this.mintGetter,
4311
4364
  premintGetter: this.premintGetter,
4312
- publicClient: this.publicClient
4365
+ publicClient: this.publicClient,
4366
+ chainId: this.chainId
4313
4367
  });
4314
4368
  }
4315
4369
  /**
@@ -4330,13 +4384,15 @@ async function mint({
4330
4384
  parameters,
4331
4385
  publicClient,
4332
4386
  mintGetter,
4333
- premintGetter
4387
+ premintGetter,
4388
+ chainId
4334
4389
  }) {
4335
4390
  const { prepareMint, primaryMintActive } = await getMint({
4336
4391
  params: parameters,
4337
4392
  mintGetter,
4338
4393
  premintGetter,
4339
- publicClient
4394
+ publicClient,
4395
+ chainId
4340
4396
  });
4341
4397
  if (!primaryMintActive) {
4342
4398
  throw new Error("Primary mint is not active");
@@ -4443,19 +4499,27 @@ var parseNameIntoSymbol = (name) => {
4443
4499
  }
4444
4500
  return result;
4445
4501
  };
4502
+ var getMinimumMarketEth = (params) => {
4503
+ if (params.minimumMintsForCountdown) {
4504
+ return params.minimumMintsForCountdown * (0, import_viem7.parseEther)("0.0000111");
4505
+ }
4506
+ return params.minimumMarketEth || DEFAULT_MINIMUM_MARKET_ETH;
4507
+ };
4446
4508
  var timedSaleSettingsWithDefaults = (params, contractName) => {
4447
4509
  const erc20Name = params.erc20Name || contractName;
4448
- const symbol = params.erc20Symbol || parseNameIntoSymbol(erc20Name);
4449
- const start = params.saleStart || 0n;
4450
- const countdown = params.marketCountdown || DEFAULT_MARKET_COUNTDOWN;
4451
- const minimumEth = params.minimumMarketEth || DEFAULT_MINIMUM_MARKET_ETH;
4510
+ const minimumMarketEth = getMinimumMarketEth({
4511
+ minimumMarketEth: params.minimumMarketEth,
4512
+ minimumMintsForCountdown: params.minimumMintsForCountdown
4513
+ });
4514
+ const minimumMintsForCountdown = minimumMarketEth / (0, import_viem7.parseEther)("0.0000111");
4452
4515
  return {
4453
4516
  type: "timed",
4454
4517
  erc20Name,
4455
- erc20Symbol: symbol,
4456
- saleStart: start,
4457
- marketCountdown: countdown,
4458
- minimumMarketEth: minimumEth
4518
+ erc20Symbol: params.erc20Symbol || parseNameIntoSymbol(erc20Name),
4519
+ saleStart: params.saleStart || 0n,
4520
+ marketCountdown: params.marketCountdown || DEFAULT_MARKET_COUNTDOWN,
4521
+ minimumMarketEth,
4522
+ minimumMintsForCountdown
4459
4523
  };
4460
4524
  };
4461
4525
  var isAllowList = (salesConfig) => salesConfig.type === "allowlistMint";
@@ -4871,7 +4935,8 @@ function makeOnchainPrepareMintFromCreate({
4871
4935
  result,
4872
4936
  minter,
4873
4937
  getContractMintFee,
4874
- contractVersion
4938
+ contractVersion,
4939
+ chainId
4875
4940
  }) {
4876
4941
  return async (params) => {
4877
4942
  const subgraphSalesConfig = await toSalesStrategyFromSubgraph({
@@ -4887,7 +4952,8 @@ function makeOnchainPrepareMintFromCreate({
4887
4952
  },
4888
4953
  ...params,
4889
4954
  tokenContract: contractAddress,
4890
- tokenId
4955
+ tokenId,
4956
+ chainId
4891
4957
  }),
4892
4958
  costs: parseMintCosts({
4893
4959
  allowListEntry: params.allowListEntry,
@@ -5060,7 +5126,8 @@ async function createNew1155ContractAndToken({
5060
5126
  getContractMintFee: async () => getNewContractMintFee({
5061
5127
  publicClient,
5062
5128
  chainId
5063
- })
5129
+ }),
5130
+ chainId
5064
5131
  });
5065
5132
  return {
5066
5133
  parameters: request,
@@ -5106,7 +5173,8 @@ async function createNew1155Token({
5106
5173
  minter,
5107
5174
  result: newToken.salesConfig,
5108
5175
  tokenId: nextTokenId,
5109
- getContractMintFee: async () => mintFee
5176
+ getContractMintFee: async () => mintFee,
5177
+ chainId
5110
5178
  });
5111
5179
  return {
5112
5180
  parameters: request,
@@ -5734,7 +5802,7 @@ var SubgraphRewardsGetter = class extends SubgraphGetter {
5734
5802
  };
5735
5803
 
5736
5804
  // src/secondary/secondary-client.ts
5737
- var import_viem18 = require("viem");
5805
+ var import_viem19 = require("viem");
5738
5806
  var import_protocol_deployments15 = require("@zoralabs/protocol-deployments");
5739
5807
 
5740
5808
  // src/secondary/uniswap/uniswapQuote.ts
@@ -5964,6 +6032,7 @@ function calculateSlippageDown(amount, slippage) {
5964
6032
  }
5965
6033
 
5966
6034
  // src/secondary/utils.ts
6035
+ var import_viem18 = require("viem");
5967
6036
  var import_protocol_deployments14 = require("@zoralabs/protocol-deployments");
5968
6037
  async function getSecondaryInfo({
5969
6038
  contract,
@@ -5971,12 +6040,18 @@ async function getSecondaryInfo({
5971
6040
  publicClient,
5972
6041
  chainId
5973
6042
  }) {
5974
- const result = await publicClient.readContract({
5975
- abi: import_protocol_deployments14.zoraTimedSaleStrategyABI,
5976
- address: import_protocol_deployments14.zoraTimedSaleStrategyAddress[chainId],
5977
- functionName: "sale",
5978
- args: [contract, tokenId]
5979
- });
6043
+ let result;
6044
+ try {
6045
+ result = await publicClient.readContract({
6046
+ abi: import_protocol_deployments14.zoraTimedSaleStrategyABI,
6047
+ address: import_protocol_deployments14.zoraTimedSaleStrategyAddress[chainId],
6048
+ functionName: "saleV2",
6049
+ args: [contract, tokenId]
6050
+ });
6051
+ } catch (e) {
6052
+ console.error(e);
6053
+ return void 0;
6054
+ }
5980
6055
  if (!result.erc20zAddress) {
5981
6056
  return void 0;
5982
6057
  }
@@ -5984,7 +6059,15 @@ async function getSecondaryInfo({
5984
6059
  erc20z: result.erc20zAddress,
5985
6060
  pool: result.poolAddress,
5986
6061
  secondaryActivated: result.secondaryActivated,
5987
- saleEnd: result.saleEnd === 0n ? void 0 : result.saleEnd
6062
+ saleEnd: result.saleEnd === 0n ? void 0 : result.saleEnd,
6063
+ saleStart: result.saleStart,
6064
+ name: result.name,
6065
+ symbol: result.symbol,
6066
+ marketCountdown: result.marketCountdown === 0n ? void 0 : result.marketCountdown,
6067
+ minimumMintsForCountdown: result.minimumMarketEth === 0n ? void 0 : result.minimumMarketEth / (0, import_viem18.parseEther)("0.0000111"),
6068
+ mintCount: await publicClient.getBalance({
6069
+ address: result.erc20zAddress
6070
+ }) / (0, import_viem18.parseEther)("0.0000111")
5988
6071
  };
5989
6072
  }
5990
6073
 
@@ -5994,10 +6077,13 @@ var ERROR_INSUFFICIENT_WALLET_FUNDS = "Insufficient wallet funds";
5994
6077
  var ERROR_INSUFFICIENT_POOL_SUPPLY = "Insufficient pool supply";
5995
6078
  var ERROR_SECONDARY_NOT_CONFIGURED = "Secondary not configured for given contract and token";
5996
6079
  var ERROR_SECONDARY_NOT_STARTED = "Secondary market has not started";
6080
+ var ERROR_RECIPIENT_MISMATCH = "Recipient must be the same as the caller if there is a comment";
5997
6081
  function makeError(errorMessage) {
5998
6082
  return { error: errorMessage };
5999
6083
  }
6000
6084
  async function makeBuy({
6085
+ contract,
6086
+ tokenId,
6001
6087
  erc20z,
6002
6088
  poolBalance,
6003
6089
  amount,
@@ -6006,20 +6092,106 @@ async function makeBuy({
6006
6092
  recipient,
6007
6093
  chainId,
6008
6094
  slippage,
6009
- publicClient
6095
+ publicClient,
6096
+ comment
6010
6097
  }) {
6011
6098
  const costWithSlippage = calculateSlippageUp(amount, slippage);
6012
- const availableToBuy = poolBalance.erc20z / BigInt(1e18) - 1n;
6013
6099
  const accountAddress = addressOrAccountAddress(account);
6100
+ const validationResult = await validateBuyConditions({
6101
+ poolBalance,
6102
+ quantity,
6103
+ costWithSlippage,
6104
+ accountAddress,
6105
+ publicClient
6106
+ });
6107
+ if (validationResult.error) {
6108
+ return makeError(validationResult.error);
6109
+ }
6110
+ if (comment && comment !== "") {
6111
+ return handleBuyWithComment({
6112
+ accountAddress,
6113
+ recipient,
6114
+ chainId,
6115
+ quantity,
6116
+ contract,
6117
+ tokenId,
6118
+ costWithSlippage,
6119
+ comment,
6120
+ account
6121
+ });
6122
+ }
6123
+ return handleBuyWithoutComment({
6124
+ erc20z,
6125
+ quantity,
6126
+ recipient,
6127
+ accountAddress,
6128
+ costWithSlippage,
6129
+ chainId,
6130
+ account
6131
+ });
6132
+ }
6133
+ async function validateBuyConditions({
6134
+ poolBalance,
6135
+ quantity,
6136
+ costWithSlippage,
6137
+ accountAddress,
6138
+ publicClient
6139
+ }) {
6140
+ const availableToBuy = poolBalance.erc20z / BigInt(1e18) - 1n;
6014
6141
  const availableToSpend = await publicClient.getBalance({
6015
6142
  address: accountAddress
6016
6143
  });
6017
6144
  if (costWithSlippage > availableToSpend) {
6018
- return makeError(ERROR_INSUFFICIENT_WALLET_FUNDS);
6145
+ return { error: ERROR_INSUFFICIENT_WALLET_FUNDS };
6019
6146
  }
6020
6147
  if (availableToBuy < BigInt(quantity)) {
6021
- return makeError(ERROR_INSUFFICIENT_POOL_SUPPLY);
6148
+ return { error: ERROR_INSUFFICIENT_POOL_SUPPLY };
6022
6149
  }
6150
+ return {};
6151
+ }
6152
+ function handleBuyWithComment({
6153
+ accountAddress,
6154
+ recipient,
6155
+ chainId,
6156
+ quantity,
6157
+ contract,
6158
+ tokenId,
6159
+ costWithSlippage,
6160
+ comment,
6161
+ account
6162
+ }) {
6163
+ if (recipient && recipient !== accountAddress) {
6164
+ return makeError(ERROR_RECIPIENT_MISMATCH);
6165
+ }
6166
+ return {
6167
+ parameters: makeContractParameters({
6168
+ abi: import_protocol_deployments15.callerAndCommenterABI,
6169
+ address: import_protocol_deployments15.callerAndCommenterAddress[chainId],
6170
+ functionName: "buyOnSecondaryAndComment",
6171
+ args: [
6172
+ accountAddress,
6173
+ quantity,
6174
+ contract,
6175
+ tokenId,
6176
+ accountAddress,
6177
+ costWithSlippage,
6178
+ 0n,
6179
+ comment
6180
+ ],
6181
+ account,
6182
+ value: costWithSlippage
6183
+ })
6184
+ };
6185
+ }
6186
+ function handleBuyWithoutComment({
6187
+ erc20z,
6188
+ quantity,
6189
+ recipient,
6190
+ accountAddress,
6191
+ costWithSlippage,
6192
+ chainId,
6193
+ account
6194
+ }) {
6023
6195
  return {
6024
6196
  parameters: makeContractParameters({
6025
6197
  abi: import_protocol_deployments15.secondarySwapABI,
@@ -6046,7 +6218,8 @@ async function buyWithSlippage({
6046
6218
  chainId,
6047
6219
  account,
6048
6220
  slippage = UNISWAP_SLIPPAGE,
6049
- recipient
6221
+ recipient,
6222
+ comment
6050
6223
  }) {
6051
6224
  const secondaryInfo = await getSecondaryInfo({
6052
6225
  contract,
@@ -6073,6 +6246,8 @@ async function buyWithSlippage({
6073
6246
  );
6074
6247
  const call = await makeBuy({
6075
6248
  erc20z,
6249
+ contract,
6250
+ tokenId,
6076
6251
  poolBalance,
6077
6252
  amount,
6078
6253
  quantity,
@@ -6080,6 +6255,7 @@ async function buyWithSlippage({
6080
6255
  recipient,
6081
6256
  chainId,
6082
6257
  slippage,
6258
+ comment,
6083
6259
  publicClient
6084
6260
  });
6085
6261
  return {
@@ -6115,7 +6291,7 @@ async function makeSell({
6115
6291
  return makeError(ERROR_INSUFFICIENT_POOL_SUPPLY);
6116
6292
  }
6117
6293
  const receivedWithSlippage = calculateSlippageDown(amount, slippage);
6118
- const data = (0, import_viem18.encodeAbiParameters)(import_protocol_deployments15.safeTransferSwapAbiParameters, [
6294
+ const data = (0, import_viem19.encodeAbiParameters)(import_protocol_deployments15.safeTransferSwapAbiParameters, [
6119
6295
  recipient || accountAddress,
6120
6296
  receivedWithSlippage,
6121
6297
  0n
@@ -6269,7 +6445,8 @@ function createCollectorClient(params) {
6269
6445
  const mintClient = new MintClient({
6270
6446
  publicClient: params.publicClient,
6271
6447
  premintGetter: premintGetterToUse,
6272
- mintGetter: mintGetterToUse
6448
+ mintGetter: mintGetterToUse,
6449
+ chainId: params.chainId
6273
6450
  });
6274
6451
  const secondaryClient = new SecondaryClient({
6275
6452
  publicClient: params.publicClient,