@shieldedtech/moth-wallet 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +62 -0
  2. package/dist/contract/args-parser.d.ts +29 -0
  3. package/dist/contract/args-parser.d.ts.map +1 -0
  4. package/dist/contract/args-parser.js +123 -0
  5. package/dist/contract/args-parser.js.map +1 -0
  6. package/dist/contract/artifact-loader.d.ts +26 -0
  7. package/dist/contract/artifact-loader.d.ts.map +1 -0
  8. package/dist/contract/artifact-loader.js +129 -0
  9. package/dist/contract/artifact-loader.js.map +1 -0
  10. package/dist/contract/call.d.ts +32 -0
  11. package/dist/contract/call.d.ts.map +1 -0
  12. package/dist/contract/call.js +245 -0
  13. package/dist/contract/call.js.map +1 -0
  14. package/dist/contract/deploy.d.ts +36 -0
  15. package/dist/contract/deploy.d.ts.map +1 -0
  16. package/dist/contract/deploy.js +388 -0
  17. package/dist/contract/deploy.js.map +1 -0
  18. package/dist/contract/fungible-token.d.ts +40 -0
  19. package/dist/contract/fungible-token.d.ts.map +1 -0
  20. package/dist/contract/fungible-token.js +88 -0
  21. package/dist/contract/fungible-token.js.map +1 -0
  22. package/dist/contract/initial-private-state.d.ts +18 -0
  23. package/dist/contract/initial-private-state.d.ts.map +1 -0
  24. package/dist/contract/initial-private-state.js +44 -0
  25. package/dist/contract/initial-private-state.js.map +1 -0
  26. package/dist/contract/maintenance.d.ts +72 -0
  27. package/dist/contract/maintenance.d.ts.map +1 -0
  28. package/dist/contract/maintenance.js +430 -0
  29. package/dist/contract/maintenance.js.map +1 -0
  30. package/dist/contract/state.d.ts +16 -0
  31. package/dist/contract/state.d.ts.map +1 -0
  32. package/dist/contract/state.js +18 -0
  33. package/dist/contract/state.js.map +1 -0
  34. package/dist/contract/witness-loader.d.ts +3 -0
  35. package/dist/contract/witness-loader.d.ts.map +1 -0
  36. package/dist/contract/witness-loader.js +27 -0
  37. package/dist/contract/witness-loader.js.map +1 -0
  38. package/dist/daemon/api-keys.d.ts +66 -0
  39. package/dist/daemon/api-keys.d.ts.map +1 -0
  40. package/dist/daemon/api-keys.js +222 -0
  41. package/dist/daemon/api-keys.js.map +1 -0
  42. package/dist/daemon/audit-log.d.ts +65 -0
  43. package/dist/daemon/audit-log.d.ts.map +1 -0
  44. package/dist/daemon/audit-log.js +73 -0
  45. package/dist/daemon/audit-log.js.map +1 -0
  46. package/dist/daemon/client.d.ts +63 -0
  47. package/dist/daemon/client.d.ts.map +1 -0
  48. package/dist/daemon/client.js +214 -0
  49. package/dist/daemon/client.js.map +1 -0
  50. package/dist/daemon/confirmation-queue.d.ts +46 -0
  51. package/dist/daemon/confirmation-queue.d.ts.map +1 -0
  52. package/dist/daemon/confirmation-queue.js +92 -0
  53. package/dist/daemon/confirmation-queue.js.map +1 -0
  54. package/dist/daemon/index.d.ts +23 -0
  55. package/dist/daemon/index.d.ts.map +1 -0
  56. package/dist/daemon/index.js +26 -0
  57. package/dist/daemon/index.js.map +1 -0
  58. package/dist/daemon/protocol.d.ts +40 -0
  59. package/dist/daemon/protocol.d.ts.map +1 -0
  60. package/dist/daemon/protocol.js +104 -0
  61. package/dist/daemon/protocol.js.map +1 -0
  62. package/dist/daemon/server.d.ts +158 -0
  63. package/dist/daemon/server.d.ts.map +1 -0
  64. package/dist/daemon/server.js +297 -0
  65. package/dist/daemon/server.js.map +1 -0
  66. package/dist/daemon/wallet-handlers.d.ts +37 -0
  67. package/dist/daemon/wallet-handlers.d.ts.map +1 -0
  68. package/dist/daemon/wallet-handlers.js +533 -0
  69. package/dist/daemon/wallet-handlers.js.map +1 -0
  70. package/dist/daemon/wallet-rpc-parsers.d.ts +14 -0
  71. package/dist/daemon/wallet-rpc-parsers.d.ts.map +1 -0
  72. package/dist/daemon/wallet-rpc-parsers.js +259 -0
  73. package/dist/daemon/wallet-rpc-parsers.js.map +1 -0
  74. package/dist/daemon/wallet-rpc-types.d.ts +138 -0
  75. package/dist/daemon/wallet-rpc-types.d.ts.map +1 -0
  76. package/dist/daemon/wallet-rpc-types.js +11 -0
  77. package/dist/daemon/wallet-rpc-types.js.map +1 -0
  78. package/dist/diagnostics/fs-timing-store.d.ts +29 -0
  79. package/dist/diagnostics/fs-timing-store.d.ts.map +1 -0
  80. package/dist/diagnostics/fs-timing-store.js +81 -0
  81. package/dist/diagnostics/fs-timing-store.js.map +1 -0
  82. package/dist/diagnostics/timings.d.ts +64 -0
  83. package/dist/diagnostics/timings.d.ts.map +1 -0
  84. package/dist/diagnostics/timings.js +100 -0
  85. package/dist/diagnostics/timings.js.map +1 -0
  86. package/dist/index.d.ts +37 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +47 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/network/indexer-client.d.ts +66 -0
  91. package/dist/network/indexer-client.d.ts.map +1 -0
  92. package/dist/network/indexer-client.js +112 -0
  93. package/dist/network/indexer-client.js.map +1 -0
  94. package/dist/network/node-client.d.ts +27 -0
  95. package/dist/network/node-client.d.ts.map +1 -0
  96. package/dist/network/node-client.js +94 -0
  97. package/dist/network/node-client.js.map +1 -0
  98. package/dist/proof/client.d.ts +15 -0
  99. package/dist/proof/client.d.ts.map +1 -0
  100. package/dist/proof/client.js +77 -0
  101. package/dist/proof/client.js.map +1 -0
  102. package/dist/proof/provider.d.ts +12 -0
  103. package/dist/proof/provider.d.ts.map +1 -0
  104. package/dist/proof/provider.js +96 -0
  105. package/dist/proof/provider.js.map +1 -0
  106. package/dist/providers/index.d.ts +2 -0
  107. package/dist/providers/index.d.ts.map +1 -0
  108. package/dist/providers/index.js +2 -0
  109. package/dist/providers/index.js.map +1 -0
  110. package/dist/providers/midnight-provider.d.ts +11 -0
  111. package/dist/providers/midnight-provider.d.ts.map +1 -0
  112. package/dist/providers/midnight-provider.js +30 -0
  113. package/dist/providers/midnight-provider.js.map +1 -0
  114. package/dist/storage/adapter.d.ts +8 -0
  115. package/dist/storage/adapter.d.ts.map +1 -0
  116. package/dist/storage/adapter.js +2 -0
  117. package/dist/storage/adapter.js.map +1 -0
  118. package/dist/storage/fs-adapter.d.ts +14 -0
  119. package/dist/storage/fs-adapter.d.ts.map +1 -0
  120. package/dist/storage/fs-adapter.js +126 -0
  121. package/dist/storage/fs-adapter.js.map +1 -0
  122. package/dist/storage/safe-path.d.ts +13 -0
  123. package/dist/storage/safe-path.d.ts.map +1 -0
  124. package/dist/storage/safe-path.js +35 -0
  125. package/dist/storage/safe-path.js.map +1 -0
  126. package/dist/sync/activity.d.ts +53 -0
  127. package/dist/sync/activity.d.ts.map +1 -0
  128. package/dist/sync/activity.js +92 -0
  129. package/dist/sync/activity.js.map +1 -0
  130. package/dist/sync/dust-registration-estimate.d.ts +54 -0
  131. package/dist/sync/dust-registration-estimate.d.ts.map +1 -0
  132. package/dist/sync/dust-registration-estimate.js +103 -0
  133. package/dist/sync/dust-registration-estimate.js.map +1 -0
  134. package/dist/sync/node-sync-store.d.ts +10 -0
  135. package/dist/sync/node-sync-store.d.ts.map +1 -0
  136. package/dist/sync/node-sync-store.js +42 -0
  137. package/dist/sync/node-sync-store.js.map +1 -0
  138. package/dist/sync/operations.d.ts +138 -0
  139. package/dist/sync/operations.d.ts.map +1 -0
  140. package/dist/sync/operations.js +395 -0
  141. package/dist/sync/operations.js.map +1 -0
  142. package/dist/sync/preseed-parts.d.ts +18 -0
  143. package/dist/sync/preseed-parts.d.ts.map +1 -0
  144. package/dist/sync/preseed-parts.js +33 -0
  145. package/dist/sync/preseed-parts.js.map +1 -0
  146. package/dist/sync/preseed.d.ts +95 -0
  147. package/dist/sync/preseed.d.ts.map +1 -0
  148. package/dist/sync/preseed.js +365 -0
  149. package/dist/sync/preseed.js.map +1 -0
  150. package/dist/sync/progress.d.ts +45 -0
  151. package/dist/sync/progress.d.ts.map +1 -0
  152. package/dist/sync/progress.js +51 -0
  153. package/dist/sync/progress.js.map +1 -0
  154. package/dist/sync/sdk-dedup.d.ts +53 -0
  155. package/dist/sync/sdk-dedup.d.ts.map +1 -0
  156. package/dist/sync/sdk-dedup.js +134 -0
  157. package/dist/sync/sdk-dedup.js.map +1 -0
  158. package/dist/sync/sync-store.d.ts +33 -0
  159. package/dist/sync/sync-store.d.ts.map +1 -0
  160. package/dist/sync/sync-store.js +45 -0
  161. package/dist/sync/sync-store.js.map +1 -0
  162. package/dist/sync/wallet-sync.d.ts +153 -0
  163. package/dist/sync/wallet-sync.d.ts.map +1 -0
  164. package/dist/sync/wallet-sync.js +943 -0
  165. package/dist/sync/wallet-sync.js.map +1 -0
  166. package/dist/types/errors.d.ts +18 -0
  167. package/dist/types/errors.d.ts.map +1 -0
  168. package/dist/types/errors.js +33 -0
  169. package/dist/types/errors.js.map +1 -0
  170. package/dist/types/exit-codes.d.ts +8 -0
  171. package/dist/types/exit-codes.d.ts.map +1 -0
  172. package/dist/types/exit-codes.js +7 -0
  173. package/dist/types/exit-codes.js.map +1 -0
  174. package/dist/types/index.d.ts +6 -0
  175. package/dist/types/index.d.ts.map +1 -0
  176. package/dist/types/index.js +3 -0
  177. package/dist/types/index.js.map +1 -0
  178. package/dist/types/network.d.ts +65 -0
  179. package/dist/types/network.d.ts.map +1 -0
  180. package/dist/types/network.js +108 -0
  181. package/dist/types/network.js.map +1 -0
  182. package/dist/types/tokens.d.ts +3 -0
  183. package/dist/types/tokens.d.ts.map +1 -0
  184. package/dist/types/tokens.js +11 -0
  185. package/dist/types/tokens.js.map +1 -0
  186. package/dist/types/transaction.d.ts +13 -0
  187. package/dist/types/transaction.d.ts.map +1 -0
  188. package/dist/types/transaction.js +2 -0
  189. package/dist/types/transaction.js.map +1 -0
  190. package/dist/types/wallet.d.ts +82 -0
  191. package/dist/types/wallet.d.ts.map +1 -0
  192. package/dist/types/wallet.js +2 -0
  193. package/dist/types/wallet.js.map +1 -0
  194. package/dist/wallet/address-validate.d.ts +7 -0
  195. package/dist/wallet/address-validate.d.ts.map +1 -0
  196. package/dist/wallet/address-validate.js +28 -0
  197. package/dist/wallet/address-validate.js.map +1 -0
  198. package/dist/wallet/address.d.ts +32 -0
  199. package/dist/wallet/address.d.ts.map +1 -0
  200. package/dist/wallet/address.js +107 -0
  201. package/dist/wallet/address.js.map +1 -0
  202. package/dist/wallet/app-secret.d.ts +15 -0
  203. package/dist/wallet/app-secret.d.ts.map +1 -0
  204. package/dist/wallet/app-secret.js +45 -0
  205. package/dist/wallet/app-secret.js.map +1 -0
  206. package/dist/wallet/balance-format.d.ts +12 -0
  207. package/dist/wallet/balance-format.d.ts.map +1 -0
  208. package/dist/wallet/balance-format.js +51 -0
  209. package/dist/wallet/balance-format.js.map +1 -0
  210. package/dist/wallet/batch-transfer.d.ts +36 -0
  211. package/dist/wallet/batch-transfer.d.ts.map +1 -0
  212. package/dist/wallet/batch-transfer.js +93 -0
  213. package/dist/wallet/batch-transfer.js.map +1 -0
  214. package/dist/wallet/keystore.d.ts +16 -0
  215. package/dist/wallet/keystore.d.ts.map +1 -0
  216. package/dist/wallet/keystore.js +76 -0
  217. package/dist/wallet/keystore.js.map +1 -0
  218. package/dist/wallet/manager.d.ts +77 -0
  219. package/dist/wallet/manager.d.ts.map +1 -0
  220. package/dist/wallet/manager.js +474 -0
  221. package/dist/wallet/manager.js.map +1 -0
  222. package/dist/wallet/mnemonic.d.ts +5 -0
  223. package/dist/wallet/mnemonic.d.ts.map +1 -0
  224. package/dist/wallet/mnemonic.js +28 -0
  225. package/dist/wallet/mnemonic.js.map +1 -0
  226. package/dist/wallet/sign-message.d.ts +20 -0
  227. package/dist/wallet/sign-message.d.ts.map +1 -0
  228. package/dist/wallet/sign-message.js +58 -0
  229. package/dist/wallet/sign-message.js.map +1 -0
  230. package/package.json +55 -0
@@ -0,0 +1,245 @@
1
+ // Circuit call using the official Midnight SDK provider chain.
2
+ // Mirrors deploy.ts: syncs wallet, balances transaction, signs intents, submits.
3
+ import { resolveProverConfig } from '../types/network.js';
4
+ import { createProofProvider, ensureProverReady } from '../proof/provider.js';
5
+ import { NodeZkConfigProvider } from '@midnight-ntwrk/midnight-js-node-zk-config-provider';
6
+ import { createMidnightProvider } from '../providers/midnight-provider.js';
7
+ import { indexerPublicDataProvider } from '@midnight-ntwrk/midnight-js-indexer-public-data-provider';
8
+ import { WalletError } from '../types/errors.js';
9
+ import { toPositionalArgs } from './args-parser.js';
10
+ import { setNetworkId } from '@midnight-ntwrk/midnight-js/network-id';
11
+ import * as Rx from 'rxjs';
12
+ import * as ledger from '@midnight-ntwrk/ledger-v8';
13
+ import { HDWallet, Roles } from '@midnightntwrk/wallet-sdk/hd';
14
+ import { createKeystore } from '@midnightntwrk/wallet-sdk/unshielded';
15
+ export async function callCircuit(options) {
16
+ const { contractAddress, circuitName, network, artifactPath } = options;
17
+ if (!artifactPath) {
18
+ throw new WalletError('INVALID_INPUT', 'Circuit calls require a compiled contract artifact (--artifact). ' +
19
+ 'The artifact provides ZK circuits and contract logic needed for proof generation.');
20
+ }
21
+ if (!options.syncedWallet?.facade) {
22
+ throw new WalletError('WALLET_ERROR', 'Wallet must be synced before calling circuits. Unlock and wait for sync.');
23
+ }
24
+ setNetworkId(network.id);
25
+ await ensureProverReady(resolveProverConfig(network));
26
+ return callViaSDK(options);
27
+ }
28
+ async function callViaSDK(options) {
29
+ const { contractAddress, circuitName, args, walletKeys, seedHex, witnesses, network, artifactPath, syncedWallet, projectDir } = options;
30
+ const { resolve: resolvePath, join, basename } = await import('node:path');
31
+ const { pathToFileURL } = await import('node:url');
32
+ const { createRequire } = await import('node:module');
33
+ const { existsSync } = await import('node:fs');
34
+ const { homedir } = await import('node:os');
35
+ const { levelPrivateStateProvider } = await import('@midnight-ntwrk/midnight-js-level-private-state-provider');
36
+ // Resolve the typed key bundle: prefer the pre-derived walletKeys
37
+ // (daemon path) and fall back to deriving from seedHex (existing
38
+ // in-process CLI path). See
39
+ // docs/spec/wallet-service/05-key-management.md D-KM-3.
40
+ let shieldedSecretKeys;
41
+ let dustSecretKey;
42
+ let nightExternalKey;
43
+ if (walletKeys) {
44
+ shieldedSecretKeys = walletKeys.shieldedSecretKeys;
45
+ dustSecretKey = walletKeys.dustSecretKey;
46
+ nightExternalKey = walletKeys.nightExternalKey;
47
+ }
48
+ else {
49
+ if (!seedHex) {
50
+ throw new WalletError('WALLET_ERROR', 'callCircuit requires either walletKeys or seedHex');
51
+ }
52
+ const hdWallet = HDWallet.fromSeed(Buffer.from(seedHex, 'hex'));
53
+ if (hdWallet.type !== 'seedOk')
54
+ throw new WalletError('WALLET_ERROR', 'Invalid seed');
55
+ const keyResult = hdWallet.hdWallet
56
+ .selectAccount(0)
57
+ .selectRoles([Roles.Zswap, Roles.NightExternal, Roles.Dust])
58
+ .deriveKeysAt(0);
59
+ if (keyResult.type !== 'keysDerived')
60
+ throw new WalletError('WALLET_ERROR', 'Key derivation failed');
61
+ hdWallet.hdWallet.clear();
62
+ shieldedSecretKeys = ledger.ZswapSecretKeys.fromSeed(keyResult.keys[Roles.Zswap]);
63
+ dustSecretKey = ledger.DustSecretKey.fromSeed(keyResult.keys[Roles.Dust]);
64
+ nightExternalKey = keyResult.keys[Roles.NightExternal];
65
+ }
66
+ const keystore = createKeystore(nightExternalKey, network.id);
67
+ // Wait for wallet sync + dust stabilization (same as deploy.ts)
68
+ const facade = syncedWallet.facade;
69
+ const state = await Rx.firstValueFrom(facade.state().pipe(Rx.filter((s) => {
70
+ try {
71
+ const unDone = s.unshielded?.progress?.isStrictlyComplete?.() === true;
72
+ const dustDone = s.dust?.progress?.isStrictlyComplete?.() === true;
73
+ if (unDone && dustDone)
74
+ return true;
75
+ }
76
+ catch { }
77
+ return s.isSynced === true;
78
+ }), Rx.bufferCount(2, 1), Rx.filter(([a, b]) => {
79
+ try {
80
+ const dustA = a.dust?.balance?.(new Date()) ?? 0n;
81
+ const dustB = b.dust?.balance?.(new Date()) ?? 0n;
82
+ return dustA === dustB;
83
+ }
84
+ catch {
85
+ return true;
86
+ }
87
+ }), Rx.map(([, b]) => b)));
88
+ const coinPublicKey = state.shielded.coinPublicKey.toHexString();
89
+ const encPublicKey = state.shielded.encryptionPublicKey.toHexString();
90
+ const unshieldedAddr = keystore.getBech32Address().toString();
91
+ // Resolve SDK packages from the project's node_modules
92
+ const projRoot = projectDir?.trim() || resolvePath(artifactPath, '..', '..');
93
+ const projRequire = createRequire(resolvePath(projRoot, 'node_modules', '_virtual.js'));
94
+ let CompiledContract;
95
+ let findDeployedContract;
96
+ try {
97
+ CompiledContract = projRequire('@midnight-ntwrk/compact-js').CompiledContract;
98
+ // findDeployedContract instead of submitCallTx — fixes a bug where
99
+ // calling a contract moth did not itself deploy throws "No private
100
+ // state found at private state ID '<contractName>State'".
101
+ // submitCallTx uses an older code path that doesn't honor
102
+ // initialPrivateState. findDeployedContract DOES write
103
+ // initialPrivateState before returning a callTx handle, so the
104
+ // private state exists by the time the inner submitCallTx runs.
105
+ findDeployedContract = projRequire('@midnight-ntwrk/midnight-js/contracts').findDeployedContract;
106
+ }
107
+ catch {
108
+ const cjs = await import('@midnight-ntwrk/compact-js');
109
+ const contracts = await import('@midnight-ntwrk/midnight-js/contracts');
110
+ CompiledContract = cjs.CompiledContract;
111
+ findDeployedContract = contracts.findDeployedContract;
112
+ }
113
+ // Load the contract module
114
+ const managedDir = artifactPath;
115
+ const contractName = basename(managedDir);
116
+ const contractJs = join(managedDir, 'contract', 'index.js');
117
+ if (!existsSync(contractJs)) {
118
+ throw new WalletError('INVALID_INPUT', `No compiled contract at ${contractJs}`);
119
+ }
120
+ const contractModule = await import(pathToFileURL(contractJs).href);
121
+ // Build CompiledContract using the .pipe() pattern (same as deploy)
122
+ let compiledContract;
123
+ if (witnesses) {
124
+ compiledContract = CompiledContract.make(contractName, contractModule.Contract).pipe(CompiledContract.withWitnesses(witnesses), CompiledContract.withCompiledFileAssets(managedDir));
125
+ }
126
+ else {
127
+ compiledContract = CompiledContract.make(contractName, contractModule.Contract).pipe(CompiledContract.withVacantWitnesses, CompiledContract.withCompiledFileAssets(managedDir));
128
+ }
129
+ // Providers — same pattern as deploy.ts
130
+ const zkConfigProvider = new NodeZkConfigProvider(artifactPath);
131
+ const midnightProvider = createMidnightProvider(network);
132
+ const indexerHttpUrl = network.indexerUrl;
133
+ const indexerWsUrl = indexerHttpUrl.replace(/^https:/, 'wss:').replace(/^http:/, 'ws:') + '/ws';
134
+ const publicDataProvider = indexerPublicDataProvider(indexerHttpUrl, indexerWsUrl);
135
+ // Selectable prover (reconcile decision #1: keep EITHER WASM or server).
136
+ // createProofProvider picks per resolveProverConfig(network). For server mode
137
+ // it proves through the SDK's httpClientProvingProvider via ledger's
138
+ // transaction.prove(), which runs the preimage through
139
+ // createProvingPayload/createCheckPayload — i.e. it versions the payload and
140
+ // attaches the circuit's wrapped-IR from zkConfigProvider. That is why it does
141
+ // NOT hit the unversioned "expected proof-preimage-versioned" failure that a
142
+ // hand-rolled bare-preimage POST would (the fix/tui-circuit-call-proof bug):
143
+ // the versioning happens inside ledger.prove, not in the provider.
144
+ const proofProvider = createProofProvider(resolveProverConfig(network), zkConfigProvider.asKeyMaterialProvider());
145
+ // Wallet provider with real transaction balancing + signing (same as deploy.ts)
146
+ const walletProvider = {
147
+ getCoinPublicKey: () => coinPublicKey,
148
+ getEncryptionPublicKey: () => encPublicKey,
149
+ async balanceTx(tx, ttl) {
150
+ const recipe = await facade.balanceUnboundTransaction(tx, { shieldedSecretKeys, dustSecretKey }, { ttl: ttl ?? new Date(Date.now() + 30 * 60_000) });
151
+ const signFn = (payload) => keystore.signData(payload);
152
+ signTransactionIntents(recipe.baseTransaction, signFn, 'proof');
153
+ if (recipe.balancingTransaction) {
154
+ signTransactionIntents(recipe.balancingTransaction, signFn, 'pre-proof');
155
+ }
156
+ return facade.finalizeRecipe(recipe);
157
+ },
158
+ submitTx: async (tx) => {
159
+ return facade.submitTransaction(tx);
160
+ },
161
+ };
162
+ const levelDbDir = join(homedir(), '.moth', 'level-db', network.id, encPublicKey.slice(0, 16));
163
+ const providers = {
164
+ zkConfigProvider: zkConfigProvider,
165
+ proofProvider: proofProvider,
166
+ walletProvider: walletProvider,
167
+ midnightProvider: walletProvider,
168
+ publicDataProvider: publicDataProvider,
169
+ privateStateProvider: levelPrivateStateProvider({
170
+ midnightDbName: levelDbDir,
171
+ privateStateStoreName: contractName + '-state',
172
+ privateStoragePasswordProvider: () => unshieldedAddr,
173
+ accountId: unshieldedAddr,
174
+ }),
175
+ };
176
+ // Normalize user-supplied args into a positional argument array, matching the
177
+ // convention used by `deploy` (see toPositionalArgs):
178
+ // - a JSON array is spread into positional circuit arguments
179
+ // - a single object/scalar becomes one argument
180
+ // - the "no args" sentinels that both the CLI and daemon pass when the user
181
+ // supplied nothing ({} / undefined) collapse to [], and an explicit empty
182
+ // array [] stays empty — so circuits like `issue_credential(context)` that
183
+ // take no user args aren't sent a spurious argument ("expected 1 argument,
184
+ // received 2").
185
+ // findDeployedContract populates private state at `privateStateId` from
186
+ // `initialPrivateState` BEFORE returning a callTx handle. The inner
187
+ // submitCallTx (invoked when we call deployed.callTx[circuit]) then
188
+ // finds the state and proceeds normally.
189
+ const deployed = await findDeployedContract(providers, {
190
+ contractAddress,
191
+ compiledContract,
192
+ privateStateId: contractName + 'State',
193
+ initialPrivateState: {},
194
+ });
195
+ const callArgs = toPositionalArgs(args);
196
+ let result;
197
+ try {
198
+ result = await deployed.callTx[circuitName](...callArgs);
199
+ }
200
+ catch (err) {
201
+ // Effect-TS / midnight-js wraps the real cause inside several layers.
202
+ // Walk and log them so wallet errors surface in moth's JSON output.
203
+ let cur = err;
204
+ let depth = 0;
205
+ const chain = [];
206
+ while (cur && depth < 8) {
207
+ const tag = cur._tag ?? cur.name ?? cur.constructor?.name ?? 'Error';
208
+ chain.push(`[${depth}] ${tag}: ${cur.message ?? String(cur)}`);
209
+ cur = cur.cause ?? cur.failure;
210
+ depth++;
211
+ }
212
+ process.stderr.write('Circuit error chain:\n' + chain.join('\n') + '\n');
213
+ throw err;
214
+ }
215
+ return {
216
+ hash: result?.public?.txId ?? '',
217
+ status: 'SUCCESS',
218
+ blockHash: result?.public?.blockHash ?? null,
219
+ blockHeight: result?.public?.blockHeight ?? null,
220
+ contractAddress,
221
+ fees: null,
222
+ };
223
+ }
224
+ /** Sign unshielded transaction intents (same as deploy.ts / mn-tui) */
225
+ function signTransactionIntents(tx, signFn, proofMarker) {
226
+ if (!tx.intents || tx.intents.size === 0)
227
+ return;
228
+ for (const segment of tx.intents.keys()) {
229
+ const intent = tx.intents.get(segment);
230
+ if (!intent)
231
+ continue;
232
+ const cloned = ledger.Intent.deserialize('signature', proofMarker, 'pre-binding', intent.serialize());
233
+ const signature = signFn(cloned.signatureData(segment));
234
+ if (cloned.fallibleUnshieldedOffer) {
235
+ const sigs = cloned.fallibleUnshieldedOffer.inputs.map((_, i) => cloned.fallibleUnshieldedOffer.signatures.at(i) ?? signature);
236
+ cloned.fallibleUnshieldedOffer = cloned.fallibleUnshieldedOffer.addSignatures(sigs);
237
+ }
238
+ if (cloned.guaranteedUnshieldedOffer) {
239
+ const sigs = cloned.guaranteedUnshieldedOffer.inputs.map((_, i) => cloned.guaranteedUnshieldedOffer.signatures.at(i) ?? signature);
240
+ cloned.guaranteedUnshieldedOffer = cloned.guaranteedUnshieldedOffer.addSignatures(sigs);
241
+ }
242
+ tx.intents.set(segment, cloned);
243
+ }
244
+ }
245
+ //# sourceMappingURL=call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/contract/call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { TransactionResult } from '../types/transaction.js';
2
+ import { type NetworkConfig } from '../types/network.js';
3
+ import type { ContractArtifact } from './artifact-loader.js';
4
+ import type { SyncedWallet } from '../sync/wallet-sync.js';
5
+ import type { WalletKeys } from '../sync/operations.js';
6
+ export interface DeployOptions {
7
+ artifact: ContractArtifact;
8
+ /** Pre-derived typed key bundle. Preferred over `seedHex` when
9
+ * available — the daemon path passes this so the raw seed never
10
+ * has to enter the contract module. See
11
+ * docs/spec/wallet-service/05-key-management.md D-KM-3. */
12
+ walletKeys?: WalletKeys;
13
+ /** BIP-39 hex seed. Required only when `walletKeys` is not supplied. */
14
+ seedHex?: string;
15
+ network: NetworkConfig;
16
+ /** A synced wallet facade — required for balancing transactions */
17
+ syncedWallet?: SyncedWallet;
18
+ witnessPath?: string;
19
+ /** Project directory containing node_modules with matching SDK versions */
20
+ projectDir?: string;
21
+ timeoutMs?: number;
22
+ onProgress?: (stage: string) => void;
23
+ /**
24
+ * Positional constructor arguments, in the order defined by the compiled contract's
25
+ * generated `initialState(ctx, ...ctorArgs)`. Omit (or pass an empty array) for
26
+ * contracts with a no-argument constructor.
27
+ */
28
+ args?: unknown[];
29
+ /**
30
+ * The initial private state to run the contract constructor against. Defaults to `{}`
31
+ * to preserve prior behavior for contracts with no meaningful private state.
32
+ */
33
+ initialPrivateState?: unknown;
34
+ }
35
+ export declare function deployContract(options: DeployOptions): Promise<TransactionResult>;
36
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/contract/deploy.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAsB,KAAK,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;gEAG4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,mEAAmE;IACnE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAkFD,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgTvF"}