@unconfirmed/sui-effect 0.1.1 → 0.1.2

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 (58) hide show
  1. package/AGENTS.md +34 -11
  2. package/CHANGELOG.md +46 -0
  3. package/LLMS.md +953 -301
  4. package/README.md +171 -9
  5. package/dist/domain/bcs.d.ts.map +1 -1
  6. package/dist/domain/bcs.js +7 -0
  7. package/dist/domain/bcs.js.map +1 -1
  8. package/dist/domain/errors.d.ts +101 -5
  9. package/dist/domain/errors.d.ts.map +1 -1
  10. package/dist/domain/errors.js +158 -8
  11. package/dist/domain/errors.js.map +1 -1
  12. package/dist/domain/executed.d.ts +69 -0
  13. package/dist/domain/executed.d.ts.map +1 -1
  14. package/dist/domain/executed.js +196 -5
  15. package/dist/domain/executed.js.map +1 -1
  16. package/dist/domain/schemas.d.ts +27 -1
  17. package/dist/domain/schemas.d.ts.map +1 -1
  18. package/dist/domain/schemas.js +20 -2
  19. package/dist/domain/schemas.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/script.d.ts +1 -1
  25. package/dist/script.d.ts.map +1 -1
  26. package/dist/script.js +1 -1
  27. package/dist/script.js.map +1 -1
  28. package/dist/services/Script.d.ts +42 -0
  29. package/dist/services/Script.d.ts.map +1 -1
  30. package/dist/services/Script.js +69 -2
  31. package/dist/services/Script.js.map +1 -1
  32. package/dist/services/Signer.d.ts +32 -7
  33. package/dist/services/Signer.d.ts.map +1 -1
  34. package/dist/services/Signer.js +69 -10
  35. package/dist/services/Signer.js.map +1 -1
  36. package/dist/services/Sui.d.ts +42 -1
  37. package/dist/services/Sui.d.ts.map +1 -1
  38. package/dist/services/Sui.js +18 -4
  39. package/dist/services/Sui.js.map +1 -1
  40. package/dist/services/SuiCoreFake.d.ts +47 -4
  41. package/dist/services/SuiCoreFake.d.ts.map +1 -1
  42. package/dist/services/SuiCoreFake.js +193 -22
  43. package/dist/services/SuiCoreFake.js.map +1 -1
  44. package/dist/services/Tx.d.ts +627 -11
  45. package/dist/services/Tx.d.ts.map +1 -1
  46. package/dist/services/Tx.js +187 -8
  47. package/dist/services/Tx.js.map +1 -1
  48. package/dist/testing.d.ts +1 -0
  49. package/dist/testing.d.ts.map +1 -1
  50. package/dist/testing.js +9 -0
  51. package/dist/testing.js.map +1 -1
  52. package/dist/tx.d.ts +1 -1
  53. package/dist/tx.d.ts.map +1 -1
  54. package/dist/tx.js +1 -1
  55. package/dist/tx.js.map +1 -1
  56. package/docs/extensions.md +533 -8
  57. package/examples/extension-template/src/Escrow.ts +1 -1
  58. package/package.json +1 -1
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import { Config, Context, Effect, Exit, Layer } from "effect";
17
17
  import type { NetworkMismatch, TransportError } from "../domain/errors.ts";
18
+ import type { JournalService } from "./Journal.ts";
18
19
  import type { Signer } from "./Signer.ts";
19
20
  import type { SuiService } from "./Sui.ts";
20
21
  import { Sui } from "./Sui.ts";
@@ -111,7 +112,48 @@ export declare class Script extends Script_base {
111
112
  static readonly exitCode: <A, E>(exit: Exit.Exit<A, E>, options?: ExitCodeOptions) => number;
112
113
  /** See {@link run}. */
113
114
  static readonly run: <A, E>(effect: Effect.Effect<A, E, Script | Sui | SuiCore>, options?: ScriptRunOptions) => Promise<number>;
115
+ /** See {@link report}. */
116
+ static readonly report: <A, E>(exit: Exit.Exit<A, E>, options?: ReportOptions) => Promise<number>;
114
117
  }
118
+ /** What {@link report} needs beyond the `Exit`. */
119
+ export interface ReportOptions {
120
+ /** Where the lines go, one at a time. Defaults to `process.stderr`. */
121
+ readonly stderr?: (line: string) => void;
122
+ /**
123
+ * The journal the program ran with, for the unresolved entries.
124
+ *
125
+ * A program with its own `ManagedRuntime` has to hand it over — reading the
126
+ * bare `Journal` reference here would look in the process-wide in-memory
127
+ * default and find nothing, which is precisely wrong for the program that
128
+ * provided a durable one. Left out, the default reference is read, which is
129
+ * right for a program that never provided a journal at all.
130
+ */
131
+ readonly journal?: JournalService;
132
+ }
133
+ /**
134
+ * Prints what {@link run} prints, and answers the exit code, for a program that
135
+ * owns its own process.
136
+ *
137
+ * `Script.run` is a whole entrypoint: it builds the layer, forks the root
138
+ * fiber, installs signal handlers and exits. A CLI with its own argv parser and
139
+ * twenty subcommands has all of that already and still wants the two things
140
+ * `run` does at the end — one diagnostic line per failure (with the bytes of a
141
+ * `SubmissionUnknown`), and every unresolved journal entry on a non-zero exit —
142
+ * plus the code itself. That is this: hand it the `Exit` of whatever you ran,
143
+ * get the lines on stderr and the number back, and call `process.exitCode = …`
144
+ * yourself rather than `process.exit`, so buffered output still flushes.
145
+ *
146
+ * Never fails.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * const exit = await runtime.runPromiseExit(command())
151
+ * process.exitCode = await Script.report(exit, { journal })
152
+ * ```
153
+ *
154
+ * @since 0.1.2
155
+ */
156
+ export declare const report: <A, E>(exit: Exit.Exit<A, E>, options?: ReportOptions) => Promise<number>;
115
157
  /** What {@link exitCode} needs to know beyond the `Exit` itself. */
116
158
  export interface ExitCodeOptions {
117
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../src/services/Script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../src/services/Script.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,9 @@
13
13
  *
14
14
  * @since 0.1.0
15
15
  */
16
- import { Cause, Config, ConfigProvider, Context, Effect, Exit, Fiber, Layer, Logger } from "effect";
16
+ import { Cause, Config, ConfigProvider, Context, Effect, Exit, Fiber, Layer, Logger, Result, Schema } from "effect";
17
17
  import { digestOf, SuiError as SuiErrorHelpers } from "../domain/errors.js";
18
+ import { JournalEntry } from "../domain/journal-entry.js";
18
19
  import { Journal } from "./Journal.js";
19
20
  import { fromConfig } from "./Signer.js";
20
21
  import { Sui } from "./Sui.js";
@@ -141,7 +142,59 @@ export class Script extends Context.Service()("@unconfirmed/sui-effect/Script")
141
142
  static exitCode = (exit, options) => exitCode(exit, options);
142
143
  /** See {@link run}. */
143
144
  static run = (effect, options) => run(effect, options);
145
+ /** See {@link report}. */
146
+ static report = (exit, options) => report(exit, options);
144
147
  }
148
+ /**
149
+ * Prints what {@link run} prints, and answers the exit code, for a program that
150
+ * owns its own process.
151
+ *
152
+ * `Script.run` is a whole entrypoint: it builds the layer, forks the root
153
+ * fiber, installs signal handlers and exits. A CLI with its own argv parser and
154
+ * twenty subcommands has all of that already and still wants the two things
155
+ * `run` does at the end — one diagnostic line per failure (with the bytes of a
156
+ * `SubmissionUnknown`), and every unresolved journal entry on a non-zero exit —
157
+ * plus the code itself. That is this: hand it the `Exit` of whatever you ran,
158
+ * get the lines on stderr and the number back, and call `process.exitCode = …`
159
+ * yourself rather than `process.exit`, so buffered output still flushes.
160
+ *
161
+ * Never fails.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * const exit = await runtime.runPromiseExit(command())
166
+ * process.exitCode = await Script.report(exit, { journal })
167
+ * ```
168
+ *
169
+ * @since 0.1.2
170
+ */
171
+ export const report = async (exit, options) => {
172
+ const write = options?.stderr ?? ((line) => {
173
+ process.stderr.write(`${line}\n`);
174
+ });
175
+ if (Exit.isSuccess(exit))
176
+ return exitCode(exit);
177
+ if (Cause.hasDies(exit.cause)) {
178
+ write(Cause.pretty(exit.cause));
179
+ }
180
+ else {
181
+ const failure = Cause.findErrorOption(exit.cause);
182
+ if (failure._tag === "Some") {
183
+ for (const line of describeFailure(failure.value))
184
+ write(line);
185
+ }
186
+ else if (Cause.hasInterrupts(exit.cause)) {
187
+ write("interrupted");
188
+ }
189
+ else {
190
+ write(Cause.pretty(exit.cause));
191
+ }
192
+ }
193
+ const unresolved = await readUnresolved(options?.journal);
194
+ for (const line of unresolvedLines(unresolved))
195
+ write(line);
196
+ return exitCode(exit, { unresolved: unresolved.length });
197
+ };
145
198
  /** Exit codes, on the axis a wrapper script acts on. */
146
199
  const EXIT = {
147
200
  success: 0,
@@ -320,7 +373,18 @@ const toBase64 = (bytes) => {
320
373
  const stderrLogger = (write) => Logger.map(Logger.formatLogFmt, (line) => {
321
374
  write(line);
322
375
  });
323
- /** The lines describing what this process left on the wire, if anything. */
376
+ const encodeJournalEntry = Schema.encodeUnknownResult(JournalEntry);
377
+ /**
378
+ * The lines describing what this process left on the wire, if anything.
379
+ *
380
+ * Three lines per entry: the digest and tag for a human, the raw base64 bytes
381
+ * for someone about to resubmit by hand, and the **whole entry encoded through
382
+ * the `JournalEntry` schema** — which is the same JSON a durable journal
383
+ * stores, bytes base64 and timestamps included. That last line is what lets a
384
+ * wrapper pipe stderr into a file and hand it back to a recovery process
385
+ * verbatim, instead of scraping two lines and losing `attempts`, `lastError`
386
+ * and the expiration the bytes carry.
387
+ */
324
388
  const unresolvedLines = (entries) => {
325
389
  if (entries.length === 0)
326
390
  return [];
@@ -332,6 +396,9 @@ const unresolvedLines = (entries) => {
332
396
  if (entry._tag === "Signed" || entry._tag === "Unknown") {
333
397
  lines.push(`bytes: ${toBase64(entry.signed.bytes)}`);
334
398
  }
399
+ const encoded = encodeJournalEntry(entry);
400
+ if (Result.isSuccess(encoded))
401
+ lines.push(`entry: ${JSON.stringify(encoded.success)}`);
335
402
  }
336
403
  return lines;
337
404
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Script.js","sourceRoot":"","sources":["../../src/services/Script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Script.js","sourceRoot":"","sources":["../../src/services/Script.ts"],"names":[],"mappings":"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"}
@@ -50,12 +50,29 @@ export interface Signer {
50
50
  * needs a keypair, and the `Signer` this returns exposes no secret material
51
51
  * either.
52
52
  *
53
+ * **`toSuiAddress()` and `getKeyScheme()` are read here, synchronously**, and
54
+ * the address and scheme of the returned `Signer` are whatever they answered at
55
+ * this moment: a credential that changes accounts later is a different
56
+ * `Signer`, built again. A test double therefore needs both of those methods,
57
+ * not only `signTransaction` — a double without `getKeyScheme` used to produce
58
+ * `scheme: undefined` and nothing complained until a validator did.
59
+ *
60
+ * **Clear-signing inputs are the SDK signer's own concern.** The Ledger signer
61
+ * takes `signTransaction(bytes, bcsObjects?, resolution?)` and resolves those
62
+ * extra arguments through the client it was constructed with; this passes only
63
+ * the bytes, which is the whole of the base `Signer` contract. A device that
64
+ * needs more than the bytes gets it from its own client, or from
65
+ * {@link remote}.
66
+ *
53
67
  * For a credential that is not an SDK `Signer` at all — a remote service, a
54
68
  * hardware device behind your own protocol — use {@link remote}, which takes
55
69
  * Effects and the address to sign as.
56
70
  *
57
- * Never fails: a bad address or signature surfaces as a `SigningError` from the
58
- * member that produced it, not from construction.
71
+ * **Throws** a `TypeError` naming the missing member when the argument is not
72
+ * an SDK signer — that is a wiring mistake in the caller, not a runtime
73
+ * failure a program recovers from. Otherwise never fails: a bad address or
74
+ * signature surfaces as a `SigningError` from the member that produced it, not
75
+ * from construction.
59
76
  */
60
77
  export declare const fromSdkSigner: (keypair: SdkSigner) => Signer;
61
78
  /**
@@ -65,17 +82,25 @@ export declare const fromSdkSigner: (keypair: SdkSigner) => Signer;
65
82
  */
66
83
  export declare const fromKeypair: (keypair: Keypair) => Signer;
67
84
  /**
68
- * Reads a Bech32 `suiprivkey1…` secret key from configuration and builds the
69
- * signer for whichever of the three schemes its flag names.
85
+ * Reads a secret key from configuration and builds its signer.
86
+ *
87
+ * Two spellings, told apart by the text itself:
88
+ *
89
+ * - a **Bech32 `suiprivkey1…`**, whose flag names one of the three schemes;
90
+ * - a **32-byte hex seed** (64 hex characters, `0x` optional), which carries no
91
+ * scheme and is read as **Ed25519** — the default every Sui tool uses for a
92
+ * raw seed. This is what a secret manager or another language's SDK hands
93
+ * over, and reading it here is what keeps `fromHex` and the decoded bytes out
94
+ * of application code.
70
95
  *
71
96
  * The key is read with `Config.redacted`, and the decoded bytes never leave
72
97
  * this function. Neither does anything derived from them: the failure carries
73
98
  * one fixed sentence and no `cause`, because the decoder's own message quotes
74
99
  * the input it rejected.
75
100
  *
76
- * Fails with: `ConfigError` when the variable is missing, is not a Bech32 Sui
77
- * private key, or names a scheme that has no keypair class (`MultiSig`,
78
- * `ZkLogin`, `Passkey` — use {@link remote} for those).
101
+ * Fails with: `ConfigError` when the variable is missing, is neither spelling,
102
+ * or names a scheme that has no keypair class (`MultiSig`, `ZkLogin`,
103
+ * `Passkey` — use {@link remote} for those).
79
104
  */
80
105
  export declare const fromConfig: (name?: string) => Effect.Effect<Signer, Config.ConfigError>;
81
106
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Signer.d.ts","sourceRoot":"","sources":["../../src/services/Signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAK5E,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAoB,MAAM,QAAQ,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE5D,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAExG;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACvF;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;CAC5F;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,KAAG,MAuBlD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,MAAgC,CAAA;AA8B/E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,GACrB,aAAwB,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAoBxC,CAAA;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAE3C,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC1F;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,YAAY,KAAG,MAa5C,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM;sCA/JoB,SAAS,KAAG,MAAM;oCA8BpB,OAAO,KAAG,MAAM;4CA6ClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;;8BAgEb,YAAY,KAAG,MAAM;CA0B1C,CAAA"}
1
+ {"version":3,"file":"Signer.d.ts","sourceRoot":"","sources":["../../src/services/Signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAM5E,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAoB,MAAM,QAAQ,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE5D,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAExG;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACvF;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;CAC5F;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,KAAG,MAmClD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,KAAG,MAAgC,CAAA;AAoD/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,GACrB,aAAwB,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAmBxC,CAAA;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAE3C,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC1F;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,YAAY,KAAG,MAa5C,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM;sCAxMoB,SAAS,KAAG,MAAM;oCA0CpB,OAAO,KAAG,MAAM;4CA2ElD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;;8BA+Db,YAAY,KAAG,MAAM;CA0B1C,CAAA"}
@@ -1,12 +1,19 @@
1
- import { decodeSuiPrivateKey } from "@mysten/sui/cryptography";
1
+ import { decodeSuiPrivateKey, SUI_PRIVATE_KEY_PREFIX } from "@mysten/sui/cryptography";
2
2
  import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
3
3
  import { Secp256k1Keypair } from "@mysten/sui/keypairs/secp256k1";
4
4
  import { Secp256r1Keypair } from "@mysten/sui/keypairs/secp256r1";
5
+ import { fromHex } from "@mysten/sui/utils";
5
6
  import { Config, ConfigProvider, Effect, Redacted, Schema } from "effect";
6
7
  import { SigningError } from "../domain/errors.js";
7
8
  import { Signature, SuiAddress } from "../domain/schemas.js";
8
9
  const decodeSignature = Schema.decodeUnknownEffect(Signature);
9
10
  const signatureOf = (signature) => decodeSignature(signature).pipe(Effect.mapError((issue) => new SigningError({ cause: `the signer returned a signature this version cannot read: ${issue.message}` })));
11
+ /** The members {@link fromSdkSigner} reads, and what it does with each. */
12
+ const SDK_SIGNER_MEMBERS = [
13
+ "toSuiAddress",
14
+ "getKeyScheme",
15
+ "signTransaction"
16
+ ];
10
17
  /**
11
18
  * Wraps any `@mysten/sui/cryptography` `Signer`.
12
19
  *
@@ -17,14 +24,37 @@ const signatureOf = (signature) => decodeSignature(signature).pipe(Effect.mapErr
17
24
  * needs a keypair, and the `Signer` this returns exposes no secret material
18
25
  * either.
19
26
  *
27
+ * **`toSuiAddress()` and `getKeyScheme()` are read here, synchronously**, and
28
+ * the address and scheme of the returned `Signer` are whatever they answered at
29
+ * this moment: a credential that changes accounts later is a different
30
+ * `Signer`, built again. A test double therefore needs both of those methods,
31
+ * not only `signTransaction` — a double without `getKeyScheme` used to produce
32
+ * `scheme: undefined` and nothing complained until a validator did.
33
+ *
34
+ * **Clear-signing inputs are the SDK signer's own concern.** The Ledger signer
35
+ * takes `signTransaction(bytes, bcsObjects?, resolution?)` and resolves those
36
+ * extra arguments through the client it was constructed with; this passes only
37
+ * the bytes, which is the whole of the base `Signer` contract. A device that
38
+ * needs more than the bytes gets it from its own client, or from
39
+ * {@link remote}.
40
+ *
20
41
  * For a credential that is not an SDK `Signer` at all — a remote service, a
21
42
  * hardware device behind your own protocol — use {@link remote}, which takes
22
43
  * Effects and the address to sign as.
23
44
  *
24
- * Never fails: a bad address or signature surfaces as a `SigningError` from the
25
- * member that produced it, not from construction.
45
+ * **Throws** a `TypeError` naming the missing member when the argument is not
46
+ * an SDK signer — that is a wiring mistake in the caller, not a runtime
47
+ * failure a program recovers from. Otherwise never fails: a bad address or
48
+ * signature surfaces as a `SigningError` from the member that produced it, not
49
+ * from construction.
26
50
  */
27
51
  export const fromSdkSigner = (keypair) => {
52
+ const missing = SDK_SIGNER_MEMBERS.filter((member) => typeof keypair?.[member] !== "function");
53
+ if (missing.length > 0) {
54
+ throw new TypeError(`Signer.fromSdkSigner: this value is not a @mysten/sui Signer — it has no ${missing.join(", no ")}. An SDK signer answers toSuiAddress(), getKeyScheme() and signTransaction(bytes);` +
55
+ " for a test double or a credential that is not an SDK signer, use Signer.remote({" +
56
+ " address, scheme, signTransaction }).");
57
+ }
28
58
  const address = keypair.toSuiAddress();
29
59
  return {
30
60
  // `toSuiAddress` returns the normalized form the SDK derived from the
@@ -79,24 +109,53 @@ const keypairOf = (parsed) => {
79
109
  * a `cause` on the error would serialize through `SuiError.toJson` too.
80
110
  */
81
111
  const KEY_ERROR = "is not a Bech32 Sui private key (scheme or checksum), " +
112
+ "is not a 32-byte hex seed (64 hex characters, 0x optional), " +
82
113
  "or names a scheme with no keypair class (MultiSig, ZkLogin, Passkey — use Signer.remote for those)";
114
+ /** A raw 32-byte secret as hexadecimal, with or without the `0x`. */
115
+ const HEX_SEED = /^(?:0x)?[0-9a-fA-F]{64}$/;
83
116
  /**
84
- * Reads a Bech32 `suiprivkey1…` secret key from configuration and builds the
85
- * signer for whichever of the three schemes its flag names.
117
+ * The keypair a configured secret names: a Bech32 `suiprivkey1…` for whichever
118
+ * of the three schemes its flag carries, or a **32-byte hex seed**, which has
119
+ * no scheme flag and is therefore read as Ed25519.
120
+ *
121
+ * Hex is here because that is how a raw seed comes out of a secret manager, a
122
+ * `.env` written by hand, or another language's SDK, and the alternative every
123
+ * caller reached for was `Ed25519Keypair.fromSecretKey(fromHex(...))` in
124
+ * application code — which is the one place the decoded bytes should never
125
+ * appear. `undefined` when the text is neither.
126
+ */
127
+ const keypairFromSecret = (value) => {
128
+ const text = value.trim();
129
+ if (text.startsWith(SUI_PRIVATE_KEY_PREFIX))
130
+ return keypairOf(decodeSuiPrivateKey(text));
131
+ if (HEX_SEED.test(text))
132
+ return Ed25519Keypair.fromSecretKey(fromHex(text));
133
+ return undefined;
134
+ };
135
+ /**
136
+ * Reads a secret key from configuration and builds its signer.
137
+ *
138
+ * Two spellings, told apart by the text itself:
139
+ *
140
+ * - a **Bech32 `suiprivkey1…`**, whose flag names one of the three schemes;
141
+ * - a **32-byte hex seed** (64 hex characters, `0x` optional), which carries no
142
+ * scheme and is read as **Ed25519** — the default every Sui tool uses for a
143
+ * raw seed. This is what a secret manager or another language's SDK hands
144
+ * over, and reading it here is what keeps `fromHex` and the decoded bytes out
145
+ * of application code.
86
146
  *
87
147
  * The key is read with `Config.redacted`, and the decoded bytes never leave
88
148
  * this function. Neither does anything derived from them: the failure carries
89
149
  * one fixed sentence and no `cause`, because the decoder's own message quotes
90
150
  * the input it rejected.
91
151
  *
92
- * Fails with: `ConfigError` when the variable is missing, is not a Bech32 Sui
93
- * private key, or names a scheme that has no keypair class (`MultiSig`,
94
- * `ZkLogin`, `Passkey` — use {@link remote} for those).
152
+ * Fails with: `ConfigError` when the variable is missing, is neither spelling,
153
+ * or names a scheme that has no keypair class (`MultiSig`, `ZkLogin`,
154
+ * `Passkey` — use {@link remote} for those).
95
155
  */
96
156
  export const fromConfig = (name = "SUI_PRIVATE_KEY") => Config.redacted(name).pipe(Effect.flatMap((redacted) => Effect.try({
97
157
  try: () => {
98
- const parsed = decodeSuiPrivateKey(Redacted.value(redacted));
99
- const keypair = keypairOf(parsed);
158
+ const keypair = keypairFromSecret(Redacted.value(redacted));
100
159
  if (keypair === undefined) {
101
160
  throw new Error("unsupported key scheme");
102
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../../src/services/Signer.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA+B5D,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAE7D,MAAM,WAAW,GAAG,CAAC,SAAiB,EAA0C,EAAE,CAChF,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,6DAA6D,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CACtI,CAAA;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAU,EAAE;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAA;IACtC,OAAO;QACL,sEAAsE;QACtE,sEAAsE;QACtE,sBAAsB;QACtB,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;QAC9B,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAC,KAAiB;YAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACtC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;gBACzC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;aAC9C,CAAC,CAAA;YACF,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC,CAAC;QACF,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAC,KAAiB;YACtF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACtC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;aAC9C,CAAC,CAAA;YACF,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC,CAAC;KACH,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AAE/E,6EAA6E;AAC7E,MAAM,SAAS,GAAG,CAAC,MAAiD,EAAuB,EAAE;IAC3F,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACvD,KAAK,WAAW;YACd,OAAO,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACzD,KAAK,WAAW;YACd,OAAO,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACzD;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,wDAAwD;IACxE,oGAAoG,CAAA;AAEtG;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAI,GAAG,iBAAiB,EACmB,EAAE,CAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE;QACR,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IACD,sEAAsE;IACtE,2BAA2B;IAC3B,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,MAAM,CAAC,WAAW,CACpB,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,SAAS,EAAE,EAAE,CAAC,CACpE;CACJ,CAAC,CACH,CACF,CAAA;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAA0B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC,CAClC,CAAA;AAkBD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAU,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAAC,KAAiB;QACrF,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAAC,KAAiB;QAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAA;QACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAA;QAC/F,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC;CACH,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,aAAa;IACb,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;CACE,CAAA"}
1
+ {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../../src/services/Signer.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import type { BcsType } from "@mysten/bcs";
12
12
  import type { SuiClientTypes } from "@mysten/sui/client";
13
13
  import { Transaction } from "@mysten/sui/transactions";
14
- import { Config, Context, DateTime, Effect, Layer, Option, Result, Schema, Stream } from "effect";
14
+ import { Config, Context, DateTime, Effect, Layer, Option, Result, type Schedule, Schema, Stream } from "effect";
15
15
  import { BuildError, DecodeError, ExecutionFailed, NetworkMismatch, ObjectDeleted, ObjectNotFound, ObjectUnavailable, SimulationFailed, TransactionNotFound, TransportError } from "../domain/errors.ts";
16
16
  import { Executed } from "../domain/executed.ts";
17
17
  import { Balance, CoinType, Digest, DynamicField, DynamicFieldEntry, DynamicFieldName, ObjectId, Simulation, StructTag, SuiAddress, type SuiObject } from "../domain/schemas.ts";
@@ -126,6 +126,27 @@ export interface SuiService {
126
126
  *
127
127
  * Fails with: `ObjectNotFound`, `ObjectDeleted`, `ObjectUnavailable`,
128
128
  * `DecodeError`, `TransportError`.
129
+ *
130
+ * @since 0.1.2
131
+ */
132
+ readonly getObjectsStrict: {
133
+ <S>(ids: ReadonlyArray<ObjectId>, opts: {
134
+ readonly schema: Schema.Codec<S, Uint8Array>;
135
+ readonly expectedType?: string;
136
+ }): Effect.Effect<ReadonlyArray<SuiObject<S>>, BatchItemError | TransportError>;
137
+ (ids: ReadonlyArray<ObjectId>, opts?: {
138
+ readonly schema?: undefined;
139
+ readonly expectedType?: string;
140
+ }): Effect.Effect<ReadonlyArray<SuiObject<Uint8Array>>, BatchItemError | TransportError>;
141
+ };
142
+ /**
143
+ * {@link getObjectsStrict} under its 0.1.0 name.
144
+ *
145
+ * `getObjectsOrFail` reads, out of context, as though failing were the point
146
+ * — `getObjects(ids).orFail()` — rather than as the strictness of the read.
147
+ * The two are the same function.
148
+ *
149
+ * @deprecated Use `getObjectsStrict`. This alias stays for 0.1.x.
129
150
  */
130
151
  readonly getObjectsOrFail: {
131
152
  <S>(ids: ReadonlyArray<ObjectId>, opts: {
@@ -225,6 +246,26 @@ export interface SuiLayerOptions {
225
246
  * network are regenerated, so set this when the program must pin one.
226
247
  */
227
248
  readonly chainId?: string;
249
+ /**
250
+ * How to retry the one `getChainIdentifier` this layer makes, when it fails
251
+ * with a **retryable** `TransportError`.
252
+ *
253
+ * It matters more than one round trip usually would, because of what holds
254
+ * the result: a `ManagedRuntime` — which is how a browser app, a Worker or a
255
+ * Durable Object keeps one runtime per isolate — **memoizes the layer build,
256
+ * failure included, for its whole lifetime**. One unlucky request at boot and
257
+ * every later use of that runtime fails with the same stale
258
+ * `TransportError`, until something disposes it. A short schedule here is the
259
+ * cheap half of the cure; disposing the runtime when its build failed is the
260
+ * other half (see the guide's "Application consumers" section), and
261
+ * `layerNoDepsPinned` avoids the read altogether when the chain id is already
262
+ * known.
263
+ *
264
+ * Unset, the read is made once, as it always was.
265
+ *
266
+ * @since 0.1.2
267
+ */
268
+ readonly retry?: Schedule.Schedule<unknown, TransportError>;
228
269
  }
229
270
  declare const Sui_base: Context.ServiceClass<Sui, "@unconfirmed/sui-effect/Sui", SuiService>;
230
271
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Sui.d.ts","sourceRoot":"","sources":["../../src/services/Sui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sui.d.ts","sourceRoot":"","sources":["../../src/services/Sui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EACL,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,MAAM,EAEN,MAAM,EACN,KAAK,QAAQ,EACb,MAAM,EAEN,MAAM,EACP,MAAM,QAAQ,CAAA;AAEf,OAAO,EACL,UAAU,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAmB,QAAQ,EAAyB,MAAM,uBAAuB,CAAA;AACxF,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAKhB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,uFAAuF;AACvF,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAA;AAE9C,kDAAkD;AAClD,eAAO,MAAM,cAAc;;CAA6B,CAAA;AAExD,iDAAiD;AACjD,eAAO,MAAM,gBAAgB;;;;;;CAAwD,CAAA;AAErF,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,cAAc,CAAA;AAElB,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,WAAW,CAAA;AAuB7F,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAA;IAExC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAEjC,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAE/D;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,EAAE;QAClB,CAAC,CAAC,EACA,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAC9C,CACE,EAAE,EAAE,QAAQ,EACZ,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAA;KACxD,CAAA;IAED;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE;QACxB,CAAC,CAAC,EACA,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrF,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAC3B,iBAAiB,GAAG,WAAW,GAAG,cAAc,CACjD,CAAA;QACD,CACE,EAAE,EAAE,QAAQ,EACZ,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrE,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EACpC,iBAAiB,GAAG,WAAW,GAAG,cAAc,CACjD,CAAA;KACF,CAAA;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE;QACnB,CAAC,CAAC,EACA,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;QAC5F,CACE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrE,MAAM,CAAC,MAAM,CACd,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,EACnE,cAAc,CACf,CAAA;KACF,CAAA;IAED;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,gBAAgB,EAAE;QACzB,CAAC,CAAC,EACA,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,CAAA;QAC9E,CACE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,CAAA;KACxF,CAAA;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,EAAE;QACzB,CAAC,CAAC,EACA,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,CAAA;QAC9E,CACE,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC5B,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;YAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,GACrE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,CAAA;KACxF,CAAA;IAED,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,QAAQ,KAChB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,gBAAgB,KACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IAE/D;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,mBAAmB,GAAG,cAAc,CAAC,CAAA;IAEpF;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,EACxC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;KAAE,KACpC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,GAAG,cAAc,CAAC,CAAA;IAE9E;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACnD,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;KAC7B,KACE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC,CAAA;IAEnF,6EAA6E;IAC7E,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,KACjC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAA;IAEzD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,MAAM,EAAE,QAAQ,KACb,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;IAErD;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,UAAU,KAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACzE;AAgeD,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;CAC5D;;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,GAAI,SAAQ,QAAiE;IACxF;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,eAAe,GAC7B,SAAS,eAAe,KACvB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,EAAE,OAAO,CAAC,CAwB3D;IAEH;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAWpF;IAEH;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,EAAE,OAAO,CAAC,CAC/D;IAEzB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,GACnB,SAAS,mBAAmB,GAAG,eAAe,KAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,CAAC,CACyB;IAE9E;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CACtC,GAAG,EACH,MAAM,CAAC,WAAW,GAAG,eAAe,GAAG,cAAc,CACtD,CAA2D;CAC7D"}
@@ -61,6 +61,7 @@ const makeSui = (core, chainId, locks) => {
61
61
  return yield* new DecodeError({
62
62
  objectId: envelope.objectId,
63
63
  expectedType: expected,
64
+ kind: "type",
64
65
  issue: `object ${envelope.objectId} has type ${envelope.type}`
65
66
  });
66
67
  }
@@ -158,7 +159,7 @@ const makeSui = (core, chainId, locks) => {
158
159
  }
159
160
  return results;
160
161
  });
161
- const getObjectsOrFail = Effect.fn("Sui.getObjectsOrFail")(function* (ids, opts) {
162
+ const getObjectsStrict = Effect.fn("Sui.getObjectsStrict")(function* (ids, opts) {
162
163
  const results = yield* getObjects(ids, opts);
163
164
  const objects = [];
164
165
  for (const result of results) {
@@ -246,12 +247,16 @@ const makeSui = (core, chainId, locks) => {
246
247
  const index = opts?.command ?? simulation.commandResults.length - 1;
247
248
  const command = simulation.commandResults[index];
248
249
  if (command === undefined) {
249
- return yield* new DecodeError({ issue: `the simulation has no command ${index}` });
250
+ return yield* new DecodeError({
251
+ kind: "shape",
252
+ issue: `the simulation has no command ${index}`
253
+ });
250
254
  }
251
255
  const position = opts?.result ?? 0;
252
256
  const value = command.returnValues[position];
253
257
  if (value === undefined) {
254
258
  return yield* new DecodeError({
259
+ kind: "shape",
255
260
  issue: `command ${index} has no return value ${position}`
256
261
  });
257
262
  }
@@ -295,6 +300,7 @@ const makeSui = (core, chainId, locks) => {
295
300
  .getObject({ objectId: SUI_CLOCK_OBJECT_ID, include: OBJECT_INCLUDE })
296
301
  .pipe(Effect.flatMap(({ object }) => decodeContent(clockCodec, object.content)), Effect.flatMap((clock) => Effect.fromOption(DateTime.make(Number(clock.timestamp_ms))).pipe(Effect.mapError(() => new DecodeError({
297
302
  expectedType: CLOCK_TYPE,
303
+ kind: "shape",
298
304
  issue: `the clock reported ${clock.timestamp_ms}, which is not a time`
299
305
  })))), Effect.catchTag(["ObjectNotFound", "ObjectDeleted", "ObjectUnavailable", "DecodeError"], (error) => Effect.fail(new TransportError({
300
306
  method: "chainTime",
@@ -309,7 +315,9 @@ const makeSui = (core, chainId, locks) => {
309
315
  getObject: getObject,
310
316
  getObjectOption: getObjectOption,
311
317
  getObjects: getObjects,
312
- getObjectsOrFail: getObjectsOrFail,
318
+ getObjectsStrict: getObjectsStrict,
319
+ // The same function under its 0.1.0 name, so a 0.1.1 extension compiles.
320
+ getObjectsOrFail: getObjectsStrict,
313
321
  getBalance,
314
322
  getDynamicFieldOption,
315
323
  getTransaction,
@@ -351,7 +359,13 @@ export class Sui extends Context.Service()("@unconfirmed/sui-effect/Sui") {
351
359
  */
352
360
  static layerNoDepsWith = (options) => Layer.effect(Sui, Effect.gen(function* () {
353
361
  const core = yield* SuiCore;
354
- const { chainIdentifier } = yield* core.getChainIdentifier();
362
+ const read = core.getChainIdentifier();
363
+ const { chainIdentifier } = yield* (options.retry === undefined
364
+ ? read
365
+ : read.pipe(Effect.retry({
366
+ schedule: options.retry,
367
+ while: (error) => error.retryable
368
+ })));
355
369
  const expected = options.chainId ?? KNOWN_CHAIN_IDS[core.network];
356
370
  if (expected !== undefined && expected !== chainIdentifier) {
357
371
  return yield* new NetworkMismatch({ expected, actual: chainIdentifier });