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

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 (70) hide show
  1. package/README.md +156 -177
  2. package/dist/core/errors/predicates.d.ts +0 -11
  3. package/dist/core/errors/predicates.d.ts.map +1 -1
  4. package/dist/core/errors/predicates.js +0 -5
  5. package/dist/core/errors/predicates.js.map +1 -1
  6. package/dist/core/errors/transaction.d.ts +20 -1
  7. package/dist/core/errors/transaction.d.ts.map +1 -1
  8. package/dist/core/errors/transaction.js +60 -1
  9. package/dist/core/errors/transaction.js.map +1 -1
  10. package/dist/core/errors/wallet.d.ts +0 -7
  11. package/dist/core/errors/wallet.d.ts.map +1 -1
  12. package/dist/core/errors/wallet.js +0 -4
  13. package/dist/core/errors/wallet.js.map +1 -1
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/pda/index.d.ts +1 -0
  19. package/dist/pda/index.d.ts.map +1 -1
  20. package/dist/pda/index.js +1 -0
  21. package/dist/pda/index.js.map +1 -1
  22. package/dist/pda/service.d.ts +4 -3
  23. package/dist/pda/service.d.ts.map +1 -1
  24. package/dist/pda/service.js +12 -4
  25. package/dist/pda/service.js.map +1 -1
  26. package/dist/pda/types.d.ts +12 -0
  27. package/dist/pda/types.d.ts.map +1 -0
  28. package/dist/pda/types.js +8 -0
  29. package/dist/pda/types.js.map +1 -0
  30. package/dist/presets/layers.d.ts +3 -2
  31. package/dist/presets/layers.d.ts.map +1 -1
  32. package/dist/presets/layers.js +2 -1
  33. package/dist/presets/layers.js.map +1 -1
  34. package/dist/program/index.d.ts +3 -0
  35. package/dist/program/index.d.ts.map +1 -0
  36. package/dist/program/index.js +3 -0
  37. package/dist/program/index.js.map +1 -0
  38. package/dist/program/service.d.ts +19 -0
  39. package/dist/program/service.d.ts.map +1 -0
  40. package/dist/program/service.js +95 -0
  41. package/dist/program/service.js.map +1 -0
  42. package/dist/program/types.d.ts +34 -0
  43. package/dist/program/types.d.ts.map +1 -0
  44. package/dist/program/types.js +32 -0
  45. package/dist/program/types.js.map +1 -0
  46. package/dist/rpc/service.d.ts.map +1 -1
  47. package/dist/rpc/service.js +6 -11
  48. package/dist/rpc/service.js.map +1 -1
  49. package/dist/telemetry/tracer.d.ts +3 -0
  50. package/dist/telemetry/tracer.d.ts.map +1 -1
  51. package/dist/telemetry/tracer.js +3 -0
  52. package/dist/telemetry/tracer.js.map +1 -1
  53. package/dist/token/service.d.ts +2 -2
  54. package/dist/token/service.d.ts.map +1 -1
  55. package/dist/token/service.js +30 -17
  56. package/dist/token/service.js.map +1 -1
  57. package/dist/tx/service.d.ts +4 -2
  58. package/dist/tx/service.d.ts.map +1 -1
  59. package/dist/tx/service.js +12 -2
  60. package/dist/tx/service.js.map +1 -1
  61. package/dist/web3.js/layers.d.ts +2 -1
  62. package/dist/web3.js/layers.d.ts.map +1 -1
  63. package/dist/web3.js/layers.js.map +1 -1
  64. package/dist/web3.js/legacy-signer.d.ts.map +1 -1
  65. package/dist/web3.js/legacy-signer.js +14 -2
  66. package/dist/web3.js/legacy-signer.js.map +1 -1
  67. package/dist/web3.js/transaction-bridge.d.ts.map +1 -1
  68. package/dist/web3.js/transaction-bridge.js +4 -2
  69. package/dist/web3.js/transaction-bridge.js.map +1 -1
  70. package/package.json +14 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/core/errors/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;AAEhC,qBAAa,uBAAwB,SAAQ,4BAK5C;CAAG;;;;;;;AAEJ,qBAAa,cAAe,SAAQ,mBAGlC;CAAG;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKtC;CAAG"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/core/errors/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;AAEhC,qBAAa,uBAAwB,SAAQ,4BAK5C;CAAG;;;;;;;AAEJ,qBAAa,cAAe,SAAQ,mBAGlC;CAAG"}
@@ -8,8 +8,4 @@ export class SignatureError extends Schema.TaggedError()("SignatureError", {
8
8
  message: Schema.String,
9
9
  }) {
10
10
  }
11
- export class UserRejectedError extends Schema.TaggedError()("UserRejectedError", {
12
- message: Schema.String,
13
- }) {
14
- }
15
11
  //# sourceMappingURL=wallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/core/errors/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,mBAAmB,EACnB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/core/errors/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB;IACE,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,WAAW,EAAkB,CAAC,gBAAgB,EAAE;IACzF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./constants/index.js";
3
3
  export * from "./core/index.js";
4
4
  export * from "./pda/index.js";
5
5
  export * from "./presets/index.js";
6
+ export * from "./program/index.js";
6
7
  export * from "./react-hooks/index.js";
7
8
  export * from "./rpc/index.js";
8
9
  export * from "./signer/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export * from "./constants/index.js";
3
3
  export * from "./core/index.js";
4
4
  export * from "./pda/index.js";
5
5
  export * from "./presets/index.js";
6
+ export * from "./program/index.js";
6
7
  export * from "./react-hooks/index.js";
7
8
  export * from "./rpc/index.js";
8
9
  export * from "./signer/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./service.js";
2
+ export * from "./types.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pda/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pda/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
package/dist/pda/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./service.js";
2
+ export * from "./types.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pda/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pda/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { Address, ProgramDerivedAddressBump } from "@solana/addresses";
2
2
  import { Context, Effect, Layer } from "effect";
3
+ import { PdaDerivationError } from "./types.js";
3
4
  export type PdaSeed = Uint8Array | Address;
4
5
  export type ProgramDerivedAddress = readonly [Address, ProgramDerivedAddressBump];
5
6
  export type PdaServiceShape = {
6
- readonly derive: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<ProgramDerivedAddress>;
7
- readonly deriveAddress: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<Address>;
8
- readonly deriveBump: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<ProgramDerivedAddressBump>;
7
+ readonly derive: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<ProgramDerivedAddress, PdaDerivationError>;
8
+ readonly deriveAddress: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<Address, PdaDerivationError>;
9
+ readonly deriveBump: (seeds: readonly PdaSeed[], programAddress: Address) => Effect.Effect<ProgramDerivedAddressBump, PdaDerivationError>;
9
10
  };
10
11
  declare const PdaService_base: Context.TagClass<PdaService, "esolana/PdaService", PdaServiceShape>;
11
12
  export declare class PdaService extends PdaService_base {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/pda/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGhD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;AAElF,MAAM,MAAM,eAAe,GAAG;IAM5B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAK1C,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAK5B,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;CAC/C,CAAC;;AAEF,qBAAa,UAAW,SAAQ,eAAgE;CAAG;AAoDnG,eAAO,MAAM,cAAc,uCAA0D,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/pda/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;AAElF,MAAM,MAAM,eAAe,GAAG;IAM5B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;IAK9D,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAKhD,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,cAAc,EAAE,OAAO,KACpB,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;CACnE,CAAC;;AAEF,qBAAa,UAAW,SAAQ,eAAgE;CAAG;AA2DnG,eAAO,MAAM,cAAc,uCAA0D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { getAddressEncoder, getProgramDerivedAddress } from "@solana/addresses";
2
2
  import { Context, Effect, Layer } from "effect";
3
3
  import { SpanNames } from "../telemetry/index.js";
4
+ import { PdaDerivationError } from "./types.js";
4
5
  export class PdaService extends Context.Tag("esolana/PdaService")() {
5
6
  }
6
7
  const toSeedBytes = (seed) => {
@@ -15,10 +16,17 @@ const makeService = () => {
15
16
  const service = {
16
17
  derive: (seeds, programAddress) => Effect.gen(function* () {
17
18
  const seedBytes = seeds.map(toSeedBytes);
18
- return yield* Effect.promise(() => getProgramDerivedAddress({
19
- programAddress,
20
- seeds: seedBytes,
21
- }));
19
+ return yield* Effect.tryPromise({
20
+ catch: (cause) => new PdaDerivationError({
21
+ cause,
22
+ message: `Failed to derive PDA for program ${programAddress}`,
23
+ programAddress,
24
+ }),
25
+ try: () => getProgramDerivedAddress({
26
+ programAddress,
27
+ seeds: seedBytes,
28
+ }),
29
+ });
22
30
  }).pipe(Effect.withSpan(SpanNames.PDA_DERIVE, {
23
31
  attributes: {
24
32
  programAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/pda/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAkCrD,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAA+B;CAAG;AAKnG,MAAM,WAAW,GAAG,CAAC,IAAa,EAAc,EAAE;IAChD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,GAAoB,EAAE;IACxC,MAAM,OAAO,GAAoB;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAChC,wBAAwB,CAAC;gBACvB,cAAc;gBACd,KAAK,EAAE,SAAS;aACjB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;YACpC,UAAU,EAAE;gBACV,cAAc;gBACd,SAAS,EAAE,KAAK,CAAC,MAAM;aACxB;SACF,CAAC,CACH;QAEH,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CACvC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAClF;QAEH,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CACpC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAC9B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAC/E;KACJ,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/pda/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkChD,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAA+B;CAAG;AAKnG,MAAM,WAAW,GAAG,CAAC,IAAa,EAAc,EAAE;IAChD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,GAAoB,EAAE;IACxC,MAAM,OAAO,GAAoB;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,kBAAkB,CAAC;oBACrB,KAAK;oBACL,OAAO,EAAE,oCAAoC,cAAc,EAAE;oBAC7D,cAAc;iBACf,CAAC;gBACJ,GAAG,EAAE,GAAG,EAAE,CACR,wBAAwB,CAAC;oBACvB,cAAc;oBACd,KAAK,EAAE,SAAS;iBACjB,CAAC;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;YACpC,UAAU,EAAE;gBACV,cAAc;gBACd,SAAS,EAAE,KAAK,CAAC,MAAM;aACxB;SACF,CAAC,CACH;QAEH,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CACvC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAClF;QAEH,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CACpC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAC9B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAC/E;KACJ,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Schema } from "effect";
2
+ declare const PdaDerivationError_base: Schema.TaggedErrorClass<PdaDerivationError, "PdaDerivationError", {
3
+ readonly _tag: Schema.tag<"PdaDerivationError">;
4
+ } & {
5
+ cause: typeof Schema.Unknown;
6
+ message: typeof Schema.String;
7
+ programAddress: Schema.optional<typeof Schema.String>;
8
+ }>;
9
+ export declare class PdaDerivationError extends PdaDerivationError_base {
10
+ }
11
+ export {};
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pda/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;AAEhC,qBAAa,kBAAmB,SAAQ,uBAOvC;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ export class PdaDerivationError extends Schema.TaggedError()("PdaDerivationError", {
3
+ cause: Schema.Unknown,
4
+ message: Schema.String,
5
+ programAddress: Schema.optional(Schema.String),
6
+ }) {
7
+ }
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pda/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAC9E,oBAAoB,EACpB;IACE,KAAK,EAAE,MAAM,CAAC,OAAO;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAC/C,CACF;CAAG"}
@@ -1,6 +1,7 @@
1
1
  import { Layer } from "effect";
2
2
  import type { BalanceService } from "../balance/index.js";
3
3
  import type { PdaService } from "../pda/index.js";
4
+ import type { ProgramWriter } from "../program/index.js";
4
5
  import type { RpcService } from "../rpc/index.js";
5
6
  import type { SignerService, WalletAdapter } from "../signer/index.js";
6
7
  import type { TokenService } from "../token/index.js";
@@ -12,7 +13,7 @@ export type SolanaClusterConfig = {
12
13
  readonly wsUrl?: string;
13
14
  };
14
15
  export declare function makeRpcLayer(config: SolanaClusterConfig): Layer.Layer<RpcService>;
15
- export declare const effectSolanaServices: Layer.Layer<BalanceService | PdaService | TokenService | TransactionService, never, RpcService | SignerService>;
16
+ export declare const effectSolanaServices: Layer.Layer<BalanceService | PdaService | ProgramWriter | TokenService | TransactionService, never, RpcService | SignerService>;
16
17
  export declare function makeSignerLayer(getAdapter: () => WalletAdapter): Layer.Layer<SignerService>;
17
- export declare function makeSolanaLayer(config: SolanaClusterConfig, getAdapter: () => WalletAdapter): Layer.Layer<RpcService | SignerService | BalanceService | TokenService | TransactionService | PdaService>;
18
+ export declare function makeSolanaLayer(config: SolanaClusterConfig, getAdapter: () => WalletAdapter): Layer.Layer<RpcService | SignerService | BalanceService | TokenService | TransactionService | PdaService | ProgramWriter>;
18
19
  //# sourceMappingURL=layers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AAOnE,MAAM,MAAM,mBAAmB,GAAG;IAIhC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAK1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAyCF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAWjF;AAsBD,eAAO,MAAM,oBAAoB,iHAKhC,CAAC;AA4BF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAE3F;AAiCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,aAAa,GAC9B,KAAK,CAAC,KAAK,CACZ,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,GAAG,UAAU,CAC7F,CAOA"}
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AAOnE,MAAM,MAAM,mBAAmB,GAAG;IAIhC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAK1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAyCF,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAWjF;AAsBD,eAAO,MAAM,oBAAoB,iIAMhC,CAAC;AA4BF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAE3F;AAiCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,aAAa,GAC9B,KAAK,CAAC,KAAK,CACV,UAAU,GACV,aAAa,GACb,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,UAAU,GACV,aAAa,CAChB,CAOA"}
@@ -1,6 +1,7 @@
1
1
  import { Layer } from "effect";
2
2
  import { BalanceServiceLive } from "../balance/index.js";
3
3
  import { PdaServiceLive } from "../pda/index.js";
4
+ import { ProgramWriterLive } from "../program/index.js";
4
5
  import { makeRpcServiceLive } from "../rpc/index.js";
5
6
  import { makeSignerServiceFromAdapter } from "../signer/index.js";
6
7
  import { TokenServiceLive } from "../token/index.js";
@@ -27,7 +28,7 @@ export function makeRpcLayer(config) {
27
28
  };
28
29
  return makeRpcServiceLive(clusterConfig);
29
30
  }
30
- export const effectSolanaServices = Layer.mergeAll(BalanceServiceLive, TokenServiceLive, TransactionServiceLive, PdaServiceLive);
31
+ export const effectSolanaServices = Layer.mergeAll(BalanceServiceLive, TokenServiceLive, TransactionServiceLive, PdaServiceLive, ProgramWriterLive);
31
32
  export function makeSignerLayer(getAdapter) {
32
33
  return makeSignerServiceFromAdapter(getAdapter);
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA4B3D,MAAM,gBAAgB,GAA4B;IAChD,MAAM,EAAE,+BAA+B;IACvC,QAAQ,EAAE,uBAAuB;IACjC,cAAc,EAAE,qCAAqC;IACrD,OAAO,EAAE,gCAAgC;CAC1C,CAAC;AAKF,MAAM,eAAe,GAAwC;IAC3D,MAAM,EAAE,6BAA6B;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,cAAc,EAAE,mCAAmC;IACnD,OAAO,EAAE,8BAA8B;CACxC,CAAC;AAqBF,MAAM,UAAU,YAAY,CAAC,MAA2B;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAkB;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;IAEF,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC;AAsBD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAChD,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,CACf,CAAC;AA4BF,MAAM,UAAU,eAAe,CAAC,UAA+B;IAC7D,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAiCD,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,UAA+B;IAI/B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/presets/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA4B3D,MAAM,gBAAgB,GAA4B;IAChD,MAAM,EAAE,+BAA+B;IACvC,QAAQ,EAAE,uBAAuB;IACjC,cAAc,EAAE,qCAAqC;IACrD,OAAO,EAAE,gCAAgC;CAC1C,CAAC;AAKF,MAAM,eAAe,GAAwC;IAC3D,MAAM,EAAE,6BAA6B;IACrC,QAAQ,EAAE,qBAAqB;IAC/B,cAAc,EAAE,mCAAmC;IACnD,OAAO,EAAE,8BAA8B;CACxC,CAAC;AAqBF,MAAM,UAAU,YAAY,CAAC,MAA2B;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAkB;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;IAEF,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC;AAsBD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAChD,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,CAClB,CAAC;AA4BF,MAAM,UAAU,eAAe,CAAC,UAA+B;IAC7D,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAiCD,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,UAA+B;IAU/B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,YAAY,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./service.js";
2
+ export * from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./service.js";
2
+ export * from "./types.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Idl } from "@coral-xyz/anchor";
2
+ import { Program } from "@coral-xyz/anchor";
3
+ import type { Address } from "@solana/addresses";
4
+ import type { Instruction } from "@solana/instructions";
5
+ import { Context, Effect, Layer } from "effect";
6
+ import { RpcService } from "../rpc/index.js";
7
+ import type { BuildInstructionParams, CreateProgramParams } from "./types.js";
8
+ import { InstructionBuildError, InstructionNotFoundError, ProgramCreationError } from "./types.js";
9
+ export type ProgramWriterShape = {
10
+ readonly createProgram: <T extends Idl>(params: CreateProgramParams<T>) => Effect.Effect<Program<T>, ProgramCreationError>;
11
+ readonly buildInstruction: <T extends Idl>(program: Program<T>, params: BuildInstructionParams) => Effect.Effect<Instruction, InstructionNotFoundError | InstructionBuildError>;
12
+ readonly build: <T extends Idl>(idl: T, params: BuildInstructionParams, programId?: Address) => Effect.Effect<Instruction, ProgramCreationError | InstructionNotFoundError | InstructionBuildError>;
13
+ };
14
+ declare const ProgramWriter_base: Context.TagClass<ProgramWriter, "esolana/ProgramWriter", ProgramWriterShape>;
15
+ export declare class ProgramWriter extends ProgramWriter_base {
16
+ }
17
+ export declare const ProgramWriterLive: Layer.Layer<ProgramWriter, never, RpcService>;
18
+ export {};
19
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/program/service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAe,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAgFnG,MAAM,MAAM,kBAAkB,GAAG;IAO/B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,GAAG,EACpC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAerD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,SAAS,GAAG,EACvC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,sBAAsB,KAC3B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,wBAAwB,GAAG,qBAAqB,CAAC,CAAC;IAYlF,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,GAAG,EAC5B,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,OAAO,KAChB,MAAM,CAAC,MAAM,CAChB,WAAW,EACX,oBAAoB,GAAG,wBAAwB,GAAG,qBAAqB,CACxE,CAAC;CACH,CAAC;;AAOF,qBAAa,aAAc,SAAQ,kBAGhC;CAAG;AAWN,eAAO,MAAM,iBAAiB,+CAqF7B,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { Program } from "@coral-xyz/anchor";
2
+ import { AccountRole } from "@solana/instructions";
3
+ import { PublicKey } from "@solana/web3.js";
4
+ import BN from "bn.js";
5
+ import { Context, Effect, Layer } from "effect";
6
+ import { RpcService } from "../rpc/index.js";
7
+ import { SpanNames } from "../telemetry/index.js";
8
+ import { InstructionBuildError, InstructionNotFoundError, ProgramCreationError } from "./types.js";
9
+ function toPublicKey(address) {
10
+ return new PublicKey(address);
11
+ }
12
+ function toAnchorAccounts(accounts) {
13
+ const result = {};
14
+ for (const [key, value] of Object.entries(accounts)) {
15
+ result[key] = toPublicKey(value);
16
+ }
17
+ return result;
18
+ }
19
+ function toBN(value) {
20
+ return new BN(value.toString());
21
+ }
22
+ function toAnchorArgs(args) {
23
+ return args.map((arg) => {
24
+ if (typeof arg === "bigint") {
25
+ return toBN(arg);
26
+ }
27
+ if (typeof arg === "number" && Number.isInteger(arg)) {
28
+ return toBN(arg);
29
+ }
30
+ return arg;
31
+ });
32
+ }
33
+ function getAccountRole(isSigner, isWritable) {
34
+ if (isSigner) {
35
+ return isWritable ? AccountRole.WRITABLE_SIGNER : AccountRole.READONLY_SIGNER;
36
+ }
37
+ return isWritable ? AccountRole.WRITABLE : AccountRole.READONLY;
38
+ }
39
+ function toKitInstruction(anchorIx) {
40
+ return {
41
+ accounts: anchorIx.keys.map((key) => ({
42
+ address: key.pubkey.toBase58(),
43
+ role: getAccountRole(key.isSigner, key.isWritable),
44
+ })),
45
+ data: new Uint8Array(anchorIx.data),
46
+ programAddress: anchorIx.programId.toBase58(),
47
+ };
48
+ }
49
+ export class ProgramWriter extends Context.Tag("esolana/ProgramWriter")() {
50
+ }
51
+ export const ProgramWriterLive = Layer.effect(ProgramWriter, Effect.gen(function* () {
52
+ const rpcService = yield* RpcService;
53
+ const service = {
54
+ build: (idl, params, programId) => Effect.gen(function* () {
55
+ const program = yield* service.createProgram({ idl, programId });
56
+ return yield* service.buildInstruction(program, params);
57
+ }).pipe(Effect.withSpan(SpanNames.PROGRAM_BUILD)),
58
+ buildInstruction: (program, params) => Effect.gen(function* () {
59
+ const { method, args, accounts } = params;
60
+ const methodFn = program.methods[method];
61
+ if (!methodFn || typeof methodFn !== "function") {
62
+ return yield* Effect.fail(new InstructionNotFoundError(method, program.idl.metadata?.name ?? "unknown"));
63
+ }
64
+ const anchorArgs = toAnchorArgs(args);
65
+ const anchorAccounts = toAnchorAccounts(accounts);
66
+ const builder = methodFn(...anchorArgs);
67
+ const withAccounts = builder.accountsPartial(anchorAccounts);
68
+ const anchorInstruction = yield* Effect.tryPromise({
69
+ catch: (error) => new InstructionBuildError(method, error),
70
+ try: () => withAccounts.instruction(),
71
+ });
72
+ return toKitInstruction(anchorInstruction);
73
+ }).pipe(Effect.withSpan(SpanNames.PROGRAM_BUILD_INSTRUCTION, {
74
+ attributes: { method: params.method },
75
+ })),
76
+ createProgram: (params) => Effect.gen(function* () {
77
+ const { idl, programId } = params;
78
+ const rpc = yield* rpcService.getRpc();
79
+ const idlWithAddress = programId ? { ...idl, address: programId } : idl;
80
+ return yield* Effect.try({
81
+ catch: (error) => new ProgramCreationError(error),
82
+ try: () => new Program(idlWithAddress, {
83
+ connection: {
84
+ getAccountInfo: (pubkey) => rpc
85
+ .getAccountInfo(pubkey.toBase58(), { encoding: "base64" })
86
+ .send(),
87
+ getLatestBlockhash: () => rpc.getLatestBlockhash().send(),
88
+ },
89
+ }),
90
+ });
91
+ }).pipe(Effect.withSpan(SpanNames.PROGRAM_CREATE)),
92
+ };
93
+ return ProgramWriter.of(service);
94
+ }));
95
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/program/service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AASnG,SAAS,WAAW,CAAC,OAAyB;IAC5C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAKD,SAAS,gBAAgB,CAAC,QAAqB;IAC7C,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAKD,SAAS,IAAI,CAAC,KAAsB;IAClC,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClC,CAAC;AAMD,SAAS,YAAY,CAAC,IAAwB;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,SAAS,cAAc,CAAC,QAAiB,EAAE,UAAmB;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC;IAChF,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;AAClE,CAAC;AAKD,SAAS,gBAAgB,CAAC,QAAgC;IACxD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAa;YACzC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC;SACnD,CAAC,CAAC;QACH,IAAI,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAa;KACzD,CAAC;AACJ,CAAC;AAiED,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAGpE;CAAG;AAWN,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAC3C,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC;IAErC,MAAM,OAAO,GAAuB;QAClC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAEnD,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAG1C,MAAM,QAAQ,GAAI,OAAO,CAAC,OAAmC,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,CAC9E,CAAC;YACJ,CAAC;YAGD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAGtC,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAGlD,MAAM,OAAO,GAAI,QAAkD,CAAC,GAAG,UAAU,CAAC,CAAC;YACnF,MAAM,YAAY,GAChB,OACD,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAElC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACjD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC;gBAC1D,GAAG,EAAE,GAAG,EAAE,CAEN,YACD,CAAC,WAAW,EAAE;aAClB,CAAC,CAAC;YAGH,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE;YACnD,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SACtC,CAAC,CACH;QACH,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAGlC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAGvC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,SAAmB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAElF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC;gBACjD,GAAG,EAAE,GAAG,EAAE,CAGR,IAAI,OAAO,CACT,cAAqB,EACrB;oBACE,UAAU,EAAE;wBACV,cAAc,EAAE,CAAC,MAAiB,EAAE,EAAE,CACpC,GAAG;6BACA,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAa,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;6BACpE,IAAI,EAAE;wBAEX,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE;qBACV;iBAChB,CACK;aAC7C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;KACrD,CAAC;IAEF,OAAO,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { Address } from "@solana/addresses";
2
+ import type { Instruction } from "@solana/instructions";
3
+ export type { Idl, Program } from "@coral-xyz/anchor";
4
+ export type AccountsMap = Record<string, Address | string>;
5
+ export type CreateProgramParams<T extends import("@coral-xyz/anchor").Idl = import("@coral-xyz/anchor").Idl> = {
6
+ readonly idl: T;
7
+ readonly programId?: Address;
8
+ };
9
+ export type BuildInstructionParams<TArgs extends readonly unknown[] = readonly unknown[]> = {
10
+ readonly method: string;
11
+ readonly args: TArgs;
12
+ readonly accounts: AccountsMap;
13
+ };
14
+ export type BuildInstructionResult = {
15
+ readonly instruction: Instruction;
16
+ };
17
+ export declare class InstructionNotFoundError extends Error {
18
+ readonly _tag = "InstructionNotFoundError";
19
+ readonly method: string;
20
+ readonly idlName: string;
21
+ constructor(method: string, idlName: string);
22
+ }
23
+ export declare class ProgramCreationError extends Error {
24
+ readonly _tag = "ProgramCreationError";
25
+ readonly cause: unknown;
26
+ constructor(cause: unknown, message?: string);
27
+ }
28
+ export declare class InstructionBuildError extends Error {
29
+ readonly _tag = "InstructionBuildError";
30
+ readonly method: string;
31
+ readonly cause: unknown;
32
+ constructor(method: string, cause: unknown);
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/program/types.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAUtD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAK3D,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,OAAO,mBAAmB,EAAE,GAAG,GAAG,OAAO,mBAAmB,EAAE,GAAG,IACzE;IAEF,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAKF,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,IAAI;IAE1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC,CAAC;AAKF,MAAM,MAAM,sBAAsB,GAAG;IAEnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AASF,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM5C;AAKD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,0BAA0B;IACvC,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAK7C;AAKD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAM3C"}
@@ -0,0 +1,32 @@
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
+ }
11
+ }
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
+ }
20
+ }
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
+ }
31
+ }
32
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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 +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,0CAmCvD,CAAC;AAOF,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,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"}
@@ -3,10 +3,10 @@ import { Context, Effect, Layer } from "effect";
3
3
  import { ConnectionNotFoundError } from "../core/errors/index.js";
4
4
  export class RpcService extends Context.Tag("esolana/RpcService")() {
5
5
  }
6
- export const makeRpcServiceLive = (config) => {
6
+ export const makeRpcServiceLive = (config) => Layer.effect(RpcService, Effect.gen(function* () {
7
7
  const rpcClient = createSolanaRpc(config.rpcUrl);
8
- let rpcSubscriptionsClient = null;
9
- return Layer.succeed(RpcService, RpcService.of({
8
+ const getCachedSubscriptions = yield* Effect.cachedFunction((wsUrl) => Effect.sync(() => createSolanaRpcSubscriptions(wsUrl)));
9
+ return RpcService.of({
10
10
  getCluster: () => Effect.succeed(config.cluster),
11
11
  getRpc: () => Effect.succeed(rpcClient),
12
12
  getRpcSubscriptions: () => {
@@ -17,16 +17,11 @@ export const makeRpcServiceLive = (config) => {
17
17
  message: `WebSocket URL not configured for cluster: ${config.cluster}`,
18
18
  }));
19
19
  }
20
- return Effect.sync(() => {
21
- if (!rpcSubscriptionsClient) {
22
- rpcSubscriptionsClient = createSolanaRpcSubscriptions(wsUrl);
23
- }
24
- return rpcSubscriptionsClient;
25
- });
20
+ return getCachedSubscriptions(wsUrl);
26
21
  },
27
22
  getRpcUrl: () => Effect.succeed(config.rpcUrl),
28
- }));
29
- };
23
+ });
24
+ }));
30
25
  export const RpcServiceDevnet = makeRpcServiceLive({
31
26
  cluster: "devnet",
32
27
  rpcUrl: "https://api.devnet.solana.com",
@@ -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;IAE1D,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAGjD,IAAI,sBAAsB,GAAuD,IAAI,CAAC;IAEtF,OAAO,KAAK,CAAC,OAAO,CAClB,UAAU,EACV,UAAU,CAAC,EAAE,CAAC;QACZ,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,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,sBAAsB,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO,sBAAsB,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/C,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAOF,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,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"}
@@ -17,6 +17,9 @@ export declare const SpanNames: {
17
17
  readonly PDA_DERIVE_ADDRESS: "esol.pda.deriveAddress";
18
18
  readonly PDA_DERIVE_BUMP: "esol.pda.deriveBump";
19
19
  readonly PDA_FIND: "esol.pda.find";
20
+ readonly PROGRAM_BUILD: "esol.program.build";
21
+ readonly PROGRAM_BUILD_INSTRUCTION: "esol.program.buildInstruction";
22
+ readonly PROGRAM_CREATE: "esol.program.create";
20
23
  readonly RPC_GET_ACCOUNT_INFO: "esol.rpc.getAccountInfo";
21
24
  readonly RPC_GET_BALANCE: "esol.rpc.getBalance";
22
25
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DZ,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEZ,CAAC"}
@@ -17,6 +17,9 @@ export const SpanNames = {
17
17
  PDA_DERIVE_ADDRESS: "esol.pda.deriveAddress",
18
18
  PDA_DERIVE_BUMP: "esol.pda.deriveBump",
19
19
  PDA_FIND: "esol.pda.find",
20
+ PROGRAM_BUILD: "esol.program.build",
21
+ PROGRAM_BUILD_INSTRUCTION: "esol.program.buildInstruction",
22
+ PROGRAM_CREATE: "esol.program.create",
20
23
  RPC_GET_ACCOUNT_INFO: "esol.rpc.getAccountInfo",
21
24
  RPC_GET_BALANCE: "esol.rpc.getBalance",
22
25
  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;IACzB,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,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"}
@@ -11,13 +11,13 @@ export type ATAParams = {
11
11
  readonly tokenProgram?: Address;
12
12
  };
13
13
  export type TokenServiceShape = {
14
- readonly getAssociatedTokenAddress: (params: ATAParams) => Effect.Effect<Address>;
14
+ readonly getAssociatedTokenAddress: (params: ATAParams) => Effect.Effect<Address, Error>;
15
15
  readonly getOrCreateATA: (params: ATAParams & {
16
16
  payer: Address;
17
17
  }) => Effect.Effect<{
18
18
  address: Address;
19
19
  instruction?: Instruction;
20
- }, RpcError>;
20
+ }, Error | RpcError>;
21
21
  readonly getTokenBalance: (ata: Address) => Effect.Effect<bigint, AccountNotFoundError | RpcError>;
22
22
  readonly getMint: (mint: Address) => Effect.Effect<MintAccount, AccountNotFoundError | RpcError>;
23
23
  readonly getTokenAccount: (account: Address) => Effect.Effect<TokenAccount, AccountNotFoundError | RpcError>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/token/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ7E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAI9B,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAMlF,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAChF;QACE,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,EACD,QAAQ,CACT,CAAC;IAKF,QAAQ,CAAC,eAAe,EAAE,CACxB,GAAG,EAAE,OAAO,KACT,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAK5D,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAKjG,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAKlE,QAAQ,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE;QACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;KACjC,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAKjC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CACjF,CAAC;;AAEF,qBAAa,YAAa,SAAQ,iBAG/B;CAAG;AAEN,eAAO,MAAM,gBAAgB,8CA0N5B,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/token/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ7E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAI9B,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAMzF,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAChF;QACE,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,EACD,KAAK,GAAG,QAAQ,CACjB,CAAC;IAKF,QAAQ,CAAC,eAAe,EAAE,CACxB,GAAG,EAAE,OAAO,KACT,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAK5D,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAKjG,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,GAAG,QAAQ,CAAC,CAAC;IAKlE,QAAQ,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE;QACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;KACjC,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAKjC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CACjF,CAAC;;AAEF,qBAAa,YAAa,SAAQ,iBAG/B;CAAG;AAEN,eAAO,MAAM,gBAAgB,8CA0O5B,CAAC"}