@no-witness-labs/midday-sdk 0.1.2 → 0.2.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.
- package/README.md +145 -78
- package/dist/Client.d.ts +464 -72
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +526 -143
- package/dist/Client.js.map +1 -1
- package/dist/Config.d.ts +83 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +72 -15
- package/dist/Config.js.map +1 -1
- package/dist/Providers.d.ts +99 -9
- package/dist/Providers.d.ts.map +1 -1
- package/dist/Providers.js +142 -39
- package/dist/Providers.js.map +1 -1
- package/dist/Wallet.d.ts +88 -1
- package/dist/Wallet.d.ts.map +1 -1
- package/dist/Wallet.js +162 -51
- package/dist/Wallet.js.map +1 -1
- package/dist/devnet/Cluster.d.ts +282 -0
- package/dist/devnet/Cluster.d.ts.map +1 -0
- package/dist/devnet/Cluster.js +487 -0
- package/dist/devnet/Cluster.js.map +1 -0
- package/dist/devnet/Config.d.ts +119 -0
- package/dist/devnet/Config.d.ts.map +1 -0
- package/dist/devnet/Config.js +75 -0
- package/dist/devnet/Config.js.map +1 -0
- package/dist/devnet/Container.d.ts +180 -0
- package/dist/devnet/Container.d.ts.map +1 -0
- package/dist/devnet/Container.js +390 -0
- package/dist/devnet/Container.js.map +1 -0
- package/dist/devnet/Health.d.ts +129 -0
- package/dist/devnet/Health.d.ts.map +1 -0
- package/dist/devnet/Health.js +304 -0
- package/dist/devnet/Health.js.map +1 -0
- package/dist/devnet/Images.d.ts +43 -0
- package/dist/devnet/Images.d.ts.map +1 -0
- package/dist/devnet/Images.js +96 -0
- package/dist/devnet/Images.js.map +1 -0
- package/dist/devnet/errors.d.ts +65 -0
- package/dist/devnet/errors.d.ts.map +1 -0
- package/dist/devnet/errors.js +40 -0
- package/dist/devnet/errors.js.map +1 -0
- package/dist/devnet/index.d.ts +72 -0
- package/dist/devnet/index.d.ts.map +1 -0
- package/dist/devnet/index.js +73 -0
- package/dist/devnet/index.js.map +1 -0
- package/dist/index.d.ts +63 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -4
- package/dist/index.js.map +1 -1
- package/dist/providers/HttpZkConfigProvider.d.ts +229 -0
- package/dist/providers/HttpZkConfigProvider.d.ts.map +1 -0
- package/dist/providers/HttpZkConfigProvider.js +275 -0
- package/dist/providers/HttpZkConfigProvider.js.map +1 -0
- package/dist/providers/IndexedDBPrivateStateProvider.d.ts +270 -0
- package/dist/providers/IndexedDBPrivateStateProvider.d.ts.map +1 -0
- package/dist/providers/IndexedDBPrivateStateProvider.js +513 -0
- package/dist/providers/IndexedDBPrivateStateProvider.js.map +1 -0
- package/dist/providers/errors.d.ts +50 -0
- package/dist/providers/errors.d.ts.map +1 -0
- package/dist/providers/errors.js +32 -0
- package/dist/providers/errors.js.map +1 -0
- package/dist/sdk/Type.d.ts +91 -0
- package/dist/sdk/Type.d.ts.map +1 -0
- package/dist/sdk/Type.js +8 -0
- package/dist/sdk/Type.js.map +1 -0
- package/dist/utils/address.d.ts +56 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +135 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/coin.d.ts +55 -0
- package/dist/utils/coin.d.ts.map +1 -0
- package/dist/utils/coin.js +84 -0
- package/dist/utils/coin.js.map +1 -0
- package/dist/utils/effect-runtime.d.ts +66 -0
- package/dist/utils/effect-runtime.d.ts.map +1 -0
- package/dist/utils/effect-runtime.js +147 -0
- package/dist/utils/effect-runtime.js.map +1 -0
- package/dist/utils/hex.d.ts +62 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +93 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/wallet/connector.d.ts +191 -0
- package/dist/wallet/connector.d.ts.map +1 -0
- package/dist/wallet/connector.js +183 -0
- package/dist/wallet/connector.js.map +1 -0
- package/dist/wallet/errors.d.ts +22 -0
- package/dist/wallet/errors.d.ts.map +1 -0
- package/dist/wallet/errors.js +16 -0
- package/dist/wallet/errors.js.map +1 -0
- package/dist/wallet/provider.d.ts +102 -0
- package/dist/wallet/provider.d.ts.map +1 -0
- package/dist/wallet/provider.js +139 -0
- package/dist/wallet/provider.js.map +1 -0
- package/package.json +23 -8
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error types for DevNet operations.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.2.0
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { Data } from 'effect';
|
|
8
|
+
/**
|
|
9
|
+
* Error thrown when cluster operations fail.
|
|
10
|
+
*
|
|
11
|
+
* @since 0.2.0
|
|
12
|
+
* @category errors
|
|
13
|
+
*/
|
|
14
|
+
export class ClusterError extends Data.TaggedError('ClusterError') {
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when container operations fail.
|
|
18
|
+
*
|
|
19
|
+
* @since 0.2.0
|
|
20
|
+
* @category errors
|
|
21
|
+
*/
|
|
22
|
+
export class ContainerError extends Data.TaggedError('ContainerError') {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when health check fails.
|
|
26
|
+
*
|
|
27
|
+
* @since 0.2.0
|
|
28
|
+
* @category errors
|
|
29
|
+
*/
|
|
30
|
+
export class HealthCheckError extends Data.TaggedError('HealthCheckError') {
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error thrown when Docker is not running.
|
|
34
|
+
*
|
|
35
|
+
* @since 0.2.0
|
|
36
|
+
* @category errors
|
|
37
|
+
*/
|
|
38
|
+
export class DockerNotRunningError extends Data.TaggedError('DockerNotRunningError') {
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/devnet/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAI,CAAC,WAAW,CAAC,cAAc,CAI/D;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAInE;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAEjF;CAAG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevNet module for local Midnight development and testing.
|
|
3
|
+
*
|
|
4
|
+
* Provides a complete local development environment with Docker containers
|
|
5
|
+
* for Midnight node, indexer, and proof server.
|
|
6
|
+
*
|
|
7
|
+
* @example Promise API (default)
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Cluster } from '@no-witness-labs/midday-sdk/devnet';
|
|
10
|
+
* import { createClient } from '@no-witness-labs/midday-sdk';
|
|
11
|
+
*
|
|
12
|
+
* // Create and start a local devnet
|
|
13
|
+
* const cluster = await Cluster.make();
|
|
14
|
+
* await Cluster.start(cluster);
|
|
15
|
+
*
|
|
16
|
+
* // Use with midday-sdk
|
|
17
|
+
* const client = await createClient({
|
|
18
|
+
* networkConfig: Cluster.toNetworkConfig(cluster),
|
|
19
|
+
* seed: 'your-wallet-seed',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // ... run your tests or development ...
|
|
23
|
+
*
|
|
24
|
+
* // Cleanup
|
|
25
|
+
* await Cluster.remove(cluster);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example Effect API (composable)
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { Cluster } from '@no-witness-labs/midday-sdk/devnet';
|
|
31
|
+
* import { Effect } from 'effect';
|
|
32
|
+
*
|
|
33
|
+
* // Compose with Effect
|
|
34
|
+
* const program = Effect.gen(function* () {
|
|
35
|
+
* const cluster = yield* Cluster.effect.make();
|
|
36
|
+
* yield* Cluster.effect.start(cluster);
|
|
37
|
+
* // ... your Effect-based code ...
|
|
38
|
+
* yield* Cluster.effect.remove(cluster);
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* await Effect.runPromise(program);
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example Effect DI (dependency injection)
|
|
45
|
+
* ```typescript
|
|
46
|
+
* import { Cluster, ClusterService } from '@no-witness-labs/midday-sdk/devnet';
|
|
47
|
+
* import { Effect } from 'effect';
|
|
48
|
+
*
|
|
49
|
+
* // Use with Effect's dependency injection
|
|
50
|
+
* const program = Effect.gen(function* () {
|
|
51
|
+
* const svc = yield* ClusterService;
|
|
52
|
+
* const cluster = yield* svc.make();
|
|
53
|
+
* yield* svc.start(cluster);
|
|
54
|
+
* return Cluster.toNetworkConfig(cluster);
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* await Effect.runPromise(program.pipe(Effect.provide(Cluster.Live)));
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @since 0.2.0
|
|
61
|
+
* @module
|
|
62
|
+
*/
|
|
63
|
+
export * as Cluster from './Cluster.js';
|
|
64
|
+
export * as Config from './Config.js';
|
|
65
|
+
export * as Container from './Container.js';
|
|
66
|
+
export * as Health from './Health.js';
|
|
67
|
+
export * as Images from './Images.js';
|
|
68
|
+
export * from './errors.js';
|
|
69
|
+
export { ClusterService } from './Cluster.js';
|
|
70
|
+
export { ContainerService } from './Container.js';
|
|
71
|
+
export { HealthService } from './Health.js';
|
|
72
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devnet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevNet module for local Midnight development and testing.
|
|
3
|
+
*
|
|
4
|
+
* Provides a complete local development environment with Docker containers
|
|
5
|
+
* for Midnight node, indexer, and proof server.
|
|
6
|
+
*
|
|
7
|
+
* @example Promise API (default)
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Cluster } from '@no-witness-labs/midday-sdk/devnet';
|
|
10
|
+
* import { createClient } from '@no-witness-labs/midday-sdk';
|
|
11
|
+
*
|
|
12
|
+
* // Create and start a local devnet
|
|
13
|
+
* const cluster = await Cluster.make();
|
|
14
|
+
* await Cluster.start(cluster);
|
|
15
|
+
*
|
|
16
|
+
* // Use with midday-sdk
|
|
17
|
+
* const client = await createClient({
|
|
18
|
+
* networkConfig: Cluster.toNetworkConfig(cluster),
|
|
19
|
+
* seed: 'your-wallet-seed',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // ... run your tests or development ...
|
|
23
|
+
*
|
|
24
|
+
* // Cleanup
|
|
25
|
+
* await Cluster.remove(cluster);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example Effect API (composable)
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { Cluster } from '@no-witness-labs/midday-sdk/devnet';
|
|
31
|
+
* import { Effect } from 'effect';
|
|
32
|
+
*
|
|
33
|
+
* // Compose with Effect
|
|
34
|
+
* const program = Effect.gen(function* () {
|
|
35
|
+
* const cluster = yield* Cluster.effect.make();
|
|
36
|
+
* yield* Cluster.effect.start(cluster);
|
|
37
|
+
* // ... your Effect-based code ...
|
|
38
|
+
* yield* Cluster.effect.remove(cluster);
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* await Effect.runPromise(program);
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example Effect DI (dependency injection)
|
|
45
|
+
* ```typescript
|
|
46
|
+
* import { Cluster, ClusterService } from '@no-witness-labs/midday-sdk/devnet';
|
|
47
|
+
* import { Effect } from 'effect';
|
|
48
|
+
*
|
|
49
|
+
* // Use with Effect's dependency injection
|
|
50
|
+
* const program = Effect.gen(function* () {
|
|
51
|
+
* const svc = yield* ClusterService;
|
|
52
|
+
* const cluster = yield* svc.make();
|
|
53
|
+
* yield* svc.start(cluster);
|
|
54
|
+
* return Cluster.toNetworkConfig(cluster);
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* await Effect.runPromise(program.pipe(Effect.provide(Cluster.Live)));
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @since 0.2.0
|
|
61
|
+
* @module
|
|
62
|
+
*/
|
|
63
|
+
export * as Cluster from './Cluster.js';
|
|
64
|
+
export * as Config from './Config.js';
|
|
65
|
+
export * as Container from './Container.js';
|
|
66
|
+
export * as Health from './Health.js';
|
|
67
|
+
export * as Images from './Images.js';
|
|
68
|
+
export * from './errors.js';
|
|
69
|
+
// Re-export service tags for DI users
|
|
70
|
+
export { ClusterService } from './Cluster.js';
|
|
71
|
+
export { ContainerService } from './Container.js';
|
|
72
|
+
export { HealthService } from './Health.js';
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devnet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,aAAa,CAAC;AAE5B,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,26 +1,82 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Midday SDK - Developer-friendly SDK for building dapps on Midnight Network.
|
|
3
3
|
*
|
|
4
|
+
* Provides dual API: Effect-based and Promise-based for flexibility.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Browser with Lace wallet (Promise-based)
|
|
9
|
+
* import * as Midday from '@no-witness-labs/midday-sdk';
|
|
10
|
+
*
|
|
11
|
+
* const connection = await Midday.connectWallet('testnet');
|
|
12
|
+
* const client = await Midday.Client.fromWallet(connection, {
|
|
13
|
+
* zkConfigProvider: new Midday.HttpZkConfigProvider('https://cdn.example.com/zk'),
|
|
14
|
+
* privateStateProvider: Midday.indexedDBPrivateStateProvider({ privateStateStoreName: 'my-app' }),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const builder = await Midday.Client.contractFrom(client, {
|
|
18
|
+
* module: await import('./contracts/counter/index.js'),
|
|
19
|
+
* });
|
|
20
|
+
* const contract = await Midday.ContractBuilder.deploy(builder);
|
|
21
|
+
* await Midday.Contract.call(contract, 'increment');
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
4
24
|
* @example
|
|
5
25
|
* ```typescript
|
|
26
|
+
* // Effect-based usage
|
|
6
27
|
* import * as Midday from '@no-witness-labs/midday-sdk';
|
|
28
|
+
* import { Effect } from 'effect';
|
|
29
|
+
*
|
|
30
|
+
* const program = Effect.gen(function* () {
|
|
31
|
+
* const client = yield* Midday.Client.effect.create({
|
|
32
|
+
* seed: 'your-64-char-hex-seed',
|
|
33
|
+
* networkConfig: Midday.Config.NETWORKS.local,
|
|
34
|
+
* zkConfigProvider: new Midday.HttpZkConfigProvider('http://localhost:3000/zk'),
|
|
35
|
+
* privateStateProvider: Midday.inMemoryPrivateStateProvider(),
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const builder = yield* Midday.Client.effect.contractFrom(client, {
|
|
39
|
+
* module: await import('./contracts/counter/index.js'),
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const contract = yield* Midday.ContractBuilder.effect.deploy(builder);
|
|
43
|
+
* const result = yield* Midday.Contract.effect.call(contract, 'increment');
|
|
44
|
+
*
|
|
45
|
+
* return result;
|
|
46
|
+
* });
|
|
7
47
|
*
|
|
8
|
-
* const
|
|
9
|
-
* const contract = await (await client.contractFrom('build/my-contract')).deploy();
|
|
10
|
-
* await contract.call('myAction', arg1, arg2);
|
|
11
|
-
* const state = await contract.ledgerState();
|
|
48
|
+
* const result = await Midday.runEffectPromise(program);
|
|
12
49
|
* ```
|
|
13
50
|
*
|
|
14
51
|
* @since 0.1.0
|
|
15
52
|
* @module
|
|
16
53
|
*/
|
|
54
|
+
export { Effect, pipe, Context, Layer } from 'effect';
|
|
55
|
+
export { LoggerService, NetworkConfigService, SdkConfigService, makeSdkLayer, type SdkConfig, } from './Config.js';
|
|
17
56
|
export * as Client from './Client.js';
|
|
57
|
+
export { Contract, ContractBuilder } from './Client.js';
|
|
18
58
|
export * as Config from './Config.js';
|
|
19
59
|
export * as Wallet from './Wallet.js';
|
|
20
60
|
export * as Providers from './Providers.js';
|
|
61
|
+
export { runEffect, runEffectPromise } from './utils/effect-runtime.js';
|
|
62
|
+
export { ClientError, ContractError } from './Client.js';
|
|
63
|
+
export { WalletError } from './wallet/errors.js';
|
|
64
|
+
export { ProviderError, ZkConfigError, PrivateStateError } from './providers/errors.js';
|
|
65
|
+
export type { EffectToPromise, EffectToPromiseAPI, SelectivePromiseAPI, SelectiveSyncAPI, } from './sdk/Type.js';
|
|
66
|
+
export { hexToBytes, bytesToHex, base64ToBytes, bytesToBase64 } from './utils/hex.js';
|
|
67
|
+
export { parseShieldedAddress, hexToPublicKey, type ParsedAddress } from './utils/address.js';
|
|
68
|
+
export { createCoin, createCustomCoin, getNativeTokenColor, type CoinInfo } from './utils/coin.js';
|
|
69
|
+
export { connectWallet, disconnectWallet, isWalletAvailable, getWalletProvingProvider, effect as WalletConnectorEffect, WalletConnectorService, WalletConnectorLive, type WalletConnection, type ShieldedAddresses, type InitialAPI, type ConnectedAPI, type Configuration, type ProvingProvider, type KeyMaterialProvider, type WalletConnectorServiceImpl, } from './wallet/connector.js';
|
|
70
|
+
export { createWalletProviders, effect as WalletProviderEffect, WalletProviderService, WalletProviderLive, type WalletKeys, type WalletProviders, type WalletProviderServiceImpl, } from './wallet/provider.js';
|
|
71
|
+
export { HttpZkConfigProvider, make as makeHttpZkConfigProvider, getZKIR, getProverKey, getVerifierKey, clearCache as clearZkConfigCache, effect as HttpZkConfigProviderEffect, ZkConfigService, ZkConfigLive, ZkConfigProviderService, type ZkConfig, type HttpZkConfigProviderData, type ZkConfigServiceImpl, } from './providers/HttpZkConfigProvider.js';
|
|
72
|
+
export { FetchZkConfigProvider } from '@midnight-ntwrk/midnight-js-fetch-zk-config-provider';
|
|
73
|
+
export { indexedDBPrivateStateProvider, inMemoryPrivateStateProvider, makeIndexedDB as makeIndexedDBPrivateState, makeInMemory as makeInMemoryPrivateState, get as getPrivateState, set as setPrivateState, remove as removePrivateState, clear as clearPrivateState, effect as PrivateStateEffect, PrivateStateService, PrivateStateLive, PrivateStateProviderService, type IndexedDBPrivateStateConfig, type PrivateStateProviderData, type PrivateStateServiceImpl, } from './providers/IndexedDBPrivateStateProvider.js';
|
|
21
74
|
export { nativeToken } from '@midnight-ntwrk/ledger-v6';
|
|
22
|
-
export type { ClientConfig, MidnightClient,
|
|
75
|
+
export type { ClientConfig, MidnightClient, CallResult, FinalizedTxData, ContractModule, ContractFromOptions, Logger, DeployOptions, JoinOptions, LoadedContractModule, ClientServiceImpl, ContractBuilderServiceImpl, ContractServiceImpl, } from './Client.js';
|
|
76
|
+
export { ClientService, ClientLive, ContractBuilderService, ContractBuilderLive, ContractService, ContractLive, } from './Client.js';
|
|
23
77
|
export type { NetworkConfig } from './Config.js';
|
|
24
|
-
export type { WalletContext } from './Wallet.js';
|
|
25
|
-
export
|
|
78
|
+
export type { WalletContext, WalletServiceImpl } from './Wallet.js';
|
|
79
|
+
export { WalletService, WalletLive } from './Wallet.js';
|
|
80
|
+
export type { ContractProviders, StorageConfig, CreateProvidersOptions, ContractProvidersEffect, ProvidersServiceImpl, } from './Providers.js';
|
|
81
|
+
export { ProvidersService, ProvidersLive } from './Providers.js';
|
|
26
82
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGnG,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,MAAM,IAAI,qBAAqB,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,MAAM,IAAI,oBAAoB,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,oBAAoB,EACpB,IAAI,IAAI,wBAAwB,EAChC,OAAO,EACP,YAAY,EACZ,cAAc,EACd,UAAU,IAAI,kBAAkB,EAChC,MAAM,IAAI,0BAA0B,EACpC,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,KAAK,QAAQ,EACb,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,aAAa,IAAI,yBAAyB,EAC1C,YAAY,IAAI,wBAAwB,EACxC,GAAG,IAAI,eAAe,EACtB,GAAG,IAAI,eAAe,EACtB,MAAM,IAAI,kBAAkB,EAC5B,KAAK,IAAI,iBAAiB,EAC1B,MAAM,IAAI,kBAAkB,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,87 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Midday SDK - Developer-friendly SDK for building dapps on Midnight Network.
|
|
3
3
|
*
|
|
4
|
+
* Provides dual API: Effect-based and Promise-based for flexibility.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Browser with Lace wallet (Promise-based)
|
|
9
|
+
* import * as Midday from '@no-witness-labs/midday-sdk';
|
|
10
|
+
*
|
|
11
|
+
* const connection = await Midday.connectWallet('testnet');
|
|
12
|
+
* const client = await Midday.Client.fromWallet(connection, {
|
|
13
|
+
* zkConfigProvider: new Midday.HttpZkConfigProvider('https://cdn.example.com/zk'),
|
|
14
|
+
* privateStateProvider: Midday.indexedDBPrivateStateProvider({ privateStateStoreName: 'my-app' }),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const builder = await Midday.Client.contractFrom(client, {
|
|
18
|
+
* module: await import('./contracts/counter/index.js'),
|
|
19
|
+
* });
|
|
20
|
+
* const contract = await Midday.ContractBuilder.deploy(builder);
|
|
21
|
+
* await Midday.Contract.call(contract, 'increment');
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
4
24
|
* @example
|
|
5
25
|
* ```typescript
|
|
26
|
+
* // Effect-based usage
|
|
6
27
|
* import * as Midday from '@no-witness-labs/midday-sdk';
|
|
28
|
+
* import { Effect } from 'effect';
|
|
29
|
+
*
|
|
30
|
+
* const program = Effect.gen(function* () {
|
|
31
|
+
* const client = yield* Midday.Client.effect.create({
|
|
32
|
+
* seed: 'your-64-char-hex-seed',
|
|
33
|
+
* networkConfig: Midday.Config.NETWORKS.local,
|
|
34
|
+
* zkConfigProvider: new Midday.HttpZkConfigProvider('http://localhost:3000/zk'),
|
|
35
|
+
* privateStateProvider: Midday.inMemoryPrivateStateProvider(),
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const builder = yield* Midday.Client.effect.contractFrom(client, {
|
|
39
|
+
* module: await import('./contracts/counter/index.js'),
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const contract = yield* Midday.ContractBuilder.effect.deploy(builder);
|
|
43
|
+
* const result = yield* Midday.Contract.effect.call(contract, 'increment');
|
|
44
|
+
*
|
|
45
|
+
* return result;
|
|
46
|
+
* });
|
|
7
47
|
*
|
|
8
|
-
* const
|
|
9
|
-
* const contract = await (await client.contractFrom('build/my-contract')).deploy();
|
|
10
|
-
* await contract.call('myAction', arg1, arg2);
|
|
11
|
-
* const state = await contract.ledgerState();
|
|
48
|
+
* const result = await Midday.runEffectPromise(program);
|
|
12
49
|
* ```
|
|
13
50
|
*
|
|
14
51
|
* @since 0.1.0
|
|
15
52
|
* @module
|
|
16
53
|
*/
|
|
54
|
+
// Re-export Effect for consumer convenience
|
|
55
|
+
export { Effect, pipe, Context, Layer } from 'effect';
|
|
56
|
+
// Services for dependency injection (from Config module)
|
|
57
|
+
export { LoggerService, NetworkConfigService, SdkConfigService, makeSdkLayer, } from './Config.js';
|
|
58
|
+
// Core modules
|
|
17
59
|
export * as Client from './Client.js';
|
|
60
|
+
export { Contract, ContractBuilder } from './Client.js';
|
|
18
61
|
export * as Config from './Config.js';
|
|
19
62
|
export * as Wallet from './Wallet.js';
|
|
20
63
|
export * as Providers from './Providers.js';
|
|
64
|
+
// Effect utilities
|
|
65
|
+
export { runEffect, runEffectPromise } from './utils/effect-runtime.js';
|
|
66
|
+
// Error types (colocated with their modules)
|
|
67
|
+
export { ClientError, ContractError } from './Client.js';
|
|
68
|
+
export { WalletError } from './wallet/errors.js';
|
|
69
|
+
export { ProviderError, ZkConfigError, PrivateStateError } from './providers/errors.js';
|
|
70
|
+
// Utilities
|
|
71
|
+
export { hexToBytes, bytesToHex, base64ToBytes, bytesToBase64 } from './utils/hex.js';
|
|
72
|
+
export { parseShieldedAddress, hexToPublicKey } from './utils/address.js';
|
|
73
|
+
export { createCoin, createCustomCoin, getNativeTokenColor } from './utils/coin.js';
|
|
74
|
+
// Wallet connector (browser)
|
|
75
|
+
export { connectWallet, disconnectWallet, isWalletAvailable, getWalletProvingProvider, effect as WalletConnectorEffect, WalletConnectorService, WalletConnectorLive, } from './wallet/connector.js';
|
|
76
|
+
export { createWalletProviders, effect as WalletProviderEffect, WalletProviderService, WalletProviderLive, } from './wallet/provider.js';
|
|
77
|
+
// Providers
|
|
78
|
+
export { HttpZkConfigProvider, make as makeHttpZkConfigProvider, getZKIR, getProverKey, getVerifierKey, clearCache as clearZkConfigCache, effect as HttpZkConfigProviderEffect, ZkConfigService, ZkConfigLive, ZkConfigProviderService, } from './providers/HttpZkConfigProvider.js';
|
|
79
|
+
// Re-export FetchZkConfigProvider for browser use
|
|
80
|
+
export { FetchZkConfigProvider } from '@midnight-ntwrk/midnight-js-fetch-zk-config-provider';
|
|
81
|
+
export { indexedDBPrivateStateProvider, inMemoryPrivateStateProvider, makeIndexedDB as makeIndexedDBPrivateState, makeInMemory as makeInMemoryPrivateState, get as getPrivateState, set as setPrivateState, remove as removePrivateState, clear as clearPrivateState, effect as PrivateStateEffect, PrivateStateService, PrivateStateLive, PrivateStateProviderService, } from './providers/IndexedDBPrivateStateProvider.js';
|
|
21
82
|
// Re-export ledger utilities for balance checking
|
|
22
83
|
export { nativeToken } from '@midnight-ntwrk/ledger-v6';
|
|
84
|
+
export { ClientService, ClientLive, ContractBuilderService, ContractBuilderLive, ContractService, ContractLive, } from './Client.js';
|
|
85
|
+
export { WalletService, WalletLive } from './Wallet.js';
|
|
86
|
+
export { ProvidersService, ProvidersLive } from './Providers.js';
|
|
23
87
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,4CAA4C;AAC5C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEtD,yDAAyD;AACzD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExE,6CAA6C;AAC7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAUxF,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAsB,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAiB,MAAM,iBAAiB,CAAC;AAEnG,6BAA6B;AAC7B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,MAAM,IAAI,qBAAqB,EAC/B,sBAAsB,EACtB,mBAAmB,GASpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,MAAM,IAAI,oBAAoB,EAC9B,qBAAqB,EACrB,kBAAkB,GAInB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,OAAO,EACL,oBAAoB,EACpB,IAAI,IAAI,wBAAwB,EAChC,OAAO,EACP,YAAY,EACZ,cAAc,EACd,UAAU,IAAI,kBAAkB,EAChC,MAAM,IAAI,0BAA0B,EACpC,eAAe,EACf,YAAY,EACZ,uBAAuB,GAIxB,MAAM,qCAAqC,CAAC;AAE7C,kDAAkD;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,aAAa,IAAI,yBAAyB,EAC1C,YAAY,IAAI,wBAAwB,EACxC,GAAG,IAAI,eAAe,EACtB,GAAG,IAAI,eAAe,EACtB,MAAM,IAAI,kBAAkB,EAC5B,KAAK,IAAI,iBAAiB,EAC1B,MAAM,IAAI,kBAAkB,EAC5B,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,GAI5B,MAAM,8CAA8C,CAAC;AAEtD,kDAAkD;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAkBxD,OAAO,EACL,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP-based ZK configuration provider.
|
|
3
|
+
*
|
|
4
|
+
* ## API Design
|
|
5
|
+
*
|
|
6
|
+
* This module uses a **module-function pattern**:
|
|
7
|
+
*
|
|
8
|
+
* - **Stateless**: Functions operate on HttpZkConfigProvider data
|
|
9
|
+
* - **Module functions**: `HttpZkConfigProvider.getZKIR(provider, circuitId)`
|
|
10
|
+
* - **Data-oriented**: Provider is plain data, not an instance with methods
|
|
11
|
+
*
|
|
12
|
+
* ### Usage Patterns
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Promise user
|
|
16
|
+
* const provider = HttpZkConfigProvider.make('https://cdn.example.com/zk');
|
|
17
|
+
* const zkir = await HttpZkConfigProvider.getZKIR(provider, 'increment');
|
|
18
|
+
*
|
|
19
|
+
* // Effect user
|
|
20
|
+
* const provider = HttpZkConfigProvider.make('https://cdn.example.com/zk');
|
|
21
|
+
* const zkir = yield* HttpZkConfigProvider.effect.getZKIR(provider, 'increment');
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @since 0.2.0
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import { Context, Effect, Layer } from 'effect';
|
|
28
|
+
import { ZKConfigProvider, type ProverKey, type VerifierKey, type ZKIR } from '@midnight-ntwrk/midnight-js-types';
|
|
29
|
+
import { ZkConfigError } from './errors.js';
|
|
30
|
+
/**
|
|
31
|
+
* ZK configuration loaded from HTTP endpoints.
|
|
32
|
+
*
|
|
33
|
+
* @since 0.2.0
|
|
34
|
+
* @category model
|
|
35
|
+
*/
|
|
36
|
+
export interface ZkConfig {
|
|
37
|
+
/** Zero-knowledge intermediate representation */
|
|
38
|
+
zkir: ZKIR;
|
|
39
|
+
/** Prover key bytes */
|
|
40
|
+
proverKey: ProverKey;
|
|
41
|
+
/** Verifier key bytes */
|
|
42
|
+
verifierKey: VerifierKey;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Represents an HTTP ZK config provider.
|
|
46
|
+
*
|
|
47
|
+
* This is plain data - use module functions to operate on it.
|
|
48
|
+
*
|
|
49
|
+
* @since 0.2.0
|
|
50
|
+
* @category model
|
|
51
|
+
*/
|
|
52
|
+
export interface HttpZkConfigProviderData {
|
|
53
|
+
/** Base URL for ZK artifacts */
|
|
54
|
+
readonly baseUrl: string;
|
|
55
|
+
/** Fetch function to use */
|
|
56
|
+
readonly fetchFn: typeof fetch;
|
|
57
|
+
/** Internal cache for loaded configs */
|
|
58
|
+
readonly cache: Map<string, ZkConfig>;
|
|
59
|
+
}
|
|
60
|
+
declare function getZKIREffect(provider: HttpZkConfigProviderData, circuitId: string): Effect.Effect<ZKIR, ZkConfigError>;
|
|
61
|
+
declare function getProverKeyEffect(provider: HttpZkConfigProviderData, circuitId: string): Effect.Effect<ProverKey, ZkConfigError>;
|
|
62
|
+
declare function getVerifierKeyEffect(provider: HttpZkConfigProviderData, circuitId: string): Effect.Effect<VerifierKey, ZkConfigError>;
|
|
63
|
+
/**
|
|
64
|
+
* Create a new HTTP ZK config provider.
|
|
65
|
+
*
|
|
66
|
+
* @param baseUrl - Base URL for ZK artifacts (without trailing slash)
|
|
67
|
+
* @param fetchFn - Optional custom fetch function (defaults to global fetch)
|
|
68
|
+
* @returns HttpZkConfigProviderData
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const provider = HttpZkConfigProvider.make('https://cdn.example.com/contracts/counter');
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @since 0.2.0
|
|
76
|
+
* @category constructors
|
|
77
|
+
*/
|
|
78
|
+
export declare function make(baseUrl: string, fetchFn?: typeof fetch): HttpZkConfigProviderData;
|
|
79
|
+
/**
|
|
80
|
+
* Get the ZKIR for a circuit.
|
|
81
|
+
*
|
|
82
|
+
* @param provider - The provider data
|
|
83
|
+
* @param circuitId - Circuit identifier
|
|
84
|
+
* @returns ZKIR bytes
|
|
85
|
+
*
|
|
86
|
+
* @since 0.2.0
|
|
87
|
+
* @category operations
|
|
88
|
+
*/
|
|
89
|
+
export declare function getZKIR(provider: HttpZkConfigProviderData, circuitId: string): Promise<ZKIR>;
|
|
90
|
+
/**
|
|
91
|
+
* Get the prover key for a circuit.
|
|
92
|
+
*
|
|
93
|
+
* @param provider - The provider data
|
|
94
|
+
* @param circuitId - Circuit identifier
|
|
95
|
+
* @returns Prover key bytes
|
|
96
|
+
*
|
|
97
|
+
* @since 0.2.0
|
|
98
|
+
* @category operations
|
|
99
|
+
*/
|
|
100
|
+
export declare function getProverKey(provider: HttpZkConfigProviderData, circuitId: string): Promise<ProverKey>;
|
|
101
|
+
/**
|
|
102
|
+
* Get the verifier key for a circuit.
|
|
103
|
+
*
|
|
104
|
+
* @param provider - The provider data
|
|
105
|
+
* @param circuitId - Circuit identifier
|
|
106
|
+
* @returns Verifier key bytes
|
|
107
|
+
*
|
|
108
|
+
* @since 0.2.0
|
|
109
|
+
* @category operations
|
|
110
|
+
*/
|
|
111
|
+
export declare function getVerifierKey(provider: HttpZkConfigProviderData, circuitId: string): Promise<VerifierKey>;
|
|
112
|
+
/**
|
|
113
|
+
* Clear the cache for a specific circuit or all circuits.
|
|
114
|
+
*
|
|
115
|
+
* @param provider - The provider data
|
|
116
|
+
* @param circuitId - Optional circuit ID to clear (clears all if not provided)
|
|
117
|
+
*
|
|
118
|
+
* @since 0.2.0
|
|
119
|
+
* @category utilities
|
|
120
|
+
*/
|
|
121
|
+
export declare function clearCache(provider: HttpZkConfigProviderData, circuitId?: string): void;
|
|
122
|
+
/**
|
|
123
|
+
* Raw Effect APIs for advanced users.
|
|
124
|
+
*
|
|
125
|
+
* @since 0.2.0
|
|
126
|
+
* @category effect
|
|
127
|
+
*/
|
|
128
|
+
export declare const effect: {
|
|
129
|
+
getZKIR: typeof getZKIREffect;
|
|
130
|
+
getProverKey: typeof getProverKeyEffect;
|
|
131
|
+
getVerifierKey: typeof getVerifierKeyEffect;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* HTTP-based ZK configuration provider class.
|
|
135
|
+
*
|
|
136
|
+
* This class wraps the module functions to provide compatibility with
|
|
137
|
+
* the midnight-js ZKConfigProvider interface.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const zkConfig = new HttpZkConfigProvider('https://cdn.example.com/contracts/counter');
|
|
142
|
+
*
|
|
143
|
+
* // Use with midnight-js
|
|
144
|
+
* const client = await Client.create({
|
|
145
|
+
* zkConfigProvider: zkConfig,
|
|
146
|
+
* // ...
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @since 0.2.0
|
|
151
|
+
* @category constructors
|
|
152
|
+
*/
|
|
153
|
+
export declare class HttpZkConfigProvider<K extends string = string> extends ZKConfigProvider<K> {
|
|
154
|
+
private readonly data;
|
|
155
|
+
/**
|
|
156
|
+
* Create a new HTTP ZK config provider.
|
|
157
|
+
*
|
|
158
|
+
* @param baseUrl - Base URL for ZK artifacts (without trailing slash)
|
|
159
|
+
* @param fetchFn - Optional custom fetch function (defaults to global fetch)
|
|
160
|
+
*/
|
|
161
|
+
constructor(baseUrl: string, fetchFn?: typeof fetch);
|
|
162
|
+
/**
|
|
163
|
+
* Get the ZKIR for a circuit.
|
|
164
|
+
*/
|
|
165
|
+
getZKIR(circuitId: K): Promise<ZKIR>;
|
|
166
|
+
/**
|
|
167
|
+
* Get the prover key for a circuit.
|
|
168
|
+
*/
|
|
169
|
+
getProverKey(circuitId: K): Promise<ProverKey>;
|
|
170
|
+
/**
|
|
171
|
+
* Get the verifier key for a circuit.
|
|
172
|
+
*/
|
|
173
|
+
getVerifierKey(circuitId: K): Promise<VerifierKey>;
|
|
174
|
+
/**
|
|
175
|
+
* Clear the cache for a specific circuit or all circuits.
|
|
176
|
+
*/
|
|
177
|
+
clearCache(circuitId?: K): void;
|
|
178
|
+
/**
|
|
179
|
+
* Raw Effect APIs for advanced users.
|
|
180
|
+
*
|
|
181
|
+
* @since 0.2.0
|
|
182
|
+
* @category effect
|
|
183
|
+
*/
|
|
184
|
+
readonly effect: {
|
|
185
|
+
getZKIR: (circuitId: K) => Effect.Effect<ZKIR, ZkConfigError, never>;
|
|
186
|
+
getProverKey: (circuitId: K) => Effect.Effect<ProverKey, ZkConfigError, never>;
|
|
187
|
+
getVerifierKey: (circuitId: K) => Effect.Effect<VerifierKey, ZkConfigError, never>;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Service interface for ZkConfig operations.
|
|
192
|
+
*
|
|
193
|
+
* @since 0.2.0
|
|
194
|
+
* @category service
|
|
195
|
+
*/
|
|
196
|
+
export interface ZkConfigServiceImpl {
|
|
197
|
+
readonly getZKIR: (provider: HttpZkConfigProviderData, circuitId: string) => Effect.Effect<ZKIR, ZkConfigError>;
|
|
198
|
+
readonly getProverKey: (provider: HttpZkConfigProviderData, circuitId: string) => Effect.Effect<ProverKey, ZkConfigError>;
|
|
199
|
+
readonly getVerifierKey: (provider: HttpZkConfigProviderData, circuitId: string) => Effect.Effect<VerifierKey, ZkConfigError>;
|
|
200
|
+
}
|
|
201
|
+
declare const ZkConfigService_base: Context.TagClass<ZkConfigService, "ZkConfigService", ZkConfigServiceImpl>;
|
|
202
|
+
/**
|
|
203
|
+
* Context.Tag for ZkConfigService dependency injection.
|
|
204
|
+
*
|
|
205
|
+
* @since 0.2.0
|
|
206
|
+
* @category service
|
|
207
|
+
*/
|
|
208
|
+
export declare class ZkConfigService extends ZkConfigService_base {
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Live Layer for ZkConfigService.
|
|
212
|
+
*
|
|
213
|
+
* @since 0.2.0
|
|
214
|
+
* @category layer
|
|
215
|
+
*/
|
|
216
|
+
export declare const ZkConfigLive: Layer.Layer<ZkConfigService>;
|
|
217
|
+
declare const ZkConfigProviderService_base: Context.TagClass<ZkConfigProviderService, "ZkConfigProviderService", ZKConfigProvider<string>>;
|
|
218
|
+
/**
|
|
219
|
+
* ZK configuration provider service for dependency injection.
|
|
220
|
+
*
|
|
221
|
+
* This tag allows injecting a ZKConfigProvider instance.
|
|
222
|
+
*
|
|
223
|
+
* @since 0.3.0
|
|
224
|
+
* @category services
|
|
225
|
+
*/
|
|
226
|
+
export declare class ZkConfigProviderService extends ZkConfigProviderService_base {
|
|
227
|
+
}
|
|
228
|
+
export {};
|
|
229
|
+
//# sourceMappingURL=HttpZkConfigProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpZkConfigProvider.d.ts","sourceRoot":"","sources":["../../src/providers/HttpZkConfigProvider.ts"],"names":[],"mappings":"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"}
|