@no-witness-labs/midday-sdk 0.2.4 → 0.2.5
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/README.md +60 -82
- package/dist/Client.d.ts +248 -332
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +318 -359
- package/dist/Client.js.map +1 -1
- package/dist/Config.d.ts +2 -57
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +1 -47
- package/dist/Config.js.map +1 -1
- package/dist/Hash.d.ts +126 -0
- package/dist/Hash.d.ts.map +1 -0
- package/dist/Hash.js +146 -0
- package/dist/Hash.js.map +1 -0
- package/dist/PrivateState.d.ts +9 -0
- package/dist/PrivateState.d.ts.map +1 -0
- package/dist/PrivateState.js +9 -0
- package/dist/PrivateState.js.map +1 -0
- package/dist/Providers.d.ts +42 -63
- package/dist/Providers.d.ts.map +1 -1
- package/dist/Providers.js +34 -62
- package/dist/Providers.js.map +1 -1
- package/dist/Runtime.d.ts +8 -0
- package/dist/Runtime.d.ts.map +1 -0
- package/dist/Runtime.js +8 -0
- package/dist/Runtime.js.map +1 -0
- package/dist/Wallet.d.ts +1 -1
- package/dist/Wallet.d.ts.map +1 -1
- package/dist/Wallet.js +2 -0
- package/dist/Wallet.js.map +1 -1
- package/dist/ZkConfig.d.ts +80 -0
- package/dist/ZkConfig.d.ts.map +1 -0
- package/dist/ZkConfig.js +85 -0
- package/dist/ZkConfig.js.map +1 -0
- package/dist/devnet/Cluster.d.ts +0 -9
- package/dist/devnet/Cluster.d.ts.map +1 -1
- package/dist/devnet/Cluster.js +0 -13
- package/dist/devnet/Cluster.js.map +1 -1
- package/dist/devnet/index.d.ts +9 -8
- package/dist/devnet/index.d.ts.map +1 -1
- package/dist/devnet/index.js +9 -8
- package/dist/devnet/index.js.map +1 -1
- package/dist/index.d.ts +30 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -52
- package/dist/index.js.map +1 -1
- package/dist/providers/HttpZkConfigProvider.d.ts +8 -6
- package/dist/providers/HttpZkConfigProvider.d.ts.map +1 -1
- package/dist/providers/HttpZkConfigProvider.js +8 -6
- package/dist/providers/HttpZkConfigProvider.js.map +1 -1
- package/dist/providers/IndexedDBPrivateStateProvider.d.ts +8 -8
- package/dist/providers/IndexedDBPrivateStateProvider.js +8 -8
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/wallet/connector.d.ts +1 -1
- package/dist/wallet/connector.js +1 -1
- package/dist/wallet/index.d.ts +15 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +18 -0
- package/dist/wallet/index.js.map +1 -0
- package/package.json +1 -1
- package/dist/sdk/Type.d.ts +0 -91
- package/dist/sdk/Type.d.ts.map +0 -1
- package/dist/sdk/Type.js +0 -8
- package/dist/sdk/Type.js.map +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ pnpm add @no-witness-labs/midday-sdk
|
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
|
-
### Promise API
|
|
13
|
+
### Promise API
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
import * as Midday from '@no-witness-labs/midday-sdk';
|
|
@@ -18,25 +18,24 @@ import * as Midday from '@no-witness-labs/midday-sdk';
|
|
|
18
18
|
// Create client
|
|
19
19
|
const client = await Midday.Client.create({
|
|
20
20
|
networkConfig: Midday.Config.NETWORKS.local,
|
|
21
|
-
zkConfigProvider:
|
|
22
|
-
privateStateProvider: Midday.inMemoryPrivateStateProvider(),
|
|
21
|
+
zkConfigProvider: zkConfig,
|
|
22
|
+
privateStateProvider: Midday.PrivateState.inMemoryPrivateStateProvider(),
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
// Load and deploy a contract
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
});
|
|
29
|
-
const contract = await Midday.ContractBuilder.deploy(builder);
|
|
26
|
+
const contract = await client.loadContract({ module });
|
|
27
|
+
await contract.deploy();
|
|
28
|
+
console.log(`Deployed at: ${contract.address}`);
|
|
30
29
|
|
|
31
30
|
// Call contract actions
|
|
32
|
-
await
|
|
31
|
+
await contract.call('increment');
|
|
33
32
|
|
|
34
33
|
// Read state
|
|
35
|
-
const state = await
|
|
34
|
+
const state = await contract.ledgerState();
|
|
36
35
|
console.log(state.counter);
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
### Effect API
|
|
38
|
+
### Effect API
|
|
40
39
|
|
|
41
40
|
```typescript
|
|
42
41
|
import * as Midday from '@no-witness-labs/midday-sdk';
|
|
@@ -45,21 +44,19 @@ import { Effect } from 'effect';
|
|
|
45
44
|
const program = Effect.gen(function* () {
|
|
46
45
|
const client = yield* Midday.Client.effect.create({
|
|
47
46
|
networkConfig: Midday.Config.NETWORKS.local,
|
|
48
|
-
zkConfigProvider:
|
|
49
|
-
privateStateProvider: Midday.inMemoryPrivateStateProvider(),
|
|
47
|
+
zkConfigProvider: zkConfig,
|
|
48
|
+
privateStateProvider: Midday.PrivateState.inMemoryPrivateStateProvider(),
|
|
50
49
|
});
|
|
51
50
|
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
const contract = yield* client.effect.loadContract({ module });
|
|
52
|
+
yield* contract.effect.deploy();
|
|
53
|
+
yield* contract.effect.call('increment');
|
|
54
|
+
const state = yield* contract.effect.ledgerState();
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
const result = yield* Midday.Contract.effect.call(contract, 'increment');
|
|
58
|
-
|
|
59
|
-
return result;
|
|
56
|
+
return state;
|
|
60
57
|
});
|
|
61
58
|
|
|
62
|
-
const result = await Midday.runEffectPromise(program);
|
|
59
|
+
const result = await Midday.Runtime.runEffectPromise(program);
|
|
63
60
|
```
|
|
64
61
|
|
|
65
62
|
### Effect DI (Dependency Injection)
|
|
@@ -68,35 +65,21 @@ const result = await Midday.runEffectPromise(program);
|
|
|
68
65
|
import * as Midday from '@no-witness-labs/midday-sdk';
|
|
69
66
|
import { Effect, Layer } from 'effect';
|
|
70
67
|
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const client = yield* clientService.create({
|
|
77
|
-
networkConfig: Midday.Config.NETWORKS.local,
|
|
78
|
-
zkConfigProvider: new Midday.HttpZkConfigProvider('http://localhost:3000/zk'),
|
|
79
|
-
privateStateProvider: Midday.inMemoryPrivateStateProvider(),
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
const builder = yield* clientService.contractFrom(client, {
|
|
83
|
-
module: await import('./contracts/counter/index.js'),
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const contract = yield* contractBuilderService.deploy(builder);
|
|
87
|
-
const result = yield* contractService.call(contract, 'increment');
|
|
88
|
-
|
|
89
|
-
return result;
|
|
68
|
+
const ClientLayer = Midday.Client.layer({
|
|
69
|
+
networkConfig: Midday.Config.NETWORKS.local,
|
|
70
|
+
zkConfigProvider: zkConfig,
|
|
71
|
+
privateStateProvider: Midday.PrivateState.inMemoryPrivateStateProvider(),
|
|
90
72
|
});
|
|
91
73
|
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
);
|
|
74
|
+
const program = Effect.gen(function* () {
|
|
75
|
+
const client = yield* Midday.MiddayClientService;
|
|
76
|
+
const contract = yield* client.effect.loadContract({ module });
|
|
77
|
+
yield* contract.effect.deploy();
|
|
78
|
+
yield* contract.effect.call('increment');
|
|
79
|
+
return yield* contract.effect.ledgerState();
|
|
80
|
+
});
|
|
98
81
|
|
|
99
|
-
const result = await Effect.runPromise(program.pipe(Effect.provide(
|
|
82
|
+
const result = await Effect.runPromise(program.pipe(Effect.provide(ClientLayer)));
|
|
100
83
|
```
|
|
101
84
|
|
|
102
85
|
## Browser Usage (Lace Wallet)
|
|
@@ -105,20 +88,18 @@ const result = await Effect.runPromise(program.pipe(Effect.provide(MainLive)));
|
|
|
105
88
|
import * as Midday from '@no-witness-labs/midday-sdk';
|
|
106
89
|
|
|
107
90
|
// Connect to Lace wallet
|
|
108
|
-
const connection = await Midday.connectWallet('testnet');
|
|
91
|
+
const connection = await Midday.BrowserWallet.connectWallet('testnet');
|
|
109
92
|
|
|
110
93
|
// Create client from wallet connection
|
|
111
94
|
const client = await Midday.Client.fromWallet(connection, {
|
|
112
|
-
zkConfigProvider: new Midday.HttpZkConfigProvider('https://cdn.example.com/zk'),
|
|
113
|
-
privateStateProvider: Midday.indexedDBPrivateStateProvider({ privateStateStoreName: 'my-app' }),
|
|
95
|
+
zkConfigProvider: new Midday.Providers.HttpZkConfigProvider('https://cdn.example.com/zk'),
|
|
96
|
+
privateStateProvider: Midday.PrivateState.indexedDBPrivateStateProvider({ privateStateStoreName: 'my-app' }),
|
|
114
97
|
});
|
|
115
98
|
|
|
116
|
-
//
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const contract = await Midday.ContractBuilder.deploy(builder);
|
|
121
|
-
await Midday.Contract.call(contract, 'increment');
|
|
99
|
+
// Load and deploy contract
|
|
100
|
+
const contract = await client.loadContract({ module });
|
|
101
|
+
await contract.deploy();
|
|
102
|
+
await contract.call('increment');
|
|
122
103
|
```
|
|
123
104
|
|
|
124
105
|
## Configuration
|
|
@@ -158,38 +139,34 @@ const client = await Midday.Client.create({
|
|
|
158
139
|
### Deploy a New Contract
|
|
159
140
|
|
|
160
141
|
```typescript
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
});
|
|
164
|
-
const contract = await Midday.ContractBuilder.deploy(builder);
|
|
142
|
+
const contract = await client.loadContract({ module });
|
|
143
|
+
await contract.deploy();
|
|
165
144
|
console.log(`Deployed at: ${contract.address}`);
|
|
166
145
|
```
|
|
167
146
|
|
|
168
147
|
### Join an Existing Contract
|
|
169
148
|
|
|
170
149
|
```typescript
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
});
|
|
174
|
-
const contract = await Midday.ContractBuilder.join(builder, { address: contractAddress });
|
|
150
|
+
const contract = await client.loadContract({ module });
|
|
151
|
+
await contract.join(contractAddress);
|
|
175
152
|
```
|
|
176
153
|
|
|
177
154
|
### With Witnesses
|
|
178
155
|
|
|
179
156
|
```typescript
|
|
180
|
-
const
|
|
181
|
-
module
|
|
157
|
+
const contract = await client.loadContract({
|
|
158
|
+
module,
|
|
182
159
|
witnesses: {
|
|
183
160
|
my_witness_function: myImplementation,
|
|
184
161
|
},
|
|
185
162
|
});
|
|
186
|
-
|
|
163
|
+
await contract.deploy();
|
|
187
164
|
```
|
|
188
165
|
|
|
189
166
|
### Call Actions
|
|
190
167
|
|
|
191
168
|
```typescript
|
|
192
|
-
const result = await
|
|
169
|
+
const result = await contract.call('increment');
|
|
193
170
|
console.log(`TX Hash: ${result.txHash}`);
|
|
194
171
|
console.log(`Block: ${result.blockHeight}`);
|
|
195
172
|
```
|
|
@@ -198,33 +175,34 @@ console.log(`Block: ${result.blockHeight}`);
|
|
|
198
175
|
|
|
199
176
|
```typescript
|
|
200
177
|
// Parsed state via ledger
|
|
201
|
-
const state = await
|
|
202
|
-
|
|
203
|
-
// Raw state
|
|
204
|
-
const rawState = await Midday.Contract.state(contract);
|
|
178
|
+
const state = await contract.ledgerState();
|
|
205
179
|
|
|
206
180
|
// State at specific block
|
|
207
|
-
const historicalState = await
|
|
181
|
+
const historicalState = await contract.ledgerStateAt(blockHeight);
|
|
208
182
|
```
|
|
209
183
|
|
|
210
184
|
## API Reference
|
|
211
185
|
|
|
212
|
-
###
|
|
186
|
+
### Namespaces
|
|
213
187
|
|
|
214
|
-
- `Midday.Client` -
|
|
215
|
-
- `Midday.
|
|
216
|
-
- `Midday.
|
|
188
|
+
- `Midday.Client` - Client creation and contract loading
|
|
189
|
+
- `Midday.Client.create(config)` - Create a new client (Promise)
|
|
190
|
+
- `Midday.Client.effect.create(config)` - Create a new client (Effect)
|
|
191
|
+
- `Midday.Client.fromWallet(connection, config)` - Create client from wallet (browser)
|
|
217
192
|
- `Midday.Config` - Network configuration utilities
|
|
218
193
|
- `Midday.Wallet` - Wallet initialization and management
|
|
194
|
+
- `Midday.BrowserWallet` - Browser wallet connection (Lace)
|
|
219
195
|
- `Midday.Providers` - Low-level provider setup
|
|
196
|
+
- `Midday.PrivateState` - Private state providers
|
|
197
|
+
- `Midday.Hash` - Cryptographic hash utilities
|
|
198
|
+
- `Midday.Runtime` - Effect runtime utilities
|
|
220
199
|
|
|
221
200
|
### Services (Effect DI)
|
|
222
201
|
|
|
223
202
|
| Service | Layer | Description |
|
|
224
203
|
|---------|-------|-------------|
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
| `ContractService` | `ContractLive` | Contract operations |
|
|
204
|
+
| `MiddayClientService` | `Client.layer(config)` | Pre-initialized client |
|
|
205
|
+
| `ClientService` | `ClientLive` | Client factory |
|
|
228
206
|
| `WalletService` | `WalletLive` | Wallet initialization |
|
|
229
207
|
| `ProvidersService` | `ProvidersLive` | Provider setup |
|
|
230
208
|
| `ZkConfigService` | `ZkConfigLive` | ZK configuration loading |
|
|
@@ -237,9 +215,9 @@ const historicalState = await Midday.Contract.ledgerStateAt(contract, blockHeigh
|
|
|
237
215
|
```typescript
|
|
238
216
|
import type {
|
|
239
217
|
ClientConfig,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
218
|
+
MiddayClient,
|
|
219
|
+
Contract,
|
|
220
|
+
ContractState,
|
|
243
221
|
CallResult,
|
|
244
222
|
NetworkConfig,
|
|
245
223
|
WalletContext,
|