@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.
Files changed (94) hide show
  1. package/README.md +145 -78
  2. package/dist/Client.d.ts +464 -72
  3. package/dist/Client.d.ts.map +1 -1
  4. package/dist/Client.js +526 -143
  5. package/dist/Client.js.map +1 -1
  6. package/dist/Config.d.ts +83 -1
  7. package/dist/Config.d.ts.map +1 -1
  8. package/dist/Config.js +72 -15
  9. package/dist/Config.js.map +1 -1
  10. package/dist/Providers.d.ts +99 -9
  11. package/dist/Providers.d.ts.map +1 -1
  12. package/dist/Providers.js +142 -39
  13. package/dist/Providers.js.map +1 -1
  14. package/dist/Wallet.d.ts +88 -1
  15. package/dist/Wallet.d.ts.map +1 -1
  16. package/dist/Wallet.js +162 -51
  17. package/dist/Wallet.js.map +1 -1
  18. package/dist/devnet/Cluster.d.ts +282 -0
  19. package/dist/devnet/Cluster.d.ts.map +1 -0
  20. package/dist/devnet/Cluster.js +487 -0
  21. package/dist/devnet/Cluster.js.map +1 -0
  22. package/dist/devnet/Config.d.ts +119 -0
  23. package/dist/devnet/Config.d.ts.map +1 -0
  24. package/dist/devnet/Config.js +75 -0
  25. package/dist/devnet/Config.js.map +1 -0
  26. package/dist/devnet/Container.d.ts +180 -0
  27. package/dist/devnet/Container.d.ts.map +1 -0
  28. package/dist/devnet/Container.js +390 -0
  29. package/dist/devnet/Container.js.map +1 -0
  30. package/dist/devnet/Health.d.ts +129 -0
  31. package/dist/devnet/Health.d.ts.map +1 -0
  32. package/dist/devnet/Health.js +304 -0
  33. package/dist/devnet/Health.js.map +1 -0
  34. package/dist/devnet/Images.d.ts +43 -0
  35. package/dist/devnet/Images.d.ts.map +1 -0
  36. package/dist/devnet/Images.js +96 -0
  37. package/dist/devnet/Images.js.map +1 -0
  38. package/dist/devnet/errors.d.ts +65 -0
  39. package/dist/devnet/errors.d.ts.map +1 -0
  40. package/dist/devnet/errors.js +40 -0
  41. package/dist/devnet/errors.js.map +1 -0
  42. package/dist/devnet/index.d.ts +72 -0
  43. package/dist/devnet/index.d.ts.map +1 -0
  44. package/dist/devnet/index.js +73 -0
  45. package/dist/devnet/index.js.map +1 -0
  46. package/dist/index.d.ts +63 -7
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +68 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/providers/HttpZkConfigProvider.d.ts +229 -0
  51. package/dist/providers/HttpZkConfigProvider.d.ts.map +1 -0
  52. package/dist/providers/HttpZkConfigProvider.js +275 -0
  53. package/dist/providers/HttpZkConfigProvider.js.map +1 -0
  54. package/dist/providers/IndexedDBPrivateStateProvider.d.ts +270 -0
  55. package/dist/providers/IndexedDBPrivateStateProvider.d.ts.map +1 -0
  56. package/dist/providers/IndexedDBPrivateStateProvider.js +513 -0
  57. package/dist/providers/IndexedDBPrivateStateProvider.js.map +1 -0
  58. package/dist/providers/errors.d.ts +50 -0
  59. package/dist/providers/errors.d.ts.map +1 -0
  60. package/dist/providers/errors.js +32 -0
  61. package/dist/providers/errors.js.map +1 -0
  62. package/dist/sdk/Type.d.ts +91 -0
  63. package/dist/sdk/Type.d.ts.map +1 -0
  64. package/dist/sdk/Type.js +8 -0
  65. package/dist/sdk/Type.js.map +1 -0
  66. package/dist/utils/address.d.ts +56 -0
  67. package/dist/utils/address.d.ts.map +1 -0
  68. package/dist/utils/address.js +135 -0
  69. package/dist/utils/address.js.map +1 -0
  70. package/dist/utils/coin.d.ts +55 -0
  71. package/dist/utils/coin.d.ts.map +1 -0
  72. package/dist/utils/coin.js +84 -0
  73. package/dist/utils/coin.js.map +1 -0
  74. package/dist/utils/effect-runtime.d.ts +66 -0
  75. package/dist/utils/effect-runtime.d.ts.map +1 -0
  76. package/dist/utils/effect-runtime.js +147 -0
  77. package/dist/utils/effect-runtime.js.map +1 -0
  78. package/dist/utils/hex.d.ts +62 -0
  79. package/dist/utils/hex.d.ts.map +1 -0
  80. package/dist/utils/hex.js +93 -0
  81. package/dist/utils/hex.js.map +1 -0
  82. package/dist/wallet/connector.d.ts +191 -0
  83. package/dist/wallet/connector.d.ts.map +1 -0
  84. package/dist/wallet/connector.js +183 -0
  85. package/dist/wallet/connector.js.map +1 -0
  86. package/dist/wallet/errors.d.ts +22 -0
  87. package/dist/wallet/errors.d.ts.map +1 -0
  88. package/dist/wallet/errors.js +16 -0
  89. package/dist/wallet/errors.js.map +1 -0
  90. package/dist/wallet/provider.d.ts +102 -0
  91. package/dist/wallet/provider.d.ts.map +1 -0
  92. package/dist/wallet/provider.js +139 -0
  93. package/dist/wallet/provider.js.map +1 -0
  94. 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 client = await Midday.Client.create();
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, ContractBuilder, ConnectedContract, CallResult, FinalizedTxData } from './Client.js';
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 type { ContractProviders, StorageConfig } from './Providers.js';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjI,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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 client = await Midday.Client.create();
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;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C,kDAAkD;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
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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"}