@bonfida/spl-name-service 0.1.39 → 0.1.42

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/dist/record.js CHANGED
@@ -13,7 +13,7 @@ const state_1 = require("./state");
13
13
  */
14
14
  const getRecord = async (connection, domain, record) => {
15
15
  var _a, _b;
16
- const { pubkey } = await (0, utils_1.getDomainKey)(record + "." + domain);
16
+ const { pubkey } = await (0, utils_1.getDomainKey)(record + "." + domain, true);
17
17
  let { registry } = await state_1.NameRegistryState.retrieve(connection, pubkey);
18
18
  // Remove trailling 0s
19
19
  const idx = (_a = registry.data) === null || _a === void 0 ? void 0 : _a.indexOf(0x00);
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -22,7 +22,7 @@ export declare const findSubdomains: (connection: Connection, parentKey: PublicK
22
22
  * @param domain The domain to compute the public key for (e.g `bonfida.sol`, `dex.bonfida.sol`)
23
23
  * @returns
24
24
  */
25
- export declare const getDomainKey: (domain: string) => Promise<{
25
+ export declare const getDomainKey: (domain: string, record?: boolean) => Promise<{
26
26
  isSub: boolean;
27
27
  parent: PublicKey;
28
28
  pubkey: PublicKey;
@@ -40,3 +40,13 @@ export declare const getDomainKey: (domain: string) => Promise<{
40
40
  * @returns
41
41
  */
42
42
  export declare function getAllDomains(connection: Connection, wallet: PublicKey): Promise<PublicKey[]>;
43
+ /**
44
+ * This function can be used to retrieve all the registered `.sol` domains.
45
+ * The account data is sliced to avoid enormous payload and only the owner is returned
46
+ * @param connection The Solana RPC connection object
47
+ * @returns
48
+ */
49
+ export declare const getAllRegisteredDomains: (connection: Connection) => Promise<{
50
+ pubkey: PublicKey;
51
+ account: import("@solana/web3.js").AccountInfo<Buffer>;
52
+ }[]>;
package/dist/utils.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getAllDomains = exports.getDomainKey = exports.findSubdomains = exports.performReverseLookupBatch = exports.getDNSRecordAddress = exports.performReverseLookup = exports.getNameAccountKey = exports.getHashedName = exports.getNameOwner = void 0;
6
+ exports.getAllRegisteredDomains = exports.getAllDomains = exports.getDomainKey = exports.findSubdomains = exports.performReverseLookupBatch = exports.getDNSRecordAddress = exports.performReverseLookup = exports.getNameAccountKey = exports.getHashedName = exports.getNameOwner = void 0;
7
7
  const web3_js_1 = require("@solana/web3.js");
8
8
  const bn_js_1 = __importDefault(require("bn.js"));
9
9
  const sha2_1 = require("@ethersproject/sha2");
@@ -60,11 +60,10 @@ async function getDNSRecordAddress(nameAccount, type) {
60
60
  }
61
61
  exports.getDNSRecordAddress = getDNSRecordAddress;
62
62
  async function performReverseLookupBatch(connection, nameAccounts) {
63
- const [centralState] = await web3_js_1.PublicKey.findProgramAddress([constants_1.NAME_PROGRAM_ID.toBuffer()], constants_1.NAME_PROGRAM_ID);
64
63
  let reverseLookupAccounts = [];
65
64
  for (let nameAccount of nameAccounts) {
66
65
  const hashedReverseLookup = await getHashedName(nameAccount.toBase58());
67
- const reverseLookupAccount = await getNameAccountKey(hashedReverseLookup, centralState);
66
+ const reverseLookupAccount = await getNameAccountKey(hashedReverseLookup, constants_2.REVERSE_LOOKUP_CLASS);
68
67
  reverseLookupAccounts.push(reverseLookupAccount);
69
68
  }
70
69
  let names = await state_1.NameRegistryState.retrieveBatch(connection, reverseLookupAccounts);
@@ -114,13 +113,14 @@ const _derive = async (name, parent = constants_1.ROOT_DOMAIN_ACCOUNT) => {
114
113
  * @param domain The domain to compute the public key for (e.g `bonfida.sol`, `dex.bonfida.sol`)
115
114
  * @returns
116
115
  */
117
- const getDomainKey = async (domain) => {
116
+ const getDomainKey = async (domain, record = false) => {
118
117
  if (domain.endsWith(".sol")) {
119
118
  domain = domain.slice(0, -4);
120
119
  }
121
120
  const splitted = domain.split(".");
122
121
  if (splitted.length === 2) {
123
- const sub = "\0".concat(splitted[0]);
122
+ const prefix = Buffer.from([record ? 1 : 0]).toString();
123
+ const sub = prefix.concat(splitted[0]);
124
124
  const { pubkey: parentKey } = await _derive(splitted[1]);
125
125
  const result = await _derive(sub, parentKey);
126
126
  return { ...result, isSub: true, parent: parentKey };
@@ -159,4 +159,27 @@ async function getAllDomains(connection, wallet) {
159
159
  return accounts.map((a) => a.pubkey);
160
160
  }
161
161
  exports.getAllDomains = getAllDomains;
162
+ /**
163
+ * This function can be used to retrieve all the registered `.sol` domains.
164
+ * The account data is sliced to avoid enormous payload and only the owner is returned
165
+ * @param connection The Solana RPC connection object
166
+ * @returns
167
+ */
168
+ const getAllRegisteredDomains = async (connection) => {
169
+ const filters = [
170
+ {
171
+ memcmp: {
172
+ offset: 0,
173
+ bytes: constants_1.ROOT_DOMAIN_ACCOUNT.toBase58(),
174
+ },
175
+ },
176
+ ];
177
+ const dataSlice = { offset: 32, length: 32 };
178
+ const accounts = await connection.getProgramAccounts(constants_1.NAME_PROGRAM_ID, {
179
+ dataSlice,
180
+ filters,
181
+ });
182
+ return accounts;
183
+ };
184
+ exports.getAllRegisteredDomains = getAllRegisteredDomains;
162
185
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsE;AACtE,kDAAuB;AACvB,8CAA6C;AAC7C,2CAAgF;AAChF,mCAA4C;AAC5C,2CAAmD;AAE5C,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,cAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IACD,OAAO,yBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC;AATD,oCASC;AAEM,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,uBAAW,GAAG,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAJD,sCAIC;AAEM,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,SAAqB,EACrB,UAAsB;IAEtB,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;KAClC;SAAM;QACL,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;IACD,IAAI,UAAU,EAAE;QACd,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;SAAM;QACL,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;IACD,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,mBAAS,CAAC,kBAAkB,CACzD,KAAK,EACL,2BAAe,CAChB,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC;AArBD,8CAqBC;AAEM,KAAK,UAAU,oBAAoB,CACxC,UAAsB,EACtB,WAAsB;IAEtB,MAAM,mBAAmB,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxE,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAClD,mBAAmB,EACnB,gCAAoB,CACrB,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,yBAAiB,CAAC,QAAQ,CACnD,UAAU,EACV,oBAAoB,CACrB,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClB,MAAM,8BAA8B,CAAC;KACtC;IACD,MAAM,UAAU,GAAG,IAAI,eAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtE,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAnBD,oDAmBC;AAEM,KAAK,UAAU,mBAAmB,CACvC,WAAsB,EACtB,IAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAC3C,UAAU,EACV,SAAS,EACT,WAAW,CACZ,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AAXD,kDAWC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,UAAsB,EACtB,YAAyB;IAEzB,IAAI,qBAAqB,GAAgB,EAAE,CAAC;IAC5C,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,MAAM,mBAAmB,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAClD,mBAAmB,EACnB,gCAAoB,CACrB,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KAClD;IAED,IAAI,KAAK,GAAG,MAAM,yBAAiB,CAAC,aAAa,CAC/C,UAAU,EACV,qBAAqB,CACtB,CAAC;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACjD,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,UAAU,GAAG,IAAI,eAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AA1BD,8DA0BC;AAED;;;;;GAKG;AACI,MAAM,cAAc,GAAG,KAAK,EACjC,UAAsB,EACtB,SAAoB,EACD,EAAE;IACrB,MAAM,OAAO,GAAmB;QAC9B;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC5B;SACF;QACD;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,gCAAoB,CAAC,QAAQ,EAAE;aACvC;SACF;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,2BAAe,EAAE;QAClE,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WACtB,OAAA,MAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,0CAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA,EAAA,CACjE,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,cAAc,kBA0BzB;AAEF,MAAM,OAAO,GAAG,KAAK,EACnB,IAAY,EACZ,SAAoB,+BAAmB,EACvC,EAAE;IACF,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;IACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;KACtD;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,+BAAmB,CAAC,CAAC;IAC1D,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC,CAAC;AAhBW,QAAA,YAAY,gBAgBvB;AAEF;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,MAAiB;IAEjB,MAAM,OAAO,GAAG;QACd;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;aACzB;SACF;QACD;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,+BAAmB,CAAC,QAAQ,EAAE;aACtC;SACF;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,2BAAe,EAAE;QACpE,OAAO;KACR,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAtBD,sCAsBC;AAED;;;;;GAKG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,UAAsB,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG;QACd;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,+BAAmB,CAAC,QAAQ,EAAE;aACtC;SACF;KACF,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,2BAAe,EAAE;QACpE,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAhBW,QAAA,uBAAuB,2BAgBlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonfida/spl-name-service",
3
- "version": "0.1.39",
3
+ "version": "0.1.42",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
package/src/record.ts CHANGED
@@ -15,7 +15,7 @@ export const getRecord = async (
15
15
  domain: string,
16
16
  record: Record
17
17
  ) => {
18
- const { pubkey } = await getDomainKey(record + "." + domain);
18
+ const { pubkey } = await getDomainKey(record + "." + domain, true);
19
19
  let { registry } = await NameRegistryState.retrieve(connection, pubkey);
20
20
 
21
21
  // Remove trailling 0s
package/src/utils.ts CHANGED
@@ -83,16 +83,12 @@ export async function performReverseLookupBatch(
83
83
  connection: Connection,
84
84
  nameAccounts: PublicKey[]
85
85
  ): Promise<(string | undefined)[]> {
86
- const [centralState] = await PublicKey.findProgramAddress(
87
- [NAME_PROGRAM_ID.toBuffer()],
88
- NAME_PROGRAM_ID
89
- );
90
86
  let reverseLookupAccounts: PublicKey[] = [];
91
87
  for (let nameAccount of nameAccounts) {
92
88
  const hashedReverseLookup = await getHashedName(nameAccount.toBase58());
93
89
  const reverseLookupAccount = await getNameAccountKey(
94
90
  hashedReverseLookup,
95
- centralState
91
+ REVERSE_LOOKUP_CLASS
96
92
  );
97
93
  reverseLookupAccounts.push(reverseLookupAccount);
98
94
  }
@@ -159,13 +155,14 @@ const _derive = async (
159
155
  * @param domain The domain to compute the public key for (e.g `bonfida.sol`, `dex.bonfida.sol`)
160
156
  * @returns
161
157
  */
162
- export const getDomainKey = async (domain: string) => {
158
+ export const getDomainKey = async (domain: string, record = false) => {
163
159
  if (domain.endsWith(".sol")) {
164
160
  domain = domain.slice(0, -4);
165
161
  }
166
162
  const splitted = domain.split(".");
167
163
  if (splitted.length === 2) {
168
- const sub = "\0".concat(splitted[0]);
164
+ const prefix = Buffer.from([record ? 1 : 0]).toString();
165
+ const sub = prefix.concat(splitted[0]);
169
166
  const { pubkey: parentKey } = await _derive(splitted[1]);
170
167
  const result = await _derive(sub, parentKey);
171
168
  return { ...result, isSub: true, parent: parentKey };
@@ -205,3 +202,27 @@ export async function getAllDomains(
205
202
  });
206
203
  return accounts.map((a) => a.pubkey);
207
204
  }
205
+
206
+ /**
207
+ * This function can be used to retrieve all the registered `.sol` domains.
208
+ * The account data is sliced to avoid enormous payload and only the owner is returned
209
+ * @param connection The Solana RPC connection object
210
+ * @returns
211
+ */
212
+ export const getAllRegisteredDomains = async (connection: Connection) => {
213
+ const filters = [
214
+ {
215
+ memcmp: {
216
+ offset: 0,
217
+ bytes: ROOT_DOMAIN_ACCOUNT.toBase58(),
218
+ },
219
+ },
220
+ ];
221
+ const dataSlice = { offset: 32, length: 32 };
222
+
223
+ const accounts = await connection.getProgramAccounts(NAME_PROGRAM_ID, {
224
+ dataSlice,
225
+ filters,
226
+ });
227
+ return accounts;
228
+ };
@@ -0,0 +1,12 @@
1
+ import { test, expect, jest } from "@jest/globals";
2
+ import { getAllRegisteredDomains } from "../src/utils";
3
+ import { clusterApiUrl, Connection } from "@solana/web3.js";
4
+
5
+ jest.setTimeout(4 * 60_000);
6
+
7
+ const connection = new Connection(clusterApiUrl("mainnet-beta"));
8
+
9
+ test("All registered", async () => {
10
+ const registered = await getAllRegisteredDomains(connection);
11
+ expect(registered.length).toBeGreaterThan(130_000);
12
+ });
@@ -7,7 +7,7 @@ jest.setTimeout(20_000);
7
7
  const connection = new Connection(clusterApiUrl("mainnet-beta"));
8
8
  const domain = "🍍";
9
9
 
10
- test("Records", () => {
10
+ test("Records", async () => {
11
11
  record.getIpfsRecord(connection, domain).then((e) => {
12
12
  expect(e.data?.toString()).toBe(
13
13
  "QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR"
@@ -0,0 +1,14 @@
1
+ import { test, jest } from "@jest/globals";
2
+ import { performReverseLookupBatch } from "../src/utils";
3
+ import { Connection, clusterApiUrl, PublicKey } from "@solana/web3.js";
4
+
5
+ jest.setTimeout(5_000);
6
+
7
+ const connection = new Connection(clusterApiUrl("mainnet-beta"));
8
+ const domain = new PublicKey("Crf8hzfthWGbGbLTVCiqRqV5MVnbpHB1L9KQMd6gsinb");
9
+
10
+ test("Reverse lookup", async () => {
11
+ return performReverseLookupBatch(connection, [domain]).then((e) =>
12
+ expect(e).toStrictEqual(["bonfida"])
13
+ );
14
+ });