@zoralabs/protocol-sdk 0.11.10 → 0.11.11-DEV.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.
package/.env ADDED
@@ -0,0 +1,3 @@
1
+ VITE_CONDUIT_KEY=066ae224-b5c3-4086-ac11-a3a44ede9458
2
+ VITE_ALCHEMY_KEY=SMkQiSpoj4za3-0hO0eP78i3b0OrBT4k
3
+ PRIVATE_KEY=0x3a751f9ab33f32f374bd8c800b7a78725b33744dbf0716ca359dcd042c4b31c8
@@ -1,18 +1,18 @@
1
-
2
- > @zoralabs/protocol-sdk@0.11.10 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/protocol-sdk
3
- > pnpm tsup
4
-
5
- CLI Building entry: src/index.ts
6
- CLI Using tsconfig: tsconfig.build.json
7
- CLI tsup v7.3.0
8
- CLI Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/protocol-sdk/tsup.config.ts
9
- CLI Target: es2021
10
- CLI Cleaning output folder
11
- CJS Build start
12
- ESM Build start
13
- CJS dist/index.cjs 229.00 KB
14
- CJS dist/index.cjs.map 463.84 KB
15
- CJS ⚡️ Build success in 457ms
16
- ESM dist/index.js 222.71 KB
17
- ESM dist/index.js.map 462.00 KB
18
- ESM ⚡️ Build success in 463ms
1
+
2
+ > @zoralabs/protocol-sdk@0.11.11-DEV.0 build /Users/danovedzora/source/zora-protocol/packages/protocol-sdk
3
+ > pnpm tsup
4
+
5
+ CLI Building entry: src/index.ts
6
+ CLI Using tsconfig: tsconfig.build.json
7
+ CLI tsup v7.3.0
8
+ CLI Using tsup config: /Users/danovedzora/source/zora-protocol/packages/protocol-sdk/tsup.config.ts
9
+ CLI Target: es2021
10
+ CLI Cleaning output folder
11
+ CJS Build start
12
+ ESM Build start
13
+ CJS dist/index.cjs 229.00 KB
14
+ CJS dist/index.cjs.map 463.84 KB
15
+ CJS ⚡️ Build success in 46ms
16
+ ESM dist/index.js 222.71 KB
17
+ ESM dist/index.js.map 462.00 KB
18
+ ESM ⚡️ Build success in 46ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @zoralabs/protocol-sdk
2
2
 
3
+ ## 0.11.11-DEV.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [e2f40e1a]
8
+ - @zoralabs/protocol-deployments@0.3.11-DEV.0
9
+
3
10
  ## 0.11.10
4
11
 
5
12
  ### Patch Changes
package/dist/anvil.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Account, Chain, PublicClient, SimulateContractReturnType, TestClient, Transport, WalletClient } from "viem";
2
- import { SimulateContractParametersWithAccount } from "./types";
1
+ import { Chain, PublicClient, TestClient, Transport, WalletClient } from "viem";
3
2
  export interface AnvilViemClientsTest {
4
3
  viemClients: {
5
4
  walletClient: WalletClient;
@@ -34,14 +33,4 @@ export declare const anvilTest: import("vitest").TestAPI<{
34
33
  chain: Chain;
35
34
  };
36
35
  }>;
37
- export declare function simulateAndWriteContractWithRetries({ parameters, walletClient, publicClient, }: {
38
- parameters: SimulateContractParametersWithAccount;
39
- walletClient: WalletClient;
40
- publicClient: PublicClient;
41
- }): Promise<import("viem").TransactionReceipt>;
42
- export declare function writeContractWithRetries({ request, walletClient, publicClient, }: {
43
- request: SimulateContractReturnType<any, any, any, Chain, Account>["request"];
44
- walletClient: WalletClient;
45
- publicClient: PublicClient;
46
- }): Promise<import("viem").TransactionReceipt>;
47
36
  //# sourceMappingURL=anvil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,YAAY,EAKb,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,qCAAqC,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE;QACX,YAAY,EAAE,YAAY,CAAC;QAE3B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,KAAK,CAAC;KACd,CAAC;CACH;AAaD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,gDAIvB,qBAAqB;;sBA7BN,YAAY;sBAEZ,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;oBAChC,UAAU;eACf,KAAK;;EAoFZ,CAAC;AAEL,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;sBAhGJ,YAAY;sBAEZ,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;oBAChC,UAAU;eACf,KAAK;;EAgGd,CAAC;AAEH,wBAAsB,mCAAmC,CAAC,EACxD,UAAU,EACV,YAAY,EACZ,YAAY,GACb,EAAE;IACD,UAAU,EAAE,qCAAqC,CAAC;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B,8CAOA;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,YAAY,EACZ,YAAY,GACb,EAAE;IACD,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9E,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B,8CAuBA"}
1
+ {"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EAKb,MAAM,MAAM,CAAC;AAGd,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE;QACX,YAAY,EAAE,YAAY,CAAC;QAE3B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,UAAU,EAAE,UAAU,CAAC;QACvB,KAAK,EAAE,KAAK,CAAC;KACd,CAAC;CACH;AAaD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,gDAIvB,qBAAqB;;sBA7BN,YAAY;sBAEZ,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;oBAChC,UAAU;eACf,KAAK;;EAoFZ,CAAC;AAEL,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;sBAhGJ,YAAY;sBAEZ,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;oBAChC,UAAU;eACf,KAAK;;EAgGd,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { zoraCreator1155FactoryImplAddress } from "@zoralabs/protocol-deployments";
2
- import { Address, Hex, PublicClient } from "viem";
2
+ import { Address, PublicClient, Chain, WalletClient, SimulateContractReturnType, Account } from "viem";
3
3
  import { NewContractParams } from "./create/types";
4
- export declare const waitForSuccess: (hash: Hex, publicClient: PublicClient) => Promise<import("viem").TransactionReceipt>;
4
+ import { SimulateContractParametersWithAccount } from "./types";
5
5
  export declare const getFixedPricedMinter: ({ publicClient, chainId, }: {
6
6
  publicClient: PublicClient;
7
7
  chainId: keyof typeof zoraCreator1155FactoryImplAddress;
@@ -12,4 +12,14 @@ export declare const fixedPriceMinterMinterArguments: ({ mintRecipient, }: {
12
12
  export declare function randomNewContract(): NewContractParams;
13
13
  export declare const randomNonce: () => `0x${string}`;
14
14
  export declare const thirtySecondsFromNow: () => bigint;
15
+ export declare function simulateAndWriteContractWithRetries({ parameters, walletClient, publicClient, }: {
16
+ parameters: SimulateContractParametersWithAccount;
17
+ walletClient: WalletClient;
18
+ publicClient: PublicClient;
19
+ }): Promise<import("viem").TransactionReceipt>;
20
+ export declare function writeContractWithRetries({ request, walletClient, publicClient, }: {
21
+ request: SimulateContractReturnType<any, any, any, Chain, Account>["request"];
22
+ walletClient: WalletClient;
23
+ publicClient: PublicClient;
24
+ }): Promise<import("viem").TransactionReceipt>;
15
25
  //# sourceMappingURL=test-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,OAAO,EACP,GAAG,EACH,YAAY,EAKb,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,eAAO,MAAM,cAAc,SAAgB,GAAG,gBAAgB,YAAY,+CAQzE,CAAC;AAEF,eAAO,MAAM,oBAAoB,+BAG9B;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,iCAAiC,CAAC;CACzD,2BAKG,CAAC;AAEL,eAAO,MAAM,+BAA+B,uBAEzC;IACD,aAAa,EAAE,OAAO,CAAC;CACxB,kBAAwE,CAAC;AAI1E,wBAAgB,iBAAiB,IAAI,iBAAiB,CAKrD;AAED,eAAO,MAAM,WAAW,qBAC8B,CAAC;AACvD,eAAO,MAAM,oBAAoB,cACsB,CAAC"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iCAAiC,EAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,OAAO,EACP,YAAY,EAKZ,KAAK,EACL,YAAY,EACZ,0BAA0B,EAC1B,OAAO,EACR,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,qCAAqC,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,oBAAoB,+BAG9B;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,iCAAiC,CAAC;CACzD,2BAKG,CAAC;AAEL,eAAO,MAAM,+BAA+B,uBAEzC;IACD,aAAa,EAAE,OAAO,CAAC;CACxB,kBAAwE,CAAC;AAI1E,wBAAgB,iBAAiB,IAAI,iBAAiB,CAKrD;AAED,eAAO,MAAM,WAAW,qBAC8B,CAAC;AACvD,eAAO,MAAM,oBAAoB,cACsB,CAAC;AAExD,wBAAsB,mCAAmC,CAAC,EACxD,UAAU,EACV,YAAY,EACZ,YAAY,GACb,EAAE;IACD,UAAU,EAAE,qCAAqC,CAAC;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B,8CAOA;AAED,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,YAAY,EACZ,YAAY,GACb,EAAE;IACD,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9E,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;CAC5B,8CAuBA"}
@@ -0,0 +1,4 @@
1
+ import { Hex } from "viem/_types/types/misc";
2
+ import { PublicClient } from "viem";
3
+ export declare const waitForSuccess: (hash: Hex, publicClient: PublicClient) => Promise<import("viem").TransactionReceipt>;
4
+ //# sourceMappingURL=waitForSuccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForSuccess.d.ts","sourceRoot":"","sources":["../src/waitForSuccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,eAAO,MAAM,cAAc,SAAgB,GAAG,gBAAgB,YAAY,+CAQzE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zoralabs/protocol-sdk",
3
- "version": "0.11.10",
3
+ "version": "0.11.11-DEV.0",
4
4
  "repository": "https://github.com/ourzora/zora-protocol",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  "dependencies": {
19
- "@zoralabs/protocol-deployments": "^0.3.10"
19
+ "@zoralabs/protocol-deployments": "^0.3.11-DEV.4"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "viem": "^2.21.21",
@@ -1,5 +1,6 @@
1
1
  import { describe, expect } from "vitest";
2
- import { forkUrls, makeAnvilTest, writeContractWithRetries } from "src/anvil";
2
+ import { forkUrls, makeAnvilTest } from "src/anvil";
3
+ import { writeContractWithRetries } from "src/test-utils";
3
4
  import { base, zora } from "viem/chains";
4
5
  import {
5
6
  commentsABI,
@@ -25,7 +26,8 @@ import {
25
26
  hashTypedData,
26
27
  } from "viem";
27
28
  import { createCreatorClient } from "src/sdk";
28
- import { randomNewContract, waitForSuccess } from "src/test-utils";
29
+ import { randomNewContract } from "src/test-utils";
30
+ import { waitForSuccess } from "src/waitForSuccess";
29
31
  import { permitCommentTypedDataDefinition } from "@zoralabs/protocol-deployments";
30
32
  import { demoTokenMetadataURI } from "src/fixtures/contract-setup";
31
33
  import { randomNonce, thirtySecondsFromNow } from "src/test-utils";
@@ -9,15 +9,14 @@ import {
9
9
  zoraTimedSaleStrategyABI,
10
10
  zoraTimedSaleStrategyAddress,
11
11
  } from "@zoralabs/protocol-deployments";
12
- import { waitForSuccess } from "src/test-utils";
12
+ import { waitForSuccess } from "src/waitForSuccess";
13
13
  import { Address, erc20Abi, parseEther, PublicClient } from "viem";
14
14
  import { makePrepareMint1155TokenParams } from "src/mint/mint-transactions";
15
+ import { forkUrls, makeAnvilTest } from "src/anvil";
15
16
  import {
16
- forkUrls,
17
- makeAnvilTest,
18
17
  simulateAndWriteContractWithRetries,
19
18
  writeContractWithRetries,
20
- } from "src/anvil";
19
+ } from "src/test-utils";
21
20
  import { zora } from "viem/chains";
22
21
  import { AllowList } from "src/allow-list/types";
23
22
  import { createAllowList } from "src/allow-list/allow-list-client";
@@ -1,5 +1,5 @@
1
1
  import { Address, Chain, PublicClient, WalletClient } from "viem";
2
- import { simulateAndWriteContractWithRetries } from "src/anvil";
2
+ import { simulateAndWriteContractWithRetries } from "src/test-utils";
3
3
  import { createCreatorClient } from "src/sdk";
4
4
  import { SubgraphMintGetter } from "src/mint/subgraph-mint-getter";
5
5
  import { SubgraphRewardsGetter } from "../rewards/subgraph-rewards-getter";
@@ -1,6 +1,6 @@
1
1
  import { Address, Account, PublicClient, TestClient, WalletClient } from "viem";
2
2
  import { CollectorClient } from "../sdk";
3
- import { simulateAndWriteContractWithRetries } from "../anvil";
3
+ import { simulateAndWriteContractWithRetries } from "src/test-utils";
4
4
  import { makeContractParameters } from "../utils";
5
5
  import {
6
6
  zoraTimedSaleStrategyABI,
@@ -14,7 +14,8 @@ import {
14
14
  commentsABI,
15
15
  callerAndCommenterABI,
16
16
  } from "@zoralabs/protocol-deployments";
17
- import { forkUrls, makeAnvilTest, writeContractWithRetries } from "src/anvil";
17
+ import { forkUrls, makeAnvilTest } from "src/anvil";
18
+ import { writeContractWithRetries } from "src/test-utils";
18
19
  import { createCollectorClient, createCreatorClient } from "src/sdk";
19
20
  import { getAllowListEntry } from "src/allow-list/allow-list-client";
20
21
  import { SubgraphMintGetter } from "./subgraph-mint-getter";
@@ -1,11 +1,8 @@
1
1
  import { describe, expect, vi } from "vitest";
2
2
  import { encodeAbiParameters, erc20Abi, parseEther } from "viem";
3
3
  import { zoraSepolia, base } from "viem/chains";
4
- import {
5
- forkUrls,
6
- makeAnvilTest,
7
- simulateAndWriteContractWithRetries,
8
- } from "src/anvil";
4
+ import { forkUrls, makeAnvilTest } from "src/anvil";
5
+ import { simulateAndWriteContractWithRetries } from "src/test-utils";
9
6
  import { createCollectorClient, createCreatorClient } from "src/sdk";
10
7
  import { new1155ContractVersion } from "src/create/contract-setup";
11
8
  import { ISubgraphQuerier } from "src/apis/subgraph-querier";
@@ -1,11 +1,8 @@
1
1
  import { describe, expect, vi } from "vitest";
2
2
  import { parseEther, Address, parseEventLogs } from "viem";
3
3
  import { zoraSepolia } from "viem/chains";
4
- import {
5
- forkUrls,
6
- makeAnvilTest,
7
- simulateAndWriteContractWithRetries,
8
- } from "src/anvil";
4
+ import { forkUrls, makeAnvilTest } from "src/anvil";
5
+ import { simulateAndWriteContractWithRetries } from "src/test-utils";
9
6
  import { createCollectorClient } from "src/sdk";
10
7
  import {
11
8
  zoraCreator1155ImplABI,
@@ -9,13 +9,11 @@ import {
9
9
  zoraCreator1155ImplABI,
10
10
  zoraMints1155ABI,
11
11
  zoraMints1155Address,
12
- zoraMintsManagerImplABI,
13
12
  zoraMintsManagerImplAddress,
14
13
  PremintMintArguments,
15
14
  premintTypedDataDefinition,
16
15
  zoraSparks1155Address,
17
16
  zoraSparks1155ABI,
18
- zoraSparksManagerImplABI,
19
17
  } from "@zoralabs/protocol-deployments";
20
18
  import {
21
19
  Address,
@@ -39,10 +37,9 @@ import { zora } from "viem/chains";
39
37
  import {
40
38
  fixedPriceMinterMinterArguments,
41
39
  getFixedPricedMinter,
42
- waitForSuccess,
43
40
  } from "src/test-utils";
44
41
  import { PublicClient } from "src/utils";
45
-
42
+ import { waitForSuccess } from "src/waitForSuccess";
46
43
  const sparksMainnetDeployedBlock = 17655716;
47
44
 
48
45
  const anvilTest = makeAnvilTest({
package/src/test-utils.ts CHANGED
@@ -4,25 +4,19 @@ import {
4
4
  } from "@zoralabs/protocol-deployments";
5
5
  import {
6
6
  Address,
7
- Hex,
8
7
  PublicClient,
9
8
  encodeAbiParameters,
10
9
  keccak256,
11
10
  toBytes,
12
11
  parseAbiParameters,
12
+ Chain,
13
+ WalletClient,
14
+ SimulateContractReturnType,
15
+ Account,
13
16
  } from "viem";
14
17
  import { NewContractParams } from "./create/types";
15
- import { expect } from "vitest";
16
-
17
- export const waitForSuccess = async (hash: Hex, publicClient: PublicClient) => {
18
- const receipt = await publicClient.waitForTransactionReceipt({
19
- hash,
20
- });
21
-
22
- expect(receipt.status).toBe("success");
23
-
24
- return receipt;
25
- };
18
+ import { retries } from "./apis/http-api-base";
19
+ import { SimulateContractParametersWithAccount } from "./types";
26
20
 
27
21
  export const getFixedPricedMinter = async ({
28
22
  publicClient,
@@ -56,3 +50,53 @@ export const randomNonce = () =>
56
50
  keccak256(toBytes(Math.round(Math.random() * 1000)));
57
51
  export const thirtySecondsFromNow = () =>
58
52
  BigInt(Math.round(new Date().getTime() / 1000)) + 30n;
53
+
54
+ export async function simulateAndWriteContractWithRetries({
55
+ parameters,
56
+ walletClient,
57
+ publicClient,
58
+ }: {
59
+ parameters: SimulateContractParametersWithAccount;
60
+ walletClient: WalletClient;
61
+ publicClient: PublicClient;
62
+ }) {
63
+ const { request } = await publicClient.simulateContract(parameters);
64
+ return await writeContractWithRetries({
65
+ request,
66
+ walletClient,
67
+ publicClient,
68
+ });
69
+ }
70
+
71
+ export async function writeContractWithRetries({
72
+ request,
73
+ walletClient,
74
+ publicClient,
75
+ }: {
76
+ request: SimulateContractReturnType<any, any, any, Chain, Account>["request"];
77
+ walletClient: WalletClient;
78
+ publicClient: PublicClient;
79
+ }) {
80
+ let tryCount = 1;
81
+ const tryFn = async () => {
82
+ if (tryCount > 1) {
83
+ console.log("retrying try #", tryCount);
84
+ }
85
+ const hash = await walletClient.writeContract(request);
86
+ const receipt = await publicClient.waitForTransactionReceipt({ hash });
87
+
88
+ if (receipt.status !== "success") {
89
+ console.log("failed try #", tryCount);
90
+ tryCount++;
91
+ throw new Error("transaction failed");
92
+ }
93
+
94
+ return receipt;
95
+ };
96
+
97
+ const shouldRetry = () => {
98
+ return true;
99
+ };
100
+
101
+ return await retries(tryFn, 3, 1000, shouldRetry);
102
+ }
@@ -0,0 +1,13 @@
1
+ import { expect } from "vitest";
2
+ import { Hex } from "viem/_types/types/misc";
3
+ import { PublicClient } from "viem";
4
+
5
+ export const waitForSuccess = async (hash: Hex, publicClient: PublicClient) => {
6
+ const receipt = await publicClient.waitForTransactionReceipt({
7
+ hash,
8
+ });
9
+
10
+ expect(receipt.status).toBe("success");
11
+
12
+ return receipt;
13
+ };