@zoralabs/protocol-sdk 0.9.5 → 0.10.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 (45) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/CHANGELOG.md +17 -2
  3. package/dist/anvil.d.ts +11 -1
  4. package/dist/anvil.d.ts.map +1 -1
  5. package/dist/apis/multicall3.d.ts +9 -0
  6. package/dist/apis/multicall3.d.ts.map +1 -0
  7. package/dist/apis/subgraph-getter.d.ts +9 -0
  8. package/dist/apis/subgraph-getter.d.ts.map +1 -0
  9. package/dist/create/contract-getter.d.ts +3 -6
  10. package/dist/create/contract-getter.d.ts.map +1 -1
  11. package/dist/fixtures/mint-query-results.d.ts +10 -0
  12. package/dist/fixtures/mint-query-results.d.ts.map +1 -0
  13. package/dist/fixtures/rewards-query-results.d.ts +6 -0
  14. package/dist/fixtures/rewards-query-results.d.ts.map +1 -0
  15. package/dist/index.cjs +402 -161
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.js +408 -161
  18. package/dist/index.js.map +1 -1
  19. package/dist/mint/subgraph-mint-getter.d.ts +3 -5
  20. package/dist/mint/subgraph-mint-getter.d.ts.map +1 -1
  21. package/dist/rewards/rewards-client.d.ts +34 -0
  22. package/dist/rewards/rewards-client.d.ts.map +1 -0
  23. package/dist/rewards/rewards-queries.d.ts +34 -0
  24. package/dist/rewards/rewards-queries.d.ts.map +1 -0
  25. package/dist/rewards/subgraph-queries.d.ts +20 -0
  26. package/dist/rewards/subgraph-queries.d.ts.map +1 -0
  27. package/dist/rewards/subgraph-rewards-getter.d.ts +15 -0
  28. package/dist/rewards/subgraph-rewards-getter.d.ts.map +1 -0
  29. package/dist/sdk.d.ts +5 -0
  30. package/dist/sdk.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/src/apis/multicall3.ts +19 -0
  33. package/src/apis/subgraph-getter.ts +33 -0
  34. package/src/create/1155-create-helper.test.ts +18 -18
  35. package/src/create/contract-getter.ts +7 -29
  36. package/src/fixtures/mint-query-results.ts +55 -0
  37. package/src/fixtures/rewards-query-results.ts +25 -0
  38. package/src/mint/mint-client.test.ts +18 -46
  39. package/src/mint/subgraph-mint-getter.ts +7 -27
  40. package/src/rewards/rewards-client.test.ts +406 -0
  41. package/src/rewards/rewards-client.ts +67 -0
  42. package/src/rewards/rewards-queries.ts +253 -0
  43. package/src/rewards/subgraph-queries.ts +49 -0
  44. package/src/rewards/subgraph-rewards-getter.ts +33 -0
  45. package/src/sdk.ts +18 -0
package/dist/index.js CHANGED
@@ -2503,136 +2503,6 @@ import {
2503
2503
  premintTypedDataDefinition as premintTypedDataDefinition2
2504
2504
  } from "@zoralabs/protocol-deployments";
2505
2505
 
2506
- // src/retries.ts
2507
- async function wait(delayMs) {
2508
- return new Promise((resolve) => {
2509
- setTimeout(resolve, delayMs);
2510
- });
2511
- }
2512
- var retryInternal = async ({
2513
- tryFn,
2514
- maxTries = 3,
2515
- atTry,
2516
- linearBackoffMS = 200,
2517
- shouldRetryOnError = () => true
2518
- }) => {
2519
- try {
2520
- return await tryFn();
2521
- } catch (err) {
2522
- if (shouldRetryOnError(err)) {
2523
- if (atTry <= maxTries) {
2524
- await wait(atTry * linearBackoffMS);
2525
- return await retryInternal({
2526
- tryFn,
2527
- maxTries,
2528
- atTry: atTry + 1,
2529
- linearBackoffMS,
2530
- shouldRetryOnError
2531
- });
2532
- }
2533
- }
2534
- throw err;
2535
- }
2536
- };
2537
- var retriesGeneric = async (params) => {
2538
- return retryInternal({
2539
- ...params,
2540
- atTry: 1
2541
- });
2542
- };
2543
-
2544
- // src/apis/http-api-base.ts
2545
- var BadResponseError = class extends Error {
2546
- constructor(message, status, json) {
2547
- super(message);
2548
- this.name = "BadResponseError";
2549
- this.status = status;
2550
- this.json = json;
2551
- }
2552
- };
2553
- var get = async (url) => {
2554
- const response = await fetch(url, { method: "GET" });
2555
- if (response.status !== 200) {
2556
- let json;
2557
- try {
2558
- json = await response.json();
2559
- } catch (e) {
2560
- }
2561
- throw new BadResponseError(
2562
- `Invalid response, status ${response.status}`,
2563
- response.status,
2564
- json
2565
- );
2566
- }
2567
- return await response.json();
2568
- };
2569
- var post = async (url, data) => {
2570
- const controller = new AbortController();
2571
- const { signal } = controller;
2572
- const timeout = 30 * 60 * 1e3;
2573
- const timeoutId = setTimeout(() => controller.abort(), timeout);
2574
- const response = await fetch(url, {
2575
- method: "POST",
2576
- headers: {
2577
- "content-type": "application/json",
2578
- accept: "application/json"
2579
- },
2580
- body: JSON.stringify(data),
2581
- signal
2582
- });
2583
- clearTimeout(timeoutId);
2584
- if (response.status !== 200) {
2585
- let json;
2586
- try {
2587
- json = await response.json();
2588
- } catch (e) {
2589
- }
2590
- throw new BadResponseError(
2591
- `Bad response: ${response.status}`,
2592
- response.status,
2593
- json
2594
- );
2595
- }
2596
- return await response.json();
2597
- };
2598
- var defaultShouldRetry = (err) => {
2599
- return err instanceof BadResponseError && err.status >= 500;
2600
- };
2601
- var retries = async (tryFn, maxTries = 3, linearBackoffMS = 200, shouldRetry = defaultShouldRetry) => {
2602
- return retriesGeneric({
2603
- tryFn,
2604
- maxTries,
2605
- linearBackoffMS,
2606
- shouldRetryOnError: shouldRetry
2607
- });
2608
- };
2609
- var httpClient = {
2610
- get,
2611
- post,
2612
- retries
2613
- };
2614
-
2615
- // src/apis/subgraph-querier.ts
2616
- var SubgraphQuerier = class {
2617
- constructor(httpClient2) {
2618
- this.httpClient = httpClient2;
2619
- }
2620
- async query({
2621
- subgraphUrl,
2622
- query,
2623
- variables
2624
- }) {
2625
- const { retries: retries2, post: post2 } = this.httpClient;
2626
- const result = await retries2(async () => {
2627
- return await post2(subgraphUrl, {
2628
- query,
2629
- variables
2630
- });
2631
- });
2632
- return result?.data;
2633
- }
2634
- };
2635
-
2636
2506
  // src/mint/subgraph-queries.ts
2637
2507
  var NFT_SALE_STRATEGY_FRAGMENT = `
2638
2508
  fragment SaleStrategy on SalesStrategyConfig {
@@ -2759,6 +2629,156 @@ function buildPremintsOfContractQuery({
2759
2629
  };
2760
2630
  }
2761
2631
 
2632
+ // src/apis/subgraph-querier.ts
2633
+ var SubgraphQuerier = class {
2634
+ constructor(httpClient2) {
2635
+ this.httpClient = httpClient2;
2636
+ }
2637
+ async query({
2638
+ subgraphUrl,
2639
+ query,
2640
+ variables
2641
+ }) {
2642
+ const { retries: retries2, post: post2 } = this.httpClient;
2643
+ const result = await retries2(async () => {
2644
+ return await post2(subgraphUrl, {
2645
+ query,
2646
+ variables
2647
+ });
2648
+ });
2649
+ return result?.data;
2650
+ }
2651
+ };
2652
+
2653
+ // src/retries.ts
2654
+ async function wait(delayMs) {
2655
+ return new Promise((resolve) => {
2656
+ setTimeout(resolve, delayMs);
2657
+ });
2658
+ }
2659
+ var retryInternal = async ({
2660
+ tryFn,
2661
+ maxTries = 3,
2662
+ atTry,
2663
+ linearBackoffMS = 200,
2664
+ shouldRetryOnError = () => true
2665
+ }) => {
2666
+ try {
2667
+ return await tryFn();
2668
+ } catch (err) {
2669
+ if (shouldRetryOnError(err)) {
2670
+ if (atTry <= maxTries) {
2671
+ await wait(atTry * linearBackoffMS);
2672
+ return await retryInternal({
2673
+ tryFn,
2674
+ maxTries,
2675
+ atTry: atTry + 1,
2676
+ linearBackoffMS,
2677
+ shouldRetryOnError
2678
+ });
2679
+ }
2680
+ }
2681
+ throw err;
2682
+ }
2683
+ };
2684
+ var retriesGeneric = async (params) => {
2685
+ return retryInternal({
2686
+ ...params,
2687
+ atTry: 1
2688
+ });
2689
+ };
2690
+
2691
+ // src/apis/http-api-base.ts
2692
+ var BadResponseError = class extends Error {
2693
+ constructor(message, status, json) {
2694
+ super(message);
2695
+ this.name = "BadResponseError";
2696
+ this.status = status;
2697
+ this.json = json;
2698
+ }
2699
+ };
2700
+ var get = async (url) => {
2701
+ const response = await fetch(url, { method: "GET" });
2702
+ if (response.status !== 200) {
2703
+ let json;
2704
+ try {
2705
+ json = await response.json();
2706
+ } catch (e) {
2707
+ }
2708
+ throw new BadResponseError(
2709
+ `Invalid response, status ${response.status}`,
2710
+ response.status,
2711
+ json
2712
+ );
2713
+ }
2714
+ return await response.json();
2715
+ };
2716
+ var post = async (url, data) => {
2717
+ const controller = new AbortController();
2718
+ const { signal } = controller;
2719
+ const timeout = 30 * 60 * 1e3;
2720
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
2721
+ const response = await fetch(url, {
2722
+ method: "POST",
2723
+ headers: {
2724
+ "content-type": "application/json",
2725
+ accept: "application/json"
2726
+ },
2727
+ body: JSON.stringify(data),
2728
+ signal
2729
+ });
2730
+ clearTimeout(timeoutId);
2731
+ if (response.status !== 200) {
2732
+ let json;
2733
+ try {
2734
+ json = await response.json();
2735
+ } catch (e) {
2736
+ }
2737
+ throw new BadResponseError(
2738
+ `Bad response: ${response.status}`,
2739
+ response.status,
2740
+ json
2741
+ );
2742
+ }
2743
+ return await response.json();
2744
+ };
2745
+ var defaultShouldRetry = (err) => {
2746
+ return err instanceof BadResponseError && err.status >= 500;
2747
+ };
2748
+ var retries = async (tryFn, maxTries = 3, linearBackoffMS = 200, shouldRetry = defaultShouldRetry) => {
2749
+ return retriesGeneric({
2750
+ tryFn,
2751
+ maxTries,
2752
+ linearBackoffMS,
2753
+ shouldRetryOnError: shouldRetry
2754
+ });
2755
+ };
2756
+ var httpClient = {
2757
+ get,
2758
+ post,
2759
+ retries
2760
+ };
2761
+
2762
+ // src/apis/subgraph-getter.ts
2763
+ var SubgraphGetter = class {
2764
+ constructor(chainId, subgraphQuerier) {
2765
+ this.subgraphQuerier = subgraphQuerier || new SubgraphQuerier(httpClient);
2766
+ this.networkConfig = getApiNetworkConfigForChain(chainId);
2767
+ }
2768
+ async querySubgraphWithRetries({
2769
+ query,
2770
+ variables,
2771
+ parseResponseData
2772
+ }) {
2773
+ const responseData = await this.subgraphQuerier.query({
2774
+ subgraphUrl: this.networkConfig.subgraphUrl,
2775
+ query,
2776
+ variables
2777
+ });
2778
+ return parseResponseData(responseData);
2779
+ }
2780
+ };
2781
+
2762
2782
  // src/mint/subgraph-mint-getter.ts
2763
2783
  var getApiNetworkConfigForChain = (chainId) => {
2764
2784
  if (!networkConfigByChain[chainId]) {
@@ -2868,8 +2888,9 @@ function getTargetStrategy({
2868
2888
  }
2869
2889
  return targetStrategy;
2870
2890
  }
2871
- var SubgraphMintGetter = class {
2891
+ var SubgraphMintGetter = class extends SubgraphGetter {
2872
2892
  constructor(chainId, subgraphQuerier) {
2893
+ super(chainId, subgraphQuerier);
2873
2894
  this.getMintable = async ({
2874
2895
  tokenAddress,
2875
2896
  tokenId,
@@ -2894,24 +2915,10 @@ var SubgraphMintGetter = class {
2894
2915
  blockTime
2895
2916
  });
2896
2917
  };
2897
- this.subgraphQuerier = subgraphQuerier || new SubgraphQuerier(httpClient);
2898
- this.networkConfig = getApiNetworkConfigForChain(chainId);
2899
2918
  }
2900
2919
  async getContractMintFee(contract) {
2901
2920
  return BigInt(contract.mintFeePerQuantity);
2902
2921
  }
2903
- async querySubgraphWithRetries({
2904
- query,
2905
- variables,
2906
- parseResponseData
2907
- }) {
2908
- const responseData = await this.subgraphQuerier.query({
2909
- subgraphUrl: this.networkConfig.subgraphUrl,
2910
- query,
2911
- variables
2912
- });
2913
- return parseResponseData(responseData);
2914
- }
2915
2922
  async getContractMintable({
2916
2923
  tokenAddress,
2917
2924
  preferredSaleType,
@@ -5382,22 +5389,9 @@ function buildContractInfoQuery({
5382
5389
  }
5383
5390
 
5384
5391
  // src/create/contract-getter.ts
5385
- var SubgraphContractGetter = class {
5392
+ var SubgraphContractGetter = class extends SubgraphGetter {
5386
5393
  constructor(chainId, subgraphQuerier) {
5387
- this.subgraphQuerier = subgraphQuerier || new SubgraphQuerier(httpClient);
5388
- this.networkConfig = getApiNetworkConfigForChain(chainId);
5389
- }
5390
- async querySubgraphWithRetries({
5391
- query,
5392
- variables,
5393
- parseResponseData
5394
- }) {
5395
- const responseData = await this.subgraphQuerier.query({
5396
- subgraphUrl: this.networkConfig.subgraphUrl,
5397
- query,
5398
- variables
5399
- });
5400
- return parseResponseData(responseData);
5394
+ super(chainId, subgraphQuerier);
5401
5395
  }
5402
5396
  async getContractInfo({
5403
5397
  contractAddress,
@@ -5428,6 +5422,252 @@ var SubgraphContractGetter = class {
5428
5422
  }
5429
5423
  };
5430
5424
 
5425
+ // src/rewards/rewards-queries.ts
5426
+ import {
5427
+ protocolRewardsABI,
5428
+ protocolRewardsAddress,
5429
+ erc20ZRoyaltiesABI,
5430
+ erc20ZRoyaltiesAddress,
5431
+ wethAddress
5432
+ } from "@zoralabs/protocol-deployments";
5433
+ import { encodeFunctionData as encodeFunctionData4, parseAbi as parseAbi2 } from "viem";
5434
+
5435
+ // src/apis/multicall3.ts
5436
+ var multicall3Abi = [
5437
+ "struct Call { address target; bytes callData; }",
5438
+ "struct Call3 { address target; bool allowFailure; bytes callData; }",
5439
+ "struct Call3Value { address target; bool allowFailure; uint256 value; bytes callData; }",
5440
+ "struct Result { bool success; bytes returnData; }",
5441
+ "function aggregate(Call[] calldata calls) public payable returns (uint256 blockNumber, bytes[] memory returnData)",
5442
+ "function aggregate3(Call3[] calldata calls) public payable returns (Result[] memory returnData)",
5443
+ "function aggregate3Value(Call3Value[] calldata calls) public payable returns (Result[] memory returnData)"
5444
+ ];
5445
+ var multicall3Address = "0xcA11bde05977b3631167028862bE2a173976CA11";
5446
+
5447
+ // src/rewards/rewards-queries.ts
5448
+ function aggregateUnclaimedFees(unclaimedFees, wethAddress2) {
5449
+ let ethBalance = 0n;
5450
+ const unclaimedFeesAggregate = unclaimedFees.reduce(
5451
+ (acc, fee) => {
5452
+ const addFee = (token, amount) => {
5453
+ if (token === wethAddress2) {
5454
+ ethBalance += amount;
5455
+ } else if (acc[token]) {
5456
+ acc[token] += amount;
5457
+ } else {
5458
+ acc[token] = amount;
5459
+ }
5460
+ };
5461
+ addFee(fee.token0, fee.token0Amount * 75n / 100n);
5462
+ addFee(fee.token1, fee.token1Amount * 75n / 100n);
5463
+ return acc;
5464
+ },
5465
+ {}
5466
+ );
5467
+ return {
5468
+ eth: ethBalance * 75n / 100n,
5469
+ // Apply 75% fee to ETH balance
5470
+ erc20: unclaimedFeesAggregate
5471
+ };
5472
+ }
5473
+ var getRewardsBalance = async ({
5474
+ account,
5475
+ // The account to check rewards for (Address or Account object)
5476
+ publicClient,
5477
+ // The public client for making blockchain queries
5478
+ chainId,
5479
+ // The ID of the blockchain network
5480
+ rewardsGetter
5481
+ // Interface for getting ERC20Z tokens for a creator
5482
+ }) => {
5483
+ const address = typeof account === "string" ? account : account.address;
5484
+ const erc20Zs = await rewardsGetter.getErc20ZzForCreator({ address });
5485
+ const result = await publicClient.multicall({
5486
+ contracts: [
5487
+ {
5488
+ address: protocolRewardsAddress[chainId],
5489
+ abi: protocolRewardsABI,
5490
+ functionName: "balanceOf",
5491
+ args: [address]
5492
+ },
5493
+ {
5494
+ address: erc20ZRoyaltiesAddress[chainId],
5495
+ abi: erc20ZRoyaltiesABI,
5496
+ functionName: "getUnclaimedFeesBatch",
5497
+ args: [erc20Zs]
5498
+ }
5499
+ ],
5500
+ multicallAddress: multicall3Address,
5501
+ allowFailure: false
5502
+ });
5503
+ const protocolRewardsBalance = result[0];
5504
+ const wethAddressForChain = wethAddress[chainId];
5505
+ const unclaimedFeesAggregate = aggregateUnclaimedFees(
5506
+ result[1],
5507
+ wethAddressForChain
5508
+ );
5509
+ return {
5510
+ protocolRewards: protocolRewardsBalance,
5511
+ secondaryRoyalties: unclaimedFeesAggregate
5512
+ };
5513
+ };
5514
+ var withdrawProtocolRewards = ({
5515
+ withdrawFor,
5516
+ chainId
5517
+ }) => {
5518
+ return makeContractParameters({
5519
+ abi: protocolRewardsABI,
5520
+ functionName: "withdrawFor",
5521
+ address: protocolRewardsAddress[chainId],
5522
+ args: [withdrawFor, 0n]
5523
+ });
5524
+ };
5525
+ var makeClaimSecondaryRoyaltiesCalls = async ({
5526
+ claimFor,
5527
+ chainId,
5528
+ rewardsGetter
5529
+ }) => {
5530
+ const erc20z = await rewardsGetter.getErc20ZzForCreator({
5531
+ address: claimFor
5532
+ });
5533
+ const royaltiesAddress = erc20ZRoyaltiesAddress[chainId];
5534
+ if (erc20z.length === 0) {
5535
+ return [];
5536
+ }
5537
+ return erc20z.map((erc20z2) => ({
5538
+ target: royaltiesAddress,
5539
+ callData: encodeFunctionData4({
5540
+ abi: erc20ZRoyaltiesABI,
5541
+ functionName: "claimFor",
5542
+ args: [erc20z2]
5543
+ }),
5544
+ allowFailure: false
5545
+ }));
5546
+ };
5547
+ var createProtocolRewardsCall = (chainId, withdrawFor) => ({
5548
+ target: protocolRewardsAddress[chainId],
5549
+ callData: encodeFunctionData4({
5550
+ abi: protocolRewardsABI,
5551
+ functionName: "withdrawFor",
5552
+ args: [withdrawFor, 0n]
5553
+ }),
5554
+ allowFailure: false
5555
+ });
5556
+ var createMulticallParameters = (calls, account) => makeContractParameters({
5557
+ abi: parseAbi2(multicall3Abi),
5558
+ functionName: "aggregate3",
5559
+ address: multicall3Address,
5560
+ args: [calls],
5561
+ account
5562
+ });
5563
+ var withdrawRewards = async ({
5564
+ account,
5565
+ withdrawFor,
5566
+ claimSecondaryRoyalties = true,
5567
+ chainId,
5568
+ rewardsGetter
5569
+ }) => {
5570
+ if (!claimSecondaryRoyalties) {
5571
+ return {
5572
+ ...withdrawProtocolRewards({ chainId, withdrawFor }),
5573
+ account
5574
+ };
5575
+ }
5576
+ const protocolRewardsCall = createProtocolRewardsCall(chainId, withdrawFor);
5577
+ const secondaryRoyaltiesCalls = await makeClaimSecondaryRoyaltiesCalls({
5578
+ chainId,
5579
+ claimFor: withdrawFor,
5580
+ rewardsGetter
5581
+ });
5582
+ const allCalls = [protocolRewardsCall, ...secondaryRoyaltiesCalls];
5583
+ return createMulticallParameters(allCalls, account);
5584
+ };
5585
+
5586
+ // src/rewards/rewards-client.ts
5587
+ var RewardsClient = class {
5588
+ constructor({
5589
+ chainId,
5590
+ publicClient,
5591
+ rewardsGetter
5592
+ }) {
5593
+ this.chainId = chainId;
5594
+ this.publicClient = publicClient;
5595
+ this.rewardsGetter = rewardsGetter;
5596
+ }
5597
+ /** Withdraws rewards for a given account */
5598
+ async withdrawRewards({
5599
+ account,
5600
+ withdrawFor,
5601
+ claimSecondaryRoyalties
5602
+ }) {
5603
+ return {
5604
+ parameters: await withdrawRewards({
5605
+ chainId: this.chainId,
5606
+ rewardsGetter: this.rewardsGetter,
5607
+ withdrawFor,
5608
+ claimSecondaryRoyalties,
5609
+ account
5610
+ })
5611
+ };
5612
+ }
5613
+ /** Retrieves the rewards balances for a given account */
5614
+ async getRewardsBalances(params) {
5615
+ return getRewardsBalance({
5616
+ account: params.account,
5617
+ chainId: this.chainId,
5618
+ publicClient: this.publicClient,
5619
+ rewardsGetter: this.rewardsGetter
5620
+ });
5621
+ }
5622
+ };
5623
+
5624
+ // src/rewards/subgraph-queries.ts
5625
+ function buildCreatorERC20zs({
5626
+ address
5627
+ }) {
5628
+ return {
5629
+ query: `
5630
+ query ($address: Bytes!) {
5631
+ zoraCreateTokens(
5632
+ where: { royalties_: { user: $address }, salesStrategies_: { type: "ZORA_TIMED" } }
5633
+ ) {
5634
+ royalties {
5635
+ user
5636
+ }
5637
+ salesStrategies {
5638
+ zoraTimedMinter {
5639
+ erc20Z {
5640
+ id
5641
+ }
5642
+ }
5643
+ }
5644
+ }
5645
+ }
5646
+ `,
5647
+ variables: { address },
5648
+ parseResponseData: (responseData) => {
5649
+ return responseData?.zoraCreateTokens;
5650
+ }
5651
+ };
5652
+ }
5653
+
5654
+ // src/rewards/subgraph-rewards-getter.ts
5655
+ var SubgraphRewardsGetter = class extends SubgraphGetter {
5656
+ constructor(chainId, subgraphQuerier) {
5657
+ super(chainId, subgraphQuerier);
5658
+ }
5659
+ async getErc20ZzForCreator({
5660
+ address
5661
+ }) {
5662
+ const queryResults = await this.querySubgraphWithRetries(
5663
+ buildCreatorERC20zs({ address })
5664
+ );
5665
+ return queryResults?.map(
5666
+ (result) => result.salesStrategies[0].zoraTimedMinter.erc20Z.id
5667
+ ) || [];
5668
+ }
5669
+ };
5670
+
5431
5671
  // src/sdk.ts
5432
5672
  function createCreatorClient(clientConfig) {
5433
5673
  const premintClient = new PremintClient({
@@ -5440,12 +5680,19 @@ function createCreatorClient(clientConfig) {
5440
5680
  publicClient: clientConfig.publicClient,
5441
5681
  contractGetter: clientConfig.contractGetter || new SubgraphContractGetter(clientConfig.chainId)
5442
5682
  });
5683
+ const rewardsClient = new RewardsClient({
5684
+ chainId: clientConfig.chainId,
5685
+ publicClient: clientConfig.publicClient,
5686
+ rewardsGetter: clientConfig.rewardsGetter || new SubgraphRewardsGetter(clientConfig.chainId)
5687
+ });
5443
5688
  return {
5444
5689
  createPremint: (p) => premintClient.createPremint(p),
5445
5690
  updatePremint: (p) => premintClient.updatePremint(p),
5446
5691
  deletePremint: (p) => premintClient.deletePremint(p),
5447
5692
  create1155: (p) => create1155CreatorClient.createNew1155(p),
5448
- create1155OnExistingContract: (p) => create1155CreatorClient.createNew1155OnExistingContract(p)
5693
+ create1155OnExistingContract: (p) => create1155CreatorClient.createNew1155OnExistingContract(p),
5694
+ getRewardsBalances: (p) => rewardsClient.getRewardsBalances(p),
5695
+ withdrawRewards: (p) => rewardsClient.withdrawRewards(p)
5449
5696
  };
5450
5697
  }
5451
5698
  function createCollectorClient(params) {