@bonfida/spl-name-service 0.1.40 → 0.1.41

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/utils.d.ts CHANGED
@@ -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");
@@ -158,4 +158,27 @@ async function getAllDomains(connection, wallet) {
158
158
  return accounts.map((a) => a.pubkey);
159
159
  }
160
160
  exports.getAllDomains = getAllDomains;
161
+ /**
162
+ * This function can be used to retrieve all the registered `.sol` domains.
163
+ * The account data is sliced to avoid enormous payload and only the owner is returned
164
+ * @param connection The Solana RPC connection object
165
+ * @returns
166
+ */
167
+ const getAllRegisteredDomains = async (connection) => {
168
+ const filters = [
169
+ {
170
+ memcmp: {
171
+ offset: 0,
172
+ bytes: constants_1.ROOT_DOMAIN_ACCOUNT.toBase58(),
173
+ },
174
+ },
175
+ ];
176
+ const dataSlice = { offset: 32, length: 32 };
177
+ const accounts = await connection.getProgramAccounts(constants_1.NAME_PROGRAM_ID, {
178
+ dataSlice,
179
+ filters,
180
+ });
181
+ return accounts;
182
+ };
183
+ exports.getAllRegisteredDomains = getAllRegisteredDomains;
161
184
  //# 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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonfida/spl-name-service",
3
- "version": "0.1.40",
3
+ "version": "0.1.41",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
package/src/utils.ts CHANGED
@@ -201,3 +201,27 @@ export async function getAllDomains(
201
201
  });
202
202
  return accounts.map((a) => a.pubkey);
203
203
  }
204
+
205
+ /**
206
+ * This function can be used to retrieve all the registered `.sol` domains.
207
+ * The account data is sliced to avoid enormous payload and only the owner is returned
208
+ * @param connection The Solana RPC connection object
209
+ * @returns
210
+ */
211
+ export const getAllRegisteredDomains = async (connection: Connection) => {
212
+ const filters = [
213
+ {
214
+ memcmp: {
215
+ offset: 0,
216
+ bytes: ROOT_DOMAIN_ACCOUNT.toBase58(),
217
+ },
218
+ },
219
+ ];
220
+ const dataSlice = { offset: 32, length: 32 };
221
+
222
+ const accounts = await connection.getProgramAccounts(NAME_PROGRAM_ID, {
223
+ dataSlice,
224
+ filters,
225
+ });
226
+ return accounts;
227
+ };
@@ -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
+ });