@bonfida/spl-name-service 0.1.24 → 0.1.27
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.d.ts +2 -1
- package/dist/bindings.js +7 -6
- 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/instructions.d.ts +1 -1
- package/dist/instructions.js +16 -2
- package/dist/instructions.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 +4 -1
- package/dist/utils.js +8 -8
- package/dist/utils.js.map +1 -1
- package/package.json +5 -5
- package/src/bindings.ts +13 -6
- package/src/index.ts +1 -0
- package/src/instructions.ts +19 -2
- 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 +12 -9
package/dist/bindings.d.ts
CHANGED
|
@@ -36,9 +36,10 @@ export declare function updateNameRegistryData(connection: Connection, name: str
|
|
|
36
36
|
* @param curentNameOwner the current name Owner
|
|
37
37
|
* @param nameClass The class of this name, if it exsists
|
|
38
38
|
* @param nameParent The parent name of this name, if it exists
|
|
39
|
+
* @param parentOwner Parent name owner
|
|
39
40
|
* @returns
|
|
40
41
|
*/
|
|
41
|
-
export declare function transferNameOwnership(connection: Connection, name: string, newOwner: PublicKey, nameClass?: PublicKey, nameParent?: PublicKey): Promise<TransactionInstruction>;
|
|
42
|
+
export declare function transferNameOwnership(connection: Connection, name: string, newOwner: PublicKey, nameClass?: PublicKey, nameParent?: PublicKey, parentOwner?: PublicKey): Promise<TransactionInstruction>;
|
|
42
43
|
/**
|
|
43
44
|
* Delete the name account and transfer the rent to the target.
|
|
44
45
|
*
|
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
|
|
@@ -78,9 +78,10 @@ exports.updateNameRegistryData = updateNameRegistryData;
|
|
|
78
78
|
* @param curentNameOwner the current name Owner
|
|
79
79
|
* @param nameClass The class of this name, if it exsists
|
|
80
80
|
* @param nameParent The parent name of this name, if it exists
|
|
81
|
+
* @param parentOwner Parent name owner
|
|
81
82
|
* @returns
|
|
82
83
|
*/
|
|
83
|
-
async function transferNameOwnership(connection, name, newOwner, nameClass, nameParent) {
|
|
84
|
+
async function transferNameOwnership(connection, name, newOwner, nameClass, nameParent, parentOwner) {
|
|
84
85
|
const hashed_name = await utils_2.getHashedName(name);
|
|
85
86
|
const nameAccountKey = await utils_2.getNameAccountKey(hashed_name, nameClass, nameParent);
|
|
86
87
|
let curentNameOwner;
|
|
@@ -88,9 +89,9 @@ async function transferNameOwnership(connection, name, newOwner, nameClass, name
|
|
|
88
89
|
curentNameOwner = nameClass;
|
|
89
90
|
}
|
|
90
91
|
else {
|
|
91
|
-
curentNameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey)).owner;
|
|
92
|
+
curentNameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey)).registry.owner;
|
|
92
93
|
}
|
|
93
|
-
const transferInstr = instructions_1.transferInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, newOwner, curentNameOwner, nameClass);
|
|
94
|
+
const transferInstr = instructions_1.transferInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, newOwner, curentNameOwner, nameClass, nameParent, parentOwner);
|
|
94
95
|
return transferInstr;
|
|
95
96
|
}
|
|
96
97
|
exports.transferNameOwnership = transferNameOwnership;
|
|
@@ -113,7 +114,7 @@ async function deleteNameRegistry(connection, name, refundTargetKey, nameClass,
|
|
|
113
114
|
}
|
|
114
115
|
else {
|
|
115
116
|
nameOwner = (await state_1.NameRegistryState.retrieve(connection, nameAccountKey))
|
|
116
|
-
.owner;
|
|
117
|
+
.registry.owner;
|
|
117
118
|
}
|
|
118
119
|
const changeAuthoritiesInstr = instructions_1.deleteInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, refundTargetKey, nameOwner);
|
|
119
120
|
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/instructions.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
|
3
3
|
import { Numberu32, Numberu64 } from "./utils";
|
|
4
4
|
export declare function createInstruction(nameProgramId: PublicKey, systemProgramId: PublicKey, nameKey: PublicKey, nameOwnerKey: PublicKey, payerKey: PublicKey, hashed_name: Buffer, lamports: Numberu64, space: Numberu32, nameClassKey?: PublicKey, nameParent?: PublicKey, nameParentOwner?: PublicKey): TransactionInstruction;
|
|
5
5
|
export declare function updateInstruction(nameProgramId: PublicKey, nameAccountKey: PublicKey, offset: Numberu32, input_data: Buffer, nameUpdateSigner: PublicKey): TransactionInstruction;
|
|
6
|
-
export declare function transferInstruction(nameProgramId: PublicKey, nameAccountKey: PublicKey, newOwnerKey: PublicKey, currentNameOwnerKey: PublicKey, nameClassKey?: PublicKey): TransactionInstruction;
|
|
6
|
+
export declare function transferInstruction(nameProgramId: PublicKey, nameAccountKey: PublicKey, newOwnerKey: PublicKey, currentNameOwnerKey: PublicKey, nameClassKey?: PublicKey, nameParent?: PublicKey, parentOwner?: PublicKey): TransactionInstruction;
|
|
7
7
|
export declare function deleteInstruction(nameProgramId: PublicKey, nameAccountKey: PublicKey, refundTargetKey: PublicKey, nameOwnerKey: PublicKey): TransactionInstruction;
|
package/dist/instructions.js
CHANGED
|
@@ -105,7 +105,7 @@ function updateInstruction(nameProgramId, nameAccountKey, offset, input_data, na
|
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
exports.updateInstruction = updateInstruction;
|
|
108
|
-
function transferInstruction(nameProgramId, nameAccountKey, newOwnerKey, currentNameOwnerKey, nameClassKey) {
|
|
108
|
+
function transferInstruction(nameProgramId, nameAccountKey, newOwnerKey, currentNameOwnerKey, nameClassKey, nameParent, parentOwner) {
|
|
109
109
|
const buffers = [Buffer.from(Int8Array.from([2])), newOwnerKey.toBuffer()];
|
|
110
110
|
const data = Buffer.concat(buffers);
|
|
111
111
|
const keys = [
|
|
@@ -115,7 +115,7 @@ function transferInstruction(nameProgramId, nameAccountKey, newOwnerKey, current
|
|
|
115
115
|
isWritable: true,
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
|
-
pubkey: currentNameOwnerKey,
|
|
118
|
+
pubkey: parentOwner ? parentOwner : currentNameOwnerKey,
|
|
119
119
|
isSigner: true,
|
|
120
120
|
isWritable: false,
|
|
121
121
|
},
|
|
@@ -127,6 +127,20 @@ function transferInstruction(nameProgramId, nameAccountKey, newOwnerKey, current
|
|
|
127
127
|
isWritable: false,
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
+
if (parentOwner && nameParent) {
|
|
131
|
+
if (!nameClassKey) {
|
|
132
|
+
keys.push({
|
|
133
|
+
pubkey: web3_js_1.PublicKey.default,
|
|
134
|
+
isSigner: false,
|
|
135
|
+
isWritable: false,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
keys.push({
|
|
139
|
+
pubkey: nameParent,
|
|
140
|
+
isSigner: false,
|
|
141
|
+
isWritable: false,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
130
144
|
return new web3_js_1.TransactionInstruction({
|
|
131
145
|
keys,
|
|
132
146
|
programId: nameProgramId,
|
package/dist/instructions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":";;;AAAA,6CAAoE;AAEpE,mCAA+C;AAE/C,SAAgB,iBAAiB,CAC/B,aAAwB,EACxB,eAA0B,EAC1B,OAAkB,EAClB,YAAuB,EACvB,QAAmB,EACnB,WAAmB,EACnB,QAAmB,EACnB,KAAgB,EAChB,YAAwB,EACxB,UAAsB,EACtB,eAA2B;IAE3B,MAAM,OAAO,GAAG;QACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,YAAY;QACZ,IAAI,iBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;QAC5C,WAAW;QACX,QAAQ,CAAC,QAAQ,EAAE;QACnB,KAAK,CAAC,QAAQ,EAAE;KACjB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,IAAI,GAAG;QACX;YACE,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB;QACD;YACE,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;QACD;YACE,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;IAEF,IAAI,YAAY,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;SAAM;QACL,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,IAAI,mBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IACD,IAAI,UAAU,EAAE;QACd,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;SAAM;QACL,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,IAAI,mBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IACD,IAAI,eAAe,EAAE;QACnB,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAtFD,8CAsFC;AAED,SAAgB,iBAAiB,CAC/B,aAAwB,EACxB,cAAyB,EACzB,MAAiB,EACjB,UAAkB,EAClB,gBAA2B;IAE3B,MAAM,OAAO,GAAG;QACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,EAAE;QACjB,YAAY;QACZ,IAAI,iBAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;QAC3C,UAAU;KACX,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG;QACX;YACE,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAlCD,8CAkCC;AAED,SAAgB,mBAAmB,CACjC,aAAwB,EACxB,cAAyB,EACzB,WAAsB,EACtB,mBAA8B,EAC9B,YAAwB,EACxB,UAAsB,EACtB,WAAuB;IAEvB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,IAAI,GAAG;QACX;YACE,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;QACD;YACE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB;YACvD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;IAEF,IAAI,YAAY,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IAED,IAAI,WAAW,IAAI,UAAU,EAAE;QAC7B,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,mBAAS,CAAC,OAAO;gBACzB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAtDD,kDAsDC;AAED,SAAgB,iBAAiB,CAC/B,aAAwB,EACxB,cAAyB,EACzB,eAA0B,EAC1B,YAAuB;IAEvB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG;QACX;YACE,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;QACD;YACE,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB;QACD;YACE,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS,EAAE,aAAa;QACxB,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAhCD,8CAgCC"}
|
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,7 +26,10 @@ 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>;
|
package/dist/utils.js
CHANGED
|
@@ -126,19 +126,19 @@ 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
139
|
async function getDNSRecordAddress(nameAccount, type) {
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
const hashedName = await getHashedName("\0".concat(type));
|
|
141
|
+
const recordAccount = await getNameAccountKey(hashedName, undefined, nameAccount);
|
|
142
142
|
return recordAccount;
|
|
143
143
|
}
|
|
144
144
|
exports.getDNSRecordAddress = getDNSRecordAddress;
|
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.27",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"dev": "tsc && node --trace-warnings dist/test.js",
|
|
13
|
-
"build": "tsc",
|
|
14
|
-
"prepublish": "tsc",
|
|
13
|
+
"build": "rm -rf dist && tsc",
|
|
14
|
+
"prepublish": "rm -rf dist && tsc",
|
|
15
15
|
"lint": "yarn pretty && eslint .",
|
|
16
16
|
"lint:fix": "yarn pretty:fix && eslint . --fix",
|
|
17
17
|
"pretty": "prettier --check 'src/*.[jt]s'",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@project-serum/sol-wallet-adapter": "^0.1.5",
|
|
38
|
-
"@solana/
|
|
38
|
+
"@solana/buffer-layout": "^4.0.0",
|
|
39
|
+
"@solana/spl-token": "0.2.0",
|
|
39
40
|
"@solana/web3.js": "^1.29.2",
|
|
40
41
|
"bip32": "^2.0.6",
|
|
41
42
|
"bn.js": "^5.1.3",
|
|
42
43
|
"borsh": "^0.6.0",
|
|
43
44
|
"bs58": "4.0.1",
|
|
44
|
-
"buffer-layout": "^1.2.0",
|
|
45
45
|
"core-util-is": "^1.0.2",
|
|
46
46
|
"csv-parser": "^3.0.0",
|
|
47
47
|
"fs": "^0.0.1-security",
|
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(
|
|
@@ -141,6 +144,7 @@ export async function updateNameRegistryData(
|
|
|
141
144
|
* @param curentNameOwner the current name Owner
|
|
142
145
|
* @param nameClass The class of this name, if it exsists
|
|
143
146
|
* @param nameParent The parent name of this name, if it exists
|
|
147
|
+
* @param parentOwner Parent name owner
|
|
144
148
|
* @returns
|
|
145
149
|
*/
|
|
146
150
|
export async function transferNameOwnership(
|
|
@@ -148,7 +152,8 @@ export async function transferNameOwnership(
|
|
|
148
152
|
name: string,
|
|
149
153
|
newOwner: PublicKey,
|
|
150
154
|
nameClass?: PublicKey,
|
|
151
|
-
nameParent?: PublicKey
|
|
155
|
+
nameParent?: PublicKey,
|
|
156
|
+
parentOwner?: PublicKey
|
|
152
157
|
): Promise<TransactionInstruction> {
|
|
153
158
|
const hashed_name = await getHashedName(name);
|
|
154
159
|
const nameAccountKey = await getNameAccountKey(
|
|
@@ -163,7 +168,7 @@ export async function transferNameOwnership(
|
|
|
163
168
|
} else {
|
|
164
169
|
curentNameOwner = (
|
|
165
170
|
await NameRegistryState.retrieve(connection, nameAccountKey)
|
|
166
|
-
).owner;
|
|
171
|
+
).registry.owner;
|
|
167
172
|
}
|
|
168
173
|
|
|
169
174
|
const transferInstr = transferInstruction(
|
|
@@ -171,7 +176,9 @@ export async function transferNameOwnership(
|
|
|
171
176
|
nameAccountKey,
|
|
172
177
|
newOwner,
|
|
173
178
|
curentNameOwner,
|
|
174
|
-
nameClass
|
|
179
|
+
nameClass,
|
|
180
|
+
nameParent,
|
|
181
|
+
parentOwner
|
|
175
182
|
);
|
|
176
183
|
|
|
177
184
|
return transferInstr;
|
|
@@ -206,7 +213,7 @@ export async function deleteNameRegistry(
|
|
|
206
213
|
nameOwner = nameClass;
|
|
207
214
|
} else {
|
|
208
215
|
nameOwner = (await NameRegistryState.retrieve(connection, nameAccountKey))
|
|
209
|
-
.owner;
|
|
216
|
+
.registry.owner;
|
|
210
217
|
}
|
|
211
218
|
|
|
212
219
|
const changeAuthoritiesInstr = deleteInstruction(
|
package/src/index.ts
CHANGED
package/src/instructions.ts
CHANGED
|
@@ -131,7 +131,9 @@ export function transferInstruction(
|
|
|
131
131
|
nameAccountKey: PublicKey,
|
|
132
132
|
newOwnerKey: PublicKey,
|
|
133
133
|
currentNameOwnerKey: PublicKey,
|
|
134
|
-
nameClassKey?: PublicKey
|
|
134
|
+
nameClassKey?: PublicKey,
|
|
135
|
+
nameParent?: PublicKey,
|
|
136
|
+
parentOwner?: PublicKey
|
|
135
137
|
): TransactionInstruction {
|
|
136
138
|
const buffers = [Buffer.from(Int8Array.from([2])), newOwnerKey.toBuffer()];
|
|
137
139
|
|
|
@@ -144,7 +146,7 @@ export function transferInstruction(
|
|
|
144
146
|
isWritable: true,
|
|
145
147
|
},
|
|
146
148
|
{
|
|
147
|
-
pubkey: currentNameOwnerKey,
|
|
149
|
+
pubkey: parentOwner ? parentOwner : currentNameOwnerKey,
|
|
148
150
|
isSigner: true,
|
|
149
151
|
isWritable: false,
|
|
150
152
|
},
|
|
@@ -158,6 +160,21 @@ export function transferInstruction(
|
|
|
158
160
|
});
|
|
159
161
|
}
|
|
160
162
|
|
|
163
|
+
if (parentOwner && nameParent) {
|
|
164
|
+
if (!nameClassKey) {
|
|
165
|
+
keys.push({
|
|
166
|
+
pubkey: PublicKey.default,
|
|
167
|
+
isSigner: false,
|
|
168
|
+
isWritable: false,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
keys.push({
|
|
172
|
+
pubkey: nameParent,
|
|
173
|
+
isSigner: false,
|
|
174
|
+
isWritable: false,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
161
178
|
return new TransactionInstruction({
|
|
162
179
|
keys,
|
|
163
180
|
programId: nameProgramId,
|
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,26 +164,29 @@ 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();
|
|
179
182
|
}
|
|
180
183
|
|
|
181
184
|
export async function getDNSRecordAddress(
|
|
182
185
|
nameAccount: PublicKey,
|
|
183
186
|
type: string
|
|
184
187
|
) {
|
|
185
|
-
|
|
186
|
-
|
|
188
|
+
const hashedName = await getHashedName("\0".concat(type));
|
|
189
|
+
const recordAccount = await getNameAccountKey(
|
|
187
190
|
hashedName,
|
|
188
191
|
undefined,
|
|
189
192
|
nameAccount
|