@vlayer/sdk 0.1.0-nightly-20241022-004c3c4 → 0.1.0-nightly-20241028-74b5b0d

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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@vlayer/sdk",
3
3
  "type": "module",
4
4
  "exports": "./src/index.ts",
5
- "version": "0.1.0-nightly-20241022-004c3c4",
5
+ "version": "0.1.0-nightly-20241028-74b5b0d",
6
6
  "types": "src/index.ts",
7
7
  "scripts": {
8
8
  "build": "npm run gen:types",
@@ -1,6 +1,8 @@
1
1
  import {
2
2
  type Abi,
3
+ Account,
3
4
  type Address,
5
+ type Chain,
4
6
  type ContractFunctionArgs,
5
7
  type ContractFunctionName,
6
8
  createTestClient,
@@ -10,6 +12,7 @@ import {
10
12
  publicActions,
11
13
  PublicClient,
12
14
  walletActions,
15
+ WriteContractParameters,
13
16
  } from "viem";
14
17
 
15
18
  import { privateKeyToAccount, generatePrivateKey } from "viem/accounts";
@@ -132,20 +135,27 @@ export async function writeContract<
132
135
  functionName: F,
133
136
  args: ContractFunctionArgs<T, "payable" | "nonpayable", F>,
134
137
  sender?: Address,
135
- chainId: number = foundry.id,
138
+ chain: Chain = foundry,
136
139
  ) {
137
- const ethClient = createAnvilClient(chainId);
140
+ const ethClient = createAnvilClient(chain.id);
138
141
  const selectedSender = sender || (await ethClient.getAddresses())[0];
139
142
 
140
143
  const txHash = await ethClient.writeContract({
141
- abi,
142
144
  address,
145
+ abi: abi as Abi,
143
146
  functionName,
144
- args,
147
+ args: args as readonly unknown[],
148
+ chain,
145
149
  account: selectedSender,
146
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
147
- } as any);
148
- // TODO: fix any to viem type
150
+ chainOverride: undefined,
151
+ } as WriteContractParameters<
152
+ Abi,
153
+ ContractFunctionName<Abi, "nonpayable" | "payable">,
154
+ ContractFunctionArgs<Abi, "nonpayable" | "payable", F>,
155
+ Chain | undefined,
156
+ Account | undefined,
157
+ Chain | undefined
158
+ >);
149
159
 
150
160
  const txReceipt = await ethClient.waitForTransactionReceipt({ hash: txHash });
151
161
 
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  Abi,
3
- AbiFunction,
4
3
  AbiStateMutability,
5
4
  Address,
6
5
  ContractFunctionArgs,
@@ -46,10 +45,7 @@ export interface VCallResponse {
46
45
  }
47
46
 
48
47
  export type VlayerClient = {
49
- prove: <
50
- T extends readonly [AbiFunction, ...Abi[number][]],
51
- F extends ContractFunctionName<T>,
52
- >(args: {
48
+ prove: <T extends Abi, F extends ContractFunctionName<T>>(args: {
53
49
  address: Hex;
54
50
  proverAbi: T;
55
51
  functionName: F;
@@ -1,4 +1,4 @@
1
- import { AbiFunction, Hex, Abi, ContractFunctionName } from "viem";
1
+ import { Hex, Abi, ContractFunctionName } from "viem";
2
2
  import type { ContractFunctionArgsWithout } from "./viem";
3
3
  import { Branded, WebProof, WebProofStep } from "../../../web-proof-commons";
4
4
 
@@ -15,7 +15,7 @@ export type WebProofSetup = Branded<
15
15
  >;
16
16
 
17
17
  export type ProverCallCommitment<
18
- T extends readonly [AbiFunction, ...Abi[number][]],
18
+ T extends Abi,
19
19
  F extends ContractFunctionName<T>,
20
20
  > = {
21
21
  address: Hex;
@@ -26,17 +26,14 @@ export type ProverCallCommitment<
26
26
  };
27
27
 
28
28
  export type GetWebProofArgs<
29
- T extends readonly [AbiFunction, ...Abi[number][]],
29
+ T extends Abi,
30
30
  F extends ContractFunctionName<T>,
31
31
  > = {
32
32
  proverCallCommitment: ProverCallCommitment<T, F>;
33
33
  } & WebProofSetupInput;
34
34
 
35
35
  export type WebProofProvider = {
36
- getWebProof: <
37
- T extends readonly [AbiFunction, ...Abi[number][]],
38
- F extends ContractFunctionName<T>,
39
- >(
36
+ getWebProof: <T extends Abi, F extends ContractFunctionName<T>>(
40
37
  args: GetWebProofArgs<T, F>,
41
38
  ) => Promise<WebProof>;
42
39
  };
package/src/api/prover.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  type Abi,
3
- AbiFunction,
4
3
  AbiStateMutability,
5
4
  type Address,
6
5
  ContractFunctionArgs,
@@ -12,10 +11,7 @@ import { type CallContext, type CallParams } from "types/vlayer";
12
11
  import { v_call } from "./v_call";
13
12
  import { foundry } from "viem/chains";
14
13
 
15
- export async function prove<
16
- T extends readonly [AbiFunction, ...Abi[number][]],
17
- F extends ContractFunctionName<T>,
18
- >(
14
+ export async function prove<T extends Abi, F extends ContractFunctionName<T>>(
19
15
  prover: Address,
20
16
  abi: T,
21
17
  functionName: F,