@bonfida/spl-name-service 0.1.25 → 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.d.ts +1 -1
- package/dist/bindings.js +6 -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 +1 -13
- 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 +3 -3
- package/src/bindings.ts +10 -9
- package/src/index.ts +1 -0
- package/src/instructions.ts +1 -15
- 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/twitter.d.ts +0 -15
- package/dist/twitter.js +0 -147
- package/dist/twitter.js.map +0 -1
package/dist/bindings.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare function updateNameRegistryData(connection: Connection, name: str
|
|
|
38
38
|
* @param nameParent The parent name of this name, if it exists
|
|
39
39
|
* @returns
|
|
40
40
|
*/
|
|
41
|
-
export declare function transferNameOwnership(connection: Connection, name: string, newOwner: PublicKey, nameClass?: PublicKey, nameParent?: PublicKey
|
|
41
|
+
export declare function transferNameOwnership(connection: Connection, name: string, newOwner: PublicKey, nameClass?: PublicKey, nameParent?: PublicKey): Promise<TransactionInstruction>;
|
|
42
42
|
/**
|
|
43
43
|
* Delete the name account and transfer the rent to the target.
|
|
44
44
|
*
|
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
|
|
@@ -80,7 +80,7 @@ exports.updateNameRegistryData = updateNameRegistryData;
|
|
|
80
80
|
* @param nameParent The parent name of this name, if it exists
|
|
81
81
|
* @returns
|
|
82
82
|
*/
|
|
83
|
-
async function transferNameOwnership(connection, name, newOwner, nameClass, nameParent
|
|
83
|
+
async function transferNameOwnership(connection, name, newOwner, nameClass, nameParent) {
|
|
84
84
|
const hashed_name = await utils_2.getHashedName(name);
|
|
85
85
|
const nameAccountKey = await utils_2.getNameAccountKey(hashed_name, nameClass, nameParent);
|
|
86
86
|
let curentNameOwner;
|
|
@@ -88,9 +88,9 @@ 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
|
-
const transferInstr = instructions_1.transferInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, newOwner,
|
|
93
|
+
const transferInstr = instructions_1.transferInstruction(exports.NAME_PROGRAM_ID, nameAccountKey, newOwner, curentNameOwner, nameClass);
|
|
94
94
|
return transferInstr;
|
|
95
95
|
}
|
|
96
96
|
exports.transferNameOwnership = transferNameOwnership;
|
|
@@ -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/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
|
|
6
|
+
export declare function transferInstruction(nameProgramId: PublicKey, nameAccountKey: PublicKey, newOwnerKey: PublicKey, currentNameOwnerKey: PublicKey, nameClassKey?: 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) {
|
|
109
109
|
const buffers = [Buffer.from(Int8Array.from([2])), newOwnerKey.toBuffer()];
|
|
110
110
|
const data = Buffer.concat(buffers);
|
|
111
111
|
const keys = [
|
|
@@ -127,18 +127,6 @@ function transferInstruction(nameProgramId, nameAccountKey, newOwnerKey, current
|
|
|
127
127
|
isWritable: false,
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
if (nameParent) {
|
|
131
|
-
keys.push({
|
|
132
|
-
pubkey: web3_js_1.PublicKey.default,
|
|
133
|
-
isSigner: false,
|
|
134
|
-
isWritable: false,
|
|
135
|
-
});
|
|
136
|
-
keys.push({
|
|
137
|
-
pubkey: nameParent,
|
|
138
|
-
isSigner: false,
|
|
139
|
-
isWritable: false,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
130
|
return new web3_js_1.TransactionInstruction({
|
|
143
131
|
keys,
|
|
144
132
|
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":"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"}
|
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.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(
|
|
@@ -148,8 +151,7 @@ export async function transferNameOwnership(
|
|
|
148
151
|
name: string,
|
|
149
152
|
newOwner: PublicKey,
|
|
150
153
|
nameClass?: PublicKey,
|
|
151
|
-
nameParent?: PublicKey
|
|
152
|
-
parentOwner?: PublicKey
|
|
154
|
+
nameParent?: PublicKey
|
|
153
155
|
): Promise<TransactionInstruction> {
|
|
154
156
|
const hashed_name = await getHashedName(name);
|
|
155
157
|
const nameAccountKey = await getNameAccountKey(
|
|
@@ -164,16 +166,15 @@ export async function transferNameOwnership(
|
|
|
164
166
|
} else {
|
|
165
167
|
curentNameOwner = (
|
|
166
168
|
await NameRegistryState.retrieve(connection, nameAccountKey)
|
|
167
|
-
).owner;
|
|
169
|
+
).registry.owner;
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
const transferInstr = transferInstruction(
|
|
171
173
|
NAME_PROGRAM_ID,
|
|
172
174
|
nameAccountKey,
|
|
173
175
|
newOwner,
|
|
174
|
-
|
|
175
|
-
nameClass
|
|
176
|
-
!!parentOwner ? nameParent : undefined
|
|
176
|
+
curentNameOwner,
|
|
177
|
+
nameClass
|
|
177
178
|
);
|
|
178
179
|
|
|
179
180
|
return transferInstr;
|
|
@@ -208,7 +209,7 @@ export async function deleteNameRegistry(
|
|
|
208
209
|
nameOwner = nameClass;
|
|
209
210
|
} else {
|
|
210
211
|
nameOwner = (await NameRegistryState.retrieve(connection, nameAccountKey))
|
|
211
|
-
.owner;
|
|
212
|
+
.registry.owner;
|
|
212
213
|
}
|
|
213
214
|
|
|
214
215
|
const changeAuthoritiesInstr = deleteInstruction(
|
package/src/index.ts
CHANGED
package/src/instructions.ts
CHANGED
|
@@ -131,8 +131,7 @@ export function transferInstruction(
|
|
|
131
131
|
nameAccountKey: PublicKey,
|
|
132
132
|
newOwnerKey: PublicKey,
|
|
133
133
|
currentNameOwnerKey: PublicKey,
|
|
134
|
-
nameClassKey?: PublicKey
|
|
135
|
-
nameParent?: PublicKey
|
|
134
|
+
nameClassKey?: PublicKey
|
|
136
135
|
): TransactionInstruction {
|
|
137
136
|
const buffers = [Buffer.from(Int8Array.from([2])), newOwnerKey.toBuffer()];
|
|
138
137
|
|
|
@@ -159,19 +158,6 @@ export function transferInstruction(
|
|
|
159
158
|
});
|
|
160
159
|
}
|
|
161
160
|
|
|
162
|
-
if (nameParent) {
|
|
163
|
-
keys.push({
|
|
164
|
-
pubkey: PublicKey.default,
|
|
165
|
-
isSigner: false,
|
|
166
|
-
isWritable: false,
|
|
167
|
-
});
|
|
168
|
-
keys.push({
|
|
169
|
-
pubkey: nameParent,
|
|
170
|
-
isSigner: false,
|
|
171
|
-
isWritable: false,
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
|
|
175
161
|
return new TransactionInstruction({
|
|
176
162
|
keys,
|
|
177
163
|
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
|
package/dist/twitter.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
3
|
-
import { NameRegistryState } from './state';
|
|
4
|
-
export declare const TWITTER_VERIFICATION_AUTHORITY: PublicKey;
|
|
5
|
-
export declare const TWITTER_ROOT_PARENT_REGISTRY_KEY: PublicKey;
|
|
6
|
-
export declare function createVerifiedTwitterRegistry(connection: Connection, twitterHandle: string, verifiedPubkey: PublicKey, space: number, // The space that the user will have to write data into the verified registry
|
|
7
|
-
payerKey: PublicKey): Promise<TransactionInstruction[]>;
|
|
8
|
-
export declare function changeTwitterRegistryData(twitterHandle: string, verifiedPubkey: PublicKey, offset: number, // The offset at which to write the input data into the NameRegistryData
|
|
9
|
-
input_data: Buffer): Promise<TransactionInstruction[]>;
|
|
10
|
-
export declare function changeVerifiedPubkey(connection: Connection, twitterHandle: string, currentVerifiedPubkey: PublicKey, newVerifiedPubkey: PublicKey, payerKey: PublicKey): Promise<TransactionInstruction[]>;
|
|
11
|
-
export declare function deleteTwitterRegistry(twitterHandle: string, verifiedPubkey: PublicKey): Promise<TransactionInstruction[]>;
|
|
12
|
-
export declare function getTwitterHandle(connection: Connection, verifiedPubkey: PublicKey): Promise<string>;
|
|
13
|
-
export declare function getTwitterRegistryKey(twitter_handle: string): Promise<PublicKey>;
|
|
14
|
-
export declare function getTwitterRegistry(connection: Connection, twitter_handle: string): Promise<NameRegistryState>;
|
|
15
|
-
export declare function getTwitterRegistryData(connection: Connection, verifiedPubkey: PublicKey): Promise<Buffer>;
|
package/dist/twitter.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTwitterRegistryData = exports.getTwitterRegistry = exports.getTwitterRegistryKey = exports.getTwitterHandle = exports.deleteTwitterRegistry = exports.changeVerifiedPubkey = exports.changeTwitterRegistryData = exports.createVerifiedTwitterRegistry = exports.TWITTER_ROOT_PARENT_REGISTRY_KEY = exports.TWITTER_VERIFICATION_AUTHORITY = void 0;
|
|
4
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
-
const bindings_1 = require("./bindings");
|
|
6
|
-
const instructions_1 = require("./instructions");
|
|
7
|
-
const state_1 = require("./state");
|
|
8
|
-
const utils_1 = require("./utils");
|
|
9
|
-
exports.TWITTER_VERIFICATION_AUTHORITY = new web3_js_1.PublicKey('867BLob5b52i81SNaV9Awm5ejkZV6VGSv9SxLcwukDDJ');
|
|
10
|
-
// The address of the name registry that will be a parent to all twitter handle registries,
|
|
11
|
-
// it should be owned by the TWITTER_VERIFICATION_AUTHORITY and it's name is irrelevant
|
|
12
|
-
exports.TWITTER_ROOT_PARENT_REGISTRY_KEY = new web3_js_1.PublicKey('AFrGkxNmVLBn3mKhvfJJABvm8RJkTtRhHDoaF97pQZaA');
|
|
13
|
-
// Signed by the authority and the payer
|
|
14
|
-
async function createVerifiedTwitterRegistry(connection, twitterHandle, verifiedPubkey, space, // The space that the user will have to write data into the verified registry
|
|
15
|
-
payerKey) {
|
|
16
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitterHandle);
|
|
17
|
-
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
18
|
-
const hashedVerifiedPubkey = await utils_1.getHashedName(verifiedPubkey.toString().concat(twitterHandle));
|
|
19
|
-
const reverseRegistryKey = await utils_1.getNameAccountKey(hashedVerifiedPubkey, exports.TWITTER_VERIFICATION_AUTHORITY, undefined);
|
|
20
|
-
space += 96; // Accounting for the Registry State Header
|
|
21
|
-
const instructions = [
|
|
22
|
-
// Create user facing registry
|
|
23
|
-
instructions_1.createInstruction(bindings_1.NAME_PROGRAM_ID, web3_js_1.SystemProgram.programId, twitterHandleRegistryKey, verifiedPubkey, payerKey, hashedTwitterHandle, new utils_1.Numberu64(await connection.getMinimumBalanceForRentExemption(space)), new utils_1.Numberu32(space), undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY, exports.TWITTER_VERIFICATION_AUTHORITY // Twitter authority acts as owner of the parent for all user-facing registries
|
|
24
|
-
),
|
|
25
|
-
// Create reverse lookup registry
|
|
26
|
-
instructions_1.createInstruction(bindings_1.NAME_PROGRAM_ID, web3_js_1.SystemProgram.programId, reverseRegistryKey, verifiedPubkey, payerKey, hashedVerifiedPubkey, new utils_1.Numberu64(await connection.getMinimumBalanceForRentExemption(96 + 18)), new utils_1.Numberu32(96 + 18), // maximum length of a twitter handle
|
|
27
|
-
exports.TWITTER_VERIFICATION_AUTHORITY, // Twitter authority acts as class for all reverse-lookup registries
|
|
28
|
-
undefined, undefined),
|
|
29
|
-
// Write the twitter handle into the reverse lookup registry
|
|
30
|
-
instructions_1.updateInstruction(bindings_1.NAME_PROGRAM_ID, reverseRegistryKey, new utils_1.Numberu32(0), Buffer.from(twitterHandle), exports.TWITTER_VERIFICATION_AUTHORITY),
|
|
31
|
-
];
|
|
32
|
-
return instructions;
|
|
33
|
-
}
|
|
34
|
-
exports.createVerifiedTwitterRegistry = createVerifiedTwitterRegistry;
|
|
35
|
-
// Overwrite the data that is written in the user facing registry
|
|
36
|
-
// Signed by the verified pubkey
|
|
37
|
-
async function changeTwitterRegistryData(twitterHandle, verifiedPubkey, offset, // The offset at which to write the input data into the NameRegistryData
|
|
38
|
-
input_data) {
|
|
39
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitterHandle);
|
|
40
|
-
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
41
|
-
const instructions = [
|
|
42
|
-
instructions_1.updateInstruction(bindings_1.NAME_PROGRAM_ID, twitterHandleRegistryKey, new utils_1.Numberu32(offset), input_data, verifiedPubkey),
|
|
43
|
-
];
|
|
44
|
-
return instructions;
|
|
45
|
-
}
|
|
46
|
-
exports.changeTwitterRegistryData = changeTwitterRegistryData;
|
|
47
|
-
// Change the verified pubkey for a given twitter handle
|
|
48
|
-
// Signed by the Authority, the verified pubkey and the payer
|
|
49
|
-
async function changeVerifiedPubkey(connection, twitterHandle, currentVerifiedPubkey, newVerifiedPubkey, payerKey) {
|
|
50
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitterHandle);
|
|
51
|
-
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
52
|
-
const currentHashedVerifiedPubkey = await utils_1.getHashedName(currentVerifiedPubkey.toString().concat(twitterHandle));
|
|
53
|
-
const currentReverseRegistryKey = await utils_1.getNameAccountKey(currentHashedVerifiedPubkey, exports.TWITTER_VERIFICATION_AUTHORITY, undefined);
|
|
54
|
-
const newHashedVerifiedPubkey = await utils_1.getHashedName(newVerifiedPubkey.toString().concat(twitterHandle));
|
|
55
|
-
const newReverseRegistryKey = await utils_1.getNameAccountKey(newHashedVerifiedPubkey, exports.TWITTER_VERIFICATION_AUTHORITY, undefined);
|
|
56
|
-
const instructions = [
|
|
57
|
-
// Transfer the user-facing registry ownership
|
|
58
|
-
instructions_1.transferInstruction(bindings_1.NAME_PROGRAM_ID, twitterHandleRegistryKey, newVerifiedPubkey, currentVerifiedPubkey, undefined),
|
|
59
|
-
// Delete the current reverse registry
|
|
60
|
-
instructions_1.deleteInstruction(bindings_1.NAME_PROGRAM_ID, currentReverseRegistryKey, payerKey, currentVerifiedPubkey),
|
|
61
|
-
// Create the new reverse lookup registry
|
|
62
|
-
instructions_1.createInstruction(bindings_1.NAME_PROGRAM_ID, web3_js_1.SystemProgram.programId, newReverseRegistryKey, exports.TWITTER_VERIFICATION_AUTHORITY, payerKey, newHashedVerifiedPubkey, new utils_1.Numberu64(await connection.getMinimumBalanceForRentExemption(18)), new utils_1.Numberu32(18), // maximum length of a twitter handle
|
|
63
|
-
exports.TWITTER_VERIFICATION_AUTHORITY, // Twitter authority acts as class for all reverse-lookup registries
|
|
64
|
-
undefined, undefined),
|
|
65
|
-
// Write the twitter handle into the new reverse lookup registry
|
|
66
|
-
instructions_1.updateInstruction(bindings_1.NAME_PROGRAM_ID, newReverseRegistryKey, new utils_1.Numberu32(0), Buffer.from(twitterHandle), exports.TWITTER_VERIFICATION_AUTHORITY),
|
|
67
|
-
];
|
|
68
|
-
return instructions;
|
|
69
|
-
}
|
|
70
|
-
exports.changeVerifiedPubkey = changeVerifiedPubkey;
|
|
71
|
-
// Delete the verified registry for a given twitter handle
|
|
72
|
-
// Signed by the verified pubkey
|
|
73
|
-
async function deleteTwitterRegistry(twitterHandle, verifiedPubkey) {
|
|
74
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitterHandle);
|
|
75
|
-
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
76
|
-
const hashedVerifiedPubkey = await utils_1.getHashedName(verifiedPubkey.toString().concat(twitterHandle));
|
|
77
|
-
const reverseRegistryKey = await utils_1.getNameAccountKey(hashedVerifiedPubkey, exports.TWITTER_VERIFICATION_AUTHORITY, undefined);
|
|
78
|
-
const instructions = [
|
|
79
|
-
// Delete the user facing registry
|
|
80
|
-
instructions_1.deleteInstruction(bindings_1.NAME_PROGRAM_ID, twitterHandleRegistryKey, verifiedPubkey, verifiedPubkey),
|
|
81
|
-
// Delete the reverse registry
|
|
82
|
-
instructions_1.deleteInstruction(bindings_1.NAME_PROGRAM_ID, reverseRegistryKey, verifiedPubkey, verifiedPubkey),
|
|
83
|
-
];
|
|
84
|
-
return instructions;
|
|
85
|
-
}
|
|
86
|
-
exports.deleteTwitterRegistry = deleteTwitterRegistry;
|
|
87
|
-
async function getTwitterHandle(connection, verifiedPubkey) {
|
|
88
|
-
const filters = [
|
|
89
|
-
{
|
|
90
|
-
memcmp: {
|
|
91
|
-
offset: 32,
|
|
92
|
-
bytes: verifiedPubkey.toBase58(),
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
memcmp: {
|
|
97
|
-
offset: bindings_1.VERIFICATION_AUTHORITY_OFFSET,
|
|
98
|
-
bytes: exports.TWITTER_VERIFICATION_AUTHORITY.toBase58(),
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
];
|
|
102
|
-
const filteredAccounts = await utils_1.getFilteredProgramAccounts(connection, bindings_1.NAME_PROGRAM_ID, filters);
|
|
103
|
-
for (const f of filteredAccounts) {
|
|
104
|
-
if (f.accountInfo.data.length == 114) {
|
|
105
|
-
return f.accountInfo.data.slice(96, 114).toString();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
throw 'Could not find the twitter handle';
|
|
109
|
-
}
|
|
110
|
-
exports.getTwitterHandle = getTwitterHandle;
|
|
111
|
-
// Returns the key of the user-facing registry
|
|
112
|
-
async function getTwitterRegistryKey(twitter_handle) {
|
|
113
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitter_handle);
|
|
114
|
-
return await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
115
|
-
}
|
|
116
|
-
exports.getTwitterRegistryKey = getTwitterRegistryKey;
|
|
117
|
-
async function getTwitterRegistry(connection, twitter_handle) {
|
|
118
|
-
const hashedTwitterHandle = await utils_1.getHashedName(twitter_handle);
|
|
119
|
-
const twitterHandleRegistryKey = await utils_1.getNameAccountKey(hashedTwitterHandle, undefined, exports.TWITTER_ROOT_PARENT_REGISTRY_KEY);
|
|
120
|
-
const registry = state_1.NameRegistryState.retrieve(connection, twitterHandleRegistryKey);
|
|
121
|
-
return registry;
|
|
122
|
-
}
|
|
123
|
-
exports.getTwitterRegistry = getTwitterRegistry;
|
|
124
|
-
async function getTwitterRegistryData(connection, verifiedPubkey) {
|
|
125
|
-
// Does not give you the name, but is faster than getTwitterHandle + getTwitterRegistry to get the data
|
|
126
|
-
const filters = [
|
|
127
|
-
{
|
|
128
|
-
memcmp: {
|
|
129
|
-
offset: 0,
|
|
130
|
-
bytes: exports.TWITTER_ROOT_PARENT_REGISTRY_KEY.toBytes(),
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
memcmp: {
|
|
135
|
-
offset: 32,
|
|
136
|
-
bytes: verifiedPubkey.toBytes(),
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
];
|
|
140
|
-
const filteredAccounts = await utils_1.getFilteredProgramAccounts(connection, bindings_1.NAME_PROGRAM_ID, filters);
|
|
141
|
-
if (filteredAccounts.length > 1) {
|
|
142
|
-
throw 'Found more than one twitter handle';
|
|
143
|
-
}
|
|
144
|
-
return filteredAccounts[0].accountInfo.data;
|
|
145
|
-
}
|
|
146
|
-
exports.getTwitterRegistryData = getTwitterRegistryData;
|
|
147
|
-
//# sourceMappingURL=twitter.js.map
|
package/dist/twitter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"twitter.js","sourceRoot":"","sources":["../src/twitter.ts"],"names":[],"mappings":";;;AAAA,6CAKyB;AAEzB,yCAA4E;AAC5E,iDAKwB;AACxB,mCAA4C;AAC5C,mCAMiB;AAEJ,QAAA,8BAA8B,GAAG,IAAI,mBAAS,CACzD,8CAA8C,CAC/C,CAAC;AAEF,2FAA2F;AAC3F,uFAAuF;AAC1E,QAAA,gCAAgC,GAAG,IAAI,mBAAS,CAC3D,8CAA8C,CAC/C,CAAC;AACF,wCAAwC;AACjC,KAAK,UAAU,6BAA6B,CACjD,UAAsB,EACtB,aAAqB,EACrB,cAAyB,EACzB,KAAa,EAAE,6EAA6E;AAC5F,QAAmB;IAEnB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,MAAM,yBAAiB,CACtD,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,MAAM,qBAAa,CAC9C,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAChD,CAAC;IACF,MAAM,kBAAkB,GAAG,MAAM,yBAAiB,CAChD,oBAAoB,EACpB,sCAA8B,EAC9B,SAAS,CACV,CAAC;IAEF,KAAK,IAAI,EAAE,CAAC,CAAC,2CAA2C;IAExD,MAAM,YAAY,GAAG;QACnB,8BAA8B;QAC9B,gCAAiB,CACf,0BAAe,EACf,uBAAa,CAAC,SAAS,EACvB,wBAAwB,EACxB,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,IAAI,iBAAS,CAAC,MAAM,UAAU,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EACxE,IAAI,iBAAS,CAAC,KAAK,CAAC,EACpB,SAAS,EACT,wCAAgC,EAChC,sCAA8B,CAAC,+EAA+E;SAC/G;QACD,iCAAiC;QACjC,gCAAiB,CACf,0BAAe,EACf,uBAAa,CAAC,SAAS,EACvB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,oBAAoB,EACpB,IAAI,iBAAS,CACX,MAAM,UAAU,CAAC,iCAAiC,CAAC,EAAE,GAAG,EAAE,CAAC,CAC5D,EACD,IAAI,iBAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,qCAAqC;QAC7D,sCAA8B,EAAE,oEAAoE;QACpG,SAAS,EACT,SAAS,CACV;QACD,4DAA4D;QAC5D,gCAAiB,CACf,0BAAe,EACf,kBAAkB,EAClB,IAAI,iBAAS,CAAC,CAAC,CAAC,EAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,sCAA8B,CAC/B;KACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAnED,sEAmEC;AAED,iEAAiE;AACjE,gCAAgC;AACzB,KAAK,UAAU,yBAAyB,CAC7C,aAAqB,EACrB,cAAyB,EACzB,MAAc,EAAE,wEAAwE;AACxF,UAAkB;IAElB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,MAAM,yBAAiB,CACtD,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,gCAAiB,CACf,0BAAe,EACf,wBAAwB,EACxB,IAAI,iBAAS,CAAC,MAAM,CAAC,EACrB,UAAU,EACV,cAAc,CACf;KACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAxBD,8DAwBC;AAED,wDAAwD;AACxD,6DAA6D;AACtD,KAAK,UAAU,oBAAoB,CACxC,UAAsB,EACtB,aAAqB,EACrB,qBAAgC,EAChC,iBAA4B,EAC5B,QAAmB;IAEnB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,MAAM,yBAAiB,CACtD,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;IAEF,MAAM,2BAA2B,GAAG,MAAM,qBAAa,CACrD,qBAAqB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CACvD,CAAC;IACF,MAAM,yBAAyB,GAAG,MAAM,yBAAiB,CACvD,2BAA2B,EAC3B,sCAA8B,EAC9B,SAAS,CACV,CAAC;IAEF,MAAM,uBAAuB,GAAG,MAAM,qBAAa,CACjD,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CACnD,CAAC;IACF,MAAM,qBAAqB,GAAG,MAAM,yBAAiB,CACnD,uBAAuB,EACvB,sCAA8B,EAC9B,SAAS,CACV,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,8CAA8C;QAC9C,kCAAmB,CACjB,0BAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,CACV;QACD,sCAAsC;QACtC,gCAAiB,CACf,0BAAe,EACf,yBAAyB,EACzB,QAAQ,EACR,qBAAqB,CACtB;QACD,yCAAyC;QACzC,gCAAiB,CACf,0BAAe,EACf,uBAAa,CAAC,SAAS,EACvB,qBAAqB,EACrB,sCAA8B,EAC9B,QAAQ,EACR,uBAAuB,EACvB,IAAI,iBAAS,CAAC,MAAM,UAAU,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,EACrE,IAAI,iBAAS,CAAC,EAAE,CAAC,EAAE,qCAAqC;QACxD,sCAA8B,EAAE,oEAAoE;QACpG,SAAS,EACT,SAAS,CACV;QACD,gEAAgE;QAChE,gCAAiB,CACf,0BAAe,EACf,qBAAqB,EACrB,IAAI,iBAAS,CAAC,CAAC,CAAC,EAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,sCAA8B,CAC/B;KACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAzED,oDAyEC;AAED,0DAA0D;AAC1D,gCAAgC;AACzB,KAAK,UAAU,qBAAqB,CACzC,aAAqB,EACrB,cAAyB;IAEzB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,MAAM,yBAAiB,CACtD,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,MAAM,qBAAa,CAC9C,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAChD,CAAC;IACF,MAAM,kBAAkB,GAAG,MAAM,yBAAiB,CAChD,oBAAoB,EACpB,sCAA8B,EAC9B,SAAS,CACV,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,kCAAkC;QAClC,gCAAiB,CACf,0BAAe,EACf,wBAAwB,EACxB,cAAc,EACd,cAAc,CACf;QACD,8BAA8B;QAC9B,gCAAiB,CACf,0BAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,CACf;KACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAtCD,sDAsCC;AAEM,KAAK,UAAU,gBAAgB,CACpC,UAAsB,EACtB,cAAyB;IAEzB,MAAM,OAAO,GAAG;QACd;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;aACjC;SACF;QACD;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,wCAA6B;gBACrC,KAAK,EAAE,sCAA8B,CAAC,QAAQ,EAAE;aACjD;SACF;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,kCAA0B,CACvD,UAAU,EACV,0BAAe,EACf,OAAO,CACR,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE;QAChC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;YACpC,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACrD;KACF;IACD,MAAM,mCAAmC,CAAC;AAC5C,CAAC;AA/BD,4CA+BC;AAED,8CAA8C;AACvC,KAAK,UAAU,qBAAqB,CACzC,cAAsB;IAEtB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,cAAc,CAAC,CAAC;IAChE,OAAO,MAAM,yBAAiB,CAC5B,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;AACJ,CAAC;AATD,sDASC;AAEM,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,cAAsB;IAEtB,MAAM,mBAAmB,GAAG,MAAM,qBAAa,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,wBAAwB,GAAG,MAAM,yBAAiB,CACtD,mBAAmB,EACnB,SAAS,EACT,wCAAgC,CACjC,CAAC;IACF,MAAM,QAAQ,GAAG,yBAAiB,CAAC,QAAQ,CACzC,UAAU,EACV,wBAAwB,CACzB,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAfD,gDAeC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,UAAsB,EACtB,cAAyB;IAEzB,uGAAuG;IACvG,MAAM,OAAO,GAAG;QACd;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,wCAAgC,CAAC,OAAO,EAAE;aAClD;SACF;QACD;YACE,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE;aAChC;SACF;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,kCAA0B,CACvD,UAAU,EACV,0BAAe,EACf,OAAO,CACR,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,oCAAoC,CAAC;KAC5C;IAED,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;AAC9C,CAAC;AA/BD,wDA+BC"}
|