@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.
- package/README.md +156 -177
- package/dist/core/errors/predicates.d.ts +0 -11
- package/dist/core/errors/predicates.d.ts.map +1 -1
- package/dist/core/errors/predicates.js +0 -5
- package/dist/core/errors/predicates.js.map +1 -1
- package/dist/core/errors/transaction.d.ts +20 -1
- package/dist/core/errors/transaction.d.ts.map +1 -1
- package/dist/core/errors/transaction.js +60 -1
- package/dist/core/errors/transaction.js.map +1 -1
- package/dist/core/errors/wallet.d.ts +0 -7
- package/dist/core/errors/wallet.d.ts.map +1 -1
- package/dist/core/errors/wallet.js +0 -4
- package/dist/core/errors/wallet.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pda/index.d.ts +1 -0
- package/dist/pda/index.d.ts.map +1 -1
- package/dist/pda/index.js +1 -0
- package/dist/pda/index.js.map +1 -1
- package/dist/pda/service.d.ts +4 -3
- package/dist/pda/service.d.ts.map +1 -1
- package/dist/pda/service.js +12 -4
- package/dist/pda/service.js.map +1 -1
- package/dist/pda/types.d.ts +12 -0
- package/dist/pda/types.d.ts.map +1 -0
- package/dist/pda/types.js +8 -0
- package/dist/pda/types.js.map +1 -0
- package/dist/presets/layers.d.ts +3 -2
- package/dist/presets/layers.d.ts.map +1 -1
- package/dist/presets/layers.js +2 -1
- package/dist/presets/layers.js.map +1 -1
- package/dist/program/index.d.ts +3 -0
- package/dist/program/index.d.ts.map +1 -0
- package/dist/program/index.js +3 -0
- package/dist/program/index.js.map +1 -0
- package/dist/program/service.d.ts +19 -0
- package/dist/program/service.d.ts.map +1 -0
- package/dist/program/service.js +95 -0
- package/dist/program/service.js.map +1 -0
- package/dist/program/types.d.ts +34 -0
- package/dist/program/types.d.ts.map +1 -0
- package/dist/program/types.js +32 -0
- package/dist/program/types.js.map +1 -0
- package/dist/rpc/service.d.ts.map +1 -1
- package/dist/rpc/service.js +6 -11
- package/dist/rpc/service.js.map +1 -1
- package/dist/telemetry/tracer.d.ts +3 -0
- package/dist/telemetry/tracer.d.ts.map +1 -1
- package/dist/telemetry/tracer.js +3 -0
- package/dist/telemetry/tracer.js.map +1 -1
- package/dist/token/service.d.ts +2 -2
- package/dist/token/service.d.ts.map +1 -1
- package/dist/token/service.js +30 -17
- package/dist/token/service.js.map +1 -1
- package/dist/tx/service.d.ts +4 -2
- package/dist/tx/service.d.ts.map +1 -1
- package/dist/tx/service.js +12 -2
- package/dist/tx/service.js.map +1 -1
- package/dist/web3.js/layers.d.ts +2 -1
- package/dist/web3.js/layers.d.ts.map +1 -1
- package/dist/web3.js/layers.js.map +1 -1
- package/dist/web3.js/legacy-signer.d.ts.map +1 -1
- package/dist/web3.js/legacy-signer.js +14 -2
- package/dist/web3.js/legacy-signer.js.map +1 -1
- package/dist/web3.js/transaction-bridge.d.ts.map +1 -1
- package/dist/web3.js/transaction-bridge.js +4 -2
- package/dist/web3.js/transaction-bridge.js.map +1 -1
- 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
|
|
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
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/pda/index.d.ts
CHANGED
package/dist/pda/index.d.ts.map
CHANGED
|
@@ -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
package/dist/pda/index.js.map
CHANGED
|
@@ -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"}
|
package/dist/pda/service.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/pda/service.js
CHANGED
|
@@ -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.
|
|
19
|
-
|
|
20
|
-
|
|
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,
|
package/dist/pda/service.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/presets/layers.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/presets/layers.js
CHANGED
|
@@ -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,
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"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"}
|
|
@@ -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,
|
|
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"}
|
package/dist/rpc/service.js
CHANGED
|
@@ -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
|
-
|
|
9
|
-
return
|
|
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
|
|
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",
|
package/dist/rpc/service.js.map
CHANGED
|
@@ -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;
|
|
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
|
|
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"}
|
package/dist/telemetry/tracer.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/token/service.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|