@prb/effect-solana 1.0.0-beta.3 → 1.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +48 -3
  2. package/dist/balance/index.js.map +1 -1
  3. package/dist/balance/service.d.ts +2 -2
  4. package/dist/balance/service.d.ts.map +1 -1
  5. package/dist/balance/service.js +3 -3
  6. package/dist/balance/service.js.map +1 -1
  7. package/dist/constants/index.js.map +1 -1
  8. package/dist/core/errors/account.js.map +1 -1
  9. package/dist/core/errors/index.js.map +1 -1
  10. package/dist/core/errors/predicates.js.map +1 -1
  11. package/dist/core/errors/rpc.js.map +1 -1
  12. package/dist/core/errors/transaction.js.map +1 -1
  13. package/dist/core/errors/wallet.js.map +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/internal/index.js.map +1 -1
  17. package/dist/internal/kit-effect.d.ts +2 -2
  18. package/dist/internal/kit-effect.d.ts.map +1 -1
  19. package/dist/internal/kit-effect.js +1 -1
  20. package/dist/internal/kit-effect.js.map +1 -1
  21. package/dist/pda/index.js.map +1 -1
  22. package/dist/pda/service.js +1 -1
  23. package/dist/pda/service.js.map +1 -1
  24. package/dist/pda/types.js.map +1 -1
  25. package/dist/presets/index.js.map +1 -1
  26. package/dist/presets/layers.d.ts +10 -10
  27. package/dist/presets/layers.d.ts.map +1 -1
  28. package/dist/presets/layers.js +8 -8
  29. package/dist/presets/layers.js.map +1 -1
  30. package/dist/program/index.d.ts +1 -0
  31. package/dist/program/index.d.ts.map +1 -1
  32. package/dist/program/index.js +1 -0
  33. package/dist/program/index.js.map +1 -1
  34. package/dist/program/internal/anchor-helpers.d.ts +20 -0
  35. package/dist/program/internal/anchor-helpers.d.ts.map +1 -0
  36. package/dist/program/internal/anchor-helpers.js +64 -0
  37. package/dist/program/internal/anchor-helpers.js.map +1 -0
  38. package/dist/program/reader.d.ts +19 -0
  39. package/dist/program/reader.d.ts.map +1 -0
  40. package/dist/program/reader.js +288 -0
  41. package/dist/program/reader.js.map +1 -0
  42. package/dist/program/service.d.ts +1 -1
  43. package/dist/program/service.d.ts.map +1 -1
  44. package/dist/program/service.js +18 -37
  45. package/dist/program/service.js.map +1 -1
  46. package/dist/program/types.d.ts +48 -13
  47. package/dist/program/types.d.ts.map +1 -1
  48. package/dist/program/types.js +27 -28
  49. package/dist/program/types.js.map +1 -1
  50. package/dist/react-hooks/index.js.map +1 -1
  51. package/dist/react-hooks/internal/error.js.map +1 -1
  52. package/dist/react-hooks/internal/is-dev.js.map +1 -1
  53. package/dist/react-hooks/internal/runtime.js.map +1 -1
  54. package/dist/react-hooks/internal/scoped-run.js.map +1 -1
  55. package/dist/react-hooks/internal/stable.js.map +1 -1
  56. package/dist/react-hooks/primitives/use-effect-memo-factory.js.map +1 -1
  57. package/dist/react-hooks/primitives/use-effect.js.map +1 -1
  58. package/dist/react-hooks/primitives/use-fork-effect.js.map +1 -1
  59. package/dist/react-hooks/primitives/use-stream.js.map +1 -1
  60. package/dist/react-hooks/primitives.js.map +1 -1
  61. package/dist/react-hooks/provider.js.map +1 -1
  62. package/dist/rpc/index.js.map +1 -1
  63. package/dist/rpc/service.d.ts +2 -2
  64. package/dist/rpc/service.d.ts.map +1 -1
  65. package/dist/rpc/service.js +1 -1
  66. package/dist/rpc/service.js.map +1 -1
  67. package/dist/signer/index.js.map +1 -1
  68. package/dist/signer/service.d.ts +1 -1
  69. package/dist/signer/service.d.ts.map +1 -1
  70. package/dist/signer/service.js +2 -2
  71. package/dist/signer/service.js.map +1 -1
  72. package/dist/telemetry/index.js.map +1 -1
  73. package/dist/telemetry/logger.js.map +1 -1
  74. package/dist/telemetry/tracer.d.ts +3 -0
  75. package/dist/telemetry/tracer.d.ts.map +1 -1
  76. package/dist/telemetry/tracer.js +3 -0
  77. package/dist/telemetry/tracer.js.map +1 -1
  78. package/dist/testing-kit/_fixtures/addresses.js.map +1 -1
  79. package/dist/testing-kit/helpers.js.map +1 -1
  80. package/dist/testing-kit/index.js.map +1 -1
  81. package/dist/testing-kit/mock-balance-service.d.ts +2 -2
  82. package/dist/testing-kit/mock-balance-service.d.ts.map +1 -1
  83. package/dist/testing-kit/mock-balance-service.js +1 -1
  84. package/dist/testing-kit/mock-balance-service.js.map +1 -1
  85. package/dist/testing-kit/mock-pda-service.d.ts +2 -2
  86. package/dist/testing-kit/mock-pda-service.d.ts.map +1 -1
  87. package/dist/testing-kit/mock-pda-service.js +1 -1
  88. package/dist/testing-kit/mock-pda-service.js.map +1 -1
  89. package/dist/testing-kit/mock-rpc-service.d.ts +3 -3
  90. package/dist/testing-kit/mock-rpc-service.d.ts.map +1 -1
  91. package/dist/testing-kit/mock-rpc-service.js +2 -2
  92. package/dist/testing-kit/mock-rpc-service.js.map +1 -1
  93. package/dist/testing-kit/mock-signer-service.d.ts +3 -3
  94. package/dist/testing-kit/mock-signer-service.d.ts.map +1 -1
  95. package/dist/testing-kit/mock-signer-service.js +2 -2
  96. package/dist/testing-kit/mock-signer-service.js.map +1 -1
  97. package/dist/testing-kit/mock-token-service.d.ts +3 -3
  98. package/dist/testing-kit/mock-token-service.d.ts.map +1 -1
  99. package/dist/testing-kit/mock-token-service.js +1 -1
  100. package/dist/testing-kit/mock-token-service.js.map +1 -1
  101. package/dist/testing-kit/mock-transaction-service.d.ts +7 -8
  102. package/dist/testing-kit/mock-transaction-service.d.ts.map +1 -1
  103. package/dist/testing-kit/mock-transaction-service.js +1 -1
  104. package/dist/testing-kit/mock-transaction-service.js.map +1 -1
  105. package/dist/testing-kit/test-layer.d.ts +11 -7
  106. package/dist/testing-kit/test-layer.d.ts.map +1 -1
  107. package/dist/testing-kit/test-layer.js +12 -5
  108. package/dist/testing-kit/test-layer.js.map +1 -1
  109. package/dist/token/index.js.map +1 -1
  110. package/dist/token/service.d.ts +2 -2
  111. package/dist/token/service.d.ts.map +1 -1
  112. package/dist/token/service.js +4 -4
  113. package/dist/token/service.js.map +1 -1
  114. package/dist/tx/index.js.map +1 -1
  115. package/dist/tx/service.d.ts +9 -10
  116. package/dist/tx/service.d.ts.map +1 -1
  117. package/dist/tx/service.js +4 -4
  118. package/dist/tx/service.js.map +1 -1
  119. package/dist/tx/types.d.ts +2 -0
  120. package/dist/tx/types.d.ts.map +1 -1
  121. package/dist/tx/types.js.map +1 -1
  122. package/dist/types/index.js.map +1 -1
  123. package/dist/web3.js/_fixtures.js.map +1 -1
  124. package/dist/web3.js/index.js.map +1 -1
  125. package/dist/web3.js/layers.d.ts +9 -9
  126. package/dist/web3.js/layers.d.ts.map +1 -1
  127. package/dist/web3.js/layers.js +1 -1
  128. package/dist/web3.js/layers.js.map +1 -1
  129. package/dist/web3.js/legacy-signer.d.ts +1 -1
  130. package/dist/web3.js/legacy-signer.d.ts.map +1 -1
  131. package/dist/web3.js/legacy-signer.js +3 -3
  132. package/dist/web3.js/legacy-signer.js.map +1 -1
  133. package/dist/web3.js/transaction-bridge.js.map +1 -1
  134. package/dist/web3.js/types.js.map +1 -1
  135. package/package.json +38 -22
@@ -1,32 +1,31 @@
1
- export class InstructionNotFoundError extends Error {
2
- _tag = "InstructionNotFoundError";
3
- method;
4
- idlName;
5
- constructor(method, idlName) {
6
- super(`Instruction "${method}" not found in IDL "${idlName}"`);
7
- this.name = "InstructionNotFoundError";
8
- this.method = method;
9
- this.idlName = idlName;
10
- }
1
+ import { Schema } from "effect";
2
+ export class InstructionNotFoundError extends Schema.TaggedError()("InstructionNotFoundError", {
3
+ idlName: Schema.String,
4
+ message: Schema.String,
5
+ method: Schema.String,
6
+ }) {
11
7
  }
12
- export class ProgramCreationError extends Error {
13
- _tag = "ProgramCreationError";
14
- cause;
15
- constructor(cause, message) {
16
- super(message ?? "Failed to create Anchor program");
17
- this.name = "ProgramCreationError";
18
- this.cause = cause;
19
- }
8
+ export class ProgramCreationError extends Schema.TaggedError()("ProgramCreationError", {
9
+ cause: Schema.optional(Schema.Unknown),
10
+ message: Schema.String,
11
+ }) {
20
12
  }
21
- export class InstructionBuildError extends Error {
22
- _tag = "InstructionBuildError";
23
- method;
24
- cause;
25
- constructor(method, cause) {
26
- super(`Failed to build instruction "${method}"`);
27
- this.name = "InstructionBuildError";
28
- this.method = method;
29
- this.cause = cause;
30
- }
13
+ export class InstructionBuildError extends Schema.TaggedError()("InstructionBuildError", {
14
+ cause: Schema.optional(Schema.Unknown),
15
+ message: Schema.String,
16
+ method: Schema.String,
17
+ }) {
18
+ }
19
+ export class ProgramReadError extends Schema.TaggedError()("ProgramReadError", {
20
+ cause: Schema.optional(Schema.Unknown),
21
+ message: Schema.String,
22
+ method: Schema.String,
23
+ }) {
24
+ }
25
+ export class ViewNotSupportedError extends Schema.TaggedError()("ViewNotSupportedError", {
26
+ idlName: Schema.String,
27
+ message: Schema.String,
28
+ method: Schema.String,
29
+ }) {
31
30
  }
32
31
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/program/types.ts"],"names":[],"mappings":"AAkEA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,GAAG,0BAA0B,CAAC;IAClC,MAAM,CAAS;IACf,OAAO,CAAS;IAEzB,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,gBAAgB,MAAM,uBAAuB,OAAO,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAKD,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,sBAAsB,CAAC;IACrB,KAAK,CAAU;IAEjC,YAAY,KAAc,EAAE,OAAgB;QAC1C,KAAK,CAAC,OAAO,IAAI,iCAAiC,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAKD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,uBAAuB,CAAC;IAC/B,MAAM,CAAS;IACN,KAAK,CAAU;IAEjC,YAAY,MAAc,EAAE,KAAc;QACxC,KAAK,CAAC,gCAAgC,MAAM,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/program/types.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA6EhC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,WAAW,EAA4B,CAC1F,0BAA0B,EAC1B;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAKJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAClF,sBAAsB,EACtB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAKJ,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAKJ,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,kBAAkB,EAAE;IAC/F,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAKL,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,uBAAuB,EACvB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG","sourcesContent":["/**\n * Type definitions for Anchor program interactions.\n *\n * Provides TypeScript types for IDL-based instruction building using @coral-xyz/anchor.\n *\n * @module program/types\n */\n\nimport type { Address } from \"@solana/addresses\";\nimport type { Instruction } from \"@solana/instructions\";\nimport { Schema } from \"effect\";\n\n// =============================================================================\n// Re-exports from Anchor\n// =============================================================================\n\nexport type { Idl, Program } from \"@coral-xyz/anchor\";\n\n// =============================================================================\n// Program Service Types\n// =============================================================================\n\n/**\n * Account configuration for instruction building.\n * Maps account names to addresses.\n */\nexport type AccountsMap = Record<string, Address | string>;\n\n/**\n * Parameters for creating a Program instance.\n */\nexport type CreateProgramParams<\n T extends import(\"@coral-xyz/anchor\").Idl = import(\"@coral-xyz/anchor\").Idl,\n> = {\n /** The Anchor IDL */\n readonly idl: T;\n /** Override the program address from IDL */\n readonly programId?: Address;\n};\n\n/**\n * Parameters for building an instruction.\n */\nexport type BuildInstructionParams<TArgs extends readonly unknown[] = readonly unknown[]> = {\n /** The method/instruction name */\n readonly method: string;\n /** Instruction arguments in order */\n readonly args: TArgs;\n /** Account addresses mapped by name (only non-PDA, non-fixed accounts) */\n readonly accounts: AccountsMap;\n};\n\n/**\n * Result of building an instruction.\n */\nexport type BuildInstructionResult = {\n /** The built instruction (Solana kit format) */\n readonly instruction: Instruction;\n};\n\n// =============================================================================\n// Program Reader Types\n// =============================================================================\n\n/**\n * Parameters for calling `.view()` on an Anchor program method.\n */\nexport type ViewParams<TArgs extends readonly unknown[] = readonly unknown[]> = {\n /** The Anchor IDL */\n readonly idl: import(\"@coral-xyz/anchor\").Idl;\n /** The method/instruction name to call via `.view()` */\n readonly method: string;\n /** Method arguments in order */\n readonly args: TArgs;\n /** Account addresses mapped by name */\n readonly accounts: AccountsMap;\n /** Override the program address from IDL */\n readonly programId?: Address;\n};\n\n// =============================================================================\n// Error Types\n// =============================================================================\n\n/**\n * Error thrown when an instruction method is not found in the IDL.\n */\nexport class InstructionNotFoundError extends Schema.TaggedError<InstructionNotFoundError>()(\n \"InstructionNotFoundError\",\n {\n idlName: Schema.String,\n message: Schema.String,\n method: Schema.String,\n }\n) {}\n\n/**\n * Error thrown when program creation fails.\n */\nexport class ProgramCreationError extends Schema.TaggedError<ProgramCreationError>()(\n \"ProgramCreationError\",\n {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n }\n) {}\n\n/**\n * Error thrown when instruction building fails.\n */\nexport class InstructionBuildError extends Schema.TaggedError<InstructionBuildError>()(\n \"InstructionBuildError\",\n {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n method: Schema.String,\n }\n) {}\n\n/**\n * Error thrown when a `.view()` call fails.\n */\nexport class ProgramReadError extends Schema.TaggedError<ProgramReadError>()(\"ProgramReadError\", {\n cause: Schema.optional(Schema.Unknown),\n message: Schema.String,\n method: Schema.String,\n}) {}\n\n/**\n * Error thrown when a method is not compatible with `.view()` semantics.\n */\nexport class ViewNotSupportedError extends Schema.TaggedError<ViewNotSupportedError>()(\n \"ViewNotSupportedError\",\n {\n idlName: Schema.String,\n message: Schema.String,\n method: Schema.String,\n }\n) {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAKb,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAKb,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,eAAe,CAAC","sourcesContent":["\"use client\";\n\nexport type { EffectError } from \"./internal/error.js\";\nexport type { EffectSolanaRuntime } from \"./internal/runtime.js\";\nexport type { ScopedRun } from \"./internal/scoped-run.js\";\nexport { stableStringify } from \"./internal/stable.js\";\nexport type {\n EffectMemoOptions,\n StreamState,\n UseEffectResult,\n} from \"./primitives.js\";\nexport {\n useEffectMemo,\n useEffectMemoFactory,\n useEffectOnce,\n useForkEffect,\n useStream,\n useStreamEffect,\n useStreamValue,\n useSubscriptionRef,\n useSubscriptionRefValue,\n} from \"./primitives.js\";\nexport type {\n EffectSolanaLayerProviderProps,\n EffectSolanaProviderProps,\n} from \"./provider.js\";\nexport {\n EffectSolanaLayerProvider,\n EffectSolanaProvider,\n EffectSolanaProviderSync,\n useEffectSolanaLayer,\n useEffectSolanaRuntime,\n} from \"./provider.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/error.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAqB,EAAkB,EAAE;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,KAA4B,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/error.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAqB,EAAkB,EAAE;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,KAA4B,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC","sourcesContent":["\"use client\";\n\nimport * as Cause from \"effect/Cause\";\nimport * as Option from \"effect/Option\";\n\nexport type EffectError<E> = E | Cause.Cause<never>;\n\nexport const fromCause = <E>(cause: Cause.Cause<E>): EffectError<E> => {\n const failure = Cause.failureOption(cause);\n return Option.isSome(failure) ? failure.value : (cause as Cause.Cause<never>);\n};\n\nexport const fromUnknown = (cause: unknown): Cause.Cause<never> =>\n Cause.isCause(cause) ? (cause as Cause.Cause<never>) : Cause.die(cause);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"is-dev.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/is-dev.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW;IAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC"}
1
+ {"version":3,"file":"is-dev.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/is-dev.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,CAAC,MAAM,KAAK,GAChB,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW;IAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC","sourcesContent":["\"use client\";\n\nexport const isDev =\n typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\" &&\n process.env.NODE_ENV !== \"production\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/runtime.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAmBvC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAyC,EACX,EAAE;IAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA6C,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,MAA8B,EAC9B,OAA4C,EAC5C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,CACjB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,CACrB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAElG,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO,EAAE,OAA8C;QACvD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAyC,EACpB,EAAE;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA6C,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,MAA8B,EAC9B,OAA4C,EAC5C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,CACjB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,CACrB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAElG,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO,EAAE,OAA8C;QACvD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,KAA4B,EAAiB,EAAE;IAChF,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/runtime.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAmBvC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAyC,EACX,EAAE;IAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA6C,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,MAA8B,EAC9B,OAA4C,EAC5C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,CACjB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,CACrB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAElG,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO,EAAE,OAA8C;QACvD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAyC,EACpB,EAAE;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA6C,CAAC,CAAC,CACtF,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,MAA8B,EAC9B,OAA4C,EAC5C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,CACjB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAE9F,MAAM,cAAc,GAAG,CACrB,MAA8B,EAC9B,OAAuD,EACvD,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAiD,EAAE,OAAO,CAAC,CAAC;IAElG,OAAO;QACL,OAAO;QACP,UAAU;QACV,cAAc;QACd,OAAO,EAAE,OAA8C;QACvD,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,KAA4B,EAAiB,EAAE;IAChF,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC","sourcesContent":["\"use client\";\n\nimport type * as Effect from \"effect/Effect\";\nimport * as Effect_ from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport type * as Fiber from \"effect/Fiber\";\nimport type * as Layer from \"effect/Layer\";\nimport * as Layer_ from \"effect/Layer\";\nimport type * as Runtime from \"effect/Runtime\";\nimport * as Runtime_ from \"effect/Runtime\";\nimport type * as Scope from \"effect/Scope\";\nimport * as Scope_ from \"effect/Scope\";\n\nexport type EffectSolanaRuntime = {\n readonly runFork: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: Runtime.RunForkOptions | undefined\n ) => Fiber.RuntimeFiber<A, E>;\n readonly runPromise: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Promise<A>;\n readonly runPromiseExit: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Promise<Exit.Exit<A, E>>;\n readonly runtime: Runtime.Runtime<unknown>;\n readonly scope: Scope.Scope.Closeable;\n};\n\nexport const buildRuntime = async (\n layer: Layer.Layer<never, unknown, never>\n): Promise<EffectSolanaRuntime> => {\n const scope = await Effect_.runPromise(Scope_.make());\n const runtime = await Effect_.runPromise(\n Scope_.extend(scope)(Layer_.toRuntime(layer as Layer.Layer<unknown, unknown, never>))\n );\n\n const runFork = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: Runtime.RunForkOptions | undefined\n ) => Runtime_.runFork(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n const runPromise = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Runtime_.runPromise(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n const runPromiseExit = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Runtime_.runPromiseExit(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n return {\n runFork,\n runPromise,\n runPromiseExit,\n runtime: runtime as unknown as Runtime.Runtime<unknown>,\n scope,\n };\n};\n\nexport const buildRuntimeSync = (\n layer: Layer.Layer<never, unknown, never>\n): EffectSolanaRuntime => {\n const scope = Effect_.runSync(Scope_.make());\n const runtime = Effect_.runSync(\n Scope_.extend(scope)(Layer_.toRuntime(layer as Layer.Layer<unknown, unknown, never>))\n );\n\n const runFork = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: Runtime.RunForkOptions | undefined\n ) => Runtime_.runFork(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n const runPromise = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Runtime_.runPromise(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n const runPromiseExit = <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n options?: { readonly signal?: AbortSignal } | undefined\n ) => Runtime_.runPromiseExit(runtime, effect as unknown as Effect.Effect<A, E, unknown>, options);\n\n return {\n runFork,\n runPromise,\n runPromiseExit,\n runtime: runtime as unknown as Runtime.Runtime<unknown>,\n scope,\n };\n};\n\nexport const closeRuntime = async (scope: Scope.Scope.Closeable): Promise<void> => {\n await Effect_.runPromise(Scope_.close(scope, Exit.succeed(undefined)));\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-run.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/scoped-run.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AASvC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAA4B,EAAsB,EAAE;IACtF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAU,MAA8B,EAAE,EAAE,CACvD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAiD,CAAC,EAAE;QACvF,KAAK;KACN,CAAC,CAAC;IAEL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC,CAAC"}
1
+ {"version":3,"file":"scoped-run.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/scoped-run.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AASvC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAA4B,EAAsB,EAAE;IACtF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAU,MAA8B,EAAE,EAAE,CACvD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAiD,CAAC,EAAE;QACvF,KAAK;KACN,CAAC,CAAC;IAEL,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC,CAAC","sourcesContent":["\"use client\";\n\nimport type * as Effect from \"effect/Effect\";\nimport * as ExecutionStrategy from \"effect/ExecutionStrategy\";\nimport * as Exit from \"effect/Exit\";\nimport type * as Fiber from \"effect/Fiber\";\nimport { constVoid as noop } from \"effect/Function\";\nimport * as Scope_ from \"effect/Scope\";\nimport type { EffectSolanaRuntime } from \"./runtime.js\";\n\nexport type ScopedRun = {\n readonly close: () => void;\n readonly fork: <A, E, R>(effect: Effect.Effect<A, E, R>) => Fiber.RuntimeFiber<A, E>;\n readonly scope: Scope_.Scope.Closeable;\n};\n\nexport const makeScopedRun = async (runtime: EffectSolanaRuntime): Promise<ScopedRun> => {\n const scope = await runtime.runPromise(Scope_.fork(runtime.scope, ExecutionStrategy.sequential));\n let closed = false;\n\n const close = () => {\n if (closed) {\n return;\n }\n closed = true;\n runtime.runPromise(Scope_.close(scope, Exit.succeed(undefined))).catch(noop);\n };\n\n const fork = <A, E, R>(effect: Effect.Effect<A, E, R>) =>\n runtime.runFork(Scope_.extend(scope)(effect as unknown as Effect.Effect<A, E, unknown>), {\n scope,\n });\n\n return { close, fork, scope };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stable.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/stable.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAU,EAAE,CACxD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"stable.js","sourceRoot":"","sources":["../../../src/react-hooks/internal/stable.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAU,EAAE,CACxD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC","sourcesContent":["\"use client\";\n\nexport const stableStringify = (value: unknown): string =>\n JSON.stringify(value, (_, v) => (typeof v === \"bigint\" ? v.toString() : v));\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-effect-memo-factory.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-effect-memo-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-effect-memo-factory.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-effect-memo-factory.ts"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as Cause from \"effect/Cause\";\nimport * as Effect from \"effect/Effect\";\nimport type * as Exit from \"effect/Exit\";\nimport * as Fiber from \"effect/Fiber\";\nimport * as React from \"react\";\nimport { makeScopedRun } from \"../internal/scoped-run.js\";\nimport { useEffectSolanaRuntime } from \"../provider.js\";\n\nexport type EffectMemoOptions<A> = {\n readonly key?: string | undefined;\n readonly minIntervalMs?: number | undefined;\n readonly debounceMs?: number | undefined;\n readonly transition?: boolean | undefined;\n readonly initial?: A | undefined;\n};\n\nexport const useEffectMemoFactory = <A, E, R>(\n effectFactory: (signal: AbortSignal) => Effect.Effect<A, E, R>,\n deps: React.DependencyList,\n options: EffectMemoOptions<A> = {}\n): A | undefined => {\n const runtime = useEffectSolanaRuntime();\n const [value, setValue] = React.useState<A | undefined>(options.initial);\n const inFlightRef = React.useRef<{\n key: string | null;\n fiber: Fiber.RuntimeFiber<Exit.Exit<A, E>, never> | null;\n close: (() => void) | null;\n abort: AbortController | null;\n }>({ abort: null, close: null, fiber: null, key: null });\n const lastRunRef = React.useRef<{ key: string | null; at: number }>({ at: 0, key: null });\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n\n React.useEffect(() => {\n let active = true;\n\n const key = options.key ?? null;\n const minIntervalMs = options.minIntervalMs ?? 0;\n const debounceMs = options.debounceMs ?? 0;\n const useTransition = options.transition !== false;\n\n const now = Date.now();\n if (key && inFlightRef.current.key === key && inFlightRef.current.fiber) {\n return () => {\n active = false;\n };\n }\n if (\n key &&\n minIntervalMs > 0 &&\n lastRunRef.current.key === key &&\n now - lastRunRef.current.at < minIntervalMs\n ) {\n return () => {\n active = false;\n };\n }\n\n const run = () => {\n const controller = new AbortController();\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n const effect = effectFactory(controller.signal);\n\n const fiber = scoped.fork(\n Effect.exit(\n (effect as unknown as Effect.Effect<A, E, unknown>).pipe(\n Effect.tap((result) =>\n Effect.sync(() => {\n if (!active) {\n return;\n }\n if (useTransition) {\n React.startTransition(() => setValue(result));\n } else {\n setValue(result);\n }\n })\n ),\n Effect.tapErrorCause((cause) =>\n Effect.sync(() => {\n if (!Cause.isEmpty(cause)) {\n console.error(\"[useEffectMemoFactory] Fiber error:\", Cause.pretty(cause));\n }\n })\n )\n )\n )\n );\n\n inFlightRef.current = { abort: controller, close: scoped.close, fiber, key };\n lastRunRef.current = { at: Date.now(), key };\n\n await runtime.runPromise(Fiber.join(fiber));\n\n if (inFlightRef.current.fiber === fiber) {\n inFlightRef.current = { abort: null, close: null, fiber: null, key: null };\n }\n\n scoped.close();\n })().catch((cause) => {\n if (active && !controller.signal.aborted) {\n console.error(\"[useEffectMemoFactory] Fiber error:\", cause);\n }\n });\n };\n\n if (debounceMs > 0) {\n timeoutRef.current = setTimeout(run, debounceMs);\n } else {\n run();\n }\n\n return () => {\n active = false;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n if (inFlightRef.current.abort) {\n inFlightRef.current.abort.abort();\n }\n\n if (inFlightRef.current.close) {\n inFlightRef.current.close();\n }\n\n if (inFlightRef.current.key === key) {\n inFlightRef.current = { abort: null, close: null, fiber: null, key: null };\n }\n };\n }, [runtime, ...deps]);\n\n return value;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-effect.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-effect.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-effect.ts"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as Effect from \"effect/Effect\";\nimport * as Fiber from \"effect/Fiber\";\nimport * as React from \"react\";\nimport type { EffectError } from \"../internal/error.js\";\nimport { fromCause, fromUnknown } from \"../internal/error.js\";\nimport { isDev } from \"../internal/is-dev.js\";\nimport { makeScopedRun } from \"../internal/scoped-run.js\";\nimport { useEffectSolanaRuntime } from \"../provider.js\";\n\nexport type UseEffectResult<A, E> =\n | {\n readonly status: \"idle\" | \"loading\";\n readonly data?: A | undefined;\n readonly error?: never;\n }\n | { readonly status: \"success\"; readonly data: A; readonly error?: never }\n | {\n readonly status: \"error\";\n readonly data?: never;\n readonly error: EffectError<E>;\n };\n\nexport const useEffectOnce = <A, E, R>(\n makeEffect: () => Effect.Effect<A, E, R>,\n options: { readonly initial?: A | undefined } = {}\n): UseEffectResult<A, E> => {\n const runtime = useEffectSolanaRuntime();\n const devRef = React.useRef<{\n makeEffect: () => Effect.Effect<A, E, R>;\n initial: A | undefined;\n warned: boolean;\n } | null>(null);\n if (isDev) {\n if (devRef.current === null) {\n devRef.current = { initial: options.initial, makeEffect, warned: false };\n } else if (\n !devRef.current.warned &&\n (devRef.current.makeEffect !== makeEffect || devRef.current.initial !== options.initial)\n ) {\n devRef.current.warned = true;\n console.warn(\n [\n \"[effect-solana] useEffectOnce ignores changes after the first render.\",\n \"Memoize inputs or switch to useEffectMemo for reactive effects.\",\n ].join(\" \")\n );\n }\n }\n const [state, setState] = React.useState<UseEffectResult<A, E>>(() => ({\n data: options.initial,\n status: \"idle\",\n }));\n\n React.useEffect(() => {\n let cancelled = false;\n let scopedClose: (() => void) | null = null;\n\n setState({ data: options.initial, status: \"loading\" });\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n scopedClose = scoped.close;\n\n const fiber = scoped.fork(\n Effect.exit(makeEffect() as unknown as Effect.Effect<A, E, unknown>)\n );\n const exit = await runtime.runPromise(Fiber.join(fiber));\n\n if (cancelled) {\n return;\n }\n\n if (exit._tag === \"Success\") {\n setState({ data: exit.value, status: \"success\" });\n return;\n }\n\n setState({ error: fromCause(exit.cause), status: \"error\" });\n })().catch((cause) => {\n if (!cancelled) {\n setState({ error: fromUnknown(cause), status: \"error\" });\n }\n });\n\n return () => {\n cancelled = true;\n scopedClose?.();\n };\n }, [runtime]);\n\n return state;\n};\n\n/**\n * Runs an Effect when dependencies change, similar to React's `useEffect` + `useMemo`.\n *\n * @remarks\n * **Stability requirements:**\n *\n * 1. **`makeEffect` must be stable** — wrap with `useCallback` or define outside the component.\n * Passing an inline arrow function will cause the effect to re-run on every render.\n *\n * 2. **`deps` must contain referentially stable values** — works like React's `useEffect`.\n * Passing inline objects/arrays/functions will cause infinite re-renders.\n *\n * 3. **`options.initial` should be stable** — wrap with `useMemo` if computed, or move outside.\n *\n * @example\n * ```tsx\n * // ✅ CORRECT: makeEffect is stable (defined outside component)\n * const fetchUser = (id: string) => () =>\n * Effect.gen(function* () {\n * const user = yield* UserService.getUser(id);\n * return user;\n * });\n *\n * function UserProfile({ userId }: { userId: string }) {\n * const result = useEffectMemo(fetchUser(userId), [userId]);\n * // Effect re-runs only when userId changes\n * }\n * ```\n *\n * @example\n * ```tsx\n * // ✅ CORRECT: makeEffect is memoized with useCallback\n * function TokenBalance({ address }: { address: string }) {\n * const getBalance = useCallback(\n * () => TokenService.getBalance(address),\n * [address]\n * );\n * const result = useEffectMemo(getBalance, [address]);\n * }\n * ```\n *\n * @example\n * ```tsx\n * // ❌ WRONG: inline makeEffect causes re-run on every render\n * function Example({ userId }: { userId: string }) {\n * const result = useEffectMemo(\n * () => UserService.getUser(userId), // inline function — BAD!\n * [userId]\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // ❌ WRONG: inline object in deps causes infinite re-renders\n * function Example() {\n * const result = useEffectMemo(\n * fetchData,\n * [{ filter: \"active\" }] // new object on every render — BAD!\n * );\n * }\n * ```\n *\n * @param makeEffect - Factory function returning an Effect. Must be referentially stable.\n * @param deps - Dependency array (like React's useEffect). Values must be referentially stable.\n * @param options - Optional configuration. `initial` sets the initial data value.\n * @returns State object with `status`, `data`, and `error` fields.\n */\nexport const useEffectMemo = <A, E, R>(\n makeEffect: () => Effect.Effect<A, E, R>,\n deps: React.DependencyList,\n options: { readonly initial?: A | undefined } = {}\n): UseEffectResult<A, E> => {\n const runtime = useEffectSolanaRuntime();\n const [state, setState] = React.useState<UseEffectResult<A, E>>(() => ({\n data: options.initial,\n status: \"idle\",\n }));\n\n React.useEffect(() => {\n let cancelled = false;\n let scopedClose: (() => void) | null = null;\n\n setState({ data: options.initial, status: \"loading\" });\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n scopedClose = scoped.close;\n\n const fiber = scoped.fork(\n Effect.exit(makeEffect() as unknown as Effect.Effect<A, E, unknown>)\n );\n const exit = await runtime.runPromise(Fiber.join(fiber));\n\n if (cancelled) {\n return;\n }\n\n if (exit._tag === \"Success\") {\n setState({ data: exit.value, status: \"success\" });\n return;\n }\n\n setState({ error: fromCause(exit.cause), status: \"error\" });\n })().catch((cause) => {\n if (!cancelled) {\n setState({ error: fromUnknown(cause), status: \"error\" });\n }\n });\n\n return () => {\n cancelled = true;\n scopedClose?.();\n };\n }, [runtime, ...deps]);\n\n return state;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-fork-effect.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-fork-effect.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,UAA+C,EAC/C,IAA0B,EACpB,EAAE;IACR,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,GAAwB,IAAI,CAAC;QAE5C,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAE3B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAoD,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"use-fork-effect.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-fork-effect.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,UAA+C,EAC/C,IAA0B,EACpB,EAAE;IACR,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,GAAwB,IAAI,CAAC;QAE5C,CAAC,KAAK,IAAI,EAAE;YACV,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAE3B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAoD,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjB,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC","sourcesContent":["\"use client\";\n\nimport type * as Effect from \"effect/Effect\";\nimport { constVoid as noop } from \"effect/Function\";\nimport * as React from \"react\";\nimport { makeScopedRun } from \"../internal/scoped-run.js\";\nimport { useEffectSolanaRuntime } from \"../provider.js\";\n\nexport const useForkEffect = <R>(\n makeEffect: () => Effect.Effect<void, never, R>,\n deps: React.DependencyList\n): void => {\n const runtime = useEffectSolanaRuntime();\n\n React.useEffect(() => {\n let scopedClose: (() => void) | null = null;\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n scopedClose = scoped.close;\n\n scoped.fork(makeEffect() as unknown as Effect.Effect<void, never, unknown>);\n })().catch(noop);\n\n return () => {\n scopedClose?.();\n };\n }, [runtime, ...deps]);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-stream.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-stream.js","sourceRoot":"","sources":["../../../src/react-hooks/primitives/use-stream.ts"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as Effect from \"effect/Effect\";\nimport * as Fiber from \"effect/Fiber\";\nimport * as Scope from \"effect/Scope\";\nimport * as Stream from \"effect/Stream\";\nimport * as React from \"react\";\nimport { fromCause, fromUnknown } from \"../internal/error.js\";\nimport { isDev } from \"../internal/is-dev.js\";\nimport { makeScopedRun } from \"../internal/scoped-run.js\";\nimport { useEffectSolanaRuntime } from \"../provider.js\";\n\nexport type StreamState<A> =\n | { readonly status: \"starting\"; readonly value?: A | undefined }\n | { readonly status: \"running\"; readonly value: A }\n | {\n readonly status: \"error\";\n readonly error: unknown;\n readonly value?: A | undefined;\n };\n\ntype ExternalStore<S> = {\n readonly getSnapshot: () => S;\n readonly setSnapshot: (value: S) => void;\n readonly subscribe: (listener: () => void) => () => void;\n};\n\nconst makeExternalStore = <S>(initial: S): ExternalStore<S> => {\n let snapshot = initial;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot: () => snapshot,\n setSnapshot: (value) => {\n snapshot = value;\n for (const listener of listeners) {\n listener();\n }\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n};\n\nexport const useStream = <A, E, R>(\n stream: Stream.Stream<A, E, R>,\n options: { readonly initial?: A | undefined } = {}\n): StreamState<A> => {\n const runtime = useEffectSolanaRuntime();\n const devRef = React.useRef<{ initial: A | undefined; warned: boolean } | null>(null);\n if (isDev) {\n if (devRef.current === null) {\n devRef.current = { initial: options.initial, warned: false };\n } else if (!devRef.current.warned && devRef.current.initial !== options.initial) {\n devRef.current.warned = true;\n console.warn(\n [\n \"[effect-solana] useStream does not react to initial changes after mount.\",\n \"If you need to update the initial value, recreate the stream or use stable inputs.\",\n ].join(\" \")\n );\n }\n }\n const storeRef = React.useRef<ExternalStore<StreamState<A>> | null>(null);\n if (storeRef.current === null) {\n storeRef.current = makeExternalStore<StreamState<A>>({\n status: \"starting\",\n value: options.initial,\n });\n }\n\n const store = storeRef.current;\n const state = React.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n React.useEffect(() => {\n store.setSnapshot({ status: \"starting\", value: options.initial });\n\n let cancelled = false;\n let scopedClose: (() => void) | null = null;\n let lastValue = options.initial;\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n scopedClose = scoped.close;\n\n const runner = Stream.runForEach(stream, (value: A) =>\n Effect.sync(() => {\n lastValue = value;\n store.setSnapshot({ status: \"running\", value });\n })\n );\n\n const fiber = scoped.fork(Effect.exit(runner));\n const exit = await runtime.runPromise(Fiber.join(fiber));\n\n if (cancelled) {\n return;\n }\n\n if (exit._tag === \"Failure\") {\n store.setSnapshot({\n error: fromCause(exit.cause),\n status: \"error\",\n value: lastValue,\n });\n }\n })().catch((cause) => {\n if (!cancelled) {\n store.setSnapshot({\n error: fromUnknown(cause),\n status: \"error\",\n value: lastValue,\n });\n }\n });\n\n return () => {\n cancelled = true;\n scopedClose?.();\n };\n }, [runtime, store, stream]);\n\n return state;\n};\n\nexport const useStreamEffect = <A, E, R>(\n makeStream: () => Effect.Effect<Stream.Stream<A, E, R>, E, R>,\n deps: React.DependencyList,\n options: { readonly initial?: A | undefined } = {}\n): StreamState<A> => {\n const runtime = useEffectSolanaRuntime();\n const storeRef = React.useRef<ExternalStore<StreamState<A>> | null>(null);\n if (storeRef.current === null) {\n storeRef.current = makeExternalStore<StreamState<A>>({\n status: \"starting\",\n value: options.initial,\n });\n }\n\n const store = storeRef.current;\n const state = React.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n React.useEffect(() => {\n store.setSnapshot({ status: \"starting\", value: options.initial });\n\n let cancelled = false;\n let scopedClose: (() => void) | null = null;\n let lastValue = options.initial;\n\n (async () => {\n const scoped = await makeScopedRun(runtime);\n scopedClose = scoped.close;\n\n const stream = await runtime.runPromise(\n Scope.extend(scoped.scope)(\n makeStream() as unknown as Effect.Effect<Stream.Stream<A, E, unknown>, E, unknown>\n )\n );\n\n const runner = Stream.runForEach(stream, (value: A) =>\n Effect.sync(() => {\n lastValue = value;\n store.setSnapshot({ status: \"running\", value });\n })\n );\n\n const fiber = scoped.fork(Effect.exit(runner));\n const exit = await runtime.runPromise(Fiber.join(fiber));\n\n if (cancelled) {\n return;\n }\n\n if (exit._tag === \"Failure\") {\n store.setSnapshot({\n error: fromCause(exit.cause),\n status: \"error\",\n value: lastValue,\n });\n }\n })().catch((cause) => {\n if (!cancelled) {\n store.setSnapshot({\n error: fromUnknown(cause),\n status: \"error\",\n value: lastValue,\n });\n }\n });\n\n return () => {\n cancelled = true;\n scopedClose?.();\n };\n }, [runtime, ...deps]);\n\n return state;\n};\n\nexport const useStreamValue = <A, E, R>(\n stream: Stream.Stream<A, E, R>,\n options: { readonly initial?: A | undefined } = {}\n): A | undefined => {\n const state = useStream(stream, options);\n if (state.status === \"starting\") {\n return options.initial;\n }\n if (state.status === \"error\") {\n return state.value ?? options.initial;\n }\n return state.value;\n};\n\nexport const useSubscriptionRef = <A>(\n ref: import(\"effect/SubscriptionRef\").SubscriptionRef<A>,\n initial: A\n): A => {\n const state = useStream(ref.changes, { initial });\n return state.status === \"starting\" ? initial : (state.value ?? initial);\n};\n\nexport const useSubscriptionRefValue = <A>(\n ref: import(\"effect/SubscriptionRef\").SubscriptionRef<A>,\n initial: A\n): A => useSubscriptionRef(ref, initial);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/react-hooks/primitives.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/react-hooks/primitives.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC","sourcesContent":["\"use client\";\n\nexport type { UseEffectResult } from \"./primitives/use-effect.js\";\nexport { useEffectMemo, useEffectOnce } from \"./primitives/use-effect.js\";\nexport type { EffectMemoOptions } from \"./primitives/use-effect-memo-factory.js\";\nexport { useEffectMemoFactory } from \"./primitives/use-effect-memo-factory.js\";\nexport { useForkEffect } from \"./primitives/use-fork-effect.js\";\nexport type { StreamState } from \"./primitives/use-stream.js\";\nexport {\n useStream,\n useStreamEffect,\n useStreamValue,\n useSubscriptionRef,\n useSubscriptionRefValue,\n} from \"./primitives/use-stream.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/react-hooks/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/react-hooks/provider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport { constVoid as noop } from \"effect/Function\";\nimport type * as Layer from \"effect/Layer\";\nimport * as React from \"react\";\nimport type { EffectSolanaRuntime } from \"./internal/runtime.js\";\nimport { buildRuntime, buildRuntimeSync, closeRuntime } from \"./internal/runtime.js\";\n\nexport type EffectSolanaProviderProps = {\n readonly children?: React.ReactNode;\n readonly fallback?: React.ReactNode;\n readonly layer: Layer.Layer<never, unknown, never>;\n readonly onUnhandledError?: (cause: unknown) => void;\n};\n\nexport type EffectSolanaLayerProviderProps = {\n readonly children?: React.ReactNode;\n readonly layer: Layer.Layer<never, unknown, never>;\n};\n\nconst EffectSolanaRuntimeContext = React.createContext<EffectSolanaRuntime | null>(null);\nconst EffectSolanaLayerContext = React.createContext<Layer.Layer<never, unknown, never> | null>(\n null\n);\n\nexport const EffectSolanaProvider = (props: EffectSolanaProviderProps): React.ReactElement => {\n const { children, fallback = null, layer, onUnhandledError } = props;\n\n const [runtime, setRuntime] = React.useState<EffectSolanaRuntime | null>(null);\n\n React.useEffect(() => {\n let cancelled = false;\n let current: EffectSolanaRuntime | null = null;\n\n setRuntime(null);\n\n (async () => {\n const built = await buildRuntime(layer);\n current = built;\n\n if (cancelled) {\n await closeRuntime(built.scope);\n return;\n }\n\n setRuntime(built);\n })().catch((cause) => {\n onUnhandledError?.(cause);\n });\n\n return () => {\n cancelled = true;\n if (current) {\n closeRuntime(current.scope).catch(noop);\n }\n };\n }, [layer, onUnhandledError]);\n\n if (runtime === null) {\n return React.createElement(React.Fragment, null, fallback);\n }\n\n return React.createElement(EffectSolanaRuntimeContext.Provider, { value: runtime }, children);\n};\n\nexport const EffectSolanaProviderSync = (props: EffectSolanaProviderProps): React.ReactElement => {\n const { children, layer, onUnhandledError } = props;\n\n const runtime = React.useMemo(() => {\n try {\n return buildRuntimeSync(layer);\n } catch (cause) {\n onUnhandledError?.(cause);\n throw cause;\n }\n }, [layer, onUnhandledError]);\n\n React.useEffect(\n () => () => {\n void closeRuntime(runtime.scope).catch(noop);\n },\n [runtime]\n );\n\n return React.createElement(EffectSolanaRuntimeContext.Provider, { value: runtime }, children);\n};\n\nexport const EffectSolanaLayerProvider = (\n props: EffectSolanaLayerProviderProps\n): React.ReactElement => {\n const { children, layer } = props;\n return React.createElement(EffectSolanaLayerContext.Provider, { value: layer }, children);\n};\n\nexport const useEffectSolanaRuntime = (): EffectSolanaRuntime => {\n const runtime = React.useContext(EffectSolanaRuntimeContext);\n if (runtime === null) {\n throw new Error(\"EffectSolanaProvider is missing (useEffectSolanaRuntime)\");\n }\n return runtime;\n};\n\nexport const useEffectSolanaLayer = (): Layer.Layer<never, unknown, never> => {\n const layer = React.useContext(EffectSolanaLayerContext);\n if (layer === null) {\n throw new Error(\"EffectSolanaLayerProvider is missing (useEffectSolanaLayer)\");\n }\n return layer;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC","sourcesContent":["/**\n * RPC service for Solana blockchain interactions.\n *\n * @module\n */\n\nexport * from \"./service.js\";\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { Rpc, RpcSubscriptions, SolanaRpcApi, SolanaRpcSubscriptionsApi } from "@solana/kit";
2
2
  import { Context, Effect, Layer } from "effect";
3
- import { ConnectionNotFoundError } from "../core/errors/index.js";
4
- import type { Cluster, ClusterConfig } from "../types/index.js";
3
+ import { ConnectionNotFoundError } from "#src/core/errors/index.js";
4
+ import type { Cluster, ClusterConfig } from "#src/types/index.js";
5
5
  export type RpcServiceShape = {
6
6
  readonly getRpc: () => Effect.Effect<Rpc<SolanaRpcApi>>;
7
7
  readonly getRpcSubscriptions: () => Effect.Effect<RpcSubscriptions<SolanaRpcSubscriptionsApi>, ConnectionNotFoundError>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rpc/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAElG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOnE,MAAM,MAAM,eAAe,GAAG;IAI5B,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAKxD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,CAC/C,gBAAgB,CAAC,yBAAyB,CAAC,EAC3C,uBAAuB,CACxB,CAAC;IAKF,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAKlD,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;;AAOF,qBAAa,UAAW,SAAQ,eAAgE;CAAG;AAOnG,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,0CAiCrD,CAAC;AAOJ,eAAO,MAAM,gBAAgB,uCAI3B,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rpc/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAElG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOlE,MAAM,MAAM,eAAe,GAAG;IAI5B,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAKxD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,CAC/C,gBAAgB,CAAC,yBAAyB,CAAC,EAC3C,uBAAuB,CACxB,CAAC;IAKF,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAKlD,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;;AAOF,qBAAa,UAAW,SAAQ,eAAgE;CAAG;AAOnG,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,0CAiCrD,CAAC;AAOJ,eAAO,MAAM,gBAAgB,uCAI3B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";
2
2
  import { Context, Effect, Layer } from "effect";
3
- import { ConnectionNotFoundError } from "../core/errors/index.js";
3
+ import { ConnectionNotFoundError } from "#src/core/errors/index.js";
4
4
  export class RpcService extends Context.Tag("esolana/RpcService")() {
5
5
  }
6
6
  export const makeRpcServiceLive = (config) => Layer.effect(RpcService, Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/rpc/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAsCrE,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAA+B;CAAG;AAOnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,EAAE,CAC1D,KAAK,CAAC,MAAM,CACV,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAElB,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAGjD,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAa,EAAE,EAAE,CAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CACvD,CAAC;IAEF,OAAO,UAAU,CAAC,EAAE,CAAC;QACnB,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAEhD,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAEvC,mBAAmB,EAAE,GAAG,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC;oBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,6CAA6C,MAAM,CAAC,OAAO,EAAE;iBACvE,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAOJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IACjD,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,+BAA+B;IACvC,KAAK,EAAE,6BAA6B;CACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/rpc/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAsCpE,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAA+B;CAAG;AAOnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAE,EAAE,CAC1D,KAAK,CAAC,MAAM,CACV,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAElB,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAGjD,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAa,EAAE,EAAE,CAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CACvD,CAAC;IAEF,OAAO,UAAU,CAAC,EAAE,CAAC;QACnB,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAEhD,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAEvC,mBAAmB,EAAE,GAAG,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,uBAAuB,CAAC;oBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,6CAA6C,MAAM,CAAC,OAAO,EAAE;iBACvE,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAOJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IACjD,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,+BAA+B;IACvC,KAAK,EAAE,6BAA6B;CACrC,CAAC,CAAC","sourcesContent":["import type { Rpc, RpcSubscriptions, SolanaRpcApi, SolanaRpcSubscriptionsApi } from \"@solana/kit\";\nimport { createSolanaRpc, createSolanaRpcSubscriptions } from \"@solana/kit\";\nimport { Context, Effect, Layer } from \"effect\";\nimport { ConnectionNotFoundError } from \"#src/core/errors/index.js\";\nimport type { Cluster, ClusterConfig } from \"#src/types/index.js\";\n\n/**\n * Shape of the RPC service for type inference.\n *\n * @category Services\n */\nexport type RpcServiceShape = {\n /**\n * Get the Solana RPC client for making RPC calls.\n */\n readonly getRpc: () => Effect.Effect<Rpc<SolanaRpcApi>>;\n\n /**\n * Get the Solana RPC subscriptions client for WebSocket subscriptions.\n */\n readonly getRpcSubscriptions: () => Effect.Effect<\n RpcSubscriptions<SolanaRpcSubscriptionsApi>,\n ConnectionNotFoundError\n >;\n\n /**\n * Get the current cluster.\n */\n readonly getCluster: () => Effect.Effect<Cluster>;\n\n /**\n * Get the RPC URL.\n */\n readonly getRpcUrl: () => Effect.Effect<string>;\n};\n\n/**\n * Service tag for RPC client.\n *\n * @category Services\n */\nexport class RpcService extends Context.Tag(\"esolana/RpcService\")<RpcService, RpcServiceShape>() {}\n\n/**\n * Create an RpcService layer from cluster configuration.\n *\n * @category Layers\n */\nexport const makeRpcServiceLive = (config: ClusterConfig) =>\n Layer.effect(\n RpcService,\n Effect.gen(function* () {\n // Create RPC client once during layer construction\n const rpcClient = createSolanaRpc(config.rpcUrl);\n\n // Memoized WebSocket subscription client - created once on first access\n const getCachedSubscriptions = yield* Effect.cachedFunction((wsUrl: string) =>\n Effect.sync(() => createSolanaRpcSubscriptions(wsUrl))\n );\n\n return RpcService.of({\n getCluster: () => Effect.succeed(config.cluster),\n\n getRpc: () => Effect.succeed(rpcClient),\n\n getRpcSubscriptions: () => {\n const wsUrl = config.wsUrl;\n if (!wsUrl) {\n return Effect.fail(\n new ConnectionNotFoundError({\n cluster: config.cluster,\n message: `WebSocket URL not configured for cluster: ${config.cluster}`,\n })\n );\n }\n return getCachedSubscriptions(wsUrl);\n },\n\n getRpcUrl: () => Effect.succeed(config.rpcUrl),\n });\n })\n );\n\n/**\n * Default devnet configuration for development.\n *\n * @category Layers\n */\nexport const RpcServiceDevnet = makeRpcServiceLive({\n cluster: \"devnet\",\n rpcUrl: \"https://api.devnet.solana.com\",\n wsUrl: \"wss://api.devnet.solana.com\",\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./service.js\";\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { Address } from "@solana/addresses";
2
2
  import type { Transaction, TransactionWithLifetime } from "@solana/transactions";
3
3
  import { Context, Effect, Layer } from "effect";
4
- import { SignatureError, WalletNotConnectedError } from "../core/errors/index.js";
4
+ import { SignatureError, WalletNotConnectedError } from "#src/core/errors/index.js";
5
5
  export type SignerServiceShape = {
6
6
  readonly getAddress: () => Effect.Effect<Address, WalletNotConnectedError>;
7
7
  readonly signTransaction: <T extends Transaction & TransactionWithLifetime>(tx: T) => Effect.Effect<T, SignatureError | WalletNotConnectedError>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/signer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAGrF,MAAM,MAAM,kBAAkB,GAAG;IAI/B,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAK3E,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EACxE,EAAE,EAAE,CAAC,KACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,GAAG,uBAAuB,CAAC,CAAC;IAKhE,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAC5E,GAAG,EAAE,SAAS,CAAC,EAAE,KACd,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,cAAc,GAAG,uBAAuB,CAAC,CAAC;IAK3E,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACpD,CAAC;;AAEF,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAKN,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAAE,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAC5E,GAAG,EAAE,SAAS,CAAC,EAAE,KACd,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,aAAa,6CAqDzE,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/signer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpF,MAAM,MAAM,kBAAkB,GAAG;IAI/B,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAK3E,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EACxE,EAAE,EAAE,CAAC,KACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,GAAG,uBAAuB,CAAC,CAAC;IAKhE,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAC5E,GAAG,EAAE,SAAS,CAAC,EAAE,KACd,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,cAAc,GAAG,uBAAuB,CAAC,CAAC;IAK3E,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACpD,CAAC;;AAEF,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAKN,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAAE,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,SAAS,WAAW,GAAG,uBAAuB,EAC5E,GAAG,EAAE,SAAS,CAAC,EAAE,KACd,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC5B,CAAC;AAMF,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,aAAa,6CAqDzE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
- import { SignatureError, WalletNotConnectedError } from "../core/errors/index.js";
3
- import { SpanNames } from "../telemetry/index.js";
2
+ import { SignatureError, WalletNotConnectedError } from "#src/core/errors/index.js";
3
+ import { SpanNames } from "#src/telemetry/index.js";
4
4
  export class SignerService extends Context.Tag("esolana/SignerService")() {
5
5
  }
6
6
  export const makeSignerServiceFromAdapter = (getAdapter) => Layer.succeed(SignerService, SignerService.of({
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/signer/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/signer/service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address } from \"@solana/addresses\";\nimport type { Transaction, TransactionWithLifetime } from \"@solana/transactions\";\nimport { Context, Effect, Layer } from \"effect\";\nimport { SignatureError, WalletNotConnectedError } from \"#src/core/errors/index.js\";\nimport { SpanNames } from \"#src/telemetry/index.js\";\n\nexport type SignerServiceShape = {\n /**\n * Get the connected wallet's address.\n */\n readonly getAddress: () => Effect.Effect<Address, WalletNotConnectedError>;\n\n /**\n * Sign a single transaction.\n */\n readonly signTransaction: <T extends Transaction & TransactionWithLifetime>(\n tx: T\n ) => Effect.Effect<T, SignatureError | WalletNotConnectedError>;\n\n /**\n * Sign multiple transactions in a batch.\n */\n readonly signAllTransactions: <T extends Transaction & TransactionWithLifetime>(\n txs: readonly T[]\n ) => Effect.Effect<readonly T[], SignatureError | WalletNotConnectedError>;\n\n /**\n * Check if a wallet is connected.\n */\n readonly isConnected: () => Effect.Effect<boolean>;\n};\n\nexport class SignerService extends Context.Tag(\"esolana/SignerService\")<\n SignerService,\n SignerServiceShape\n>() {}\n\n/**\n * Wallet adapter interface - consumers implement this to integrate their wallet.\n */\nexport type WalletAdapter = {\n readonly publicKey: Address | null;\n readonly connected: boolean;\n readonly signTransaction: <T extends Transaction & TransactionWithLifetime>(tx: T) => Promise<T>;\n readonly signAllTransactions: <T extends Transaction & TransactionWithLifetime>(\n txs: readonly T[]\n ) => Promise<readonly T[]>;\n};\n\n/**\n * Create a SignerService layer from a wallet adapter.\n * This is used to bridge wallet-adapter-react or similar libraries.\n */\nexport const makeSignerServiceFromAdapter = (getAdapter: () => WalletAdapter) =>\n Layer.succeed(\n SignerService,\n SignerService.of({\n getAddress: () =>\n Effect.gen(function* () {\n const adapter = getAdapter();\n if (!(adapter.connected && adapter.publicKey)) {\n return yield* Effect.fail(\n new WalletNotConnectedError({ message: \"Wallet not connected\" })\n );\n }\n return adapter.publicKey;\n }).pipe(Effect.withSpan(SpanNames.SIGNER_GET_ADDRESS)),\n\n isConnected: () => Effect.sync(() => getAdapter().connected),\n\n signAllTransactions: (txs) =>\n Effect.gen(function* () {\n const adapter = getAdapter();\n if (!adapter.connected) {\n return yield* Effect.fail(\n new WalletNotConnectedError({ message: \"Wallet not connected\" })\n );\n }\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new SignatureError({\n cause,\n message: cause instanceof Error ? cause.message : \"Failed to sign transactions\",\n }),\n try: () => adapter.signAllTransactions(txs),\n });\n }).pipe(Effect.withSpan(SpanNames.TX_SIGN)),\n\n signTransaction: (tx) =>\n Effect.gen(function* () {\n const adapter = getAdapter();\n if (!adapter.connected) {\n return yield* Effect.fail(\n new WalletNotConnectedError({ message: \"Wallet not connected\" })\n );\n }\n return yield* Effect.tryPromise({\n catch: (cause) =>\n new SignatureError({\n cause,\n message: cause instanceof Error ? cause.message : \"Failed to sign transaction\",\n }),\n try: () => adapter.signTransaction(tx),\n });\n }).pipe(Effect.withSpan(SpanNames.TX_SIGN)),\n })\n );\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./logger.js\";\nexport * from \"./tracer.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/telemetry/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA6D,EAAE,EAAE,CAC1F,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA8C,EAAE,EAAE,CACnF,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAIvC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2D,EAAE,EAAE,CAC9F,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA8D,EAAE,EAAE,CACjG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAA6C,EAAE,EAAE,CACxE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/telemetry/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA6D,EAAE,EAAE,CAC1F,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAA8C,EAAE,EAAE,CACnF,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAIvC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA2D,EAAE,EAAE,CAC9F,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA8D,EAAE,EAAE,CACjG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAA6C,EAAE,EAAE,CACxE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\n\n/**\n * Log helpers for Solana operations.\n */\n\nexport const logRpcCall = (params: { method: string; cluster: string; params?: unknown }) =>\n Effect.logDebug(\"RPC call\", params);\n\nexport const logTransactionSent = (params: { signature: string; cluster: string }) =>\n Effect.logInfo(\"Transaction sent\", params);\n\nexport const logTransactionConfirmed = (params: {\n signature: string;\n slot: bigint;\n confirmations?: number;\n}) => Effect.logDebug(\"Transaction confirmed\", params);\n\nexport const logAccountChange = (params: { address: string; lamports: bigint; slot: bigint }) =>\n Effect.logDebug(\"Account change\", params);\n\nexport const logEventReceived = (params: { programId: string; signature: string; slot: bigint }) =>\n Effect.logDebug(\"Event received\", params);\n\nexport const logError = (params: { operation: string; error: unknown }) =>\n Effect.logError(\"Operation failed\", params);\n"]}
@@ -20,6 +20,9 @@ export declare const SpanNames: {
20
20
  readonly PROGRAM_BUILD: "esol.program.build";
21
21
  readonly PROGRAM_BUILD_INSTRUCTION: "esol.program.buildInstruction";
22
22
  readonly PROGRAM_CREATE: "esol.program.create";
23
+ readonly PROGRAM_CREATE_FOR_READ: "esol.program.createForRead";
24
+ readonly PROGRAM_VIEW: "esol.program.view";
25
+ readonly PROGRAM_VIEW_WITH_PROGRAM: "esol.program.viewWithProgram";
23
26
  readonly RPC_GET_ACCOUNT_INFO: "esol.rpc.getAccountInfo";
24
27
  readonly RPC_GET_BALANCE: "esol.rpc.getBalance";
25
28
  readonly RPC_GET_BLOCK: "esol.rpc.getBlock";
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,eAAO,MAAM,QAAQ,GAClB,MAAM,MAAM,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAClD,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACjB,CAAC;AAKlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEZ,CAAC"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,eAAO,MAAM,QAAQ,GAClB,MAAM,MAAM,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAClD,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACjB,CAAC;AAKlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEZ,CAAC"}
@@ -20,6 +20,9 @@ export const SpanNames = {
20
20
  PROGRAM_BUILD: "esol.program.build",
21
21
  PROGRAM_BUILD_INSTRUCTION: "esol.program.buildInstruction",
22
22
  PROGRAM_CREATE: "esol.program.create",
23
+ PROGRAM_CREATE_FOR_READ: "esol.program.createForRead",
24
+ PROGRAM_VIEW: "esol.program.view",
25
+ PROGRAM_VIEW_WITH_PROGRAM: "esol.program.viewWithProgram",
23
26
  RPC_GET_ACCOUNT_INFO: "esol.rpc.getAccountInfo",
24
27
  RPC_GET_BALANCE: "esol.rpc.getBalance",
25
28
  RPC_GET_BLOCK: "esol.rpc.getBlock",
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAC,IAAY,EAAE,UAAoC,EAAE,EAAE,CACvD,CAAU,MAA8B,EAA0B,EAAE,CAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAKlD,MAAM,CAAC,MAAM,SAAS,GAAG;IAEvB,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,oBAAoB;IAGnC,eAAe,EAAE,qBAAqB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,mBAAmB,EAAE,yBAAyB;IAG9C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,mBAAmB,EAAE,yBAAyB;IAG9C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAG9C,UAAU,EAAE,iBAAiB;IAC7B,kBAAkB,EAAE,wBAAwB;IAC5C,eAAe,EAAE,qBAAqB;IACtC,QAAQ,EAAE,eAAe;IAGzB,aAAa,EAAE,oBAAoB;IACnC,yBAAyB,EAAE,+BAA+B;IAC1D,cAAc,EAAE,qBAAqB;IACrC,oBAAoB,EAAE,yBAAyB;IAE/C,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,uBAAuB;IAC3C,wBAAwB,EAAE,6BAA6B;IACvD,YAAY,EAAE,kBAAkB;IAGhC,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,uBAAuB;IAG1C,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,iBAAiB;IAC7B,gBAAgB,EAAE,sBAAsB;IACxC,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,qBAAqB;IAGrC,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,iBAAiB;IAC7B,yBAAyB,EAAE,8BAA8B;IACzD,OAAO,EAAE,cAAc;IACvB,mBAAmB,EAAE,wBAAwB;IAC7C,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,kBAAkB;CACvB,CAAC"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAC,IAAY,EAAE,UAAoC,EAAE,EAAE,CACvD,CAAU,MAA8B,EAA0B,EAAE,CAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAKlD,MAAM,CAAC,MAAM,SAAS,GAAG;IAEvB,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,oBAAoB;IAGnC,eAAe,EAAE,qBAAqB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,mBAAmB,EAAE,yBAAyB;IAG9C,iBAAiB,EAAE,uBAAuB;IAC1C,iBAAiB,EAAE,uBAAuB;IAC1C,mBAAmB,EAAE,yBAAyB;IAG9C,gBAAgB,EAAE,sBAAsB;IACxC,mBAAmB,EAAE,yBAAyB;IAG9C,UAAU,EAAE,iBAAiB;IAC7B,kBAAkB,EAAE,wBAAwB;IAC5C,eAAe,EAAE,qBAAqB;IACtC,QAAQ,EAAE,eAAe;IAGzB,aAAa,EAAE,oBAAoB;IACnC,yBAAyB,EAAE,+BAA+B;IAC1D,cAAc,EAAE,qBAAqB;IACrC,uBAAuB,EAAE,4BAA4B;IACrD,YAAY,EAAE,mBAAmB;IACjC,yBAAyB,EAAE,8BAA8B;IAGzD,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,oBAAoB,EAAE,yBAAyB;IAC/C,kBAAkB,EAAE,uBAAuB;IAC3C,wBAAwB,EAAE,6BAA6B;IACvD,YAAY,EAAE,kBAAkB;IAGhC,kBAAkB,EAAE,wBAAwB;IAC5C,iBAAiB,EAAE,uBAAuB;IAG1C,oBAAoB,EAAE,0BAA0B;IAChD,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,iBAAiB;IAC7B,gBAAgB,EAAE,sBAAsB;IACxC,iBAAiB,EAAE,uBAAuB;IAC1C,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IACpC,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,qBAAqB;IAGrC,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,iBAAiB;IAC7B,yBAAyB,EAAE,8BAA8B;IACzD,OAAO,EAAE,cAAc;IACvB,mBAAmB,EAAE,wBAAwB;IAC7C,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,kBAAkB;CACvB,CAAC","sourcesContent":["import { Effect } from \"effect\";\n\n/**\n * Wrap an effect with a span for tracing.\n */\nexport const withSpan =\n (name: string, attributes?: Record<string, unknown>) =>\n <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>\n Effect.withSpan(name, { attributes })(effect);\n\n/**\n * Common span names for Solana operations.\n */\nexport const SpanNames = {\n // Account Operations\n ACCOUNT_GET_INFO: \"esol.account.getInfo\",\n ACCOUNT_GET_MULTIPLE: \"esol.account.getMultiple\",\n ACCOUNT_WATCH: \"esol.account.watch\",\n\n // Balance Operations\n BALANCE_GET_SOL: \"esol.balance.getSol\",\n BALANCE_GET_TOKEN: \"esol.balance.getToken\",\n BALANCE_WATCH_SOL: \"esol.balance.watchSol\",\n BALANCE_WATCH_TOKEN: \"esol.balance.watchToken\",\n\n // Compute Budget Operations\n COMPUTE_SET_LIMIT: \"esol.compute.setLimit\",\n COMPUTE_SET_PRICE: \"esol.compute.setPrice\",\n EVENT_WATCH_ACCOUNT: \"esol.event.watchAccount\",\n\n // Event Operations\n EVENT_WATCH_LOGS: \"esol.event.watchLogs\",\n EVENT_WATCH_PROGRAM: \"esol.event.watchProgram\",\n\n // PDA Operations\n PDA_DERIVE: \"esol.pda.derive\",\n PDA_DERIVE_ADDRESS: \"esol.pda.deriveAddress\",\n PDA_DERIVE_BUMP: \"esol.pda.deriveBump\",\n PDA_FIND: \"esol.pda.find\",\n\n // Program Operations\n PROGRAM_BUILD: \"esol.program.build\",\n PROGRAM_BUILD_INSTRUCTION: \"esol.program.buildInstruction\",\n PROGRAM_CREATE: \"esol.program.create\",\n PROGRAM_CREATE_FOR_READ: \"esol.program.createForRead\",\n PROGRAM_VIEW: \"esol.program.view\",\n PROGRAM_VIEW_WITH_PROGRAM: \"esol.program.viewWithProgram\",\n\n // RPC Operations\n RPC_GET_ACCOUNT_INFO: \"esol.rpc.getAccountInfo\",\n RPC_GET_BALANCE: \"esol.rpc.getBalance\",\n RPC_GET_BLOCK: \"esol.rpc.getBlock\",\n RPC_GET_BLOCK_HEIGHT: \"esol.rpc.getBlockHeight\",\n RPC_GET_BLOCK_TIME: \"esol.rpc.getBlockTime\",\n RPC_GET_PROGRAM_ACCOUNTS: \"esol.rpc.getProgramAccounts\",\n RPC_GET_SLOT: \"esol.rpc.getSlot\",\n\n // Signer Operations\n SIGNER_GET_ADDRESS: \"esol.signer.getAddress\",\n SIGNER_GET_SIGNER: \"esol.signer.getSigner\",\n\n // Token Operations\n TOKEN_ACCOUNT_EXISTS: \"esol.token.accountExists\",\n TOKEN_APPROVE: \"esol.token.approve\",\n TOKEN_BURN: \"esol.token.burn\",\n TOKEN_CREATE_ATA: \"esol.token.createAta\",\n TOKEN_GET_ACCOUNT: \"esol.token.getAccount\",\n TOKEN_GET_ATA: \"esol.token.getAta\",\n TOKEN_GET_MINT: \"esol.token.getMint\",\n TOKEN_MINT_TO: \"esol.token.mintTo\",\n TOKEN_REVOKE: \"esol.token.revoke\",\n TOKEN_TRANSFER: \"esol.token.transfer\",\n\n // Transaction Operations\n TX_BUILD: \"esol.tx.build\",\n TX_CONFIRM: \"esol.tx.confirm\",\n TX_GET_SIGNATURE_STATUSES: \"esol.tx.getSignatureStatuses\",\n TX_SEND: \"esol.tx.send\",\n TX_SEND_AND_CONFIRM: \"esol.tx.sendAndConfirm\",\n TX_SIGN: \"esol.tx.sign\",\n TX_SIMULATE: \"esol.tx.simulate\",\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/addresses.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,kCAA6C,CAAC;AAK1E,MAAM,CAAC,MAAM,cAAc,GAAG,6CAAwD,CAAC;AAKvF,MAAM,CAAC,MAAM,cAAc,GACzB,0FAAuG,CAAC;AAK1G,MAAM,CAAC,MAAM,YAAY,GAAG,QAAiB,CAAC;AAK9C,MAAM,CAAC,MAAM,SAAS,GAAG,8CAAyD,CAAC;AAKnF,MAAM,CAAC,MAAM,WAAW,GAAG,8CAAyD,CAAC"}
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/testing-kit/_fixtures/addresses.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,kCAA6C,CAAC;AAK1E,MAAM,CAAC,MAAM,cAAc,GAAG,6CAAwD,CAAC;AAKvF,MAAM,CAAC,MAAM,cAAc,GACzB,0FAAuG,CAAC;AAK1G,MAAM,CAAC,MAAM,YAAY,GAAG,QAAiB,CAAC;AAK9C,MAAM,CAAC,MAAM,SAAS,GAAG,8CAAyD,CAAC;AAKnF,MAAM,CAAC,MAAM,WAAW,GAAG,8CAAyD,CAAC","sourcesContent":["/**\n * Test addresses and constants for effect-solana test suite\n */\n\nimport type { Address, Signature } from \"@solana/kit\";\n\n/**\n * Test address - System Program\n */\nexport const TEST_ADDRESS = \"11111111111111111111111111111111\" as Address;\n\n/**\n * Test address 2 - Token Program\n */\nexport const TEST_ADDRESS_2 = \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\" as Address;\n\n/**\n * Test signature\n */\nexport const TEST_SIGNATURE =\n \"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW\" as Signature;\n\n/**\n * Test cluster for mock services\n */\nexport const TEST_CLUSTER = \"devnet\" as const;\n\n/**\n * Test mint address (USDC on devnet)\n */\nexport const TEST_MINT = \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\" as Address;\n\n/**\n * Test wallet address\n */\nexport const TEST_WALLET = \"DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK\" as Address;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing-kit/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAchC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAA2B,EAC3B,WAAsB,EAChB,EAAE;IACR,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAE,KAAK,CAAC,KAA0B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAO,MAA2B,EAAK,EAAE;IACjE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAO,MAA2B,EAAK,EAAE;IAClE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC;AAiCF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAA6B,EAC7B,QAAW,EACX,MAAkB,EAClB,UAA4B,EACZ,EAAE;IAClB,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAO,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing-kit/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAchC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,IAA2B,EAC3B,WAAsB,EAChB,EAAE;IACR,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAE,KAAK,CAAC,KAA0B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAO,MAA2B,EAAK,EAAE;IACjE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAO,MAA2B,EAAK,EAAE;IAClE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC;AAiCF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAA6B,EAC7B,QAAW,EACX,MAAkB,EAClB,UAA4B,EACZ,EAAE;IAClB,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAO,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC","sourcesContent":["/**\n * Test assertion helpers for effect-solana\n *\n * Provides type-safe utilities for asserting on Effect types in tests.\n */\n\nimport type { Context } from \"effect\";\nimport { Cause, Either, Exit, Layer, Option } from \"effect\";\nimport { expect } from \"vitest\";\n\n/**\n * Assert an Exit is a failure with a specific tagged error\n *\n * @param exit - The Exit to assert on\n * @param expectedTag - The expected error tag\n *\n * @example\n * ```typescript\n * const exit = yield* Effect.exit(someEffect);\n * expectTaggedFailure(exit, \"RpcError\");\n * ```\n */\nexport const expectTaggedFailure = <E extends { _tag: string }>(\n exit: Exit.Exit<unknown, E>,\n expectedTag: E[\"_tag\"]\n): void => {\n expect(Exit.isFailure(exit)).toBe(true);\n if (Exit.isFailure(exit)) {\n const error = Cause.failureOption(exit.cause);\n expect(Option.isSome(error)).toBe(true);\n if (Option.isSome(error)) {\n expect((error.value as { _tag: string })._tag).toBe(expectedTag);\n }\n }\n};\n\n/**\n * Type-safe assertion for Either.Left - returns the left value for further assertions\n *\n * @param either - The Either to assert on\n * @returns The left value for further assertions\n * @throws Error if Either is Right\n *\n * @example\n * ```typescript\n * const result = Either.left(new RpcError({ ... }));\n * const error = assertLeft(result);\n * expect(error._tag).toBe(\"RpcError\");\n * ```\n */\nexport const assertLeft = <L, R>(either: Either.Either<R, L>): L => {\n expect(Either.isLeft(either)).toBe(true);\n if (!Either.isLeft(either)) {\n throw new Error(\"Expected Left\");\n }\n return either.left;\n};\n\n/**\n * Type-safe assertion for Either.Right - returns the right value for further assertions\n *\n * @param either - The Either to assert on\n * @returns The right value for further assertions\n * @throws Error if Either is Left\n *\n * @example\n * ```typescript\n * const result = Either.right(1000000000n);\n * const value = assertRight(result);\n * expect(value).toBe(1000000000n);\n * ```\n */\nexport const assertRight = <L, R>(either: Either.Either<R, L>): R => {\n expect(Either.isRight(either)).toBe(true);\n if (!Either.isRight(either)) {\n throw new Error(\"Expected Right\");\n }\n return either.right;\n};\n\n/**\n * Generic factory for creating mock service layers.\n * Eliminates boilerplate by abstracting the common pattern of:\n * 1. Merging default config with overrides\n * 2. Mapping merged config to service shape\n * 3. Creating a Layer.succeed\n *\n * @param ServiceTag - The Effect Context.Tag for the service\n * @param defaults - Default configuration object\n * @param config - Partial configuration to override defaults\n * @param mapToShape - Function that maps merged config to the service shape\n * @returns A Layer providing the service\n *\n * @example\n * ```typescript\n * export const makeMockBalanceServiceLayer = (\n * config: MockBalanceServiceConfig = {}\n * ): Layer.Layer<BalanceService> => {\n * const defaults = {\n * getSolBalance: () => Effect.succeed(1000000000n),\n * };\n *\n * return makeMockServiceLayer(\n * BalanceService,\n * defaults,\n * config,\n * (merged) => merged\n * );\n * };\n * ```\n */\nexport const makeMockServiceLayer = <I, S, C extends Record<string, unknown>>(\n ServiceTag: Context.Tag<I, S>,\n defaults: C,\n config: Partial<C>,\n mapToShape: (merged: C) => S\n): Layer.Layer<I> => {\n const merged = { ...defaults, ...config } as C;\n const serviceShape = mapToShape(merged);\n return Layer.succeed(ServiceTag, ServiceTag.of(serviceShape));\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-kit/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAElG,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAIhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing-kit/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAElG,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAIhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * Testing Kit for effect-solana\n *\n * This module exports mock builders and test utilities for downstream\n * consumers to easily test code that depends on effect-solana services.\n *\n * @example\n * ```typescript\n * import { makeEffectSolanaTestLayer } from \"@prb/effect-solana/testing-kit\";\n *\n * const testLayer = makeEffectSolanaTestLayer({\n * balanceService: {\n * getSolBalance: () => Effect.succeed(1000000000n as Lamports),\n * },\n * });\n * ```\n */\n\n// Fixtures\nexport {\n TEST_ADDRESS,\n TEST_ADDRESS_2,\n TEST_CLUSTER,\n TEST_MINT,\n TEST_SIGNATURE,\n TEST_WALLET,\n} from \"./_fixtures/addresses.js\";\n\n// Test helpers\nexport { assertLeft, assertRight, expectTaggedFailure, makeMockServiceLayer } from \"./helpers.js\";\nexport type { MockBalanceServiceConfig } from \"./mock-balance-service.js\";\nexport { makeMockBalanceServiceLayer } from \"./mock-balance-service.js\";\nexport type { MockPdaServiceConfig } from \"./mock-pda-service.js\";\nexport { makeMockPdaServiceLayer } from \"./mock-pda-service.js\";\n// Mock layer builders\nexport type { MockRpcServiceConfig } from \"./mock-rpc-service.js\";\nexport { makeMockRpc, makeMockRpcServiceLayer } from \"./mock-rpc-service.js\";\nexport type { MockSignerServiceConfig } from \"./mock-signer-service.js\";\nexport { makeMockSignerServiceLayer } from \"./mock-signer-service.js\";\nexport type { MockTokenServiceConfig } from \"./mock-token-service.js\";\nexport { makeMockTokenServiceLayer } from \"./mock-token-service.js\";\nexport type { MockTransactionServiceConfig } from \"./mock-transaction-service.js\";\nexport { makeMockTransactionServiceLayer } from \"./mock-transaction-service.js\";\n\n// Test layer composer\nexport type { TestLayerConfig } from \"./test-layer.js\";\nexport { makeEffectSolanaTestLayer } from \"./test-layer.js\";\n"]}
@@ -1,8 +1,8 @@
1
1
  import type { Address, Lamports } from "@solana/kit";
2
2
  import type { Layer } from "effect";
3
3
  import { Effect, Stream } from "effect";
4
- import { BalanceService } from "../balance/index.js";
5
- import type { RpcError } from "../core/errors/index.js";
4
+ import { BalanceService } from "#src/balance/index.js";
5
+ import type { RpcError } from "#src/core/errors/index.js";
6
6
  export type MockBalanceServiceConfig = {
7
7
  getSolBalance?: (address: Address) => Effect.Effect<Lamports, RpcError>;
8
8
  hasSufficientBalance?: (params: {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-balance-service.d.ts","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAS3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxE,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC;KACpB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;CACxD,CAAC;AAiCF,eAAO,MAAM,2BAA2B,GACtC,SAAQ,wBAA6B,KACpC,KAAK,CAAC,KAAK,CAAC,cAAc,CACoD,CAAC"}
1
+ {"version":3,"file":"mock-balance-service.d.ts","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAS1D,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxE,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC;KACpB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;CACxD,CAAC;AAiCF,eAAO,MAAM,2BAA2B,GACtC,SAAQ,wBAA6B,KACpC,KAAK,CAAC,KAAK,CAAC,cAAc,CACoD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Effect, Stream } from "effect";
2
- import { BalanceService } from "../balance/index.js";
2
+ import { BalanceService } from "#src/balance/index.js";
3
3
  import { makeMockServiceLayer } from "./helpers.js";
4
4
  const defaultConfig = {
5
5
  getSolBalance: () => Effect.succeed(1000000000n),
@@ -1 +1 @@
1
- {"version":3,"file":"mock-balance-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAoBpD,MAAM,aAAa,GAAuC;IACxD,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAuB,CAAC;IAC5D,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAuB,CAAC,CAAC;CACzE,CAAC;AA2BF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAmC,EAAE,EACR,EAAE,CAC/B,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"mock-balance-service.js","sourceRoot":"","sources":["../../src/testing-kit/mock-balance-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAoBpD,MAAM,aAAa,GAAuC;IACxD,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAuB,CAAC;IAC5D,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAChD,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAuB,CAAC,CAAC;CACzE,CAAC;AA2BF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAmC,EAAE,EACR,EAAE,CAC/B,oBAAoB,CAAC,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import type { Address, Lamports } from \"@solana/kit\";\nimport type { Layer } from \"effect\";\nimport { Effect, Stream } from \"effect\";\nimport { BalanceService } from \"#src/balance/index.js\";\nimport type { RpcError } from \"#src/core/errors/index.js\";\nimport { makeMockServiceLayer } from \"./helpers.js\";\n\n/**\n * Configuration for the mock BalanceService\n *\n * All methods are optional - sensible defaults are provided.\n * Override specific methods to customize mock behavior for your tests.\n */\nexport type MockBalanceServiceConfig = {\n getSolBalance?: (address: Address) => Effect.Effect<Lamports, RpcError>;\n hasSufficientBalance?: (params: {\n address: Address;\n required: Lamports;\n }) => Effect.Effect<boolean, RpcError>;\n watchBalance?: (params: {\n address: Address;\n pollingInterval?: number;\n }) => Effect.Effect<Stream.Stream<Lamports, RpcError>>;\n};\n\nconst defaultConfig: Required<MockBalanceServiceConfig> = {\n getSolBalance: () => Effect.succeed(1000000000n as Lamports), // 1 SOL\n hasSufficientBalance: () => Effect.succeed(true),\n watchBalance: () => Effect.succeed(Stream.make(1000000000n as Lamports)),\n};\n\n/**\n * Creates a mock BalanceService layer for testing\n *\n * @param config - Optional configuration to override default mock behaviors\n *\n * @example\n * ```typescript\n * // Basic usage with defaults\n * const layer = makeMockBalanceServiceLayer();\n *\n * // Override specific methods\n * const layer = makeMockBalanceServiceLayer({\n * getSolBalance: () => Effect.succeed(5000000000n as Lamports), // 5 SOL\n * hasSufficientBalance: () => Effect.succeed(false),\n * });\n *\n * // Use in tests\n * Effect.gen(function* () {\n * const balanceService = yield* BalanceService;\n * const balance = yield* balanceService.getSolBalance(address);\n * }).pipe(\n * Effect.provide(layer)\n * );\n * ```\n */\nexport const makeMockBalanceServiceLayer = (\n config: MockBalanceServiceConfig = {}\n): Layer.Layer<BalanceService> =>\n makeMockServiceLayer(BalanceService, defaultConfig, config, (merged) => merged);\n"]}
@@ -1,8 +1,8 @@
1
1
  import type { Address, ProgramDerivedAddressBump } from "@solana/addresses";
2
2
  import type { Layer } from "effect";
3
3
  import { Effect } from "effect";
4
- import type { PdaSeed, ProgramDerivedAddress } from "../pda/index.js";
5
- import { PdaService } from "../pda/index.js";
4
+ import type { PdaSeed, ProgramDerivedAddress } from "#src/pda/index.js";
5
+ import { PdaService } from "#src/pda/index.js";
6
6
  export type MockPdaServiceConfig = {
7
7
  derive?: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<ProgramDerivedAddress>;
8
8
  deriveAddress?: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<Address>;