@zoralabs/protocol-sdk 0.10.0 → 0.11.1

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 (55) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/CHANGELOG.md +18 -0
  3. package/dist/apis/multicall3.d.ts +1 -1
  4. package/dist/apis/multicall3.d.ts.map +1 -1
  5. package/dist/create/1155-create-helper.test.d.ts +3 -0
  6. package/dist/create/1155-create-helper.test.d.ts.map +1 -0
  7. package/dist/fixtures/contract-setup.d.ts +16 -0
  8. package/dist/fixtures/contract-setup.d.ts.map +1 -0
  9. package/dist/index.cjs +538 -28
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +556 -28
  12. package/dist/index.js.map +1 -1
  13. package/dist/sdk.d.ts +4 -0
  14. package/dist/sdk.d.ts.map +1 -1
  15. package/dist/secondary/conversions.d.ts +7 -0
  16. package/dist/secondary/conversions.d.ts.map +1 -0
  17. package/dist/secondary/secondary-client.d.ts +67 -0
  18. package/dist/secondary/secondary-client.d.ts.map +1 -0
  19. package/dist/secondary/slippage.d.ts +25 -0
  20. package/dist/secondary/slippage.d.ts.map +1 -0
  21. package/dist/secondary/types.d.ts +37 -0
  22. package/dist/secondary/types.d.ts.map +1 -0
  23. package/dist/secondary/uniswap/abis.d.ts +152 -0
  24. package/dist/secondary/uniswap/abis.d.ts.map +1 -0
  25. package/dist/secondary/uniswap/uniswapQuote.d.ts +13 -0
  26. package/dist/secondary/uniswap/uniswapQuote.d.ts.map +1 -0
  27. package/dist/secondary/uniswap/uniswapQuoteExact.d.ts +37 -0
  28. package/dist/secondary/uniswap/uniswapQuoteExact.d.ts.map +1 -0
  29. package/dist/secondary/uniswap/uniswapReserves.d.ts +3 -0
  30. package/dist/secondary/uniswap/uniswapReserves.d.ts.map +1 -0
  31. package/dist/secondary/utils.d.ts +10 -0
  32. package/dist/secondary/utils.d.ts.map +1 -0
  33. package/dist/sparks/sparks-contracts.d.ts.map +1 -1
  34. package/dist/types.d.ts +3 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/utils.d.ts +2 -1
  37. package/dist/utils.d.ts.map +1 -1
  38. package/package.json +2 -2
  39. package/src/apis/multicall3.ts +1 -1
  40. package/src/fixtures/contract-setup.ts +57 -0
  41. package/src/rewards/rewards-client.test.ts +15 -111
  42. package/src/sdk.ts +11 -0
  43. package/src/secondary/conversions.ts +20 -0
  44. package/src/secondary/secondary-client.test.ts +276 -0
  45. package/src/secondary/secondary-client.ts +374 -0
  46. package/src/secondary/slippage.ts +42 -0
  47. package/src/secondary/types.ts +64 -0
  48. package/src/secondary/uniswap/abis.ts +20 -0
  49. package/src/secondary/uniswap/uniswapQuote.ts +134 -0
  50. package/src/secondary/uniswap/uniswapQuoteExact.ts +114 -0
  51. package/src/secondary/uniswap/uniswapReserves.ts +34 -0
  52. package/src/secondary/utils.ts +40 -0
  53. package/src/sparks/sparks-contracts.ts +1 -3
  54. package/src/types.ts +6 -7
  55. package/src/utils.ts +7 -1
package/dist/sdk.d.ts CHANGED
@@ -7,6 +7,7 @@ import { IOnchainMintGetter } from "./mint/types";
7
7
  import { IContractGetter } from "./create/contract-getter";
8
8
  import { RewardsClient } from "./rewards/rewards-client";
9
9
  import { IRewardsGetter } from "./rewards/subgraph-rewards-getter";
10
+ import { SecondaryClient } from "./secondary/secondary-client";
10
11
  export type CreatorClient = {
11
12
  createPremint: PremintClient["createPremint"];
12
13
  updatePremint: PremintClient["updatePremint"];
@@ -23,6 +24,9 @@ export type CollectorClient = {
23
24
  getMintCosts: MintClient["getMintCosts"];
24
25
  getToken: MintClient["get"];
25
26
  getTokensOfContract: MintClient["getOfContract"];
27
+ buy1155OnSecondary: SecondaryClient["buy1155OnSecondary"];
28
+ sell1155OnSecondary: SecondaryClient["sell1155OnSecondary"];
29
+ getSecondaryInfo: SecondaryClient["getSecondaryInfo"];
26
30
  };
27
31
  export type CreatorClientConfig = ClientConfig & {
28
32
  /** API for submitting and getting premints. Defaults to the Zora Premint API */
package/dist/sdk.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAoB,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,cAAc,EAEf,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9C,4BAA4B,EAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IAClF,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,kBAAkB,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,gCAAgC,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC7E,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,mBAAmB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,iFAAiF;IACjF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;;KAKK;AACL,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,mBAAmB,GAChC,aAAa,CAkCf;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IACjD,kEAAkE;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CAwBjB"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAoB,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,cAAc,EAEf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9C,4BAA4B,EAAE,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IAClF,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,kBAAkB,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACxC,gCAAgC,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC7E,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,mBAAmB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjD,kBAAkB,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC1D,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,iFAAiF;IACjF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;;KAKK;AACL,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,mBAAmB,GAChC,aAAa,CAkCf;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IACjD,kEAAkE;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,eAAe,CA+BjB"}
@@ -0,0 +1,7 @@
1
+ export declare const WEI_PER_SPARK = 1000000000000n;
2
+ export declare function convertWeiToSparks(wei: string | number | bigint): bigint;
3
+ export declare function convertWeiToUSD({ amount, ethPriceInUSD, }: {
4
+ amount: bigint;
5
+ ethPriceInUSD: number;
6
+ }): number;
7
+ //# sourceMappingURL=conversions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../src/secondary/conversions.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,iBAAqB,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,UAE/D;AAGD,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,aAAa,GACd,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,UAIA"}
@@ -0,0 +1,67 @@
1
+ import { Address } from "viem";
2
+ import { PublicClient } from "src/utils";
3
+ import { SimulateContractParametersWithAccount } from "src/types";
4
+ import { QuotePrice, BuyWithSlippageInput, SellWithSlippageInput } from "./types";
5
+ export declare const ERROR_SECONDARY_NOT_STARTED = "Secondary market has not started";
6
+ type Call = {
7
+ parameters: SimulateContractParametersWithAccount;
8
+ error?: undefined;
9
+ } | {
10
+ parameters?: undefined;
11
+ error: string;
12
+ };
13
+ type BuyOrSellWithSlippageResult = ({
14
+ price: QuotePrice;
15
+ } & Call) | {
16
+ error: string;
17
+ price?: undefined;
18
+ parameters?: undefined;
19
+ };
20
+ export declare function buyWithSlippage({ contract, tokenId, publicClient, quantity, chainId, account, slippage, recipient, }: BuyWithSlippageInput & {
21
+ chainId: number;
22
+ publicClient: PublicClient;
23
+ }): Promise<BuyOrSellWithSlippageResult>;
24
+ export declare function sellWithSlippage({ contract, tokenId, publicClient, quantity, chainId, account, slippage, recipient, }: SellWithSlippageInput & {
25
+ chainId: number;
26
+ publicClient: PublicClient;
27
+ }): Promise<BuyOrSellWithSlippageResult>;
28
+ /**
29
+ * A client for handling secondary market operations.
30
+ */
31
+ export declare class SecondaryClient {
32
+ private publicClient;
33
+ private chainId;
34
+ /**
35
+ * Creates a new SecondaryClient instance.
36
+ * @param publicClient - The public client for interacting with the blockchain.
37
+ * @param chainId - The ID of the blockchain network.
38
+ */
39
+ constructor({ publicClient, chainId, }: {
40
+ publicClient: PublicClient;
41
+ chainId: number;
42
+ });
43
+ /**
44
+ * Get the secondary info for a given contract and token ID.
45
+ * @param contract - The address of the contract.
46
+ * @param tokenId - The ID of the token.
47
+ * @returns A promise that resolves to the secondary info.
48
+ */
49
+ getSecondaryInfo({ contract, tokenId, }: {
50
+ contract: Address;
51
+ tokenId: bigint;
52
+ }): Promise<import("./types").SecondaryInfo | undefined>;
53
+ /**
54
+ * Prepares a buy operation with slippage protection for purchasing a quantity of ERC1155 tokens with ETH on the secondary market.
55
+ * @param input - The input parameters for the buy operation.
56
+ * @returns A promise that resolves to the result of the buy operation, including price breakdown and transaction parameters.
57
+ */
58
+ buy1155OnSecondary(input: BuyWithSlippageInput): Promise<BuyOrSellWithSlippageResult>;
59
+ /**
60
+ * Prepares a sell operation with slippage protection for selling a quantity of ERC1155 tokens for ETH on the secondary market.
61
+ * @param input - The input parameters for the sell operation.
62
+ * @returns A promise that resolves to the result of the sell operation, including price breakdown and transaction parameters.
63
+ */
64
+ sell1155OnSecondary(input: SellWithSlippageInput): Promise<BuyOrSellWithSlippageResult>;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=secondary-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secondary-client.d.ts","sourceRoot":"","sources":["../../src/secondary/secondary-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAuB,MAAM,MAAM,CAAC;AAO7D,OAAO,EAA0B,YAAY,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,EAAE,qCAAqC,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAUjB,eAAO,MAAM,2BAA2B,qCAAqC,CAAC;AAO9E,KAAK,IAAI,GACL;IAEE,UAAU,EAAE,qCAAqC,CAAC;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACD;IACE,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA8DN,KAAK,2BAA2B,GAC5B,CAAC;IAEC,KAAK,EAAE,UAAU,CAAC;CACnB,GAAG,IAAI,CAAC,GACT;IACE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEN,wBAAsB,eAAe,CAAC,EACpC,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAA2B,EAC3B,SAAS,GACV,EAAE,oBAAoB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA6CvC;AAsED,wBAAsB,gBAAgB,CAAC,EACrC,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAA2B,EAC3B,SAAS,GACV,EAAE,qBAAqB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAwCvC;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB;;;;OAIG;gBACS,EACV,YAAY,EACZ,OAAO,GACR,EAAE;QACD,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB;IAKD;;;;;OAKG;IACG,gBAAgB,CAAC,EACrB,QAAQ,EACR,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB;IASD;;;;OAIG;IACG,kBAAkB,CACtB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,2BAA2B,CAAC;IASvC;;;;OAIG;IACG,mBAAmB,CACvB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,2BAA2B,CAAC;CAQxC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Increase a base amount by a slippage percentage
3
+ *
4
+ * @remarks
5
+ * This is useful when trying to calculate how much a user would at maximum pay,
6
+ * when allowing for the specified amount of slippage (i.e. when buying 1155s).
7
+ *
8
+ * @param amount - the amount to calculate with slippage (if a bigint is passed we assume wei, otherwise we assume ether/usd/etc)
9
+ * @param slippage - the slippage percantage as a fraction (i.e. 5% -> 0.05)
10
+ * @returns the amount increased by the slippage
11
+ */
12
+ export declare function calculateSlippageUp<T extends bigint | number | string, R = T extends bigint ? bigint : number>(amount: T, slippage: number): R;
13
+ /**
14
+ * Decrease a base amount by a slippage percentage
15
+ *
16
+ * @remarks
17
+ * This is useful when trying to calculate how much a user would at minimum receive,
18
+ * when allowing for the specified amount of slippage (i.e. when selling 1155s).
19
+ *
20
+ * @param amount - the amount to calculate with slippage (if a bigint is passed we assume wei, otherwise we assume ether/usd/etc)
21
+ * @param slippage - the slippage percantage as a fraction (i.e. 5% -> 0.05)
22
+ * @returns the amount decreased by the slippage
23
+ */
24
+ export declare function calculateSlippageDown<T extends bigint | number | string, R = T extends bigint ? bigint : number>(amount: T, slippage: number): R;
25
+ //# sourceMappingURL=slippage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slippage.d.ts","sourceRoot":"","sources":["../../src/secondary/slippage.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACtC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAIhC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACtC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAIhC"}
@@ -0,0 +1,37 @@
1
+ import { Address, Account } from "viem";
2
+ export type PriceBreakdown = {
3
+ perToken: bigint;
4
+ total: bigint;
5
+ };
6
+ export type QuotePrice = {
7
+ wei: PriceBreakdown;
8
+ sparks: PriceBreakdown;
9
+ usdc: () => Promise<{
10
+ perToken: number;
11
+ total: number;
12
+ }>;
13
+ };
14
+ export type GetQuoteOutput = {
15
+ amount: bigint;
16
+ poolBalance: {
17
+ erc20z: bigint;
18
+ weth: bigint;
19
+ };
20
+ price: QuotePrice;
21
+ };
22
+ export type BuyWithSlippageInput = {
23
+ contract: Address;
24
+ tokenId: bigint;
25
+ quantity: bigint;
26
+ account: Address | Account;
27
+ slippage?: number;
28
+ recipient?: Address;
29
+ };
30
+ export type SellWithSlippageInput = BuyWithSlippageInput;
31
+ export type SecondaryInfo = {
32
+ secondaryActivated: boolean;
33
+ pool: Address;
34
+ erc20z: Address;
35
+ saleEnd?: bigint;
36
+ };
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/secondary/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG;IAE3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAEvB,GAAG,EAAE,cAAc,CAAC;IAEpB,MAAM,EAAE,cAAc,CAAC;IAEvB,IAAI,EAAE,MAAM,OAAO,CAAC;QAElB,QAAQ,EAAE,MAAM,CAAC;QAEjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAE3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QAEX,MAAM,EAAE,MAAM,CAAC;QAEf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAE3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAE1B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,IAAI,EAAE,OAAO,CAAC;IAEd,MAAM,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,152 @@
1
+ export declare const uniswapQuoterABI: readonly [{
2
+ readonly name: "quoteExactInputSingle";
3
+ readonly type: "function";
4
+ readonly stateMutability: "nonpayable";
5
+ readonly inputs: readonly [{
6
+ readonly type: "tuple";
7
+ readonly components: readonly [{
8
+ readonly type: "address";
9
+ readonly name: "tokenIn";
10
+ }, {
11
+ readonly type: "address";
12
+ readonly name: "tokenOut";
13
+ }, {
14
+ readonly type: "uint256";
15
+ readonly name: "amountIn";
16
+ }, {
17
+ readonly type: "uint24";
18
+ readonly name: "fee";
19
+ }, {
20
+ readonly type: "uint160";
21
+ readonly name: "sqrtPriceLimitX96";
22
+ }];
23
+ readonly name: "params";
24
+ }];
25
+ readonly outputs: readonly [{
26
+ readonly type: "uint256";
27
+ readonly name: "amountOut";
28
+ }, {
29
+ readonly type: "uint160";
30
+ readonly name: "sqrtPriceX96After";
31
+ }, {
32
+ readonly type: "uint32";
33
+ readonly name: "initializedTicksCrossed";
34
+ }, {
35
+ readonly type: "uint256";
36
+ readonly name: "gasEstimate";
37
+ }];
38
+ }, {
39
+ readonly name: "quoteExactOutputSingle";
40
+ readonly type: "function";
41
+ readonly stateMutability: "nonpayable";
42
+ readonly inputs: readonly [{
43
+ readonly type: "tuple";
44
+ readonly components: readonly [{
45
+ readonly type: "address";
46
+ readonly name: "tokenIn";
47
+ }, {
48
+ readonly type: "address";
49
+ readonly name: "tokenOut";
50
+ }, {
51
+ readonly type: "uint256";
52
+ readonly name: "amount";
53
+ }, {
54
+ readonly type: "uint24";
55
+ readonly name: "fee";
56
+ }, {
57
+ readonly type: "uint160";
58
+ readonly name: "sqrtPriceLimitX96";
59
+ }];
60
+ readonly name: "params";
61
+ }];
62
+ readonly outputs: readonly [{
63
+ readonly type: "uint256";
64
+ readonly name: "amountIn";
65
+ }, {
66
+ readonly type: "uint160";
67
+ readonly name: "sqrtPriceX96After";
68
+ }, {
69
+ readonly type: "uint32";
70
+ readonly name: "initializedTicksCrossed";
71
+ }, {
72
+ readonly type: "uint256";
73
+ readonly name: "gasEstimate";
74
+ }];
75
+ }];
76
+ export declare const uniswapV3PoolAbi: readonly [{
77
+ readonly name: "fee";
78
+ readonly type: "function";
79
+ readonly stateMutability: "view";
80
+ readonly inputs: readonly [];
81
+ readonly outputs: readonly [{
82
+ readonly type: "uint24";
83
+ }];
84
+ }, {
85
+ readonly name: "liquidity";
86
+ readonly type: "function";
87
+ readonly stateMutability: "view";
88
+ readonly inputs: readonly [];
89
+ readonly outputs: readonly [{
90
+ readonly type: "uint128";
91
+ }];
92
+ }, {
93
+ readonly name: "slot0";
94
+ readonly type: "function";
95
+ readonly stateMutability: "view";
96
+ readonly inputs: readonly [];
97
+ readonly outputs: readonly [{
98
+ readonly type: "uint160";
99
+ readonly name: "sqrtPriceX96";
100
+ }, {
101
+ readonly type: "int24";
102
+ readonly name: "tick";
103
+ }, {
104
+ readonly type: "uint16";
105
+ readonly name: "observationIndex";
106
+ }, {
107
+ readonly type: "uint16";
108
+ readonly name: "observationCardinality";
109
+ }, {
110
+ readonly type: "uint16";
111
+ readonly name: "observationCardinalityNext";
112
+ }, {
113
+ readonly type: "uint8";
114
+ readonly name: "feeProtocol";
115
+ }, {
116
+ readonly type: "bool";
117
+ readonly name: "unlocked";
118
+ }];
119
+ }, {
120
+ readonly name: "token0";
121
+ readonly type: "function";
122
+ readonly stateMutability: "view";
123
+ readonly inputs: readonly [];
124
+ readonly outputs: readonly [{
125
+ readonly type: "address";
126
+ }];
127
+ }, {
128
+ readonly name: "token1";
129
+ readonly type: "function";
130
+ readonly stateMutability: "view";
131
+ readonly inputs: readonly [];
132
+ readonly outputs: readonly [{
133
+ readonly type: "address";
134
+ }];
135
+ }];
136
+ export declare const uniswapV2USDCAbi: readonly [{
137
+ readonly name: "getReserves";
138
+ readonly type: "function";
139
+ readonly stateMutability: "view";
140
+ readonly inputs: readonly [];
141
+ readonly outputs: readonly [{
142
+ readonly type: "uint112";
143
+ readonly name: "_reserve0";
144
+ }, {
145
+ readonly type: "uint112";
146
+ readonly name: "_reserve1";
147
+ }, {
148
+ readonly type: "uint32";
149
+ readonly name: "_blockTimestampLast";
150
+ }];
151
+ }];
152
+ //# sourceMappingURL=abis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../src/secondary/uniswap/abis.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAE3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Address } from "viem";
2
+ import { PublicClient } from "src/utils";
3
+ import { GetQuoteOutput } from "../types";
4
+ type GetQuoteInput = {
5
+ type: "buy" | "sell";
6
+ quantity: bigint;
7
+ poolAddress: Address;
8
+ erc20z: Address;
9
+ chainId: number;
10
+ };
11
+ export declare function getUniswapQuote(input: GetQuoteInput, client: PublicClient): Promise<GetQuoteOutput>;
12
+ export {};
13
+ //# sourceMappingURL=uniswapQuote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswapQuote.d.ts","sourceRoot":"","sources":["../../../src/secondary/uniswap/uniswapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,MAAM,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAoD1C,KAAK,aAAa,GAAG;IAEnB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,cAAc,CAAC,CA4DzB"}
@@ -0,0 +1,37 @@
1
+ import { Address } from "viem";
2
+ import { PublicClient } from "../../utils";
3
+ /**
4
+ * Fetches a quote for buying an exact amount of erc20z from the uniswap pool
5
+ *
6
+ * @param tokenIn - the token to sell (will be weth)
7
+ * @param tokenOut - the token to purchase (will be an erc20z)
8
+ * @param amount - the exact amount of erc20z to purchase
9
+ * @param fee - the fee of the pool
10
+ * @param chainId - the chain id
11
+ */
12
+ export declare function quoteExactOutputSingle({ tokenIn, tokenOut, amountOut, fee, chainId, client, }: {
13
+ tokenIn: Address;
14
+ tokenOut: Address;
15
+ amountOut: bigint;
16
+ fee: number;
17
+ chainId: number;
18
+ client: PublicClient;
19
+ }): Promise<bigint>;
20
+ /**
21
+ * Fetches a quote for selling an exact amount of erc20z to the uniswap pool
22
+ *
23
+ * @param tokenIn - the token to sell (will be erc20z)
24
+ * @param tokenOut - the token to purchase (will be weth)
25
+ * @param amount - the exact amount of erc20z to sell
26
+ * @param fee - the fee of the pool
27
+ * @param chainId - the chain id
28
+ */
29
+ export declare function quoteExactInputSingle({ tokenIn, tokenOut, amountIn, fee, chainId, client, }: {
30
+ tokenIn: Address;
31
+ tokenOut: Address;
32
+ amountIn: bigint;
33
+ fee: number;
34
+ chainId: number;
35
+ client: PublicClient;
36
+ }): Promise<bigint>;
37
+ //# sourceMappingURL=uniswapQuoteExact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswapQuoteExact.d.ts","sourceRoot":"","sources":["../../../src/secondary/uniswap/uniswapQuoteExact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAa/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc3C;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,EACH,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
@@ -0,0 +1,3 @@
1
+ export declare function getUniswapV2USDCReserves(): Promise<readonly [bigint, bigint, number]>;
2
+ export declare function getEthPriceInUSDC(): Promise<number>;
3
+ //# sourceMappingURL=uniswapReserves.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswapReserves.d.ts","sourceRoot":"","sources":["../../../src/secondary/uniswap/uniswapReserves.ts"],"names":[],"mappings":"AAOA,wBAAgB,wBAAwB,+CAUvC;AAaD,wBAAsB,iBAAiB,oBAGtC"}
@@ -0,0 +1,10 @@
1
+ import { Address } from "viem";
2
+ import { PublicClient } from "src/utils";
3
+ import { SecondaryInfo } from "./types";
4
+ export declare function getSecondaryInfo({ contract, tokenId, publicClient, chainId, }: {
5
+ contract: Address;
6
+ tokenId: bigint;
7
+ publicClient: PublicClient;
8
+ chainId: number;
9
+ }): Promise<SecondaryInfo | undefined>;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/secondary/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,wBAAsB,gBAAgB,CAAC,EACrC,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAsBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sparks-contracts.d.ts","sourceRoot":"","sources":["../../src/sparks/sparks-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sparks-contracts.d.ts","sourceRoot":"","sources":["../../src/sparks/sparks-contracts.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { Account, Address, PublicClient, SimulateContractParameters } from "viem";
1
+ import { Account, Address, SimulateContractParameters } from "viem";
2
+ import { PublicClient } from "src/utils";
2
3
  export type GenericTokenIdTypes = number | bigint | string;
3
- export type IPublicClient = Pick<PublicClient, "readContract" | "getBlock">;
4
+ export type IPublicClient = Pick<PublicClient, "readContract" | "getBlock" | "simulateContract" | "getBalance">;
4
5
  export type SimulateContractParametersWithAccount = SimulateContractParameters<any, any, any, any, any, Account | Address>;
5
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,OAAO,EACP,YAAY,EACZ,0BAA0B,EAC3B,MAAM,MAAM,CAAC;AAEd,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAE5E,MAAM,MAAM,qCAAqC,GAAG,0BAA0B,CAC5E,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,GAAG,OAAO,CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,YAAY,EACZ,cAAc,GAAG,UAAU,GAAG,kBAAkB,GAAG,YAAY,CAChE,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,0BAA0B,CAC5E,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,GAAG,OAAO,CAClB,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Account, Address, PublicClient as BasePublicClient } from "viem";
2
2
  import { SimulateContractParametersWithAccount } from "./types";
3
3
  export declare const makeContractParameters: (args: SimulateContractParametersWithAccount) => SimulateContractParametersWithAccount;
4
- export type PublicClient = Pick<BasePublicClient, "readContract" | "getBlock">;
4
+ export type PublicClient = Pick<BasePublicClient, "readContract" | "getBlock" | "simulateContract" | "getBalance">;
5
5
  export type ClientConfig = {
6
6
  /** The chain that the client is to run on. */
7
7
  chainId: number;
@@ -19,4 +19,5 @@ export declare function mintRecipientOrAccount({ mintRecipient, minterAccount, }
19
19
  export type Concrete<Type> = {
20
20
  [Property in keyof Type]-?: Type[Property];
21
21
  };
22
+ export declare const addressOrAccountAddress: (address: Address | Account) => `0x${string}`;
22
23
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,qCAAqC,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,sBAAsB,SAC3B,qCAAqC,0CACpC,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG;IACzB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,YAAY;;;EAKlE;AAED,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,aAAa,GACd,EAAE;IACD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC;CAClC,GAAG,OAAO,CAKV;AAED,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI;KAC1B,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC3C,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,qCAAqC,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,sBAAsB,SAC3B,qCAAqC,0CACpC,CAAC;AAEV,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,gBAAgB,EAChB,cAAc,GAAG,UAAU,GAAG,kBAAkB,GAAG,YAAY,CAChE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,YAAY;;;EAKlE;AAED,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,aAAa,GACd,EAAE;IACD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC;CAClC,GAAG,OAAO,CAKV;AAED,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI;KAC1B,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,OAAO,GAAG,OAAO,kBACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zoralabs/protocol-sdk",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "repository": "https://github.com/ourzora/zora-protocol",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "abitype": "^1.0.2",
20
- "@zoralabs/protocol-deployments": "^0.3.2"
20
+ "@zoralabs/protocol-deployments": "^0.3.3"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "viem": "^2.13.2"
@@ -8,7 +8,7 @@ export const multicall3Abi = [
8
8
  "function aggregate(Call[] calldata calls) public payable returns (uint256 blockNumber, bytes[] memory returnData)",
9
9
  "function aggregate3(Call3[] calldata calls) public payable returns (Result[] memory returnData)",
10
10
  "function aggregate3Value(Call3Value[] calldata calls) public payable returns (Result[] memory returnData)",
11
- ] as const;
11
+ ];
12
12
 
13
13
  export const multicall3Address = "0xcA11bde05977b3631167028862bE2a173976CA11";
14
14
 
@@ -0,0 +1,57 @@
1
+ import { Address, Chain, PublicClient, WalletClient } from "viem";
2
+ import { simulateAndWriteContractWithRetries } from "src/anvil";
3
+ import { createCreatorClient } from "src/sdk";
4
+ import {
5
+ demoContractMetadataURI,
6
+ demoTokenMetadataURI,
7
+ } from "src/create/1155-create-helper.test";
8
+ import { SubgraphMintGetter } from "src/mint/subgraph-mint-getter";
9
+ import { SubgraphRewardsGetter } from "../rewards/subgraph-rewards-getter";
10
+
11
+ export async function setupContractAndToken({
12
+ chain,
13
+ publicClient,
14
+ creatorAccount,
15
+ walletClient,
16
+ }: {
17
+ chain: Chain;
18
+ publicClient: PublicClient;
19
+ creatorAccount: Address;
20
+ walletClient: WalletClient;
21
+ }) {
22
+ const rewardsGetter = new SubgraphRewardsGetter(chain.id);
23
+ const creatorClient = createCreatorClient({
24
+ chainId: chain.id,
25
+ publicClient,
26
+ rewardsGetter,
27
+ });
28
+
29
+ const mintGetter = new SubgraphMintGetter(chain.id);
30
+ // create a new 1155 contract
31
+
32
+ const { contractAddress, parameters, newTokenId } =
33
+ await creatorClient.create1155({
34
+ contract: {
35
+ uri: demoContractMetadataURI,
36
+ name: `Test 1155-${Math.round(Math.random() * 100_000_000_000)}`,
37
+ },
38
+ token: {
39
+ tokenMetadataURI: demoTokenMetadataURI,
40
+ },
41
+ account: creatorAccount,
42
+ });
43
+
44
+ await simulateAndWriteContractWithRetries({
45
+ parameters,
46
+ walletClient,
47
+ publicClient,
48
+ });
49
+
50
+ return {
51
+ creatorClient,
52
+ contractAddress,
53
+ newTokenId,
54
+ mintGetter,
55
+ rewardsGetter,
56
+ };
57
+ }