@bonfida/spl-name-service 0.1.23 → 0.1.26
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/bindings.js +4 -4
- package/dist/bindings.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/nft.d.ts +25 -0
- package/dist/nft.js +68 -0
- package/dist/nft.js.map +1 -0
- package/dist/state.d.ts +4 -1
- package/dist/state.js +4 -2
- package/dist/state.js.map +1 -1
- package/dist/tokens.js +2 -2
- package/dist/tokens.js.map +1 -1
- package/dist/twitter_bindings.js +1 -1
- package/dist/twitter_bindings.js.map +1 -1
- package/dist/utils.d.ts +5 -1
- package/dist/utils.js +13 -7
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/bindings.ts +7 -4
- package/src/index.ts +1 -0
- package/src/nft.ts +80 -0
- package/src/state.ts +6 -6
- package/src/tokens.ts +2 -2
- package/src/twitter_bindings.ts +1 -1
- package/src/utils.ts +23 -7
package/dist/bindings.js
CHANGED
|
@@ -31,7 +31,7 @@ async function createNameRegistry(connection, name, space, payerKey, nameOwner,
|
|
|
31
31
|
: await connection.getMinimumBalanceForRentExemption(space);
|
|
32
32
|
let nameParentOwner;
|
|
33
33
|
if (parentName) {
|
|
34
|
-
const parentAccount = await utils_2.getNameOwner(connection, parentName);
|
|
34
|
+
const { registry: parentAccount } = await utils_2.getNameOwner(connection, parentName);
|
|
35
35
|
nameParentOwner = parentAccount.owner;
|
|
36
36
|
}
|
|
37
37
|
const createNameInstr = instructions_1.createInstruction(exports.NAME_PROGRAM_ID, web3_js_1.SystemProgram.programId, nameAccountKey, nameOwner, payerKey, hashed_name,
|
|
@@ -61,7 +61,7 @@ async function updateNameRegistryData(connection, name, offset, input_data, name
|
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
63
|
signer = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey))
|
|
64
|
-
.owner;
|
|
64
|
+
.registry.owner;
|
|
65
65
|
}
|
|
66
66
|
const updateInstr = instructions_1.updateInstruction(exports.NAME_PROGRAM_ID, nameAccountKey,
|
|
67
67
|
//@ts-ignore
|
|
@@ -88,7 +88,7 @@ async function transferNameOwnership(connection, name, newOwner, nameClass, name
|
|
|
88
88
|
curentNameOwner = nameClass;
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
91
|
-
curentNameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey)).owner;
|
|
91
|
+
curentNameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey)).registry.owner;
|
|
92
92
|
}
|
|
93
93
|
const transferInstr = instructions_1.transferInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, newOwner, curentNameOwner, nameClass);
|
|
94
94
|
return transferInstr;
|
|
@@ -113,7 +113,7 @@ async function deleteNameRegistry(connection, name, refundTargetKey, nameClass,
|
|
|
113
113
|
}
|
|
114
114
|
else {
|
|
115
115
|
nameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey))
|
|
116
|
-
.owner;
|
|
116
|
+
.registry.owner;
|
|
117
117
|
}
|
|
118
118
|
const changeAuthoritiesInstr = instructions_1.deleteInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, refundTargetKey, nameOwner);
|
|
119
119
|
return changeAuthoritiesInstr;
|
package/dist/bindings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":";;;AAAA,6CAKyB;AAEzB,iDAKwB;AACxB,mCAA4C;AAC5C,mCAAoC;AACpC,mCAKiB;AAEjB,4DAA4D;AAE/C,QAAA,eAAe,GAAG,IAAI,mBAAS,CAC1C,6CAA6C,CAC9C,CAAC;AACW,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAE9C,4DAA4D;AAC5D;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,IAAY,EACZ,KAAa,EACb,QAAmB,EACnB,SAAoB,EACpB,QAAiB,EACjB,SAAqB,EACrB,UAAsB;IAEtB,MAAM,WAAW,GAAG,MAAM,qBAAa,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,yBAAiB,CAC5C,WAAW,EACX,SAAS,EACT,UAAU,CACX,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ;QACtB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,UAAU,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAE9D,IAAI,eAAsC,CAAC;IAC3C,IAAI,UAAU,EAAE;QACd,MAAM,aAAa,GAAG,MAAM,oBAAY,
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ __exportStar(require("./twitter_bindings"), exports);
|
|
|
17
17
|
__exportStar(require("./tokens"), exports);
|
|
18
18
|
__exportStar(require("./utils"), exports);
|
|
19
19
|
__exportStar(require("./instructions"), exports);
|
|
20
|
+
__exportStar(require("./nft"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,qDAAmC;AACnC,2CAAyB;AACzB,0CAAwB;AACxB,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,qDAAmC;AACnC,2CAAyB;AACzB,0CAAwB;AACxB,iDAA+B;AAC/B,wCAAsB"}
|
package/dist/nft.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { PublicKey, Connection } from "@solana/web3.js";
|
|
3
|
+
/**
|
|
4
|
+
* Mainnet program ID
|
|
5
|
+
*/
|
|
6
|
+
export declare const NAME_TOKENIZER_ID: PublicKey;
|
|
7
|
+
/**
|
|
8
|
+
* PDA prefix
|
|
9
|
+
*/
|
|
10
|
+
export declare const MINT_PREFIX: Buffer;
|
|
11
|
+
/**
|
|
12
|
+
* This function can be used to retrieve the owner of a tokenized domain name
|
|
13
|
+
*
|
|
14
|
+
* @param connection The solana connection object to the RPC node
|
|
15
|
+
* @param nameAccount The key of the domain name
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare const retrieveNftOwner: (connection: Connection, nameAccount: PublicKey) => Promise<PublicKey | undefined>;
|
|
19
|
+
/**
|
|
20
|
+
* This function can be used to retrieve all the tokenized domains name
|
|
21
|
+
*
|
|
22
|
+
* @param connection The solana connection object to the RPC node
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
export declare const retrieveNfts: (connection: Connection) => Promise<PublicKey[]>;
|
package/dist/nft.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retrieveNfts = exports.retrieveNftOwner = exports.MINT_PREFIX = exports.NAME_TOKENIZER_ID = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
6
|
+
/**
|
|
7
|
+
* Mainnet program ID
|
|
8
|
+
*/
|
|
9
|
+
exports.NAME_TOKENIZER_ID = new web3_js_1.PublicKey("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk");
|
|
10
|
+
/**
|
|
11
|
+
* PDA prefix
|
|
12
|
+
*/
|
|
13
|
+
exports.MINT_PREFIX = Buffer.from("tokenized_name");
|
|
14
|
+
/**
|
|
15
|
+
* This function can be used to retrieve the owner of a tokenized domain name
|
|
16
|
+
*
|
|
17
|
+
* @param connection The solana connection object to the RPC node
|
|
18
|
+
* @param nameAccount The key of the domain name
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
const retrieveNftOwner = async (connection, nameAccount) => {
|
|
22
|
+
var _a;
|
|
23
|
+
try {
|
|
24
|
+
const [mint] = await web3_js_1.PublicKey.findProgramAddress([exports.MINT_PREFIX, nameAccount.toBuffer()], exports.NAME_TOKENIZER_ID);
|
|
25
|
+
const mintInfo = await spl_token_1.getMint(connection, mint);
|
|
26
|
+
if (mintInfo.supply.toString() === "0") {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const { value } = await connection.getTokenLargestAccounts(mint);
|
|
30
|
+
const holder = (_a = value.find((e) => e.amount === "1")) === null || _a === void 0 ? void 0 : _a.address;
|
|
31
|
+
if (!holder) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const info = await connection.getAccountInfo(holder);
|
|
35
|
+
if (!info || !info.data) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return new web3_js_1.PublicKey(info.data.slice(32, 64));
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.log(err);
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.retrieveNftOwner = retrieveNftOwner;
|
|
46
|
+
/**
|
|
47
|
+
* This function can be used to retrieve all the tokenized domains name
|
|
48
|
+
*
|
|
49
|
+
* @param connection The solana connection object to the RPC node
|
|
50
|
+
* @returns
|
|
51
|
+
*/
|
|
52
|
+
const retrieveNfts = async (connection) => {
|
|
53
|
+
const filters = [
|
|
54
|
+
{
|
|
55
|
+
memcmp: {
|
|
56
|
+
offset: 0,
|
|
57
|
+
bytes: "3",
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
const result = await connection.getProgramAccounts(exports.NAME_TOKENIZER_ID, {
|
|
62
|
+
filters,
|
|
63
|
+
});
|
|
64
|
+
const offset = 1 + 1 + 32 + 32;
|
|
65
|
+
return result.map((e) => new web3_js_1.PublicKey(e.account.data.slice(offset, offset + 32)));
|
|
66
|
+
};
|
|
67
|
+
exports.retrieveNfts = retrieveNfts;
|
|
68
|
+
//# sourceMappingURL=nft.js.map
|
package/dist/nft.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nft.js","sourceRoot":"","sources":["../src/nft.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AACxD,iDAA4C;AAE5C;;GAEG;AACU,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,6CAA6C,CAC9C,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEzD;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,UAAsB,EACtB,WAAsB,EACtB,EAAE;;IACF,IAAI;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAS,CAAC,kBAAkB,CAC/C,CAAC,mBAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EACrC,yBAAiB,CAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,mBAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE;YACtC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,0CAAE,OAAO,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,mBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KAC/C;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC;AAhCW,QAAA,gBAAgB,oBAgC3B;AAEF;;;;;GAKG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,UAAsB,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG;QACd;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,GAAG;aACX;SACF;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,yBAAiB,EAAE;QACpE,OAAO;KACR,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mBAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB"}
|
package/dist/state.d.ts
CHANGED
|
@@ -13,7 +13,10 @@ export declare class NameRegistryState {
|
|
|
13
13
|
owner: Uint8Array;
|
|
14
14
|
class: Uint8Array;
|
|
15
15
|
});
|
|
16
|
-
static retrieve(connection: Connection, nameAccountKey: PublicKey): Promise<
|
|
16
|
+
static retrieve(connection: Connection, nameAccountKey: PublicKey): Promise<{
|
|
17
|
+
registry: NameRegistryState;
|
|
18
|
+
nftOwner: PublicKey | undefined;
|
|
19
|
+
}>;
|
|
17
20
|
static _retrieveBatch(connection: Connection, nameAccountKeys: PublicKey[]): Promise<(NameRegistryState | undefined)[]>;
|
|
18
21
|
static retrieveBatch(connection: Connection, nameAccountKeys: PublicKey[]): Promise<(NameRegistryState | undefined)[]>;
|
|
19
22
|
}
|
package/dist/state.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Mint = exports.TokenData = exports.NameRegistryState = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const borsh_1 = require("borsh");
|
|
6
|
+
const nft_1 = require("./nft");
|
|
6
7
|
class NameRegistryState {
|
|
7
8
|
constructor(obj) {
|
|
8
9
|
this.parentName = new web3_js_1.PublicKey(obj.parentName);
|
|
@@ -11,13 +12,14 @@ class NameRegistryState {
|
|
|
11
12
|
}
|
|
12
13
|
static async retrieve(connection, nameAccountKey) {
|
|
13
14
|
var _a;
|
|
14
|
-
|
|
15
|
+
const nameAccount = await connection.getAccountInfo(nameAccountKey);
|
|
15
16
|
if (!nameAccount) {
|
|
16
17
|
throw new Error("Invalid name account provided");
|
|
17
18
|
}
|
|
18
19
|
let res = borsh_1.deserializeUnchecked(this.schema, NameRegistryState, nameAccount.data);
|
|
19
20
|
res.data = (_a = nameAccount.data) === null || _a === void 0 ? void 0 : _a.slice(this.HEADER_LEN);
|
|
20
|
-
|
|
21
|
+
const nftOwner = await nft_1.retrieveNftOwner(connection, nameAccountKey);
|
|
22
|
+
return { registry: res, nftOwner };
|
|
21
23
|
}
|
|
22
24
|
static async _retrieveBatch(connection, nameAccountKeys) {
|
|
23
25
|
const nameAccounts = await connection.getMultipleAccountsInfo(nameAccountKeys);
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AACxD,iCAAgE;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.js
CHANGED
|
@@ -7,7 +7,7 @@ const state_1 = require("./state");
|
|
|
7
7
|
exports.TOKEN_TLD = new web3_js_1.PublicKey("6NSu2tci4apRKQtt257bAVcvqYjB3zV2H1dWo56vgpa6");
|
|
8
8
|
const getTokenInfoFromMint = async (connection, mint) => {
|
|
9
9
|
const nameKey = await utils_1.getNameAccountKey(await utils_1.getHashedName(mint.toBase58()), undefined, exports.TOKEN_TLD);
|
|
10
|
-
const registry = await state_1.NameRegistryState.retrieve(connection, nameKey);
|
|
10
|
+
const { registry } = await state_1.NameRegistryState.retrieve(connection, nameKey);
|
|
11
11
|
if (!registry.data) {
|
|
12
12
|
throw new Error("Invalid account data");
|
|
13
13
|
}
|
|
@@ -16,7 +16,7 @@ const getTokenInfoFromMint = async (connection, mint) => {
|
|
|
16
16
|
exports.getTokenInfoFromMint = getTokenInfoFromMint;
|
|
17
17
|
const getTokenInfoFromName = async (connection, name) => {
|
|
18
18
|
const reverseNameKey = await utils_1.getNameAccountKey(await utils_1.getHashedName(name), undefined, exports.TOKEN_TLD);
|
|
19
|
-
const reverseRegistry = await state_1.NameRegistryState.retrieve(connection, reverseNameKey);
|
|
19
|
+
const { registry: reverseRegistry } = await state_1.NameRegistryState.retrieve(connection, reverseNameKey);
|
|
20
20
|
if (!reverseRegistry.data) {
|
|
21
21
|
throw new Error("Invalid account data");
|
|
22
22
|
}
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AACxD,mCAA2D;AAC3D,mCAA6D;AAEhD,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,IAAe,EACf,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,yBAAiB,CACrC,MAAM,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACpC,SAAS,EACT,iBAAS,CACV,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,yBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,6CAAwD;AACxD,mCAA2D;AAC3D,mCAA6D;AAEhD,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,IAAe,EACf,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,yBAAiB,CACrC,MAAM,qBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACpC,SAAS,EACT,iBAAS,CACV,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,yBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IACD,OAAO,iBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,IAAY,EACZ,EAAE;IACF,MAAM,cAAc,GAAG,MAAM,yBAAiB,CAC5C,MAAM,qBAAa,CAAC,IAAI,CAAC,EACzB,SAAS,EACT,iBAAS,CACV,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,yBAAiB,CAAC,QAAQ,CACpE,UAAU,EACV,cAAc,CACf,CAAC;IACF,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IACD,MAAM,IAAI,GAAG,IAAI,mBAAS,CAAC,YAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO,MAAM,4BAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B"}
|
package/dist/twitter_bindings.js
CHANGED
|
@@ -92,7 +92,7 @@ exports.getTwitterRegistryKey = getTwitterRegistryKey;
|
|
|
92
92
|
async function getTwitterRegistry(connection, twitter_handle) {
|
|
93
93
|
const hashedTwitterHandle = await utils_1.getHashedName(twitter_handle);
|
|
94
94
|
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
95
|
-
const registry = state_1.NameRegistryState.retrieve(connection, twitterHandleRegistryKey);
|
|
95
|
+
const { registry } = await state_1.NameRegistryState.retrieve(connection, twitterHandleRegistryKey);
|
|
96
96
|
return registry;
|
|
97
97
|
}
|
|
98
98
|
exports.getTwitterRegistry = getTwitterRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twitter_bindings.js","sourceRoot":"","sources":["../src/twitter_bindings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"twitter_bindings.js","sourceRoot":"","sources":["../src/twitter_bindings.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -26,9 +26,13 @@ export declare class Numberu64 extends BN {
|
|
|
26
26
|
export declare const signAndSendTransactionInstructions: (connection: Connection, signers: Array<Keypair>, feePayer: Keypair, txInstructions: Array<TransactionInstruction>) => Promise<string>;
|
|
27
27
|
export declare function getHashedName(name: string): Promise<Buffer>;
|
|
28
28
|
export declare function getNameAccountKey(hashed_name: Buffer, nameClass?: PublicKey, nameParent?: PublicKey): Promise<PublicKey>;
|
|
29
|
-
export declare function getNameOwner(connection: Connection, nameAccountKey: PublicKey): Promise<
|
|
29
|
+
export declare function getNameOwner(connection: Connection, nameAccountKey: PublicKey): Promise<{
|
|
30
|
+
registry: NameRegistryState;
|
|
31
|
+
nftOwner: PublicKey | undefined;
|
|
32
|
+
}>;
|
|
30
33
|
export declare function getFilteredProgramAccounts(connection: Connection, programId: PublicKey, filters: any): Promise<{
|
|
31
34
|
publicKey: PublicKey;
|
|
32
35
|
accountInfo: AccountInfo<Buffer>;
|
|
33
36
|
}[]>;
|
|
34
37
|
export declare function performReverseLookup(connection: Connection, nameAccount: PublicKey): Promise<string>;
|
|
38
|
+
export declare function getDNSRecordAddress(nameAccount: PublicKey, type: string): Promise<PublicKey>;
|
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.performReverseLookup = exports.getFilteredProgramAccounts = exports.getNameOwner = exports.getNameAccountKey = exports.getHashedName = exports.signAndSendTransactionInstructions = exports.Numberu64 = exports.Numberu32 = exports.REVERSE_LOOKUP_CLASS = void 0;
|
|
6
|
+
exports.getDNSRecordAddress = exports.performReverseLookup = exports.getFilteredProgramAccounts = exports.getNameOwner = exports.getNameAccountKey = exports.getHashedName = exports.signAndSendTransactionInstructions = exports.Numberu64 = exports.Numberu32 = exports.REVERSE_LOOKUP_CLASS = void 0;
|
|
7
7
|
const assert_1 = __importDefault(require("assert"));
|
|
8
8
|
const create_hash_1 = __importDefault(require("create-hash"));
|
|
9
9
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -126,14 +126,20 @@ async function getFilteredProgramAccounts(connection, programId, filters) {
|
|
|
126
126
|
}
|
|
127
127
|
exports.getFilteredProgramAccounts = getFilteredProgramAccounts;
|
|
128
128
|
async function performReverseLookup(connection, nameAccount) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (!
|
|
129
|
+
const hashedReverseLookup = await getHashedName(nameAccount.toBase58());
|
|
130
|
+
const reverseLookupAccount = await getNameAccountKey(hashedReverseLookup, exports.REVERSE_LOOKUP_CLASS);
|
|
131
|
+
const { registry } = await state_1.NameRegistryState.retrieve(connection, reverseLookupAccount);
|
|
132
|
+
if (!registry.data) {
|
|
133
133
|
throw "Could not retrieve name data";
|
|
134
134
|
}
|
|
135
|
-
|
|
136
|
-
return
|
|
135
|
+
const nameLength = new bn_js_1.default(registry.data.slice(0, 4), "le").toNumber();
|
|
136
|
+
return registry.data.slice(4, 4 + nameLength).toString();
|
|
137
137
|
}
|
|
138
138
|
exports.performReverseLookup = performReverseLookup;
|
|
139
|
+
async function getDNSRecordAddress(nameAccount, type) {
|
|
140
|
+
const hashedName = await getHashedName("\0".concat(type));
|
|
141
|
+
const recordAccount = await getNameAccountKey(hashedName, undefined, nameAccount);
|
|
142
|
+
return recordAccount;
|
|
143
|
+
}
|
|
144
|
+
exports.getDNSRecordAddress = getDNSRecordAddress;
|
|
139
145
|
//# 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.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"dev": "tsc && node --trace-warnings dist/test.js",
|
|
13
|
-
"build": "tsc",
|
|
13
|
+
"build": "rm -rf dist && tsc",
|
|
14
14
|
"prepublish": "tsc",
|
|
15
15
|
"lint": "yarn pretty && eslint .",
|
|
16
16
|
"lint:fix": "yarn pretty:fix && eslint . --fix",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@project-serum/sol-wallet-adapter": "^0.1.5",
|
|
38
|
-
"@solana/spl-token": "0.
|
|
38
|
+
"@solana/spl-token": "0.2.0",
|
|
39
39
|
"@solana/web3.js": "^1.29.2",
|
|
40
40
|
"bip32": "^2.0.6",
|
|
41
41
|
"bn.js": "^5.1.3",
|
package/src/bindings.ts
CHANGED
|
@@ -64,7 +64,10 @@ export async function createNameRegistry(
|
|
|
64
64
|
|
|
65
65
|
let nameParentOwner: PublicKey | undefined;
|
|
66
66
|
if (parentName) {
|
|
67
|
-
const parentAccount = await getNameOwner(
|
|
67
|
+
const { registry: parentAccount } = await getNameOwner(
|
|
68
|
+
connection,
|
|
69
|
+
parentName
|
|
70
|
+
);
|
|
68
71
|
nameParentOwner = parentAccount.owner;
|
|
69
72
|
}
|
|
70
73
|
|
|
@@ -117,7 +120,7 @@ export async function updateNameRegistryData(
|
|
|
117
120
|
signer = nameClass;
|
|
118
121
|
} else {
|
|
119
122
|
signer = (await NameRegistryState.retrieve(connection, nameAccountKey))
|
|
120
|
-
.owner;
|
|
123
|
+
.registry.owner;
|
|
121
124
|
}
|
|
122
125
|
|
|
123
126
|
const updateInstr = updateInstruction(
|
|
@@ -163,7 +166,7 @@ export async function transferNameOwnership(
|
|
|
163
166
|
} else {
|
|
164
167
|
curentNameOwner = (
|
|
165
168
|
await NameRegistryState.retrieve(connection, nameAccountKey)
|
|
166
|
-
).owner;
|
|
169
|
+
).registry.owner;
|
|
167
170
|
}
|
|
168
171
|
|
|
169
172
|
const transferInstr = transferInstruction(
|
|
@@ -206,7 +209,7 @@ export async function deleteNameRegistry(
|
|
|
206
209
|
nameOwner = nameClass;
|
|
207
210
|
} else {
|
|
208
211
|
nameOwner = (await NameRegistryState.retrieve(connection, nameAccountKey))
|
|
209
|
-
.owner;
|
|
212
|
+
.registry.owner;
|
|
210
213
|
}
|
|
211
214
|
|
|
212
215
|
const changeAuthoritiesInstr = deleteInstruction(
|
package/src/index.ts
CHANGED
package/src/nft.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { PublicKey, Connection } from "@solana/web3.js";
|
|
2
|
+
import { getMint } from "@solana/spl-token";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Mainnet program ID
|
|
6
|
+
*/
|
|
7
|
+
export const NAME_TOKENIZER_ID = new PublicKey(
|
|
8
|
+
"nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* PDA prefix
|
|
13
|
+
*/
|
|
14
|
+
export const MINT_PREFIX = Buffer.from("tokenized_name");
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* This function can be used to retrieve the owner of a tokenized domain name
|
|
18
|
+
*
|
|
19
|
+
* @param connection The solana connection object to the RPC node
|
|
20
|
+
* @param nameAccount The key of the domain name
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export const retrieveNftOwner = async (
|
|
24
|
+
connection: Connection,
|
|
25
|
+
nameAccount: PublicKey
|
|
26
|
+
) => {
|
|
27
|
+
try {
|
|
28
|
+
const [mint] = await PublicKey.findProgramAddress(
|
|
29
|
+
[MINT_PREFIX, nameAccount.toBuffer()],
|
|
30
|
+
NAME_TOKENIZER_ID
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const mintInfo = await getMint(connection, mint);
|
|
34
|
+
if (mintInfo.supply.toString() === "0") {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const { value } = await connection.getTokenLargestAccounts(mint);
|
|
39
|
+
|
|
40
|
+
const holder = value.find((e) => e.amount === "1")?.address;
|
|
41
|
+
if (!holder) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const info = await connection.getAccountInfo(holder);
|
|
46
|
+
if (!info || !info.data) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return new PublicKey(info.data.slice(32, 64));
|
|
51
|
+
} catch (err) {
|
|
52
|
+
console.log(err);
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* This function can be used to retrieve all the tokenized domains name
|
|
59
|
+
*
|
|
60
|
+
* @param connection The solana connection object to the RPC node
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
export const retrieveNfts = async (connection: Connection) => {
|
|
64
|
+
const filters = [
|
|
65
|
+
{
|
|
66
|
+
memcmp: {
|
|
67
|
+
offset: 0,
|
|
68
|
+
bytes: "3",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
const result = await connection.getProgramAccounts(NAME_TOKENIZER_ID, {
|
|
74
|
+
filters,
|
|
75
|
+
});
|
|
76
|
+
const offset = 1 + 1 + 32 + 32;
|
|
77
|
+
return result.map(
|
|
78
|
+
(e) => new PublicKey(e.account.data.slice(offset, offset + 32))
|
|
79
|
+
);
|
|
80
|
+
};
|
package/src/state.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
2
|
import { deserializeUnchecked, Schema, serialize } from "borsh";
|
|
3
|
+
import { retrieveNftOwner } from "./nft";
|
|
3
4
|
|
|
4
5
|
export class NameRegistryState {
|
|
5
6
|
static HEADER_LEN = 96;
|
|
@@ -34,11 +35,8 @@ export class NameRegistryState {
|
|
|
34
35
|
public static async retrieve(
|
|
35
36
|
connection: Connection,
|
|
36
37
|
nameAccountKey: PublicKey
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
nameAccountKey,
|
|
40
|
-
"processed"
|
|
41
|
-
);
|
|
38
|
+
) {
|
|
39
|
+
const nameAccount = await connection.getAccountInfo(nameAccountKey);
|
|
42
40
|
if (!nameAccount) {
|
|
43
41
|
throw new Error("Invalid name account provided");
|
|
44
42
|
}
|
|
@@ -51,7 +49,9 @@ export class NameRegistryState {
|
|
|
51
49
|
|
|
52
50
|
res.data = nameAccount.data?.slice(this.HEADER_LEN);
|
|
53
51
|
|
|
54
|
-
|
|
52
|
+
const nftOwner = await retrieveNftOwner(connection, nameAccountKey);
|
|
53
|
+
|
|
54
|
+
return { registry: res, nftOwner };
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
static async _retrieveBatch(
|
package/src/tokens.ts
CHANGED
|
@@ -15,7 +15,7 @@ export const getTokenInfoFromMint = async (
|
|
|
15
15
|
undefined,
|
|
16
16
|
TOKEN_TLD
|
|
17
17
|
);
|
|
18
|
-
const registry = await NameRegistryState.retrieve(connection, nameKey);
|
|
18
|
+
const { registry } = await NameRegistryState.retrieve(connection, nameKey);
|
|
19
19
|
if (!registry.data) {
|
|
20
20
|
throw new Error("Invalid account data");
|
|
21
21
|
}
|
|
@@ -31,7 +31,7 @@ export const getTokenInfoFromName = async (
|
|
|
31
31
|
undefined,
|
|
32
32
|
TOKEN_TLD
|
|
33
33
|
);
|
|
34
|
-
const reverseRegistry = await NameRegistryState.retrieve(
|
|
34
|
+
const { registry: reverseRegistry } = await NameRegistryState.retrieve(
|
|
35
35
|
connection,
|
|
36
36
|
reverseNameKey
|
|
37
37
|
);
|
package/src/twitter_bindings.ts
CHANGED
|
@@ -238,7 +238,7 @@ export async function getTwitterRegistry(
|
|
|
238
238
|
undefined,
|
|
239
239
|
TWITTER_ROOT_PARENT_REGISTRY_KEY
|
|
240
240
|
);
|
|
241
|
-
const registry = NameRegistryState.retrieve(
|
|
241
|
+
const { registry } = await NameRegistryState.retrieve(
|
|
242
242
|
connection,
|
|
243
243
|
twitterHandleRegistryKey
|
|
244
244
|
);
|
package/src/utils.ts
CHANGED
|
@@ -128,7 +128,7 @@ export async function getNameAccountKey(
|
|
|
128
128
|
export async function getNameOwner(
|
|
129
129
|
connection: Connection,
|
|
130
130
|
nameAccountKey: PublicKey
|
|
131
|
-
)
|
|
131
|
+
) {
|
|
132
132
|
const nameAccount = await connection.getAccountInfo(nameAccountKey);
|
|
133
133
|
if (!nameAccount) {
|
|
134
134
|
throw new Error("Unable to find the given account.");
|
|
@@ -164,16 +164,32 @@ export async function performReverseLookup(
|
|
|
164
164
|
connection: Connection,
|
|
165
165
|
nameAccount: PublicKey
|
|
166
166
|
): Promise<string> {
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
const hashedReverseLookup = await getHashedName(nameAccount.toBase58());
|
|
168
|
+
const reverseLookupAccount = await getNameAccountKey(
|
|
169
169
|
hashedReverseLookup,
|
|
170
170
|
REVERSE_LOOKUP_CLASS
|
|
171
171
|
);
|
|
172
172
|
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
const { registry } = await NameRegistryState.retrieve(
|
|
174
|
+
connection,
|
|
175
|
+
reverseLookupAccount
|
|
176
|
+
);
|
|
177
|
+
if (!registry.data) {
|
|
175
178
|
throw "Could not retrieve name data";
|
|
176
179
|
}
|
|
177
|
-
|
|
178
|
-
return
|
|
180
|
+
const nameLength = new BN(registry.data.slice(0, 4), "le").toNumber();
|
|
181
|
+
return registry.data.slice(4, 4 + nameLength).toString();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export async function getDNSRecordAddress(
|
|
185
|
+
nameAccount: PublicKey,
|
|
186
|
+
type: string
|
|
187
|
+
) {
|
|
188
|
+
const hashedName = await getHashedName("\0".concat(type));
|
|
189
|
+
const recordAccount = await getNameAccountKey(
|
|
190
|
+
hashedName,
|
|
191
|
+
undefined,
|
|
192
|
+
nameAccount
|
|
193
|
+
);
|
|
194
|
+
return recordAccount;
|
|
179
195
|
}
|