Skip to content

Commit

Permalink
js: add stale flag to getFavoriteDomain
Browse files Browse the repository at this point in the history
  • Loading branch information
dr497 committed Dec 20, 2023
1 parent 9637d4c commit 875e448
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
4 changes: 2 additions & 2 deletions js/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bonfida/spl-name-service",
"version": "2.0.5",
"version": "2.1.0",
"license": "MIT",
"files": [
"dist"
Expand Down
20 changes: 13 additions & 7 deletions js/src/favorite-domain.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { Buffer } from "buffer";
import { deserialize, Schema } from "borsh";
import { reverseLookup } from "./utils";
import { getReverseKeySync, reverseLookup } from "./utils";
import { PublicKey, Connection } from "@solana/web3.js";
import { ErrorType, SNSError } from "./error";
import { resolve } from "./resolve";

export const NAME_OFFERS_ID = new PublicKey(
"85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29"
"85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29",
);

export class FavouriteDomain {
Expand Down Expand Up @@ -62,7 +63,7 @@ export class FavouriteDomain {
static async getKey(programId: PublicKey, owner: PublicKey) {
return await PublicKey.findProgramAddress(
[Buffer.from("favourite_domain"), owner.toBuffer()],
programId
programId,
);
}

Expand All @@ -75,7 +76,7 @@ export class FavouriteDomain {
static getKeySync(programId: PublicKey, owner: PublicKey) {
return PublicKey.findProgramAddressSync(
[Buffer.from("favourite_domain"), owner.toBuffer()],
programId
programId,
);
}
}
Expand All @@ -88,16 +89,21 @@ export class FavouriteDomain {
*/
export const getFavoriteDomain = async (
connection: Connection,
owner: PublicKey
owner: PublicKey,
) => {
const [favKey] = FavouriteDomain.getKeySync(
NAME_OFFERS_ID,
new PublicKey(owner)
new PublicKey(owner),
);

const favorite = await FavouriteDomain.retrieve(connection, favKey);

const reverse = await reverseLookup(connection, favorite.nameAccount);
const domainOwner = await resolve(connection, reverse);

return { domain: favorite.nameAccount, reverse };
return {
domain: favorite.nameAccount,
reverse,
stale: !owner.equals(domainOwner),
};
};
12 changes: 11 additions & 1 deletion js/tests/favorite.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require("dotenv").config();
import { test, expect, jest } from "@jest/globals";
import { getFavoriteDomain } from "../src/favorite-domain";
import { PublicKey, clusterApiUrl, Connection } from "@solana/web3.js";
import { PublicKey, Connection } from "@solana/web3.js";

jest.setTimeout(10_000);

Expand All @@ -11,6 +11,15 @@ const items = [
favorite: {
domain: new PublicKey("Crf8hzfthWGbGbLTVCiqRqV5MVnbpHB1L9KQMd6gsinb"),
reverse: "bonfida",
stale: true,
},
},
{
user: new PublicKey("HKKp49qGWXd639QsuH7JiLijfVW5UtCVY4s1n2HANwEA"),
favorite: {
domain: new PublicKey("Crf8hzfthWGbGbLTVCiqRqV5MVnbpHB1L9KQMd6gsinb"),
reverse: "bonfida",
stale: false,
},
},
];
Expand All @@ -23,5 +32,6 @@ test("Favorite domain", async () => {

expect(fav.domain.toBase58()).toBe(item.favorite.domain.toBase58());
expect(fav.reverse).toBe(item.favorite.reverse);
expect(fav.stale).toBe(item.favorite.stale);
}
});

0 comments on commit 875e448

Please sign in to comment.