@magicblock-labs/ephemeral-rollups-kit 0.14.1 → 0.14.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.test.d.ts","sourceRoot":"","sources":["../../src/__test__/resolver.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const kit_1 = require("@solana/kit");
5
+ const system_1 = require("@solana-program/system");
6
+ const constants_js_1 = require("../constants.js");
7
+ const pda_js_1 = require("../pda.js");
8
+ const resolver_js_1 = require("../resolver.js");
9
+ const delegatedAccount = "11111111111111111111111111111111";
10
+ const validator = "11111111111111111111111111111112";
11
+ function createDelegationAccountInfo(validatorAddress, overrides = {}) {
12
+ const data = Buffer.alloc(40);
13
+ data.set((0, kit_1.getAddressEncoder)().encode(validatorAddress), 8);
14
+ return {
15
+ data: [
16
+ data.toString("base64"),
17
+ "base64",
18
+ ],
19
+ executable: false,
20
+ lamports: (0, kit_1.lamports)(BigInt(1)),
21
+ owner: constants_js_1.DELEGATION_PROGRAM_ID,
22
+ space: BigInt(data.length),
23
+ ...overrides,
24
+ };
25
+ }
26
+ (0, vitest_1.describe)("parseDelegationRecordAccount", () => {
27
+ (0, vitest_1.it)("returns undelegated when the delegation record is missing", () => {
28
+ (0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(null)).toEqual({
29
+ status: resolver_js_1.DelegationStatus.Undelegated,
30
+ });
31
+ });
32
+ (0, vitest_1.it)("returns undelegated when the account has the wrong owner", () => {
33
+ (0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator, {
34
+ owner: system_1.SYSTEM_PROGRAM_ADDRESS,
35
+ }))).toEqual({
36
+ status: resolver_js_1.DelegationStatus.Undelegated,
37
+ });
38
+ });
39
+ (0, vitest_1.it)("returns undelegated when the delegation record has zero lamports", () => {
40
+ (0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator, {
41
+ lamports: (0, kit_1.lamports)(BigInt(0)),
42
+ }))).toEqual({
43
+ status: resolver_js_1.DelegationStatus.Undelegated,
44
+ });
45
+ });
46
+ (0, vitest_1.it)("returns the delegated validator from the delegation record", () => {
47
+ const record = (0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator));
48
+ (0, vitest_1.expect)(record.status).toBe(resolver_js_1.DelegationStatus.Delegated);
49
+ if (record.status === resolver_js_1.DelegationStatus.Delegated) {
50
+ (0, vitest_1.expect)(record.validator).toBe(validator);
51
+ }
52
+ });
53
+ });
54
+ (0, vitest_1.describe)("getDelegationRecord", () => {
55
+ (0, vitest_1.it)("fetches and parses the derived delegation record", async () => {
56
+ const delegationRecord = await (0, pda_js_1.delegationRecordPdaFromDelegatedAccount)(delegatedAccount);
57
+ const getAccountInfo = vitest_1.vi.fn((address, config) => {
58
+ (0, vitest_1.expect)(address).toBe(delegationRecord);
59
+ (0, vitest_1.expect)(config).toEqual({
60
+ commitment: "processed",
61
+ encoding: "base64",
62
+ });
63
+ return {
64
+ send: vitest_1.vi.fn(async () => ({
65
+ value: createDelegationAccountInfo(validator),
66
+ })),
67
+ };
68
+ });
69
+ const record = await (0, resolver_js_1.getDelegationRecord)({ getAccountInfo }, delegatedAccount, "processed");
70
+ (0, vitest_1.expect)(record.status).toBe(resolver_js_1.DelegationStatus.Delegated);
71
+ if (record.status === resolver_js_1.DelegationStatus.Delegated) {
72
+ (0, vitest_1.expect)(record.validator).toBe(validator);
73
+ }
74
+ });
75
+ });
76
+ //# sourceMappingURL=resolver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../src/__test__/resolver.test.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export declare const EPHEMERAL_SPL_TOKEN_PROGRAM_ID: import("@solana/kit").Addre
6
6
  export declare const HYDRA_PROGRAM_ID: import("@solana/kit").Address<"Hydra17i1feui9deaxu6d1TzSQMRNHeBRkDR1Awy7zea">;
7
7
  export declare const TOKEN_PROGRAM_ID: import("@solana/kit").Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
8
8
  export declare const ASSOCIATED_TOKEN_PROGRAM_ID: import("@solana/kit").Address<"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL">;
9
+ export declare const EPHEMERAL_VAULT_ID: import("@solana/kit").Address<"MagicVau1t999999999999999999999999999999999">;
9
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,+EAEjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AACF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,+EAEjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,8EAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,+EAE5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,+EAEvC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,+EAEjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AACF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,+EAEjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,8EAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,+EAE5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,8EAE5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,+EAEvC,CAAC;AAEF,eAAO,MAAM,kBAAkB,8EAE9B,CAAC"}
package/lib/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.HYDRA_PROGRAM_ID = exports.EPHEMERAL_SPL_TOKEN_PROGRAM_ID = exports.PERMISSION_PROGRAM_ID = exports.MAGIC_CONTEXT_ID = exports.MAGIC_PROGRAM_ID = exports.DELEGATION_PROGRAM_ID = void 0;
3
+ exports.EPHEMERAL_VAULT_ID = exports.ASSOCIATED_TOKEN_PROGRAM_ID = exports.TOKEN_PROGRAM_ID = exports.HYDRA_PROGRAM_ID = exports.EPHEMERAL_SPL_TOKEN_PROGRAM_ID = exports.PERMISSION_PROGRAM_ID = exports.MAGIC_CONTEXT_ID = exports.MAGIC_PROGRAM_ID = exports.DELEGATION_PROGRAM_ID = void 0;
4
4
  const kit_1 = require("@solana/kit");
5
5
  exports.DELEGATION_PROGRAM_ID = (0, kit_1.address)("DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh");
6
6
  exports.MAGIC_PROGRAM_ID = (0, kit_1.address)("Magic11111111111111111111111111111111111111");
@@ -10,4 +10,5 @@ exports.EPHEMERAL_SPL_TOKEN_PROGRAM_ID = (0, kit_1.address)("SPLxh1LVZzEkX99H6rq
10
10
  exports.HYDRA_PROGRAM_ID = (0, kit_1.address)("Hydra17i1feui9deaxu6d1TzSQMRNHeBRkDR1Awy7zea");
11
11
  exports.TOKEN_PROGRAM_ID = (0, kit_1.address)("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
12
12
  exports.ASSOCIATED_TOKEN_PROGRAM_ID = (0, kit_1.address)("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
13
+ exports.EPHEMERAL_VAULT_ID = (0, kit_1.address)("MagicVau1t999999999999999999999999999999999");
13
14
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEzB,QAAA,qBAAqB,GAAG,IAAA,aAAO,EAC1C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AACW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAA,aAAO,EAC1C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,8BAA8B,GAAG,IAAA,aAAO,EACnD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAA,aAAO,EAChD,8CAA8C,CAC/C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEzB,QAAA,qBAAqB,GAAG,IAAA,aAAO,EAC1C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AACW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAA,aAAO,EAC1C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,8BAA8B,GAAG,IAAA,aAAO,EACnD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,aAAO,EACrC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAA,aAAO,EAChD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,kBAAkB,GAAG,IAAA,aAAO,EACvC,6CAA6C,CAC9C,CAAC"}
package/lib/resolver.d.ts CHANGED
@@ -1,18 +1,20 @@
1
- import { Address, TransactionMessage, Rpc, SolanaRpcApiDevnet } from "@solana/kit";
1
+ import { Address, AccountInfoBase, Commitment, TransactionMessage, Rpc, SolanaRpcApiDevnet, AccountInfoWithBase64EncodedData } from "@solana/kit";
2
2
  export interface Configuration {
3
3
  chain: string;
4
4
  websocket: string;
5
5
  }
6
- declare enum DelegationStatus {
6
+ export declare enum DelegationStatus {
7
7
  Delegated = 0,
8
8
  Undelegated = 1
9
9
  }
10
- type DelegationRecord = {
10
+ export type DelegationRecord = {
11
11
  status: DelegationStatus.Delegated;
12
12
  validator: Address;
13
13
  } | {
14
14
  status: DelegationStatus.Undelegated;
15
15
  };
16
+ export declare function parseDelegationRecordAccount(account: (AccountInfoBase & AccountInfoWithBase64EncodedData) | null): DelegationRecord;
17
+ export declare function getDelegationRecord(rpc: Rpc<SolanaRpcApiDevnet>, delegatedAccount: Address, commitment?: Commitment): Promise<DelegationRecord>;
16
18
  export declare class Resolver {
17
19
  private readonly routes;
18
20
  private readonly delegations;
@@ -24,5 +26,4 @@ export declare class Resolver {
24
26
  resolveForTransaction(tx: TransactionMessage): Promise<Rpc<SolanaRpcApiDevnet> | undefined>;
25
27
  private updateStatus;
26
28
  }
27
- export {};
28
29
  //# sourceMappingURL=resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAOP,kBAAkB,EAIlB,GAAG,EACH,kBAAkB,EAMnB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,aAAa;IAE5B,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,aAAK,gBAAgB;IACnB,SAAS,IAAA;IACT,WAAW,IAAA;CACZ;AAGD,KAAK,gBAAgB,GACjB;IAAE,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAA;CAAE,CAAC;AAG7C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA8C;gBAErD,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAajD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8CxD,OAAO,CAClB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAelC,qBAAqB,CAChC,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAoB/C,OAAO,CAAC,YAAY;CAuBrB"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EACf,UAAU,EAMV,kBAAkB,EAIlB,GAAG,EACH,kBAAkB,EAClB,gCAAgC,EAEjC,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,aAAa;IAE5B,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,oBAAY,gBAAgB;IAC1B,SAAS,IAAA;IACT,WAAW,IAAA;CACZ;AAGD,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAA;CAAE,CAAC;AAE7C,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,CAAC,eAAe,GAAG,gCAAgC,CAAC,GAAG,IAAI,GACnE,gBAAgB,CAclB;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAC5B,gBAAgB,EAAE,OAAO,EACzB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAW3B;AAGD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAA8C;gBAErD,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAajD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8CxD,OAAO,CAClB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAelC,qBAAqB,CAChC,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAoB/C,OAAO,CAAC,YAAY;CAQrB"}
package/lib/resolver.js CHANGED
@@ -1,13 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Resolver = void 0;
3
+ exports.Resolver = exports.DelegationStatus = void 0;
4
+ exports.parseDelegationRecordAccount = parseDelegationRecordAccount;
5
+ exports.getDelegationRecord = getDelegationRecord;
4
6
  const kit_1 = require("@solana/kit");
5
7
  const constants_js_1 = require("./constants.js");
8
+ const pda_js_1 = require("./pda.js");
6
9
  var DelegationStatus;
7
10
  (function (DelegationStatus) {
8
11
  DelegationStatus[DelegationStatus["Delegated"] = 0] = "Delegated";
9
12
  DelegationStatus[DelegationStatus["Undelegated"] = 1] = "Undelegated";
10
- })(DelegationStatus || (DelegationStatus = {}));
13
+ })(DelegationStatus || (exports.DelegationStatus = DelegationStatus = {}));
14
+ function parseDelegationRecordAccount(account) {
15
+ const isDelegated = account !== null &&
16
+ account.owner === constants_js_1.DELEGATION_PROGRAM_ID &&
17
+ account.lamports !== (0, kit_1.lamports)(BigInt(0));
18
+ return isDelegated
19
+ ? {
20
+ status: DelegationStatus.Delegated,
21
+ validator: (0, kit_1.getAddressDecoder)().decode(Buffer.from(account.data[0], "base64").subarray(8, 40)),
22
+ }
23
+ : { status: DelegationStatus.Undelegated };
24
+ }
25
+ async function getDelegationRecord(rpc, delegatedAccount, commitment = "confirmed") {
26
+ const accountInfo = await rpc
27
+ .getAccountInfo(await (0, pda_js_1.delegationRecordPdaFromDelegatedAccount)(delegatedAccount), {
28
+ commitment,
29
+ encoding: "base64",
30
+ })
31
+ .send();
32
+ return parseDelegationRecordAccount(accountInfo.value);
33
+ }
11
34
  class Resolver {
12
35
  constructor(config, routes) {
13
36
  this.routes = new Map();
@@ -79,25 +102,10 @@ class Resolver {
79
102
  : undefined;
80
103
  }
81
104
  updateStatus(account, pubkey) {
82
- const isDelegated = account !== null &&
83
- account.owner === constants_js_1.DELEGATION_PROGRAM_ID &&
84
- account.lamports !== (0, kit_1.lamports)(BigInt(0));
85
- const record = isDelegated
86
- ? {
87
- status: DelegationStatus.Delegated,
88
- validator: (() => {
89
- const decodedData = delegationRecordCodec.decode(Buffer.from(account.data[0], "base64"));
90
- return (0, kit_1.address)(decodedData.validator);
91
- })(),
92
- }
93
- : { status: DelegationStatus.Undelegated };
105
+ const record = parseDelegationRecordAccount(account);
94
106
  this.delegations.set(pubkey.toString(), record);
95
107
  return record;
96
108
  }
97
109
  }
98
110
  exports.Resolver = Resolver;
99
- const delegationRecordCodec = (0, kit_1.getStructCodec)([
100
- ["delegationStatus", (0, kit_1.getU8Codec)()],
101
- ["validator", (0, kit_1.getAddressCodec)()],
102
- ]);
103
111
  //# sourceMappingURL=resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicblock-labs/ephemeral-rollups-kit",
3
- "version": "0.14.1",
3
+ "version": "0.14.3",
4
4
  "author": "MagicBlock Labs",
5
5
  "license": "MIT",
6
6
  "publishConfig": {