@magicblock-labs/ephemeral-rollups-sdk 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.
- package/lib/__test__/resolver.test.d.ts +2 -0
- package/lib/__test__/resolver.test.d.ts.map +1 -0
- package/lib/__test__/resolver.test.js +68 -0
- package/lib/__test__/resolver.test.js.map +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +2 -1
- package/lib/constants.js.map +1 -1
- package/lib/resolver.d.ts +5 -4
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +21 -11
- package/lib/resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.test.d.ts","sourceRoot":"","sources":["../../src/__test__/resolver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const pda_js_1 = require("../pda.js");
|
|
7
|
+
const resolver_js_1 = require("../resolver.js");
|
|
8
|
+
function createDelegationAccountInfo(validator, overrides = {}) {
|
|
9
|
+
const data = Buffer.alloc(40);
|
|
10
|
+
validator.toBuffer().copy(data, 8);
|
|
11
|
+
return {
|
|
12
|
+
data,
|
|
13
|
+
executable: false,
|
|
14
|
+
lamports: 1,
|
|
15
|
+
owner: constants_js_1.DELEGATION_PROGRAM_ID,
|
|
16
|
+
rentEpoch: 0,
|
|
17
|
+
...overrides,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
(0, vitest_1.describe)("parseDelegationRecordAccount", () => {
|
|
21
|
+
(0, vitest_1.it)("returns undelegated when the delegation record is missing", () => {
|
|
22
|
+
(0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(null)).toEqual({
|
|
23
|
+
status: resolver_js_1.DelegationStatus.Undelegated,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)("returns undelegated when the account has the wrong owner", () => {
|
|
27
|
+
const validator = web3_js_1.Keypair.generate().publicKey;
|
|
28
|
+
(0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator, {
|
|
29
|
+
owner: web3_js_1.SystemProgram.programId,
|
|
30
|
+
}))).toEqual({
|
|
31
|
+
status: resolver_js_1.DelegationStatus.Undelegated,
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)("returns undelegated when the delegation record has zero lamports", () => {
|
|
35
|
+
const validator = web3_js_1.Keypair.generate().publicKey;
|
|
36
|
+
(0, vitest_1.expect)((0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator, {
|
|
37
|
+
lamports: 0,
|
|
38
|
+
}))).toEqual({
|
|
39
|
+
status: resolver_js_1.DelegationStatus.Undelegated,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.it)("returns the delegated validator from the delegation record", () => {
|
|
43
|
+
const validator = web3_js_1.Keypair.generate().publicKey;
|
|
44
|
+
const record = (0, resolver_js_1.parseDelegationRecordAccount)(createDelegationAccountInfo(validator));
|
|
45
|
+
(0, vitest_1.expect)(record.status).toBe(resolver_js_1.DelegationStatus.Delegated);
|
|
46
|
+
if (record.status === resolver_js_1.DelegationStatus.Delegated) {
|
|
47
|
+
(0, vitest_1.expect)(record.validator.toBase58()).toBe(validator.toBase58());
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
(0, vitest_1.describe)("getDelegationRecord", () => {
|
|
52
|
+
(0, vitest_1.it)("fetches and parses the derived delegation record", async () => {
|
|
53
|
+
const delegatedAccount = web3_js_1.Keypair.generate().publicKey;
|
|
54
|
+
const validator = web3_js_1.Keypair.generate().publicKey;
|
|
55
|
+
const delegationRecord = (0, pda_js_1.delegationRecordPdaFromDelegatedAccount)(delegatedAccount);
|
|
56
|
+
const getAccountInfo = vitest_1.vi.fn(async (address, commitment) => {
|
|
57
|
+
(0, vitest_1.expect)(address.toBase58()).toBe(delegationRecord.toBase58());
|
|
58
|
+
(0, vitest_1.expect)(commitment).toBe("processed");
|
|
59
|
+
return createDelegationAccountInfo(validator);
|
|
60
|
+
});
|
|
61
|
+
const record = await (0, resolver_js_1.getDelegationRecord)({ getAccountInfo }, delegatedAccount, "processed");
|
|
62
|
+
(0, vitest_1.expect)(record.status).toBe(resolver_js_1.DelegationStatus.Delegated);
|
|
63
|
+
if (record.status === resolver_js_1.DelegationStatus.Delegated) {
|
|
64
|
+
(0, vitest_1.expect)(record.validator.toBase58()).toBe(validator.toBase58());
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# 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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"}
|
package/lib/constants.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export declare const EPHEMERAL_SPL_TOKEN_PROGRAM_ID: PublicKey;
|
|
|
7
7
|
export declare const HYDRA_PROGRAM_ID: PublicKey;
|
|
8
8
|
export declare const TOKEN_PROGRAM_ID: PublicKey;
|
|
9
9
|
export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey;
|
|
10
|
+
export declare const EPHEMERAL_VAULT_ID: PublicKey;
|
|
10
11
|
//# sourceMappingURL=constants.d.ts.map
|
package/lib/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,qBAAqB,WAEjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AACF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAEjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,WAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAEvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,qBAAqB,WAEjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AACF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAEjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,WAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAEvC,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAE9B,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 web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
exports.DELEGATION_PROGRAM_ID = new web3_js_1.PublicKey("DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh");
|
|
6
6
|
exports.MAGIC_PROGRAM_ID = new web3_js_1.PublicKey("Magic11111111111111111111111111111111111111");
|
|
@@ -10,4 +10,5 @@ exports.EPHEMERAL_SPL_TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("SPLxh1LVZzEkX9
|
|
|
10
10
|
exports.HYDRA_PROGRAM_ID = new web3_js_1.PublicKey("Hydra17i1feui9deaxu6d1TzSQMRNHeBRkDR1Awy7zea");
|
|
11
11
|
exports.TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
12
12
|
exports.ASSOCIATED_TOKEN_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
|
|
13
|
+
exports.EPHEMERAL_VAULT_ID = new web3_js_1.PublicKey("MagicVau1t999999999999999999999999999999999");
|
|
13
14
|
//# sourceMappingURL=constants.js.map
|
package/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,qBAAqB,GAAG,IAAI,mBAAS,CAChD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AACW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAI,mBAAS,CAChD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,8BAA8B,GAAG,IAAI,mBAAS,CACzD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAI,mBAAS,CACtD,8CAA8C,CAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,qBAAqB,GAAG,IAAI,mBAAS,CAChD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AACW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAI,mBAAS,CAChD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,8BAA8B,GAAG,IAAI,mBAAS,CACzD,6CAA6C,CAC9C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAI,mBAAS,CACtD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,kBAAkB,GAAG,IAAI,mBAAS,CAC7C,6CAA6C,CAC9C,CAAC"}
|
package/lib/resolver.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import { PublicKey, Connection, Transaction } from "@solana/web3.js";
|
|
1
|
+
import { PublicKey, Connection, AccountInfo, Transaction, Commitment } from "@solana/web3.js";
|
|
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: PublicKey;
|
|
13
13
|
} | {
|
|
14
14
|
status: DelegationStatus.Undelegated;
|
|
15
15
|
};
|
|
16
|
+
export declare function parseDelegationRecordAccount(account: AccountInfo<Buffer> | null): DelegationRecord;
|
|
17
|
+
export declare function getDelegationRecord(connection: Connection, delegatedAccount: PublicKey, commitment?: Commitment): Promise<DelegationRecord>;
|
|
16
18
|
export declare class Resolver {
|
|
17
19
|
private readonly routes;
|
|
18
20
|
private readonly delegations;
|
|
@@ -26,5 +28,4 @@ export declare class Resolver {
|
|
|
26
28
|
terminate(): Promise<void>;
|
|
27
29
|
private updateStatus;
|
|
28
30
|
}
|
|
29
|
-
export {};
|
|
30
31
|
//# sourceMappingURL=resolver.d.ts.map
|
package/lib/resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACX,MAAM,iBAAiB,CAAC;AAMzB,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,SAAS,CAAA;CAAE,GAC5D;IAAE,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAA;CAAE,CAAC;AAE7C,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAClC,gBAAgB,CAWlB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,SAAS,EAC3B,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AAGD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAajD,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsC1D,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAe3D,qBAAqB,CAChC,EAAE,EAAE,WAAW,GACd,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAuBrB,SAAS;IAQtB,OAAO,CAAC,YAAY;CAQrB"}
|
package/lib/resolver.js
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
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 web3_js_1 = require("@solana/web3.js");
|
|
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.equals(constants_js_1.DELEGATION_PROGRAM_ID) &&
|
|
17
|
+
account.lamports !== 0;
|
|
18
|
+
return isDelegated
|
|
19
|
+
? {
|
|
20
|
+
status: DelegationStatus.Delegated,
|
|
21
|
+
validator: new web3_js_1.PublicKey(account.data.subarray(8, 40)),
|
|
22
|
+
}
|
|
23
|
+
: { status: DelegationStatus.Undelegated };
|
|
24
|
+
}
|
|
25
|
+
async function getDelegationRecord(connection, delegatedAccount, commitment = "confirmed") {
|
|
26
|
+
const accountInfo = await connection.getAccountInfo((0, pda_js_1.delegationRecordPdaFromDelegatedAccount)(delegatedAccount), commitment);
|
|
27
|
+
return parseDelegationRecordAccount(accountInfo);
|
|
28
|
+
}
|
|
11
29
|
class Resolver {
|
|
12
30
|
constructor(config, routes) {
|
|
13
31
|
this.routes = new Map();
|
|
@@ -64,15 +82,7 @@ class Resolver {
|
|
|
64
82
|
await Promise.all([...this.subs].map(async (sub) => this.ws.removeAccountChangeListener(sub)));
|
|
65
83
|
}
|
|
66
84
|
updateStatus(account, pubkey) {
|
|
67
|
-
const
|
|
68
|
-
account.owner.equals(constants_js_1.DELEGATION_PROGRAM_ID) &&
|
|
69
|
-
account.lamports !== 0;
|
|
70
|
-
const record = isDelegated
|
|
71
|
-
? {
|
|
72
|
-
status: DelegationStatus.Delegated,
|
|
73
|
-
validator: new web3_js_1.PublicKey(account.data.subarray(8, 40)),
|
|
74
|
-
}
|
|
75
|
-
: { status: DelegationStatus.Undelegated };
|
|
85
|
+
const record = parseDelegationRecordAccount(account);
|
|
76
86
|
this.delegations.set(pubkey.toString(), record);
|
|
77
87
|
return record;
|
|
78
88
|
}
|
package/lib/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|