@bonfida/spl-name-service 1.1.0 → 1.2.0

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.
@@ -105,3 +105,5 @@ export declare const updateRecordInstruction: (connection: Connection, domain: s
105
105
  */
106
106
  export declare const createSolRecordInstruction: (connection: Connection, domain: string, content: PublicKey, signer: PublicKey, signature: Uint8Array, payer: PublicKey) => Promise<TransactionInstruction[]>;
107
107
  export declare const updateSolRecordInstruction: (connection: Connection, domain: string, content: PublicKey, signer: PublicKey, signature: Uint8Array, payer: PublicKey) => Promise<(TransactionInstruction | TransactionInstruction[])[]>;
108
+ export declare const burnDomain: (domain: string, owner: PublicKey, target: PublicKey) => TransactionInstruction;
109
+ export declare const registerWithNft: (name: string, space: number, nameAccount: PublicKey, reverseLookupAccount: PublicKey, buyer: PublicKey, nftSource: PublicKey, nftMetadata: PublicKey, nftMint: PublicKey, masterEdition: PublicKey) => TransactionInstruction;
@@ -46,3 +46,5 @@ export declare const TOKENS_SYM_MINT: Map<string, string>;
46
46
  export declare const PYTH_MAPPING_ACC: PublicKey;
47
47
  export declare const VAULT_OWNER: PublicKey;
48
48
  export declare const CUSTOM_BG_TLD: PublicKey;
49
+ export declare const WOLVES_COLLECTION_METADATA: PublicKey;
50
+ export declare const METAPLEX_ID: PublicKey;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@solana/web3.js"),t=require("buffer"),r=require("@solana/spl-token"),i=require("bn.js"),n=require("borsh"),o=require("@ethersproject/sha2"),s=require("@pythnetwork/client"),a=require("bech32-buffer"),c=require("tweetnacl"),u=require("bs58"),p=require("ipaddr.js"),d=require("punycode");function f(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l,y=f(c);exports.ErrorType=void 0,(l=exports.ErrorType||(exports.ErrorType={})).SymbolNotFound="SymbolNotFound",l.InvalidSubdomain="InvalidSubdomain",l.FavouriteDomainNotFound="FavouriteDomainNotFound",l.MissingParentOwner="MissingParentOwner",l.U32Overflow="U32Overflow",l.InvalidBufferLength="InvalidBufferLength",l.U64Overflow="U64Overflow",l.NoRecordData="NoRecordData",l.InvalidRecordData="InvalidRecordData",l.UnsupportedRecord="UnsupportedRecord",l.InvalidEvmAddress="InvalidEvmAddress",l.InvalidInjectiveAddress="InvalidInjectiveAddress",l.InvalidARecord="InvalidARecord",l.InvalidAAAARecord="InvalidAAAARecord",l.InvalidRecordInput="InvalidRecordInput",l.InvalidSignature="InvalidSignature",l.AccountDoesNotExist="AccountDoesNotExist",l.MultipleRegistries="MultipleRegistries",l.InvalidReverseTwitter="InvalidReverseTwitter",l.NoAccountData="NoAccountData",l.InvalidInput="InvalidInput",l.InvalidDomain="InvalidDomain",l.InvalidCustomBg="InvalidCustomBackground";class w extends Error{constructor(e,t){super(t),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,w)}}class g extends i{toBuffer(){const e=super.toArray().reverse(),r=t.Buffer.from(e);if(4===r.length)return r;if(r.length>4)throw new w(exports.ErrorType.U32Overflow);const i=t.Buffer.alloc(4);return r.copy(i),i}static fromBuffer(e){if(4!==e.length)throw new w(exports.ErrorType.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new i([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class m extends i{toBuffer(){const e=super.toArray().reverse(),r=t.Buffer.from(e);if(8===r.length)return r;if(r.length>8)throw new w(exports.ErrorType.U64Overflow);const i=t.Buffer.alloc(8);return r.copy(i),i}static fromBuffer(e){if(8!==e.length)throw new w(exports.ErrorType.U64Overflow,`Invalid buffer length: ${e.length}`);return new i([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function b(r,i,n,o,s,a,c,u,p,d,f){const l=[t.Buffer.from(Int8Array.from([0])),new g(a.length).toBuffer(),a,c.toBuffer(),u.toBuffer()],y=t.Buffer.concat(l),w=[{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1}];return p?w.push({pubkey:p,isSigner:!0,isWritable:!1}):w.push({pubkey:new e.PublicKey(t.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),d?w.push({pubkey:d,isSigner:!1,isWritable:!1}):w.push({pubkey:new e.PublicKey(t.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),f&&w.push({pubkey:f,isSigner:!0,isWritable:!1}),new e.TransactionInstruction({keys:w,programId:r,data:y})}function x(r,i,n,o,s){const a=[t.Buffer.from(Int8Array.from([1])),n.toBuffer(),new g(o.length).toBuffer(),o],c=t.Buffer.concat(a),u=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}];return new e.TransactionInstruction({keys:u,programId:r,data:c})}function h(r,i,n,o,s,a,c){const u=[t.Buffer.from(Int8Array.from([2])),n.toBuffer()],p=t.Buffer.concat(u),d=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:c||o,isSigner:!0,isWritable:!1}];return s&&d.push({pubkey:s,isSigner:!0,isWritable:!1}),c&&a&&(s||d.push({pubkey:e.PublicKey.default,isSigner:!1,isWritable:!1}),d.push({pubkey:a,isSigner:!1,isWritable:!1})),new e.TransactionInstruction({keys:d,programId:r,data:p})}function R(r,i,n,o){const s=[t.Buffer.from(Int8Array.from([3]))],a=t.Buffer.concat(s),c=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0}];return new e.TransactionInstruction({keys:c,programId:r,data:a})}class S{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return n.serialize(S.schema,this)}getInstruction(i,n,o,s,a,c,u,p,d,f,l){const y=t.Buffer.from(this.serialize()),w=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:r.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:w,programId:i,data:y})}}S.schema=new Map([[S,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class v{constructor(e){this.tag=12,this.name=e.name}serialize(){return n.serialize(v.schema,this)}getInstruction(r,i,n,o,s,a,c,u,p,d){const f=t.Buffer.from(this.serialize());let l=[];return l.push({pubkey:i,isSigner:!1,isWritable:!1}),l.push({pubkey:n,isSigner:!1,isWritable:!1}),l.push({pubkey:o,isSigner:!1,isWritable:!0}),l.push({pubkey:s,isSigner:!1,isWritable:!1}),l.push({pubkey:a,isSigner:!1,isWritable:!1}),l.push({pubkey:c,isSigner:!0,isWritable:!0}),l.push({pubkey:u,isSigner:!1,isWritable:!1}),p&&l.push({pubkey:p,isSigner:!1,isWritable:!0}),d&&l.push({pubkey:d,isSigner:!0,isWritable:!0}),new e.TransactionInstruction({keys:l,programId:r,data:f})}}v.schema=new Map([[v,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class A{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return n.serialize(A.schema,this)}getInstruction(r,i,n,o,s,a,c,u,p,d,f,l,y,w,g,m,b){const x=t.Buffer.from(this.serialize());let h=[];return h.push({pubkey:i,isSigner:!1,isWritable:!1}),h.push({pubkey:n,isSigner:!1,isWritable:!1}),h.push({pubkey:o,isSigner:!1,isWritable:!0}),h.push({pubkey:s,isSigner:!1,isWritable:!0}),h.push({pubkey:a,isSigner:!1,isWritable:!1}),h.push({pubkey:c,isSigner:!1,isWritable:!1}),h.push({pubkey:u,isSigner:!0,isWritable:!0}),h.push({pubkey:p,isSigner:!1,isWritable:!0}),h.push({pubkey:d,isSigner:!1,isWritable:!1}),h.push({pubkey:f,isSigner:!1,isWritable:!1}),h.push({pubkey:l,isSigner:!1,isWritable:!1}),h.push({pubkey:y,isSigner:!1,isWritable:!0}),h.push({pubkey:w,isSigner:!1,isWritable:!1}),h.push({pubkey:g,isSigner:!1,isWritable:!1}),h.push({pubkey:m,isSigner:!1,isWritable:!1}),b&&h.push({pubkey:b,isSigner:!1,isWritable:!0}),new e.TransactionInstruction({keys:h,programId:r,data:x})}}A.schema=new Map([[A,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const E=new e.PublicKey("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),B=t.Buffer.from("tokenized_name");var I;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(I||(I={}));class k{constructor(t){this.tag=t.tag,this.nonce=t.nonce,this.nameAccount=new e.PublicKey(t.nameAccount),this.owner=new e.PublicKey(t.owner),this.nftMint=new e.PublicKey(t.nftMint)}static deserialize(e){return n.deserialize(this.schema,k,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new Error("NFT record not found");return this.deserialize(r.data)}static async findKey(r,i){return await e.PublicKey.findProgramAddress([t.Buffer.from("nft_record"),r.toBuffer()],i)}}k.schema=new Map([[k,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const T=new e.PublicKey("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),P="SPL Name Service",D=new e.PublicKey("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),N=new e.PublicKey("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),K=new e.PublicKey("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),W=new e.PublicKey("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),O=new e.PublicKey("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),L=new e.PublicKey("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),_=new e.PublicKey("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),M=new e.PublicKey("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),C=new e.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),H=[new e.PublicKey("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new e.PublicKey("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new e.PublicKey("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new e.PublicKey("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new e.PublicKey("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new e.PublicKey("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],F=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),U=new e.PublicKey("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),z=new e.PublicKey("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),j=new e.PublicKey("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),G=e=>{const r=P+e,i=o.sha256(t.Buffer.from(r,"utf8")).slice(2);return t.Buffer.from(i,"hex")},q=(r,i,n)=>{const o=[r];i?o.push(i.toBuffer()):o.push(t.Buffer.alloc(32)),n?o.push(n.toBuffer()):o.push(t.Buffer.alloc(32));const[s]=e.PublicKey.findProgramAddressSync(o,T);return s};async function Y(e,t){const r=G(t.toBase58()),n=q(r,O),{registry:o}=await re.retrieve(e,n);if(!o.data)throw new w(exports.ErrorType.NoAccountData);const s=new i(o.data.slice(0,4),"le").toNumber();return o.data.slice(4,4+s).toString()}async function X(e,t){let r=[];for(let e of t){const t=G(e.toBase58()),i=q(t,O);r.push(i)}return(await re.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new i(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}const V=(e,t=D)=>{let r=G(e);return{pubkey:q(r,void 0,t),hashed:r}},Z=(e,r=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const i=e.split(".");if(2===i.length){const e=t.Buffer.from([r?1:0]).toString().concat(i[0]),{pubkey:n}=V(i[1]);return{...V(e,n),isSub:!0,parent:n}}if(3===i.length&&r){const{pubkey:e}=V(i[2]),{pubkey:r}=V("\0".concat(i[1]),e),n=t.Buffer.from([1]).toString();return{...V(n.concat(i[0]),r),isSub:!0,parent:e,isSubRecord:!0}}if(i.length>=3)throw new w(exports.ErrorType.InvalidInput);return{...V(e,D),isSub:!1,parent:void 0}};const J=(e,t)=>{const{pubkey:r,parent:i}=Z(e),n=G(r.toBase58());return q(n,O,t?i:void 0)},Q=(e,t)=>{if(!e)throw new w(t)},$=async(t,i)=>{try{const[n]=await e.PublicKey.findProgramAddress([B,i.toBuffer()],E);if("0"===(await r.getMint(t,n)).supply.toString())return;const o=[{memcmp:{offset:0,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],s=await t.getProgramAccounts(r.TOKEN_PROGRAM_ID,{filters:o});if(1!=s.length)return;return new e.PublicKey(s[0].account.data.slice(32,64))}catch{return}},ee=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],te=async(e,t)=>{const r=await(async(e,t)=>{const r=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:t.toBase58()}}];return await e.getProgramAccounts(E,{filters:r})})(e,t.mint);if(1===r.length)return k.deserialize(r[0].account.data)};class re{constructor(t){this.parentName=new e.PublicKey(t.parentName),this.owner=new e.PublicKey(t.owner),this.class=new e.PublicKey(t.class)}static async retrieve(e,t){var r;const i=await e.getAccountInfo(t);if(!i)throw new w(exports.ErrorType.AccountDoesNotExist);let o=n.deserializeUnchecked(this.schema,re,i.data);o.data=null===(r=i.data)||void 0===r?void 0:r.slice(this.HEADER_LEN);return{registry:o,nftOwner:await $(e,t)}}static async _retrieveBatch(e,t){const r=await e.getMultipleAccountsInfo(t),i=e=>{if(!e)return;const t=n.deserializeUnchecked(this.schema,re,e);return t.data=null==e?void 0:e.slice(this.HEADER_LEN),t};return r.map((e=>i(null==e?void 0:e.data)))}static async retrieveBatch(e,t){let r=[];const i=[...t];for(;i.length>0;)r.push(...await this._retrieveBatch(e,i.splice(0,100)));return r}}async function ie(e,t){if(!await e.getAccountInfo(t))throw new w(exports.ErrorType.AccountDoesNotExist);return re.retrieve(e,t)}async function ne(e){const r=P+e,i=o.sha256(t.Buffer.from(r,"utf8")).slice(2);return t.Buffer.from(i,"hex")}async function oe(r,i,n){const o=[r];i?o.push(i.toBuffer()):o.push(t.Buffer.alloc(32)),n?o.push(n.toBuffer()):o.push(t.Buffer.alloc(32));const[s]=await e.PublicKey.findProgramAddress(o,T);return s}re.HEADER_LEN=96,re.schema=new Map([[re,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const se=async(e,t=D)=>{let r=await ne(e);return{pubkey:await oe(r,void 0,t),hashed:r}},ae=async(e,r=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const i=e.split(".");if(2===i.length){const e=t.Buffer.from([r?1:0]).toString().concat(i[0]),{pubkey:n}=await se(i[1]);return{...await se(e,n),isSub:!0,parent:n}}if(3===i.length&&r){const{pubkey:e}=await se(i[2]),{pubkey:r}=await se("\0".concat(i[1]),e),n=t.Buffer.from([1]).toString();return{...await se(n.concat(i[0]),r),isSub:!0,parent:e,isSubRecord:!0}}if(i.length>=3)throw new w(exports.ErrorType.InvalidInput);return{...await se(e,D),isSub:!1,parent:void 0}};var ce;exports.Record=void 0,(ce=exports.Record||(exports.Record={})).IPFS="IPFS",ce.ARWV="ARWV",ce.SOL="SOL",ce.ETH="ETH",ce.BTC="BTC",ce.LTC="LTC",ce.DOGE="DOGE",ce.Email="email",ce.Url="url",ce.Discord="discord",ce.Github="github",ce.Reddit="reddit",ce.Twitter="twitter",ce.Telegram="telegram",ce.Pic="pic",ce.SHDW="SHDW",ce.POINT="POINT",ce.BSC="BSC",ce.Injective="INJ",ce.Backpack="backpack",ce.A="A",ce.AAAA="AAAA",ce.CNAME="CNAME",ce.TXT="TXT";const ue=new Map([[exports.Record.SOL,96],[exports.Record.ETH,20],[exports.Record.BSC,20],[exports.Record.Injective,20],[exports.Record.A,4],[exports.Record.AAAA,16]]),pe=(e,t,r)=>y.sign.detached.verify(e,t,r.toBytes()),de=(e,t)=>{const{pubkey:r}=Z(t+"."+e,!0);return r};async function fe(e,t,r,i){const n=de(t,r);let{registry:o}=await re.retrieve(e,n);if(!o.data)throw new w(exports.ErrorType.NoRecordData);if(i)return ye(o,r,n);const s=ue.get(r);return o.data=o.data.slice(0,s),o}const le=async(e,t)=>await fe(e,t,exports.Record.SOL),ye=(e,r,i)=>{const n=null==e?void 0:e.data;if(!n)return;if(0===n.compare(t.Buffer.alloc(n.length)))return;const o=ue.get(r),s=(e=>{const t=Array.from(e);return t.length-1-t.reverse().findIndex((e=>0!==e))+1})(n);if(!o)return n.slice(0,s).toString("utf-8");if(r===exports.Record.SOL){const r=new TextEncoder,o=t.Buffer.concat([n.slice(0,32),i.toBuffer()]),s=r.encode(o.toString("hex"));if(pe(s,n.slice(32,96),e.owner))return u.encode(n.slice(0,32))}if(o&&s!==o){const e=n.slice(0,s).toString("utf-8");if(r===exports.Record.Injective){const t=a.decode(e);if("inj"===t.prefix&&20===t.data.length)return e}else if(r===exports.Record.BSC||r===exports.Record.ETH){const r=e.slice(0,2),i=e.slice(2);if("0x"===r&&20===t.Buffer.from(i,"hex").length)return e}else if((r===exports.Record.A||r===exports.Record.AAAA)&&p.isValid(e))return e;throw new w(exports.ErrorType.InvalidRecordData)}if(r===exports.Record.ETH||r===exports.Record.BSC)return"0x"+n.slice(0,o).toString("hex");if(r===exports.Record.Injective)return a.encode("inj",n.slice(0,o),"bech32");if(r===exports.Record.A||r===exports.Record.AAAA)return p.fromByteArray([...n.slice(0,o)]).toString();throw new w(exports.ErrorType.InvalidRecordData)},we=(e,r)=>{if(!ue.get(r))return r!==exports.Record.CNAME&&r!==exports.Record.TXT||(e=d.encode(e)),t.Buffer.from(e,"utf-8");if(r===exports.Record.SOL)throw new w(exports.ErrorType.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(r===exports.Record.ETH||r===exports.Record.BSC)return Q("0x"===e.slice(0,2),exports.ErrorType.InvalidEvmAddress),t.Buffer.from(e.slice(2),"hex");if(r===exports.Record.Injective){const r=a.decode(e);return Q("inj"===r.prefix,exports.ErrorType.InvalidInjectiveAddress),Q(20===r.data.length,exports.ErrorType.InvalidInjectiveAddress),t.Buffer.from(r.data)}if(r===exports.Record.A){const r=p.parse(e).toByteArray();return Q(4===r.length,exports.ErrorType.InvalidARecord),t.Buffer.from(r)}if(r===exports.Record.AAAA){const r=p.parse(e).toByteArray();return Q(16===r.length,exports.ErrorType.InvalidAAAARecord),t.Buffer.from(r)}throw new w(exports.ErrorType.InvalidRecordInput)},ge=(e,r,i,n)=>{const o=t.Buffer.concat([e.toBuffer(),r.toBuffer()]),s=(new TextEncoder).encode(o.toString("hex")),a=pe(s,n,i);return Q(a,exports.ErrorType.InvalidSignature),t.Buffer.concat([e.toBuffer(),n])};async function me(t,r,i,n,o,s,a,c){const u=await ne(r),p=await oe(u,a,c),d=s||await t.getMinimumBalanceForRentExemption(i);let f;if(c){const{registry:e}=await ie(t,c);f=e.owner}return b(T,e.SystemProgram.programId,p,o,n,u,new m(d),new g(i),a,c,f)}async function be(e,t,r,i,n){const o=await ne(t),s=await oe(o,i,n);let a;a=i||(await re.retrieve(e,s)).registry.owner;return R(T,s,r,a)}const xe=async(t,r,i,n,o)=>{let[s]=await e.PublicKey.findProgramAddress([N.toBuffer()],N),a=await ne(t.toBase58()),c=await oe(a,s,n);return[[],[new v({name:r}).getInstruction(N,T,D,c,e.SystemProgram.programId,s,i,e.SYSVAR_RENT_PUBKEY,n,o)]]},he=async(t,r,i,n,o,s)=>{Q(i!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:a,hashed:c,parent:u}=Z(`${i}.${r}`,!0),p=we(n,i).length,d=await t.getMinimumBalanceForRentExemption(p+re.HEADER_LEN);return b(T,e.SystemProgram.programId,a,o,s,c,new m(d),new g(p),void 0,u,o)},Re=async(t,r,i,n,o,s)=>{const{pubkey:a,hashed:c,parent:u}=Z(`${exports.Record.SOL}.${r}`,!0),p=ge(i,a,n,o).length,d=await t.getMinimumBalanceForRentExemption(p+re.HEADER_LEN);return[b(T,e.SystemProgram.programId,a,n,s,c,new m(d),new g(p),void 0,u,n)]};class Se{constructor(e){this.twitterRegistryKey=e.twitterRegistryKey,this.twitterHandle=e.twitterHandle}static async retrieve(e,t){let r=await e.getAccountInfo(t,"processed");if(!r)throw new w(exports.ErrorType.InvalidReverseTwitter);return n.deserializeUnchecked(this.schema,Se,r.data.slice(re.HEADER_LEN))}}async function ve(r,i,o,s,a){const c=await ne(s.toString()),u=await oe(c,L,_);let p=n.serialize(Se.schema,new Se({twitterRegistryKey:o.toBytes(),twitterHandle:i}));return[b(T,e.SystemProgram.programId,u,s,a,c,new m(await r.getMinimumBalanceForRentExemption(p.length+re.HEADER_LEN)),new g(p.length),L,_,L),x(T,u,new g(0),t.Buffer.from(p),L)]}Se.schema=new Map([[Se,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const Ae=new e.PublicKey("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Ee{constructor(t){this.tag=t.tag,this.nameAccount=new e.PublicKey(t.nameAccount)}static deserialize(e){return n.deserialize(this.schema,Ee,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new w(exports.ErrorType.FavouriteDomainNotFound);return this.deserialize(r.data)}static async getKey(r,i){return await e.PublicKey.findProgramAddress([t.Buffer.from("favourite_domain"),i.toBuffer()],r)}static getKeySync(r,i){return e.PublicKey.findProgramAddressSync([t.Buffer.from("favourite_domain"),i.toBuffer()],r)}}Ee.schema=new Map([[Ee,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);exports.BONFIDA_FIDA_BNB=W,exports.BONFIDA_USDC_BNB=M,exports.CUSTOM_BG_TLD=j,exports.FavouriteDomain=Ee,exports.HASH_PREFIX=P,exports.NAME_OFFERS_ID=Ae,exports.NAME_PROGRAM_ID=T,exports.NameRegistryState=re,exports.Numberu32=g,exports.Numberu64=m,exports.PYTH_FIDA_PRICE_ACC=K,exports.PYTH_MAPPING_ACC=U,exports.RECORD_V1_SIZE=ue,exports.REFERRERS=H,exports.REGISTER_PROGRAM_ID=N,exports.REVERSE_LOOKUP_CLASS=O,exports.ROOT_DOMAIN_ACCOUNT=D,exports.ReverseTwitterRegistryState=Se,exports.SNSError=w,exports.SOL_RECORD_SIG_LEN=96,exports.TOKENS_SYM_MINT=F,exports.TWITTER_ROOT_PARENT_REGISTRY_KEY=_,exports.TWITTER_VERIFICATION_AUTHORITY=L,exports.USDC_MINT=C,exports.VAULT_OWNER=z,exports.changeTwitterRegistryData=async function(e,t,r,i){const n=await ne(e),o=await oe(n,void 0,_);return[x(T,o,new g(r),i,t)]},exports.changeVerifiedPubkey=async function(e,t,r,i,n){const o=await ne(t),s=await oe(o,void 0,_);let a=[h(T,s,i,r,void 0)];const c=await ne(r.toString());return await oe(c,L,void 0),a.push(await be(e,r.toString(),n,L,_)),a=a.concat(await ve(e,t,s,i,n)),a},exports.check=Q,exports.checkSolRecord=pe,exports.createInstruction=b,exports.createInstructionV3=A,exports.createNameRegistry=me,exports.createRecordInstruction=he,exports.createReverseInstruction=v,exports.createReverseName=xe,exports.createReverseTwitterRegistry=ve,exports.createSolRecordInstruction=Re,exports.createSubdomain=async(e,t,r,i=2e3)=>{const n=[],o=t.split(".")[0];if(!o)throw new w(exports.ErrorType.InvalidSubdomain);const{parent:s,pubkey:a}=Z(t),c=await e.getMinimumBalanceForRentExemption(i+re.HEADER_LEN),u=await me(e,"\0".concat(o),i,r,r,c,void 0,s);n.push(u);const p=J(t,!0),d=await e.getAccountInfo(p);if(!(null==d?void 0:d.data)){const[,e]=await xe(a,"\0".concat(o),r,s,r);n.push(...e)}return[[],n]},exports.createV2Instruction=S,exports.createVerifiedTwitterRegistry=async function(t,r,i,n,o){const s=await ne(r),a=await oe(s,void 0,_),c=await t.getMinimumBalanceForRentExemption(n+re.HEADER_LEN);let u=[b(T,e.SystemProgram.programId,a,i,o,s,new m(c),new g(n),void 0,_,L)];return u=u.concat(await ve(t,r,a,i,o)),u},exports.deleteInstruction=R,exports.deleteNameRegistry=be,exports.deleteTwitterRegistry=async function(e,t){const r=await ne(e),i=await oe(r,void 0,_),n=await ne(t.toString()),o=await oe(n,L,_);return[R(T,i,t,t),R(T,o,t,t)]},exports.deserializeRecord=ye,exports.findSubdomains=async(e,t)=>{const r=[{memcmp:{offset:0,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:O.toBase58()}}],i=await e.getProgramAccounts(T,{filters:r}),n=await Y(e,t),o=i.map((e=>{var t;return null===(t=e.account.data.slice(97).toString("utf-8"))||void 0===t?void 0:t.split("\0").join("")})),s=o.map((e=>Z(e+"."+n).pubkey)),a=await e.getMultipleAccountsInfo(s);return o.filter(((e,t)=>!!a[t]))},exports.getAllDomains=async function(e,t){const r=[{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:0,bytes:D.toBase58()}}];return(await e.getProgramAccounts(T,{filters:r})).map((e=>e.pubkey))},exports.getAllRegisteredDomains=async e=>{const t=[{memcmp:{offset:0,bytes:D.toBase58()}}];return await e.getProgramAccounts(T,{dataSlice:{offset:32,length:32},filters:t})},exports.getArweaveRecord=async(e,t)=>await fe(e,t,exports.Record.ARWV,!0),exports.getBackpackRecord=async(e,t)=>await fe(e,t,exports.Record.Backpack,!0),exports.getBscRecord=async(e,t)=>await fe(e,t,exports.Record.BSC,!0),exports.getBtcRecord=async(e,t)=>await fe(e,t,exports.Record.BTC,!0),exports.getDiscordRecord=async(e,t)=>await fe(e,t,exports.Record.Discord,!0),exports.getDogeRecord=async(e,t)=>await fe(e,t,exports.Record.DOGE,!0),exports.getDomainKey=ae,exports.getDomainKeySync=Z,exports.getEmailRecord=async(e,t)=>await fe(e,t,exports.Record.Email,!0),exports.getEthRecord=async(e,t)=>await fe(e,t,exports.Record.ETH,!0),exports.getFavoriteDomain=async(t,r)=>{const[i]=Ee.getKeySync(Ae,new e.PublicKey(r)),n=await Ee.retrieve(t,i),o=await Y(t,n.nameAccount);return{domain:n.nameAccount,reverse:o}},exports.getGithubRecord=async(e,t)=>await fe(e,t,exports.Record.Github,!0),exports.getHandleAndRegistryKey=async function(t,r){const i=await ne(r.toString()),n=await oe(i,L,_);let o=await Se.retrieve(t,n);return[o.twitterHandle,new e.PublicKey(o.twitterRegistryKey)]},exports.getHashedName=ne,exports.getHashedNameSync=G,exports.getInjectiveRecord=async(e,t)=>await fe(e,t,exports.Record.Injective,!0),exports.getIpfsRecord=async(e,t)=>await fe(e,t,exports.Record.IPFS,!0),exports.getLtcRecord=async(e,t)=>await fe(e,t,exports.Record.LTC,!0),exports.getNameAccountKey=oe,exports.getNameAccountKeySync=q,exports.getNameOwner=ie,exports.getPicRecord=async(e,t)=>await fe(e,t,exports.Record.Pic,!0),exports.getPointRecord=async(e,t)=>await fe(e,t,exports.Record.POINT,!0),exports.getRecord=fe,exports.getRecordKeySync=de,exports.getRecords=async function(e,t,r,i){const n=r.map((e=>de(t,e))),o=await re.retrieveBatch(e,n);return i?o.map(((e,i)=>{if(e)return ye(e,r[i],de(t,r[i]))})):o},exports.getRedditRecord=async(e,t)=>await fe(e,t,exports.Record.Reddit,!0),exports.getReverseKey=async(e,t)=>{const{pubkey:r,parent:i}=await ae(e),n=await ne(r.toBase58());return await oe(n,O,t?i:void 0)},exports.getReverseKeySync=J,exports.getShdwRecord=async(e,t)=>await fe(e,t,exports.Record.SHDW,!0),exports.getSolRecord=le,exports.getTelegramRecord=async(e,t)=>await fe(e,t,exports.Record.Telegram,!0),exports.getTokenizedDomains=async(e,t)=>{const i=await(async(e,t)=>{const i=[...ee(t.toBase58()),{dataSize:165}],n=(await e.getProgramAccounts(r.TOKEN_PROGRAM_ID,{filters:i})).map((e=>r.AccountLayout.decode(e.account.data))).map((t=>te(e,t)));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,t);return(await X(e,i.map((e=>e.nameAccount)))).map(((e,t)=>({key:i[t].nameAccount,mint:i[t].nftMint,reverse:e}))).filter((e=>!!e.reverse))},exports.getTwitterHandleandRegistryKeyViaFilters=async function(t,r){const i=[{memcmp:{offset:0,bytes:_.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:L.toBase58()}}],o=await t.getProgramAccounts(T,{filters:i});for(const t of o)if(t.account.data.length>re.HEADER_LEN+32){let r=t.account.data.slice(re.HEADER_LEN),i=n.deserializeUnchecked(Se.schema,Se,r);return[i.twitterHandle,new e.PublicKey(i.twitterRegistryKey)]}throw new w(exports.ErrorType.AccountDoesNotExist)},exports.getTwitterRecord=async(e,t)=>await fe(e,t,exports.Record.Twitter,!0),exports.getTwitterRegistry=async function(e,t){const r=await ne(t),i=await oe(r,void 0,_),{registry:n}=await re.retrieve(e,i);return n},exports.getTwitterRegistryData=async function(r,i){const n=[{memcmp:{offset:0,bytes:_.toBase58()}},{memcmp:{offset:32,bytes:i.toBase58()}},{memcmp:{offset:64,bytes:new e.PublicKey(t.Buffer.alloc(32,0)).toBase58()}}],o=await r.getProgramAccounts(T,{filters:n});if(o.length>1)throw new w(exports.ErrorType.MultipleRegistries);return o[0].account.data.slice(re.HEADER_LEN)},exports.getTwitterRegistryKey=async function(e){const t=await ne(e);return await oe(t,void 0,_)},exports.getUrlRecord=async(e,t)=>await fe(e,t,exports.Record.Url,!0),exports.performReverseLookup=async function(e,t){const r=await ne(t.toBase58()),n=await oe(r,O),{registry:o}=await re.retrieve(e,n);if(!o.data)throw new w(exports.ErrorType.NoAccountData);const s=new i(o.data.slice(0,4),"le").toNumber();return o.data.slice(4,4+s).toString()},exports.performReverseLookupBatch=async function(e,t){let r=[];for(let e of t){const t=await ne(e.toBase58()),i=await oe(t,O);r.push(i)}return(await re.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new i(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))},exports.registerDomainName=async(t,i,n,o,a,c=C,u)=>{if(i.includes(".")||i.trim().toLowerCase()!==i)throw new w(exports.ErrorType.InvalidDomain);const[p]=e.PublicKey.findProgramAddressSync([N.toBuffer()],N),d=G(i),f=q(d,void 0,D),l=G(f.toBase58()),y=q(l,p),[g]=e.PublicKey.findProgramAddressSync([f.toBuffer()],N),m=H.findIndex((e=>null==u?void 0:u.equals(e)));let b;const x=[];if(-1!==m&&u){b=r.getAssociatedTokenAddressSync(c,u,!0);const e=await t.getAccountInfo(b);if(!(null==e?void 0:e.data)){const e=r.createAssociatedTokenAccountInstruction(o,b,u,c);x.push(e)}}const h=new s.PythHttpClient(t,s.getPythProgramKeyForCluster("mainnet-beta")),R=await h.getData(),S=F.get(c.toBase58());if(!S)throw new w(exports.ErrorType.SymbolNotFound,`No symbol found for mint ${c.toBase58()}`);const v=R.productPrice.get("Crypto."+S+"/USD"),E=R.productFromSymbol.get("Crypto."+S+"/USD"),B=r.getAssociatedTokenAddressSync(c,z),I=new A({name:i,space:n,referrerIdxOpt:-1!=m?m:null}).getInstruction(N,T,D,f,y,e.SystemProgram.programId,p,o,a,U,v.productAccountKey,new e.PublicKey(E.price_account),B,r.TOKEN_PROGRAM_ID,e.SYSVAR_RENT_PUBKEY,g,b);return x.push(I),[[],x]},exports.resolve=async(r,i)=>{const{pubkey:n}=Z(i),{registry:o,nftOwner:s}=await re.retrieve(r,n);if(s)return s;try{const n=de(i,exports.Record.SOL),s=await le(r,i);if(!(null==s?void 0:s.data))throw new w(exports.ErrorType.NoRecordData);const a=new TextEncoder,c=t.Buffer.concat([s.data.slice(0,32),n.toBuffer()]),u=a.encode(c.toString("hex"));if(!pe(u,s.data.slice(32),o.owner))throw new w(exports.ErrorType.InvalidSignature);return new e.PublicKey(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return o.owner},exports.retrieveNftOwner=$,exports.retrieveNfts=async t=>{const r=await t.getProgramAccounts(E,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return r.map((t=>new e.PublicKey(t.account.data.slice(66,98))))},exports.reverseLookup=Y,exports.reverseLookupBatch=X,exports.serializeRecord=we,exports.serializeSolRecord=ge,exports.transferInstruction=h,exports.transferNameOwnership=async function(e,t,r,i,n,o){const s=await ne(t),a=await oe(s,i,n);let c;return c=i||(await re.retrieve(e,a)).registry.owner,h(T,a,r,c,i,n,o)},exports.updateInstruction=x,exports.updateNameRegistryData=async function(e,t,r,i,n,o){const s=await ne(t),a=await oe(s,n,o);let c;return c=n||(await re.retrieve(e,a)).registry.owner,x(T,a,new g(r),i,c)},exports.updateRecordInstruction=async(e,t,r,i,n,o)=>{Q(r!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:s}=Z(`${r}.${t}`,!0),a=await e.getAccountInfo(s);Q(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist);const c=we(i,r);if((null==a?void 0:a.data.slice(96).length)!==c.length)return[R(T,s,o,n),await he(e,t,r,i,n,o)];return[x(T,s,new g(0),c,n)]},exports.updateSolRecordInstruction=async(e,t,r,i,n,o)=>{const{pubkey:s}=Z(`${exports.Record.SOL}.${t}`,!0),a=await e.getAccountInfo(s);if(Q(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist),96!==(null==a?void 0:a.data.length))return[R(T,s,o,i),await Re(e,t,r,i,n,o)];const c=ge(r,s,i,n);return[x(T,s,new g(0),c,i)]};
1
+ "use strict";var e=require("@solana/web3.js"),t=require("buffer"),r=require("@solana/spl-token"),i=require("bn.js"),s=require("borsh"),n=require("@ethersproject/sha2"),o=require("@pythnetwork/client"),a=require("bech32-buffer"),c=require("tweetnacl"),u=require("bs58"),p=require("ipaddr.js"),d=require("punycode");function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var f,y=l(c);exports.ErrorType=void 0,(f=exports.ErrorType||(exports.ErrorType={})).SymbolNotFound="SymbolNotFound",f.InvalidSubdomain="InvalidSubdomain",f.FavouriteDomainNotFound="FavouriteDomainNotFound",f.MissingParentOwner="MissingParentOwner",f.U32Overflow="U32Overflow",f.InvalidBufferLength="InvalidBufferLength",f.U64Overflow="U64Overflow",f.NoRecordData="NoRecordData",f.InvalidRecordData="InvalidRecordData",f.UnsupportedRecord="UnsupportedRecord",f.InvalidEvmAddress="InvalidEvmAddress",f.InvalidInjectiveAddress="InvalidInjectiveAddress",f.InvalidARecord="InvalidARecord",f.InvalidAAAARecord="InvalidAAAARecord",f.InvalidRecordInput="InvalidRecordInput",f.InvalidSignature="InvalidSignature",f.AccountDoesNotExist="AccountDoesNotExist",f.MultipleRegistries="MultipleRegistries",f.InvalidReverseTwitter="InvalidReverseTwitter",f.NoAccountData="NoAccountData",f.InvalidInput="InvalidInput",f.InvalidDomain="InvalidDomain",f.InvalidCustomBg="InvalidCustomBackground";class g extends Error{constructor(e,t){super(t),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,g)}}class w extends i{toBuffer(){const e=super.toArray().reverse(),r=t.Buffer.from(e);if(4===r.length)return r;if(r.length>4)throw new g(exports.ErrorType.U32Overflow);const i=t.Buffer.alloc(4);return r.copy(i),i}static fromBuffer(e){if(4!==e.length)throw new g(exports.ErrorType.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new i([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class m extends i{toBuffer(){const e=super.toArray().reverse(),r=t.Buffer.from(e);if(8===r.length)return r;if(r.length>8)throw new g(exports.ErrorType.U64Overflow);const i=t.Buffer.alloc(8);return r.copy(i),i}static fromBuffer(e){if(8!==e.length)throw new g(exports.ErrorType.U64Overflow,`Invalid buffer length: ${e.length}`);return new i([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function b(r,i,s,n,o,a,c,u,p,d,l){const f=[t.Buffer.from(Int8Array.from([0])),new w(a.length).toBuffer(),a,c.toBuffer(),u.toBuffer()],y=t.Buffer.concat(f),g=[{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1}];return p?g.push({pubkey:p,isSigner:!0,isWritable:!1}):g.push({pubkey:new e.PublicKey(t.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),d?g.push({pubkey:d,isSigner:!1,isWritable:!1}):g.push({pubkey:new e.PublicKey(t.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),l&&g.push({pubkey:l,isSigner:!0,isWritable:!1}),new e.TransactionInstruction({keys:g,programId:r,data:y})}function h(r,i,s,n,o){const a=[t.Buffer.from(Int8Array.from([1])),s.toBuffer(),new w(n.length).toBuffer(),n],c=t.Buffer.concat(a),u=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!1}];return new e.TransactionInstruction({keys:u,programId:r,data:c})}function x(r,i,s,n,o,a,c){const u=[t.Buffer.from(Int8Array.from([2])),s.toBuffer()],p=t.Buffer.concat(u),d=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:c||n,isSigner:!0,isWritable:!1}];return o&&d.push({pubkey:o,isSigner:!0,isWritable:!1}),c&&a&&(o||d.push({pubkey:e.PublicKey.default,isSigner:!1,isWritable:!1}),d.push({pubkey:a,isSigner:!1,isWritable:!1})),new e.TransactionInstruction({keys:d,programId:r,data:p})}function S(r,i,s,n){const o=[t.Buffer.from(Int8Array.from([3]))],a=t.Buffer.concat(o),c=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0}];return new e.TransactionInstruction({keys:c,programId:r,data:a})}class R{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return s.serialize(R.schema,this)}getInstruction(i,s,n,o,a,c,u,p,d,l,f){const y=t.Buffer.from(this.serialize()),g=[{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:e.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:r.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1}];return new e.TransactionInstruction({keys:g,programId:i,data:y})}}R.schema=new Map([[R,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class v{constructor(e){this.tag=12,this.name=e.name}serialize(){return s.serialize(v.schema,this)}getInstruction(r,i,s,n,o,a,c,u,p,d){const l=t.Buffer.from(this.serialize());let f=[];return f.push({pubkey:i,isSigner:!1,isWritable:!1}),f.push({pubkey:s,isSigner:!1,isWritable:!1}),f.push({pubkey:n,isSigner:!1,isWritable:!0}),f.push({pubkey:o,isSigner:!1,isWritable:!1}),f.push({pubkey:a,isSigner:!1,isWritable:!1}),f.push({pubkey:c,isSigner:!0,isWritable:!0}),f.push({pubkey:u,isSigner:!1,isWritable:!1}),p&&f.push({pubkey:p,isSigner:!1,isWritable:!0}),d&&f.push({pubkey:d,isSigner:!0,isWritable:!0}),new e.TransactionInstruction({keys:f,programId:r,data:l})}}v.schema=new Map([[v,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class A{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return s.serialize(A.schema,this)}getInstruction(r,i,s,n,o,a,c,u,p,d,l,f,y,g,w,m,b){const h=t.Buffer.from(this.serialize());let x=[];return x.push({pubkey:i,isSigner:!1,isWritable:!1}),x.push({pubkey:s,isSigner:!1,isWritable:!1}),x.push({pubkey:n,isSigner:!1,isWritable:!0}),x.push({pubkey:o,isSigner:!1,isWritable:!0}),x.push({pubkey:a,isSigner:!1,isWritable:!1}),x.push({pubkey:c,isSigner:!1,isWritable:!1}),x.push({pubkey:u,isSigner:!0,isWritable:!0}),x.push({pubkey:p,isSigner:!1,isWritable:!0}),x.push({pubkey:d,isSigner:!1,isWritable:!1}),x.push({pubkey:l,isSigner:!1,isWritable:!1}),x.push({pubkey:f,isSigner:!1,isWritable:!1}),x.push({pubkey:y,isSigner:!1,isWritable:!0}),x.push({pubkey:g,isSigner:!1,isWritable:!1}),x.push({pubkey:w,isSigner:!1,isWritable:!1}),x.push({pubkey:m,isSigner:!1,isWritable:!1}),b&&x.push({pubkey:b,isSigner:!1,isWritable:!0}),new e.TransactionInstruction({keys:x,programId:r,data:h})}}A.schema=new Map([[A,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);class E{constructor(e){this.tag=17,this.name=e.name,this.space=e.space}serialize(){return s.serialize(E.schema,this)}getInstruction(r,i,s,n,o,a,c,u,p,d,l,f,y,g,w,m,b){const h=t.Buffer.from(this.serialize());let x=[];return x.push({pubkey:i,isSigner:!1,isWritable:!1}),x.push({pubkey:s,isSigner:!1,isWritable:!1}),x.push({pubkey:n,isSigner:!1,isWritable:!0}),x.push({pubkey:o,isSigner:!1,isWritable:!0}),x.push({pubkey:a,isSigner:!1,isWritable:!1}),x.push({pubkey:c,isSigner:!1,isWritable:!1}),x.push({pubkey:u,isSigner:!0,isWritable:!0}),x.push({pubkey:p,isSigner:!1,isWritable:!0}),x.push({pubkey:d,isSigner:!1,isWritable:!0}),x.push({pubkey:l,isSigner:!1,isWritable:!0}),x.push({pubkey:f,isSigner:!1,isWritable:!0}),x.push({pubkey:y,isSigner:!1,isWritable:!0}),x.push({pubkey:g,isSigner:!1,isWritable:!1}),x.push({pubkey:w,isSigner:!1,isWritable:!1}),x.push({pubkey:m,isSigner:!1,isWritable:!1}),x.push({pubkey:b,isSigner:!1,isWritable:!1}),new e.TransactionInstruction({keys:x,programId:r,data:h})}}E.schema=new Map([[E,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class k{constructor(){this.tag=16}serialize(){return s.serialize(k.schema,this)}getInstruction(r,i,s,n,o,a,c,u,p,d){const l=t.Buffer.from(this.serialize());let f=[];return f.push({pubkey:i,isSigner:!1,isWritable:!1}),f.push({pubkey:s,isSigner:!1,isWritable:!1}),f.push({pubkey:n,isSigner:!1,isWritable:!0}),f.push({pubkey:o,isSigner:!1,isWritable:!0}),f.push({pubkey:a,isSigner:!1,isWritable:!0}),f.push({pubkey:c,isSigner:!1,isWritable:!0}),f.push({pubkey:u,isSigner:!1,isWritable:!1}),f.push({pubkey:p,isSigner:!0,isWritable:!1}),f.push({pubkey:d,isSigner:!1,isWritable:!0}),new e.TransactionInstruction({keys:f,programId:r,data:l})}}k.schema=new Map([[k,{kind:"struct",fields:[["tag","u8"]]}]]);const B=new e.PublicKey("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),I=t.Buffer.from("tokenized_name");var T;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(T||(T={}));class P{constructor(t){this.tag=t.tag,this.nonce=t.nonce,this.nameAccount=new e.PublicKey(t.nameAccount),this.owner=new e.PublicKey(t.owner),this.nftMint=new e.PublicKey(t.nftMint)}static deserialize(e){return s.deserialize(this.schema,P,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new Error("NFT record not found");return this.deserialize(r.data)}static async findKey(r,i){return await e.PublicKey.findProgramAddress([t.Buffer.from("nft_record"),r.toBuffer()],i)}}P.schema=new Map([[P,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const D=new e.PublicKey("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),W="SPL Name Service",K=new e.PublicKey("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),N=new e.PublicKey("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),O=new e.PublicKey("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),_=new e.PublicKey("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),C=new e.PublicKey("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),L=new e.PublicKey("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),M=new e.PublicKey("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),z=new e.PublicKey("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),H=new e.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),F=[new e.PublicKey("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new e.PublicKey("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new e.PublicKey("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new e.PublicKey("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new e.PublicKey("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new e.PublicKey("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],U=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),j=new e.PublicKey("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),G=new e.PublicKey("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),q=new e.PublicKey("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),Y=new e.PublicKey("72aLKvXeV4aansAQtxKymeXDevT5ed6sCuz9iN62ugPT"),V=new e.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),X=e=>{const r=W+e,i=n.sha256(t.Buffer.from(r,"utf8")).slice(2);return t.Buffer.from(i,"hex")},Z=(r,i,s)=>{const n=[r];i?n.push(i.toBuffer()):n.push(t.Buffer.alloc(32)),s?n.push(s.toBuffer()):n.push(t.Buffer.alloc(32));const[o]=e.PublicKey.findProgramAddressSync(n,D);return o};async function J(e,t){const r=X(t.toBase58()),s=Z(r,C),{registry:n}=await oe.retrieve(e,s);if(!n.data)throw new g(exports.ErrorType.NoAccountData);const o=new i(n.data.slice(0,4),"le").toNumber();return n.data.slice(4,4+o).toString()}async function Q(e,t){let r=[];for(let e of t){const t=X(e.toBase58()),i=Z(t,C);r.push(i)}return(await oe.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new i(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}const $=(e,t=K)=>{let r=X(e);return{pubkey:Z(r,void 0,t),hashed:r}},ee=(e,r=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const i=e.split(".");if(2===i.length){const e=t.Buffer.from([r?1:0]).toString().concat(i[0]),{pubkey:s}=$(i[1]);return{...$(e,s),isSub:!0,parent:s}}if(3===i.length&&r){const{pubkey:e}=$(i[2]),{pubkey:r}=$("\0".concat(i[1]),e),s=t.Buffer.from([1]).toString();return{...$(s.concat(i[0]),r),isSub:!0,parent:e,isSubRecord:!0}}if(i.length>=3)throw new g(exports.ErrorType.InvalidInput);return{...$(e,K),isSub:!1,parent:void 0}};const te=(e,t)=>{const{pubkey:r,parent:i}=ee(e),s=X(r.toBase58());return Z(s,C,t?i:void 0)},re=(e,t)=>{if(!e)throw new g(t)},ie=async(t,i)=>{try{const[s]=await e.PublicKey.findProgramAddress([I,i.toBuffer()],B);if("0"===(await r.getMint(t,s)).supply.toString())return;const n=[{memcmp:{offset:0,bytes:s.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],o=await t.getProgramAccounts(r.TOKEN_PROGRAM_ID,{filters:n});if(1!=o.length)return;return new e.PublicKey(o[0].account.data.slice(32,64))}catch{return}},se=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],ne=async(e,t)=>{const r=await(async(e,t)=>{const r=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:t.toBase58()}}];return await e.getProgramAccounts(B,{filters:r})})(e,t.mint);if(1===r.length)return P.deserialize(r[0].account.data)};class oe{constructor(t){this.parentName=new e.PublicKey(t.parentName),this.owner=new e.PublicKey(t.owner),this.class=new e.PublicKey(t.class)}static async retrieve(e,t){var r;const i=await e.getAccountInfo(t);if(!i)throw new g(exports.ErrorType.AccountDoesNotExist);let n=s.deserializeUnchecked(this.schema,oe,i.data);n.data=null===(r=i.data)||void 0===r?void 0:r.slice(this.HEADER_LEN);return{registry:n,nftOwner:await ie(e,t)}}static async _retrieveBatch(e,t){const r=await e.getMultipleAccountsInfo(t),i=e=>{if(!e)return;const t=s.deserializeUnchecked(this.schema,oe,e);return t.data=null==e?void 0:e.slice(this.HEADER_LEN),t};return r.map((e=>i(null==e?void 0:e.data)))}static async retrieveBatch(e,t){let r=[];const i=[...t];for(;i.length>0;)r.push(...await this._retrieveBatch(e,i.splice(0,100)));return r}}async function ae(e,t){if(!await e.getAccountInfo(t))throw new g(exports.ErrorType.AccountDoesNotExist);return oe.retrieve(e,t)}async function ce(e){const r=W+e,i=n.sha256(t.Buffer.from(r,"utf8")).slice(2);return t.Buffer.from(i,"hex")}async function ue(r,i,s){const n=[r];i?n.push(i.toBuffer()):n.push(t.Buffer.alloc(32)),s?n.push(s.toBuffer()):n.push(t.Buffer.alloc(32));const[o]=await e.PublicKey.findProgramAddress(n,D);return o}oe.HEADER_LEN=96,oe.schema=new Map([[oe,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const pe=async(e,t=K)=>{let r=await ce(e);return{pubkey:await ue(r,void 0,t),hashed:r}},de=async(e,r=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const i=e.split(".");if(2===i.length){const e=t.Buffer.from([r?1:0]).toString().concat(i[0]),{pubkey:s}=await pe(i[1]);return{...await pe(e,s),isSub:!0,parent:s}}if(3===i.length&&r){const{pubkey:e}=await pe(i[2]),{pubkey:r}=await pe("\0".concat(i[1]),e),s=t.Buffer.from([1]).toString();return{...await pe(s.concat(i[0]),r),isSub:!0,parent:e,isSubRecord:!0}}if(i.length>=3)throw new g(exports.ErrorType.InvalidInput);return{...await pe(e,K),isSub:!1,parent:void 0}};var le;exports.Record=void 0,(le=exports.Record||(exports.Record={})).IPFS="IPFS",le.ARWV="ARWV",le.SOL="SOL",le.ETH="ETH",le.BTC="BTC",le.LTC="LTC",le.DOGE="DOGE",le.Email="email",le.Url="url",le.Discord="discord",le.Github="github",le.Reddit="reddit",le.Twitter="twitter",le.Telegram="telegram",le.Pic="pic",le.SHDW="SHDW",le.POINT="POINT",le.BSC="BSC",le.Injective="INJ",le.Backpack="backpack",le.A="A",le.AAAA="AAAA",le.CNAME="CNAME",le.TXT="TXT",le.Background="background";const fe=new Map([[exports.Record.SOL,96],[exports.Record.ETH,20],[exports.Record.BSC,20],[exports.Record.Injective,20],[exports.Record.A,4],[exports.Record.AAAA,16],[exports.Record.Background,32]]),ye=(e,t,r)=>y.sign.detached.verify(e,t,r.toBytes()),ge=(e,t)=>{const{pubkey:r}=ee(t+"."+e,!0);return r};async function we(e,t,r,i){const s=ge(t,r);let{registry:n}=await oe.retrieve(e,s);if(!n.data)throw new g(exports.ErrorType.NoRecordData);if(i)return be(n,r,s);const o=fe.get(r);return n.data=n.data.slice(0,o),n}const me=async(e,t)=>await we(e,t,exports.Record.SOL),be=(r,i,s)=>{const n=null==r?void 0:r.data;if(!n)return;if(0===n.compare(t.Buffer.alloc(n.length)))return;const o=fe.get(i),c=(e=>{const t=Array.from(e);return t.length-1-t.reverse().findIndex((e=>0!==e))+1})(n);if(!o)return n.slice(0,c).toString("utf-8");if(i===exports.Record.SOL){const e=new TextEncoder,i=t.Buffer.concat([n.slice(0,32),s.toBuffer()]),o=e.encode(i.toString("hex"));if(ye(o,n.slice(32,96),r.owner))return u.encode(n.slice(0,32))}if(o&&c!==o){const e=n.slice(0,c).toString("utf-8");if(i===exports.Record.Injective){const t=a.decode(e);if("inj"===t.prefix&&20===t.data.length)return e}else if(i===exports.Record.BSC||i===exports.Record.ETH){const r=e.slice(0,2),i=e.slice(2);if("0x"===r&&20===t.Buffer.from(i,"hex").length)return e}else if((i===exports.Record.A||i===exports.Record.AAAA)&&p.isValid(e))return e;throw new g(exports.ErrorType.InvalidRecordData)}if(i===exports.Record.ETH||i===exports.Record.BSC)return"0x"+n.slice(0,o).toString("hex");if(i===exports.Record.Injective)return a.encode("inj",n.slice(0,o),"bech32");if(i===exports.Record.A||i===exports.Record.AAAA)return p.fromByteArray([...n.slice(0,o)]).toString();if(i===exports.Record.Background)return new e.PublicKey(n.slice(0,o)).toString();throw new g(exports.ErrorType.InvalidRecordData)},he=(r,i)=>{if(!fe.get(i))return i!==exports.Record.CNAME&&i!==exports.Record.TXT||(r=d.encode(r)),t.Buffer.from(r,"utf-8");if(i===exports.Record.SOL)throw new g(exports.ErrorType.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(i===exports.Record.ETH||i===exports.Record.BSC)return re("0x"===r.slice(0,2),exports.ErrorType.InvalidEvmAddress),t.Buffer.from(r.slice(2),"hex");if(i===exports.Record.Injective){const e=a.decode(r);return re("inj"===e.prefix,exports.ErrorType.InvalidInjectiveAddress),re(20===e.data.length,exports.ErrorType.InvalidInjectiveAddress),t.Buffer.from(e.data)}if(i===exports.Record.A){const e=p.parse(r).toByteArray();return re(4===e.length,exports.ErrorType.InvalidARecord),t.Buffer.from(e)}if(i===exports.Record.AAAA){const e=p.parse(r).toByteArray();return re(16===e.length,exports.ErrorType.InvalidAAAARecord),t.Buffer.from(e)}if(i===exports.Record.Background)return new e.PublicKey(r).toBuffer();throw new g(exports.ErrorType.InvalidRecordInput)},xe=(e,r,i,s)=>{const n=t.Buffer.concat([e.toBuffer(),r.toBuffer()]),o=(new TextEncoder).encode(n.toString("hex")),a=ye(o,s,i);return re(a,exports.ErrorType.InvalidSignature),t.Buffer.concat([e.toBuffer(),s])};async function Se(t,r,i,s,n,o,a,c){const u=await ce(r),p=await ue(u,a,c),d=o||await t.getMinimumBalanceForRentExemption(i);let l;if(c){const{registry:e}=await ae(t,c);l=e.owner}return b(D,e.SystemProgram.programId,p,n,s,u,new m(d),new w(i),a,c,l)}async function Re(e,t,r,i,s){const n=await ce(t),o=await ue(n,i,s);let a;a=i||(await oe.retrieve(e,o)).registry.owner;return S(D,o,r,a)}const ve=async(t,r,i,s,n)=>{let[o]=await e.PublicKey.findProgramAddress([N.toBuffer()],N),a=await ce(t.toBase58()),c=await ue(a,o,s);return[[],[new v({name:r}).getInstruction(N,D,K,c,e.SystemProgram.programId,o,i,e.SYSVAR_RENT_PUBKEY,s,n)]]},Ae=async(t,r,i,s,n,o)=>{re(i!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:a,hashed:c,parent:u}=ee(`${i}.${r}`,!0),p=he(s,i).length,d=await t.getMinimumBalanceForRentExemption(p+oe.HEADER_LEN);return b(D,e.SystemProgram.programId,a,n,o,c,new m(d),new w(p),void 0,u,n)},Ee=async(t,r,i,s,n,o)=>{const{pubkey:a,hashed:c,parent:u}=ee(`${exports.Record.SOL}.${r}`,!0),p=xe(i,a,s,n).length,d=await t.getMinimumBalanceForRentExemption(p+oe.HEADER_LEN);return[b(D,e.SystemProgram.programId,a,s,o,c,new m(d),new w(p),void 0,u,s)]};class ke{constructor(e){this.twitterRegistryKey=e.twitterRegistryKey,this.twitterHandle=e.twitterHandle}static async retrieve(e,t){let r=await e.getAccountInfo(t,"processed");if(!r)throw new g(exports.ErrorType.InvalidReverseTwitter);return s.deserializeUnchecked(this.schema,ke,r.data.slice(oe.HEADER_LEN))}}async function Be(r,i,n,o,a){const c=await ce(o.toString()),u=await ue(c,L,M);let p=s.serialize(ke.schema,new ke({twitterRegistryKey:n.toBytes(),twitterHandle:i}));return[b(D,e.SystemProgram.programId,u,o,a,c,new m(await r.getMinimumBalanceForRentExemption(p.length+oe.HEADER_LEN)),new w(p.length),L,M,L),h(D,u,new w(0),t.Buffer.from(p),L)]}ke.schema=new Map([[ke,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const Ie=new e.PublicKey("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Te{constructor(t){this.tag=t.tag,this.nameAccount=new e.PublicKey(t.nameAccount)}static deserialize(e){return s.deserialize(this.schema,Te,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new g(exports.ErrorType.FavouriteDomainNotFound);return this.deserialize(r.data)}static async getKey(r,i){return await e.PublicKey.findProgramAddress([t.Buffer.from("favourite_domain"),i.toBuffer()],r)}static getKeySync(r,i){return e.PublicKey.findProgramAddressSync([t.Buffer.from("favourite_domain"),i.toBuffer()],r)}}Te.schema=new Map([[Te,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);exports.CustomBg=void 0,(exports.CustomBg||(exports.CustomBg={})).DegenPoet1="DegenPoet#1";const Pe=new e.PublicKey("ART5dr4bDic2sQVZoFheEmUxwQq5VGSx9he7JxHcXNQD");exports.BONFIDA_FIDA_BNB=_,exports.BONFIDA_USDC_BNB=z,exports.CUSTOM_BG_TLD=q,exports.FavouriteDomain=Te,exports.HASH_PREFIX=W,exports.METAPLEX_ID=V,exports.NAME_OFFERS_ID=Ie,exports.NAME_PROGRAM_ID=D,exports.NameRegistryState=oe,exports.Numberu32=w,exports.Numberu64=m,exports.PYTH_FIDA_PRICE_ACC=O,exports.PYTH_MAPPING_ACC=j,exports.RECORD_V1_SIZE=fe,exports.REFERRERS=F,exports.REGISTER_PROGRAM_ID=N,exports.REVERSE_LOOKUP_CLASS=C,exports.ROOT_DOMAIN_ACCOUNT=K,exports.ReverseTwitterRegistryState=ke,exports.SNSError=g,exports.SOL_RECORD_SIG_LEN=96,exports.TOKENS_SYM_MINT=U,exports.TWITTER_ROOT_PARENT_REGISTRY_KEY=M,exports.TWITTER_VERIFICATION_AUTHORITY=L,exports.USDC_MINT=H,exports.VAULT_OWNER=G,exports.WOLVES_COLLECTION_METADATA=Y,exports.burnDomain=(t,r,i)=>{const{pubkey:s}=ee(t),[n]=e.PublicKey.findProgramAddressSync([s.toBuffer()],N),[o]=e.PublicKey.findProgramAddressSync([s.toBuffer(),Uint8Array.from([1,1])],N);return(new k).getInstruction(N,D,e.SystemProgram.programId,s,te(t),o,n,C,r,i)},exports.burnInstruction=k,exports.changeTwitterRegistryData=async function(e,t,r,i){const s=await ce(e),n=await ue(s,void 0,M);return[h(D,n,new w(r),i,t)]},exports.changeVerifiedPubkey=async function(e,t,r,i,s){const n=await ce(t),o=await ue(n,void 0,M);let a=[x(D,o,i,r,void 0)];const c=await ce(r.toString());return await ue(c,L,void 0),a.push(await Re(e,r.toString(),s,L,M)),a=a.concat(await Be(e,t,o,i,s)),a},exports.check=re,exports.checkSolRecord=ye,exports.createInstruction=b,exports.createInstructionV3=A,exports.createNameRegistry=Se,exports.createRecordInstruction=Ae,exports.createReverseInstruction=v,exports.createReverseName=ve,exports.createReverseTwitterRegistry=Be,exports.createSolRecordInstruction=Ee,exports.createSubdomain=async(e,t,r,i=2e3)=>{const s=[],n=t.split(".")[0];if(!n)throw new g(exports.ErrorType.InvalidSubdomain);const{parent:o,pubkey:a}=ee(t),c=await e.getMinimumBalanceForRentExemption(i+oe.HEADER_LEN),u=await Se(e,"\0".concat(n),i,r,r,c,void 0,o);s.push(u);const p=te(t,!0),d=await e.getAccountInfo(p);if(!(null==d?void 0:d.data)){const[,e]=await ve(a,"\0".concat(n),r,o,r);s.push(...e)}return[[],s]},exports.createV2Instruction=R,exports.createVerifiedTwitterRegistry=async function(t,r,i,s,n){const o=await ce(r),a=await ue(o,void 0,M),c=await t.getMinimumBalanceForRentExemption(s+oe.HEADER_LEN);let u=[b(D,e.SystemProgram.programId,a,i,n,o,new m(c),new w(s),void 0,M,L)];return u=u.concat(await Be(t,r,a,i,n)),u},exports.createWithNftInstruction=E,exports.deleteInstruction=S,exports.deleteNameRegistry=Re,exports.deleteTwitterRegistry=async function(e,t){const r=await ce(e),i=await ue(r,void 0,M),s=await ce(t.toString()),n=await ue(s,L,M);return[S(D,i,t,t),S(D,n,t,t)]},exports.deserializeRecord=be,exports.findSubdomains=async(e,t)=>{const r=[{memcmp:{offset:0,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:C.toBase58()}}],i=await e.getProgramAccounts(D,{filters:r}),s=await J(e,t),n=i.map((e=>{var t;return null===(t=e.account.data.slice(97).toString("utf-8"))||void 0===t?void 0:t.split("\0").join("")})),o=n.map((e=>ee(e+"."+s).pubkey)),a=await e.getMultipleAccountsInfo(o);return n.filter(((e,t)=>!!a[t]))},exports.getAllDomains=async function(e,t){const r=[{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:0,bytes:K.toBase58()}}];return(await e.getProgramAccounts(D,{filters:r})).map((e=>e.pubkey))},exports.getAllRegisteredDomains=async e=>{const t=[{memcmp:{offset:0,bytes:K.toBase58()}}];return await e.getProgramAccounts(D,{dataSlice:{offset:32,length:32},filters:t})},exports.getArtistPubkey=e=>{if(e===exports.CustomBg.DegenPoet1)return Pe;throw new g(exports.ErrorType.InvalidCustomBg)},exports.getArweaveRecord=async(e,t)=>await we(e,t,exports.Record.ARWV,!0),exports.getBackgroundRecord=async(e,t)=>await we(e,t,exports.Record.Background,!0),exports.getBackpackRecord=async(e,t)=>await we(e,t,exports.Record.Backpack,!0),exports.getBscRecord=async(e,t)=>await we(e,t,exports.Record.BSC,!0),exports.getBtcRecord=async(e,t)=>await we(e,t,exports.Record.BTC,!0),exports.getCustomBgKeys=(e,t)=>{const r=X(t),i=X(e),s=Z(i,void 0,q);return{domainKey:s,bgKey:Z(r,void 0,s)}},exports.getDiscordRecord=async(e,t)=>await we(e,t,exports.Record.Discord,!0),exports.getDogeRecord=async(e,t)=>await we(e,t,exports.Record.DOGE,!0),exports.getDomainKey=de,exports.getDomainKeySync=ee,exports.getEmailRecord=async(e,t)=>await we(e,t,exports.Record.Email,!0),exports.getEthRecord=async(e,t)=>await we(e,t,exports.Record.ETH,!0),exports.getFavoriteDomain=async(t,r)=>{const[i]=Te.getKeySync(Ie,new e.PublicKey(r)),s=await Te.retrieve(t,i),n=await J(t,s.nameAccount);return{domain:s.nameAccount,reverse:n}},exports.getGithubRecord=async(e,t)=>await we(e,t,exports.Record.Github,!0),exports.getHandleAndRegistryKey=async function(t,r){const i=await ce(r.toString()),s=await ue(i,L,M);let n=await ke.retrieve(t,s);return[n.twitterHandle,new e.PublicKey(n.twitterRegistryKey)]},exports.getHashedName=ce,exports.getHashedNameSync=X,exports.getInjectiveRecord=async(e,t)=>await we(e,t,exports.Record.Injective,!0),exports.getIpfsRecord=async(e,t)=>await we(e,t,exports.Record.IPFS,!0),exports.getLtcRecord=async(e,t)=>await we(e,t,exports.Record.LTC,!0),exports.getNameAccountKey=ue,exports.getNameAccountKeySync=Z,exports.getNameOwner=ae,exports.getPicRecord=async(e,t)=>await we(e,t,exports.Record.Pic,!0),exports.getPointRecord=async(e,t)=>await we(e,t,exports.Record.POINT,!0),exports.getRecord=we,exports.getRecordKeySync=ge,exports.getRecords=async function(e,t,r,i){const s=r.map((e=>ge(t,e))),n=await oe.retrieveBatch(e,s);return i?n.map(((e,i)=>{if(e)return be(e,r[i],ge(t,r[i]))})):n},exports.getRedditRecord=async(e,t)=>await we(e,t,exports.Record.Reddit,!0),exports.getReverseKey=async(e,t)=>{const{pubkey:r,parent:i}=await de(e),s=await ce(r.toBase58());return await ue(s,C,t?i:void 0)},exports.getReverseKeySync=te,exports.getShdwRecord=async(e,t)=>await we(e,t,exports.Record.SHDW,!0),exports.getSolRecord=me,exports.getTelegramRecord=async(e,t)=>await we(e,t,exports.Record.Telegram,!0),exports.getTokenizedDomains=async(e,t)=>{const i=await(async(e,t)=>{const i=[...se(t.toBase58()),{dataSize:165}],s=(await e.getProgramAccounts(r.TOKEN_PROGRAM_ID,{filters:i})).map((e=>r.AccountLayout.decode(e.account.data))).map((t=>ne(e,t)));return(await Promise.all(s)).filter((e=>void 0!==e))})(e,t);return(await Q(e,i.map((e=>e.nameAccount)))).map(((e,t)=>({key:i[t].nameAccount,mint:i[t].nftMint,reverse:e}))).filter((e=>!!e.reverse))},exports.getTwitterHandleandRegistryKeyViaFilters=async function(t,r){const i=[{memcmp:{offset:0,bytes:M.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:L.toBase58()}}],n=await t.getProgramAccounts(D,{filters:i});for(const t of n)if(t.account.data.length>oe.HEADER_LEN+32){let r=t.account.data.slice(oe.HEADER_LEN),i=s.deserializeUnchecked(ke.schema,ke,r);return[i.twitterHandle,new e.PublicKey(i.twitterRegistryKey)]}throw new g(exports.ErrorType.AccountDoesNotExist)},exports.getTwitterRecord=async(e,t)=>await we(e,t,exports.Record.Twitter,!0),exports.getTwitterRegistry=async function(e,t){const r=await ce(t),i=await ue(r,void 0,M),{registry:s}=await oe.retrieve(e,i);return s},exports.getTwitterRegistryData=async function(r,i){const s=[{memcmp:{offset:0,bytes:M.toBase58()}},{memcmp:{offset:32,bytes:i.toBase58()}},{memcmp:{offset:64,bytes:new e.PublicKey(t.Buffer.alloc(32,0)).toBase58()}}],n=await r.getProgramAccounts(D,{filters:s});if(n.length>1)throw new g(exports.ErrorType.MultipleRegistries);return n[0].account.data.slice(oe.HEADER_LEN)},exports.getTwitterRegistryKey=async function(e){const t=await ce(e);return await ue(t,void 0,M)},exports.getUrlRecord=async(e,t)=>await we(e,t,exports.Record.Url,!0),exports.performReverseLookup=async function(e,t){const r=await ce(t.toBase58()),s=await ue(r,C),{registry:n}=await oe.retrieve(e,s);if(!n.data)throw new g(exports.ErrorType.NoAccountData);const o=new i(n.data.slice(0,4),"le").toNumber();return n.data.slice(4,4+o).toString()},exports.performReverseLookupBatch=async function(e,t){let r=[];for(let e of t){const t=await ce(e.toBase58()),i=await ue(t,C);r.push(i)}return(await oe.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new i(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))},exports.registerDomainName=async(t,i,s,n,a,c=H,u)=>{if(i.includes(".")||i.trim().toLowerCase()!==i)throw new g(exports.ErrorType.InvalidDomain);const[p]=e.PublicKey.findProgramAddressSync([N.toBuffer()],N),d=X(i),l=Z(d,void 0,K),f=X(l.toBase58()),y=Z(f,p),[w]=e.PublicKey.findProgramAddressSync([l.toBuffer()],N),m=F.findIndex((e=>null==u?void 0:u.equals(e)));let b;const h=[];if(-1!==m&&u){b=r.getAssociatedTokenAddressSync(c,u,!0);const e=await t.getAccountInfo(b);if(!(null==e?void 0:e.data)){const e=r.createAssociatedTokenAccountInstruction(n,b,u,c);h.push(e)}}const x=new o.PythHttpClient(t,o.getPythProgramKeyForCluster("mainnet-beta")),S=await x.getData(),R=U.get(c.toBase58());if(!R)throw new g(exports.ErrorType.SymbolNotFound,`No symbol found for mint ${c.toBase58()}`);const v=S.productPrice.get("Crypto."+R+"/USD"),E=S.productFromSymbol.get("Crypto."+R+"/USD"),k=r.getAssociatedTokenAddressSync(c,G),B=new A({name:i,space:s,referrerIdxOpt:-1!=m?m:null}).getInstruction(N,D,K,l,y,e.SystemProgram.programId,p,n,a,j,v.productAccountKey,new e.PublicKey(E.price_account),k,r.TOKEN_PROGRAM_ID,e.SYSVAR_RENT_PUBKEY,w,b);return h.push(B),[[],h]},exports.registerWithNft=(t,i,s,n,o,a,c,u,p)=>{const[d]=e.PublicKey.findProgramAddressSync([s.toBuffer()],N);return new E({space:i,name:t}).getInstruction(N,D,K,s,n,e.SystemProgram.programId,C,o,a,c,u,p,Y,r.TOKEN_PROGRAM_ID,e.SYSVAR_RENT_PUBKEY,d,V)},exports.resolve=async(r,i)=>{const{pubkey:s}=ee(i),{registry:n,nftOwner:o}=await oe.retrieve(r,s);if(o)return o;try{const s=ge(i,exports.Record.SOL),o=await me(r,i);if(!(null==o?void 0:o.data))throw new g(exports.ErrorType.NoRecordData);const a=new TextEncoder,c=t.Buffer.concat([o.data.slice(0,32),s.toBuffer()]),u=a.encode(c.toString("hex"));if(!ye(u,o.data.slice(32),n.owner))throw new g(exports.ErrorType.InvalidSignature);return new e.PublicKey(o.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return n.owner},exports.retrieveNftOwner=ie,exports.retrieveNfts=async t=>{const r=await t.getProgramAccounts(B,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return r.map((t=>new e.PublicKey(t.account.data.slice(66,98))))},exports.reverseLookup=J,exports.reverseLookupBatch=Q,exports.serializeRecord=he,exports.serializeSolRecord=xe,exports.transferInstruction=x,exports.transferNameOwnership=async function(e,t,r,i,s,n){const o=await ce(t),a=await ue(o,i,s);let c;return c=i||(await oe.retrieve(e,a)).registry.owner,x(D,a,r,c,i,s,n)},exports.updateInstruction=h,exports.updateNameRegistryData=async function(e,t,r,i,s,n){const o=await ce(t),a=await ue(o,s,n);let c;return c=s||(await oe.retrieve(e,a)).registry.owner,h(D,a,new w(r),i,c)},exports.updateRecordInstruction=async(e,t,r,i,s,n)=>{re(r!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:o}=ee(`${r}.${t}`,!0),a=await e.getAccountInfo(o);re(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist);const c=he(i,r);if((null==a?void 0:a.data.slice(96).length)!==c.length)return[S(D,o,n,s),await Ae(e,t,r,i,s,n)];return[h(D,o,new w(0),c,s)]},exports.updateSolRecordInstruction=async(e,t,r,i,s,n)=>{const{pubkey:o}=ee(`${exports.Record.SOL}.${t}`,!0),a=await e.getAccountInfo(o);if(re(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist),96!==(null==a?void 0:a.data.length))return[S(D,o,n,i),await Ee(e,t,r,i,s,n)];const c=xe(r,o,i,s);return[h(D,o,new w(0),c,i)]};
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export * from "./constants";
9
9
  export * from "./int";
10
10
  export * from "./record";
11
11
  export * from "./types/record";
12
+ export * from "./types/custom-bg";
12
13
  export * from "./resolve";
13
14
  export * from "./deprecated/utils";
14
15
  export * from "./error";
16
+ export * from "./custom-bg";
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{PublicKey as t,TransactionInstruction as e,SystemProgram as n,SYSVAR_RENT_PUBKEY as r}from"@solana/web3.js";import{Buffer as i}from"buffer";import{TOKEN_PROGRAM_ID as a,getMint as s,AccountLayout as o,getAssociatedTokenAddressSync as c,createAssociatedTokenAccountInstruction as u}from"@solana/spl-token";import l from"bn.js";import{serialize as f,deserialize as d,deserializeUnchecked as w}from"borsh";import{sha256 as p}from"@ethersproject/sha2";import{PythHttpClient as m,getPythProgramKeyForCluster as g}from"@pythnetwork/client";import{decode as y,encode as h}from"bech32-buffer";import*as b from"tweetnacl";import v from"bs58";import S from"ipaddr.js";import{encode as A}from"punycode";var k;!function(t){t.SymbolNotFound="SymbolNotFound",t.InvalidSubdomain="InvalidSubdomain",t.FavouriteDomainNotFound="FavouriteDomainNotFound",t.MissingParentOwner="MissingParentOwner",t.U32Overflow="U32Overflow",t.InvalidBufferLength="InvalidBufferLength",t.U64Overflow="U64Overflow",t.NoRecordData="NoRecordData",t.InvalidRecordData="InvalidRecordData",t.UnsupportedRecord="UnsupportedRecord",t.InvalidEvmAddress="InvalidEvmAddress",t.InvalidInjectiveAddress="InvalidInjectiveAddress",t.InvalidARecord="InvalidARecord",t.InvalidAAAARecord="InvalidAAAARecord",t.InvalidRecordInput="InvalidRecordInput",t.InvalidSignature="InvalidSignature",t.AccountDoesNotExist="AccountDoesNotExist",t.MultipleRegistries="MultipleRegistries",t.InvalidReverseTwitter="InvalidReverseTwitter",t.NoAccountData="NoAccountData",t.InvalidInput="InvalidInput",t.InvalidDomain="InvalidDomain",t.InvalidCustomBg="InvalidCustomBackground"}(k||(k={}));class I extends Error{constructor(t,e){super(e),this.name="SNSError",this.type=t,Error.captureStackTrace&&Error.captureStackTrace(this,I)}}class B extends l{toBuffer(){const t=super.toArray().reverse(),e=i.from(t);if(4===e.length)return e;if(e.length>4)throw new I(k.U32Overflow);const n=i.alloc(4);return e.copy(n),n}static fromBuffer(t){if(4!==t.length)throw new I(k.InvalidBufferLength,`Invalid buffer length: ${t.length}`);return new l([...t].reverse().map((t=>`00${t.toString(16)}`.slice(-2))).join(""),16)}}class E extends l{toBuffer(){const t=super.toArray().reverse(),e=i.from(t);if(8===e.length)return e;if(e.length>8)throw new I(k.U64Overflow);const n=i.alloc(8);return e.copy(n),n}static fromBuffer(t){if(8!==t.length)throw new I(k.U64Overflow,`Invalid buffer length: ${t.length}`);return new l([...t].reverse().map((t=>`00${t.toString(16)}`.slice(-2))).join(""),16)}}function R(n,r,a,s,o,c,u,l,f,d,w){const p=[i.from(Int8Array.from([0])),new B(c.length).toBuffer(),c,u.toBuffer(),l.toBuffer()],m=i.concat(p),g=[{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}];return f?g.push({pubkey:f,isSigner:!0,isWritable:!1}):g.push({pubkey:new t(i.alloc(32)),isSigner:!1,isWritable:!1}),d?g.push({pubkey:d,isSigner:!1,isWritable:!1}):g.push({pubkey:new t(i.alloc(32)),isSigner:!1,isWritable:!1}),w&&g.push({pubkey:w,isSigner:!0,isWritable:!1}),new e({keys:g,programId:n,data:m})}function W(t,n,r,a,s){const o=[i.from(Int8Array.from([1])),r.toBuffer(),new B(a.length).toBuffer(),a],c=i.concat(o);return new e({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}],programId:t,data:c})}function D(n,r,a,s,o,c,u){const l=[i.from(Int8Array.from([2])),a.toBuffer()],f=i.concat(l),d=[{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u||s,isSigner:!0,isWritable:!1}];return o&&d.push({pubkey:o,isSigner:!0,isWritable:!1}),u&&c&&(o||d.push({pubkey:t.default,isSigner:!1,isWritable:!1}),d.push({pubkey:c,isSigner:!1,isWritable:!1})),new e({keys:d,programId:n,data:f})}function N(t,n,r,a){const s=[i.from(Int8Array.from([3]))],o=i.concat(s);return new e({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0}],programId:t,data:o})}class x{constructor(t){this.tag=9,this.name=t.name,this.space=t.space}serialize(){return f(x.schema,this)}getInstruction(t,r,s,o,c,u,l,f,d,w,p){const m=i.from(this.serialize()),g=[{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:n.programId,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1}];return new e({keys:g,programId:t,data:m})}}x.schema=new Map([[x,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class L{constructor(t){this.tag=12,this.name=t.name}serialize(){return f(L.schema,this)}getInstruction(t,n,r,a,s,o,c,u,l,f){const d=i.from(this.serialize());let w=[];return w.push({pubkey:n,isSigner:!1,isWritable:!1}),w.push({pubkey:r,isSigner:!1,isWritable:!1}),w.push({pubkey:a,isSigner:!1,isWritable:!0}),w.push({pubkey:s,isSigner:!1,isWritable:!1}),w.push({pubkey:o,isSigner:!1,isWritable:!1}),w.push({pubkey:c,isSigner:!0,isWritable:!0}),w.push({pubkey:u,isSigner:!1,isWritable:!1}),l&&w.push({pubkey:l,isSigner:!1,isWritable:!0}),f&&w.push({pubkey:f,isSigner:!0,isWritable:!0}),new e({keys:w,programId:t,data:d})}}L.schema=new Map([[L,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class T{constructor(t){this.tag=13,this.name=t.name,this.space=t.space,this.referrerIdxOpt=t.referrerIdxOpt}serialize(){return f(T.schema,this)}getInstruction(t,n,r,a,s,o,c,u,l,f,d,w,p,m,g,y,h){const b=i.from(this.serialize());let v=[];return v.push({pubkey:n,isSigner:!1,isWritable:!1}),v.push({pubkey:r,isSigner:!1,isWritable:!1}),v.push({pubkey:a,isSigner:!1,isWritable:!0}),v.push({pubkey:s,isSigner:!1,isWritable:!0}),v.push({pubkey:o,isSigner:!1,isWritable:!1}),v.push({pubkey:c,isSigner:!1,isWritable:!1}),v.push({pubkey:u,isSigner:!0,isWritable:!0}),v.push({pubkey:l,isSigner:!1,isWritable:!0}),v.push({pubkey:f,isSigner:!1,isWritable:!1}),v.push({pubkey:d,isSigner:!1,isWritable:!1}),v.push({pubkey:w,isSigner:!1,isWritable:!1}),v.push({pubkey:p,isSigner:!1,isWritable:!0}),v.push({pubkey:m,isSigner:!1,isWritable:!1}),v.push({pubkey:g,isSigner:!1,isWritable:!1}),v.push({pubkey:y,isSigner:!1,isWritable:!1}),h&&v.push({pubkey:h,isSigner:!1,isWritable:!0}),new e({keys:v,programId:t,data:b})}}T.schema=new Map([[T,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const P=new t("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),H=i.from("tokenized_name");var M;!function(t){t[t.Uninitialized=0]="Uninitialized",t[t.CentralState=1]="CentralState",t[t.ActiveRecord=2]="ActiveRecord",t[t.InactiveRecord=3]="InactiveRecord"}(M||(M={}));class C{constructor(e){this.tag=e.tag,this.nonce=e.nonce,this.nameAccount=new t(e.nameAccount),this.owner=new t(e.owner),this.nftMint=new t(e.nftMint)}static deserialize(t){return d(this.schema,C,t)}static async retrieve(t,e){const n=await t.getAccountInfo(e);if(!n||!n.data)throw new Error("NFT record not found");return this.deserialize(n.data)}static async findKey(e,n){return await t.findProgramAddress([i.from("nft_record"),e.toBuffer()],n)}}C.schema=new Map([[C,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const F=new t("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),j="SPL Name Service",U=new t("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),z=new t("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),O=new t("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),G=new t("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),X=new t("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),K=new t("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),Z=new t("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),q=96,Y=new t("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),J=new t("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),V=[new t("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new t("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new t("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new t("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new t("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new t("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],_=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),Q=new t("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),$=new t("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),tt=new t("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),et=t=>{const e=j+t,n=p(i.from(e,"utf8")).slice(2);return i.from(n,"hex")},nt=(e,n,r)=>{const a=[e];n?a.push(n.toBuffer()):a.push(i.alloc(32)),r?a.push(r.toBuffer()):a.push(i.alloc(32));const[s]=t.findProgramAddressSync(a,F);return s};async function rt(t,e){const n=et(e.toBase58()),r=nt(n,X),{registry:i}=await yt.retrieve(t,r);if(!i.data)throw new I(k.NoAccountData);const a=new l(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function it(t,e){let n=[];for(let t of e){const e=et(t.toBase58()),r=nt(e,X);n.push(r)}return(await yt.retrieveBatch(t,n)).map((t=>{if(void 0===t||void 0===t.data)return;let e=new l(t.data.slice(0,4),"le").toNumber();return t.data.slice(4,4+e).toString()}))}const at=async(t,e)=>{const n=[{memcmp:{offset:0,bytes:e.toBase58()}},{memcmp:{offset:64,bytes:X.toBase58()}}],r=await t.getProgramAccounts(F,{filters:n}),i=await rt(t,e),a=r.map((t=>{var e;return null===(e=t.account.data.slice(97).toString("utf-8"))||void 0===e?void 0:e.split("\0").join("")})),s=a.map((t=>ot(t+"."+i).pubkey)),o=await t.getMultipleAccountsInfo(s);return a.filter(((t,e)=>!!o[e]))},st=(t,e=U)=>{let n=et(t);return{pubkey:nt(n,void 0,e),hashed:n}},ot=(t,e=!1)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=i.from([e?1:0]).toString().concat(n[0]),{pubkey:r}=st(n[1]);return{...st(t,r),isSub:!0,parent:r}}if(3===n.length&&e){const{pubkey:t}=st(n[2]),{pubkey:e}=st("\0".concat(n[1]),t),r=i.from([1]).toString();return{...st(r.concat(n[0]),e),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new I(k.InvalidInput);return{...st(t,U),isSub:!1,parent:void 0}};async function ct(t,e){const n=[{memcmp:{offset:32,bytes:e.toBase58()}},{memcmp:{offset:0,bytes:U.toBase58()}}];return(await t.getProgramAccounts(F,{filters:n})).map((t=>t.pubkey))}const ut=async t=>{const e=[{memcmp:{offset:0,bytes:U.toBase58()}}];return await t.getProgramAccounts(F,{dataSlice:{offset:32,length:32},filters:e})},lt=(t,e)=>{const{pubkey:n,parent:r}=ot(t),i=et(n.toBase58());return nt(i,X,e?r:void 0)},ft=(t,e)=>{if(!t)throw new I(e)},dt=async(e,n)=>{try{const[r]=await t.findProgramAddress([H,n.toBuffer()],P);if("0"===(await s(e,r)).supply.toString())return;const i=[{memcmp:{offset:0,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],o=await e.getProgramAccounts(a,{filters:i});if(1!=o.length)return;return new t(o[0].account.data.slice(32,64))}catch{return}},wt=async e=>{const n=await e.getProgramAccounts(P,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return n.map((e=>new t(e.account.data.slice(66,98))))},pt=t=>[{memcmp:{offset:32,bytes:t}},{memcmp:{offset:64,bytes:"2"}}],mt=async(t,e)=>{const n=await(async(t,e)=>{const n=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:e.toBase58()}}];return await t.getProgramAccounts(P,{filters:n})})(t,e.mint);if(1===n.length)return C.deserialize(n[0].account.data)},gt=async(t,e)=>{const n=await(async(t,e)=>{const n=[...pt(e.toBase58()),{dataSize:165}],r=(await t.getProgramAccounts(a,{filters:n})).map((t=>o.decode(t.account.data))).map((e=>mt(t,e)));return(await Promise.all(r)).filter((t=>void 0!==t))})(t,e);return(await it(t,n.map((t=>t.nameAccount)))).map(((t,e)=>({key:n[e].nameAccount,mint:n[e].nftMint,reverse:t}))).filter((t=>!!t.reverse))};class yt{constructor(e){this.parentName=new t(e.parentName),this.owner=new t(e.owner),this.class=new t(e.class)}static async retrieve(t,e){var n;const r=await t.getAccountInfo(e);if(!r)throw new I(k.AccountDoesNotExist);let i=w(this.schema,yt,r.data);i.data=null===(n=r.data)||void 0===n?void 0:n.slice(this.HEADER_LEN);return{registry:i,nftOwner:await dt(t,e)}}static async _retrieveBatch(t,e){const n=await t.getMultipleAccountsInfo(e),r=t=>{if(!t)return;const e=w(this.schema,yt,t);return e.data=null==t?void 0:t.slice(this.HEADER_LEN),e};return n.map((t=>r(null==t?void 0:t.data)))}static async retrieveBatch(t,e){let n=[];const r=[...e];for(;r.length>0;)n.push(...await this._retrieveBatch(t,r.splice(0,100)));return n}}async function ht(t,e){if(!await t.getAccountInfo(e))throw new I(k.AccountDoesNotExist);return yt.retrieve(t,e)}async function bt(t){const e=j+t,n=p(i.from(e,"utf8")).slice(2);return i.from(n,"hex")}async function vt(e,n,r){const a=[e];n?a.push(n.toBuffer()):a.push(i.alloc(32)),r?a.push(r.toBuffer()):a.push(i.alloc(32));const[s]=await t.findProgramAddress(a,F);return s}async function St(t,e){const n=await bt(e.toBase58()),r=await vt(n,X),{registry:i}=await yt.retrieve(t,r);if(!i.data)throw new I(k.NoAccountData);const a=new l(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function At(t,e){let n=[];for(let t of e){const e=await bt(t.toBase58()),r=await vt(e,X);n.push(r)}return(await yt.retrieveBatch(t,n)).map((t=>{if(void 0===t||void 0===t.data)return;let e=new l(t.data.slice(0,4),"le").toNumber();return t.data.slice(4,4+e).toString()}))}yt.HEADER_LEN=96,yt.schema=new Map([[yt,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const kt=async(t,e=U)=>{let n=await bt(t);return{pubkey:await vt(n,void 0,e),hashed:n}},It=async(t,e=!1)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=i.from([e?1:0]).toString().concat(n[0]),{pubkey:r}=await kt(n[1]);return{...await kt(t,r),isSub:!0,parent:r}}if(3===n.length&&e){const{pubkey:t}=await kt(n[2]),{pubkey:e}=await kt("\0".concat(n[1]),t),r=i.from([1]).toString();return{...await kt(r.concat(n[0]),e),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new I(k.InvalidInput);return{...await kt(t,U),isSub:!1,parent:void 0}},Bt=async(t,e)=>{const{pubkey:n,parent:r}=await It(t),i=await bt(n.toBase58());return await vt(i,X,e?r:void 0)};var Et;!function(t){t.IPFS="IPFS",t.ARWV="ARWV",t.SOL="SOL",t.ETH="ETH",t.BTC="BTC",t.LTC="LTC",t.DOGE="DOGE",t.Email="email",t.Url="url",t.Discord="discord",t.Github="github",t.Reddit="reddit",t.Twitter="twitter",t.Telegram="telegram",t.Pic="pic",t.SHDW="SHDW",t.POINT="POINT",t.BSC="BSC",t.Injective="INJ",t.Backpack="backpack",t.A="A",t.AAAA="AAAA",t.CNAME="CNAME",t.TXT="TXT"}(Et||(Et={}));const Rt=new Map([[Et.SOL,96],[Et.ETH,20],[Et.BSC,20],[Et.Injective,20],[Et.A,4],[Et.AAAA,16]]),Wt=(t,e,n)=>b.sign.detached.verify(t,e,n.toBytes()),Dt=async(e,n)=>{const{pubkey:r}=ot(n),{registry:a,nftOwner:s}=await yt.retrieve(e,r);if(s)return s;try{const r=Nt(n,Et.SOL),s=await Yt(e,n);if(!(null==s?void 0:s.data))throw new I(k.NoRecordData);const o=new TextEncoder,c=i.concat([s.data.slice(0,32),r.toBuffer()]),u=o.encode(c.toString("hex"));if(!Wt(u,s.data.slice(32),a.owner))throw new I(k.InvalidSignature);return new t(s.data.slice(0,32))}catch(t){if(t instanceof Error&&"FetchError"===t.name)throw t}return a.owner},Nt=(t,e)=>{const{pubkey:n}=ot(e+"."+t,!0);return n};async function xt(t,e,n,r){const i=Nt(e,n);let{registry:a}=await yt.retrieve(t,i);if(!a.data)throw new I(k.NoRecordData);if(r)return $t(a,n,i);const s=Rt.get(n);return a.data=a.data.slice(0,s),a}async function Lt(t,e,n,r){const i=n.map((t=>Nt(e,t))),a=await yt.retrieveBatch(t,i);return r?a.map(((t,r)=>{if(t)return $t(t,n[r],Nt(e,n[r]))})):a}const Tt=async(t,e)=>await xt(t,e,Et.IPFS,!0),Pt=async(t,e)=>await xt(t,e,Et.ARWV,!0),Ht=async(t,e)=>await xt(t,e,Et.ETH,!0),Mt=async(t,e)=>await xt(t,e,Et.BTC,!0),Ct=async(t,e)=>await xt(t,e,Et.LTC,!0),Ft=async(t,e)=>await xt(t,e,Et.DOGE,!0),jt=async(t,e)=>await xt(t,e,Et.Email,!0),Ut=async(t,e)=>await xt(t,e,Et.Url,!0),zt=async(t,e)=>await xt(t,e,Et.Discord,!0),Ot=async(t,e)=>await xt(t,e,Et.Github,!0),Gt=async(t,e)=>await xt(t,e,Et.Reddit,!0),Xt=async(t,e)=>await xt(t,e,Et.Twitter,!0),Kt=async(t,e)=>await xt(t,e,Et.Telegram,!0),Zt=async(t,e)=>await xt(t,e,Et.Pic,!0),qt=async(t,e)=>await xt(t,e,Et.SHDW,!0),Yt=async(t,e)=>await xt(t,e,Et.SOL),Jt=async(t,e)=>await xt(t,e,Et.POINT,!0),Vt=async(t,e)=>await xt(t,e,Et.BSC,!0),_t=async(t,e)=>await xt(t,e,Et.Injective,!0),Qt=async(t,e)=>await xt(t,e,Et.Backpack,!0),$t=(t,e,n)=>{const r=null==t?void 0:t.data;if(!r)return;if(0===r.compare(i.alloc(r.length)))return;const a=Rt.get(e),s=(t=>{const e=Array.from(t);return e.length-1-e.reverse().findIndex((t=>0!==t))+1})(r);if(!a)return r.slice(0,s).toString("utf-8");if(e===Et.SOL){const e=new TextEncoder,a=i.concat([r.slice(0,32),n.toBuffer()]),s=e.encode(a.toString("hex"));if(Wt(s,r.slice(32,96),t.owner))return v.encode(r.slice(0,32))}if(a&&s!==a){const t=r.slice(0,s).toString("utf-8");if(e===Et.Injective){const e=y(t);if("inj"===e.prefix&&20===e.data.length)return t}else if(e===Et.BSC||e===Et.ETH){const e=t.slice(0,2),n=t.slice(2);if("0x"===e&&20===i.from(n,"hex").length)return t}else if((e===Et.A||e===Et.AAAA)&&S.isValid(t))return t;throw new I(k.InvalidRecordData)}if(e===Et.ETH||e===Et.BSC)return"0x"+r.slice(0,a).toString("hex");if(e===Et.Injective)return h("inj",r.slice(0,a),"bech32");if(e===Et.A||e===Et.AAAA)return S.fromByteArray([...r.slice(0,a)]).toString();throw new I(k.InvalidRecordData)},te=(t,e)=>{if(!Rt.get(e))return e!==Et.CNAME&&e!==Et.TXT||(t=A(t)),i.from(t,"utf-8");if(e===Et.SOL)throw new I(k.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(e===Et.ETH||e===Et.BSC)return ft("0x"===t.slice(0,2),k.InvalidEvmAddress),i.from(t.slice(2),"hex");if(e===Et.Injective){const e=y(t);return ft("inj"===e.prefix,k.InvalidInjectiveAddress),ft(20===e.data.length,k.InvalidInjectiveAddress),i.from(e.data)}if(e===Et.A){const e=S.parse(t).toByteArray();return ft(4===e.length,k.InvalidARecord),i.from(e)}if(e===Et.AAAA){const e=S.parse(t).toByteArray();return ft(16===e.length,k.InvalidAAAARecord),i.from(e)}throw new I(k.InvalidRecordInput)},ee=(t,e,n,r)=>{const a=i.concat([t.toBuffer(),e.toBuffer()]),s=(new TextEncoder).encode(a.toString("hex")),o=Wt(s,r,n);return ft(o,k.InvalidSignature),i.concat([t.toBuffer(),r])};async function ne(t,e,r,i,a,s,o,c){const u=await bt(e),l=await vt(u,o,c),f=s||await t.getMinimumBalanceForRentExemption(r);let d;if(c){const{registry:e}=await ht(t,c);d=e.owner}return R(F,n.programId,l,a,i,u,new E(f),new B(r),o,c,d)}async function re(t,e,n,r,i,a){const s=await bt(e),o=await vt(s,i,a);let c;c=i||(await yt.retrieve(t,o)).registry.owner;return W(F,o,new B(n),r,c)}async function ie(t,e,n,r,i,a){const s=await bt(e),o=await vt(s,r,i);let c;c=r||(await yt.retrieve(t,o)).registry.owner;return D(F,o,n,c,r,i,a)}async function ae(t,e,n,r,i){const a=await bt(e),s=await vt(a,r,i);let o;o=r||(await yt.retrieve(t,s)).registry.owner;return N(F,s,n,o)}const se=async(e,i,s,o,l,f=J,d)=>{if(i.includes(".")||i.trim().toLowerCase()!==i)throw new I(k.InvalidDomain);const[w]=t.findProgramAddressSync([z.toBuffer()],z),p=et(i),y=nt(p,void 0,U),h=et(y.toBase58()),b=nt(h,w),[v]=t.findProgramAddressSync([y.toBuffer()],z),S=V.findIndex((t=>null==d?void 0:d.equals(t)));let A;const B=[];if(-1!==S&&d){A=c(f,d,!0);const t=await e.getAccountInfo(A);if(!(null==t?void 0:t.data)){const t=u(o,A,d,f);B.push(t)}}const E=new m(e,g("mainnet-beta")),R=await E.getData(),W=_.get(f.toBase58());if(!W)throw new I(k.SymbolNotFound,`No symbol found for mint ${f.toBase58()}`);const D=R.productPrice.get("Crypto."+W+"/USD"),N=R.productFromSymbol.get("Crypto."+W+"/USD"),x=c(f,$),L=new T({name:i,space:s,referrerIdxOpt:-1!=S?S:null}).getInstruction(z,F,U,y,b,n.programId,w,o,l,Q,D.productAccountKey,new t(N.price_account),x,a,r,v,A);return B.push(L),[[],B]},oe=async(e,i,a,s,o)=>{let[c]=await t.findProgramAddress([z.toBuffer()],z),u=await bt(e.toBase58()),l=await vt(u,c,s);return[[],[new L({name:i}).getInstruction(z,F,U,l,n.programId,c,a,r,s,o)]]},ce=async(t,e,n,r=2e3)=>{const i=[],a=e.split(".")[0];if(!a)throw new I(k.InvalidSubdomain);const{parent:s,pubkey:o}=ot(e),c=await t.getMinimumBalanceForRentExemption(r+yt.HEADER_LEN),u=await ne(t,"\0".concat(a),r,n,n,c,void 0,s);i.push(u);const l=lt(e,!0),f=await t.getAccountInfo(l);if(!(null==f?void 0:f.data)){const[,t]=await oe(o,"\0".concat(a),n,s,n);i.push(...t)}return[[],i]},ue=async(t,e,r,i,a,s)=>{ft(r!==Et.SOL,k.UnsupportedRecord);const{pubkey:o,hashed:c,parent:u}=ot(`${r}.${e}`,!0),l=te(i,r).length,f=await t.getMinimumBalanceForRentExemption(l+yt.HEADER_LEN);return R(F,n.programId,o,a,s,c,new E(f),new B(l),void 0,u,a)},le=async(t,e,n,r,i,a)=>{ft(n!==Et.SOL,k.UnsupportedRecord);const{pubkey:s}=ot(`${n}.${e}`,!0),o=await t.getAccountInfo(s);ft(!!(null==o?void 0:o.data),k.AccountDoesNotExist);const c=te(r,n);if((null==o?void 0:o.data.slice(96).length)!==c.length)return[N(F,s,a,i),await ue(t,e,n,r,i,a)];return[W(F,s,new B(0),c,i)]},fe=async(t,e,r,i,a,s)=>{const{pubkey:o,hashed:c,parent:u}=ot(`${Et.SOL}.${e}`,!0),l=ee(r,o,i,a).length,f=await t.getMinimumBalanceForRentExemption(l+yt.HEADER_LEN);return[R(F,n.programId,o,i,s,c,new E(f),new B(l),void 0,u,i)]},de=async(t,e,n,r,i,a)=>{const{pubkey:s}=ot(`${Et.SOL}.${e}`,!0),o=await t.getAccountInfo(s);if(ft(!!(null==o?void 0:o.data),k.AccountDoesNotExist),96!==(null==o?void 0:o.data.length))return[N(F,s,a,r),await fe(t,e,n,r,i,a)];const c=ee(n,s,r,i);return[W(F,s,new B(0),c,r)]};async function we(t,e,r,i,a){const s=await bt(e),o=await vt(s,void 0,Z),c=await t.getMinimumBalanceForRentExemption(i+yt.HEADER_LEN);let u=[R(F,n.programId,o,r,a,s,new E(c),new B(i),void 0,Z,K)];return u=u.concat(await ke(t,e,o,r,a)),u}async function pe(t,e,n,r){const i=await bt(t),a=await vt(i,void 0,Z);return[W(F,a,new B(n),r,e)]}async function me(t,e,n,r,i){const a=await bt(e),s=await vt(a,void 0,Z);let o=[D(F,s,r,n,void 0)];const c=await bt(n.toString());return await vt(c,K,void 0),o.push(await ae(t,n.toString(),i,K,Z)),o=o.concat(await ke(t,e,s,r,i)),o}async function ge(t,e){const n=await bt(t),r=await vt(n,void 0,Z),i=await bt(e.toString()),a=await vt(i,K,Z);return[N(F,r,e,e),N(F,a,e,e)]}async function ye(t){const e=await bt(t);return await vt(e,void 0,Z)}async function he(t,e){const n=await bt(e),r=await vt(n,void 0,Z),{registry:i}=await yt.retrieve(t,r);return i}async function be(e,n){const r=await bt(n.toString()),i=await vt(r,K,Z);let a=await Ae.retrieve(e,i);return[a.twitterHandle,new t(a.twitterRegistryKey)]}async function ve(e,n){const r=[{memcmp:{offset:0,bytes:Z.toBase58()}},{memcmp:{offset:32,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:K.toBase58()}}],i=await e.getProgramAccounts(F,{filters:r});for(const e of i)if(e.account.data.length>yt.HEADER_LEN+32){let n=e.account.data.slice(yt.HEADER_LEN),r=w(Ae.schema,Ae,n);return[r.twitterHandle,new t(r.twitterRegistryKey)]}throw new I(k.AccountDoesNotExist)}async function Se(e,n){const r=[{memcmp:{offset:0,bytes:Z.toBase58()}},{memcmp:{offset:32,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:new t(i.alloc(32,0)).toBase58()}}],a=await e.getProgramAccounts(F,{filters:r});if(a.length>1)throw new I(k.MultipleRegistries);return a[0].account.data.slice(yt.HEADER_LEN)}class Ae{constructor(t){this.twitterRegistryKey=t.twitterRegistryKey,this.twitterHandle=t.twitterHandle}static async retrieve(t,e){let n=await t.getAccountInfo(e,"processed");if(!n)throw new I(k.InvalidReverseTwitter);return w(this.schema,Ae,n.data.slice(yt.HEADER_LEN))}}async function ke(t,e,r,a,s){const o=await bt(a.toString()),c=await vt(o,K,Z);let u=f(Ae.schema,new Ae({twitterRegistryKey:r.toBytes(),twitterHandle:e}));return[R(F,n.programId,c,a,s,o,new E(await t.getMinimumBalanceForRentExemption(u.length+yt.HEADER_LEN)),new B(u.length),K,Z,K),W(F,c,new B(0),i.from(u),K)]}Ae.schema=new Map([[Ae,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const Ie=new t("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Be{constructor(e){this.tag=e.tag,this.nameAccount=new t(e.nameAccount)}static deserialize(t){return d(this.schema,Be,t)}static async retrieve(t,e){const n=await t.getAccountInfo(e);if(!n||!n.data)throw new I(k.FavouriteDomainNotFound);return this.deserialize(n.data)}static async getKey(e,n){return await t.findProgramAddress([i.from("favourite_domain"),n.toBuffer()],e)}static getKeySync(e,n){return t.findProgramAddressSync([i.from("favourite_domain"),n.toBuffer()],e)}}Be.schema=new Map([[Be,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);const Ee=async(e,n)=>{const[r]=Be.getKeySync(Ie,new t(n)),i=await Be.retrieve(e,r),a=await rt(e,i.nameAccount);return{domain:i.nameAccount,reverse:a}};export{G as BONFIDA_FIDA_BNB,Y as BONFIDA_USDC_BNB,tt as CUSTOM_BG_TLD,k as ErrorType,Be as FavouriteDomain,j as HASH_PREFIX,Ie as NAME_OFFERS_ID,F as NAME_PROGRAM_ID,yt as NameRegistryState,B as Numberu32,E as Numberu64,O as PYTH_FIDA_PRICE_ACC,Q as PYTH_MAPPING_ACC,Rt as RECORD_V1_SIZE,V as REFERRERS,z as REGISTER_PROGRAM_ID,X as REVERSE_LOOKUP_CLASS,U as ROOT_DOMAIN_ACCOUNT,Et as Record,Ae as ReverseTwitterRegistryState,I as SNSError,q as SOL_RECORD_SIG_LEN,_ as TOKENS_SYM_MINT,Z as TWITTER_ROOT_PARENT_REGISTRY_KEY,K as TWITTER_VERIFICATION_AUTHORITY,J as USDC_MINT,$ as VAULT_OWNER,pe as changeTwitterRegistryData,me as changeVerifiedPubkey,ft as check,Wt as checkSolRecord,R as createInstruction,T as createInstructionV3,ne as createNameRegistry,ue as createRecordInstruction,L as createReverseInstruction,oe as createReverseName,ke as createReverseTwitterRegistry,fe as createSolRecordInstruction,ce as createSubdomain,x as createV2Instruction,we as createVerifiedTwitterRegistry,N as deleteInstruction,ae as deleteNameRegistry,ge as deleteTwitterRegistry,$t as deserializeRecord,at as findSubdomains,ct as getAllDomains,ut as getAllRegisteredDomains,Pt as getArweaveRecord,Qt as getBackpackRecord,Vt as getBscRecord,Mt as getBtcRecord,zt as getDiscordRecord,Ft as getDogeRecord,It as getDomainKey,ot as getDomainKeySync,jt as getEmailRecord,Ht as getEthRecord,Ee as getFavoriteDomain,Ot as getGithubRecord,be as getHandleAndRegistryKey,bt as getHashedName,et as getHashedNameSync,_t as getInjectiveRecord,Tt as getIpfsRecord,Ct as getLtcRecord,vt as getNameAccountKey,nt as getNameAccountKeySync,ht as getNameOwner,Zt as getPicRecord,Jt as getPointRecord,xt as getRecord,Nt as getRecordKeySync,Lt as getRecords,Gt as getRedditRecord,Bt as getReverseKey,lt as getReverseKeySync,qt as getShdwRecord,Yt as getSolRecord,Kt as getTelegramRecord,gt as getTokenizedDomains,ve as getTwitterHandleandRegistryKeyViaFilters,Xt as getTwitterRecord,he as getTwitterRegistry,Se as getTwitterRegistryData,ye as getTwitterRegistryKey,Ut as getUrlRecord,St as performReverseLookup,At as performReverseLookupBatch,se as registerDomainName,Dt as resolve,dt as retrieveNftOwner,wt as retrieveNfts,rt as reverseLookup,it as reverseLookupBatch,te as serializeRecord,ee as serializeSolRecord,D as transferInstruction,ie as transferNameOwnership,W as updateInstruction,re as updateNameRegistryData,le as updateRecordInstruction,de as updateSolRecordInstruction};
1
+ import{PublicKey as e,TransactionInstruction as t,SystemProgram as r,SYSVAR_RENT_PUBKEY as i}from"@solana/web3.js";import{Buffer as n}from"buffer";import{TOKEN_PROGRAM_ID as a,getMint as s,AccountLayout as o,getAssociatedTokenAddressSync as c,createAssociatedTokenAccountInstruction as u}from"@solana/spl-token";import l from"bn.js";import{serialize as f,deserialize as d,deserializeUnchecked as p}from"borsh";import{sha256 as w}from"@ethersproject/sha2";import{PythHttpClient as g,getPythProgramKeyForCluster as m}from"@pythnetwork/client";import{decode as y,encode as h}from"bech32-buffer";import*as b from"tweetnacl";import S from"bs58";import v from"ipaddr.js";import{encode as k}from"punycode";var A;!function(e){e.SymbolNotFound="SymbolNotFound",e.InvalidSubdomain="InvalidSubdomain",e.FavouriteDomainNotFound="FavouriteDomainNotFound",e.MissingParentOwner="MissingParentOwner",e.U32Overflow="U32Overflow",e.InvalidBufferLength="InvalidBufferLength",e.U64Overflow="U64Overflow",e.NoRecordData="NoRecordData",e.InvalidRecordData="InvalidRecordData",e.UnsupportedRecord="UnsupportedRecord",e.InvalidEvmAddress="InvalidEvmAddress",e.InvalidInjectiveAddress="InvalidInjectiveAddress",e.InvalidARecord="InvalidARecord",e.InvalidAAAARecord="InvalidAAAARecord",e.InvalidRecordInput="InvalidRecordInput",e.InvalidSignature="InvalidSignature",e.AccountDoesNotExist="AccountDoesNotExist",e.MultipleRegistries="MultipleRegistries",e.InvalidReverseTwitter="InvalidReverseTwitter",e.NoAccountData="NoAccountData",e.InvalidInput="InvalidInput",e.InvalidDomain="InvalidDomain",e.InvalidCustomBg="InvalidCustomBackground"}(A||(A={}));class I extends Error{constructor(e,t){super(t),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,I)}}class B extends l{toBuffer(){const e=super.toArray().reverse(),t=n.from(e);if(4===t.length)return t;if(t.length>4)throw new I(A.U32Overflow);const r=n.alloc(4);return t.copy(r),r}static fromBuffer(e){if(4!==e.length)throw new I(A.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new l([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class W extends l{toBuffer(){const e=super.toArray().reverse(),t=n.from(e);if(8===t.length)return t;if(t.length>8)throw new I(A.U64Overflow);const r=n.alloc(8);return t.copy(r),r}static fromBuffer(e){if(8!==e.length)throw new I(A.U64Overflow,`Invalid buffer length: ${e.length}`);return new l([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function E(r,i,a,s,o,c,u,l,f,d,p){const w=[n.from(Int8Array.from([0])),new B(c.length).toBuffer(),c,u.toBuffer(),l.toBuffer()],g=n.concat(w),m=[{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}];return f?m.push({pubkey:f,isSigner:!0,isWritable:!1}):m.push({pubkey:new e(n.alloc(32)),isSigner:!1,isWritable:!1}),d?m.push({pubkey:d,isSigner:!1,isWritable:!1}):m.push({pubkey:new e(n.alloc(32)),isSigner:!1,isWritable:!1}),p&&m.push({pubkey:p,isSigner:!0,isWritable:!1}),new t({keys:m,programId:r,data:g})}function R(e,r,i,a,s){const o=[n.from(Int8Array.from([1])),i.toBuffer(),new B(a.length).toBuffer(),a],c=n.concat(o);return new t({keys:[{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}],programId:e,data:c})}function D(r,i,a,s,o,c,u){const l=[n.from(Int8Array.from([2])),a.toBuffer()],f=n.concat(l),d=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:u||s,isSigner:!0,isWritable:!1}];return o&&d.push({pubkey:o,isSigner:!0,isWritable:!1}),u&&c&&(o||d.push({pubkey:e.default,isSigner:!1,isWritable:!1}),d.push({pubkey:c,isSigner:!1,isWritable:!1})),new t({keys:d,programId:r,data:f})}function N(e,r,i,a){const s=[n.from(Int8Array.from([3]))],o=n.concat(s);return new t({keys:[{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0}],programId:e,data:o})}class x{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return f(x.schema,this)}getInstruction(e,i,s,o,c,u,l,f,d,p,w){const g=n.from(this.serialize()),m=[{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r.programId,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!0,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1}];return new t({keys:m,programId:e,data:g})}}x.schema=new Map([[x,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class P{constructor(e){this.tag=12,this.name=e.name}serialize(){return f(P.schema,this)}getInstruction(e,r,i,a,s,o,c,u,l,f){const d=n.from(this.serialize());let p=[];return p.push({pubkey:r,isSigner:!1,isWritable:!1}),p.push({pubkey:i,isSigner:!1,isWritable:!1}),p.push({pubkey:a,isSigner:!1,isWritable:!0}),p.push({pubkey:s,isSigner:!1,isWritable:!1}),p.push({pubkey:o,isSigner:!1,isWritable:!1}),p.push({pubkey:c,isSigner:!0,isWritable:!0}),p.push({pubkey:u,isSigner:!1,isWritable:!1}),l&&p.push({pubkey:l,isSigner:!1,isWritable:!0}),f&&p.push({pubkey:f,isSigner:!0,isWritable:!0}),new t({keys:p,programId:e,data:d})}}P.schema=new Map([[P,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class T{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return f(T.schema,this)}getInstruction(e,r,i,a,s,o,c,u,l,f,d,p,w,g,m,y,h){const b=n.from(this.serialize());let S=[];return S.push({pubkey:r,isSigner:!1,isWritable:!1}),S.push({pubkey:i,isSigner:!1,isWritable:!1}),S.push({pubkey:a,isSigner:!1,isWritable:!0}),S.push({pubkey:s,isSigner:!1,isWritable:!0}),S.push({pubkey:o,isSigner:!1,isWritable:!1}),S.push({pubkey:c,isSigner:!1,isWritable:!1}),S.push({pubkey:u,isSigner:!0,isWritable:!0}),S.push({pubkey:l,isSigner:!1,isWritable:!0}),S.push({pubkey:f,isSigner:!1,isWritable:!1}),S.push({pubkey:d,isSigner:!1,isWritable:!1}),S.push({pubkey:p,isSigner:!1,isWritable:!1}),S.push({pubkey:w,isSigner:!1,isWritable:!0}),S.push({pubkey:g,isSigner:!1,isWritable:!1}),S.push({pubkey:m,isSigner:!1,isWritable:!1}),S.push({pubkey:y,isSigner:!1,isWritable:!1}),h&&S.push({pubkey:h,isSigner:!1,isWritable:!0}),new t({keys:S,programId:e,data:b})}}T.schema=new Map([[T,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);class L{constructor(e){this.tag=17,this.name=e.name,this.space=e.space}serialize(){return f(L.schema,this)}getInstruction(e,r,i,a,s,o,c,u,l,f,d,p,w,g,m,y,h){const b=n.from(this.serialize());let S=[];return S.push({pubkey:r,isSigner:!1,isWritable:!1}),S.push({pubkey:i,isSigner:!1,isWritable:!1}),S.push({pubkey:a,isSigner:!1,isWritable:!0}),S.push({pubkey:s,isSigner:!1,isWritable:!0}),S.push({pubkey:o,isSigner:!1,isWritable:!1}),S.push({pubkey:c,isSigner:!1,isWritable:!1}),S.push({pubkey:u,isSigner:!0,isWritable:!0}),S.push({pubkey:l,isSigner:!1,isWritable:!0}),S.push({pubkey:f,isSigner:!1,isWritable:!0}),S.push({pubkey:d,isSigner:!1,isWritable:!0}),S.push({pubkey:p,isSigner:!1,isWritable:!0}),S.push({pubkey:w,isSigner:!1,isWritable:!0}),S.push({pubkey:g,isSigner:!1,isWritable:!1}),S.push({pubkey:m,isSigner:!1,isWritable:!1}),S.push({pubkey:y,isSigner:!1,isWritable:!1}),S.push({pubkey:h,isSigner:!1,isWritable:!1}),new t({keys:S,programId:e,data:b})}}L.schema=new Map([[L,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class H{constructor(){this.tag=16}serialize(){return f(H.schema,this)}getInstruction(e,r,i,a,s,o,c,u,l,f){const d=n.from(this.serialize());let p=[];return p.push({pubkey:r,isSigner:!1,isWritable:!1}),p.push({pubkey:i,isSigner:!1,isWritable:!1}),p.push({pubkey:a,isSigner:!1,isWritable:!0}),p.push({pubkey:s,isSigner:!1,isWritable:!0}),p.push({pubkey:o,isSigner:!1,isWritable:!0}),p.push({pubkey:c,isSigner:!1,isWritable:!0}),p.push({pubkey:u,isSigner:!1,isWritable:!1}),p.push({pubkey:l,isSigner:!0,isWritable:!1}),p.push({pubkey:f,isSigner:!1,isWritable:!0}),new t({keys:p,programId:e,data:d})}}H.schema=new Map([[H,{kind:"struct",fields:[["tag","u8"]]}]]);const M=new e("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),C=n.from("tokenized_name");var F;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(F||(F={}));class z{constructor(t){this.tag=t.tag,this.nonce=t.nonce,this.nameAccount=new e(t.nameAccount),this.owner=new e(t.owner),this.nftMint=new e(t.nftMint)}static deserialize(e){return d(this.schema,z,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new Error("NFT record not found");return this.deserialize(r.data)}static async findKey(t,r){return await e.findProgramAddress([n.from("nft_record"),t.toBuffer()],r)}}z.schema=new Map([[z,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const j=new e("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),U="SPL Name Service",G=new e("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),O=new e("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),X=new e("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),K=new e("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),q=new e("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),Z=new e("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),Y=new e("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),J=96,V=new e("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),Q=new e("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),_=[new e("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new e("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new e("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new e("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new e("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new e("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],$=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),ee=new e("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),te=new e("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),re=new e("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),ie=new e("72aLKvXeV4aansAQtxKymeXDevT5ed6sCuz9iN62ugPT"),ne=new e("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ae=e=>{const t=U+e,r=w(n.from(t,"utf8")).slice(2);return n.from(r,"hex")},se=(t,r,i)=>{const a=[t];r?a.push(r.toBuffer()):a.push(n.alloc(32)),i?a.push(i.toBuffer()):a.push(n.alloc(32));const[s]=e.findProgramAddressSync(a,j);return s};async function oe(e,t){const r=ae(t.toBase58()),i=se(r,q),{registry:n}=await ve.retrieve(e,i);if(!n.data)throw new I(A.NoAccountData);const a=new l(n.data.slice(0,4),"le").toNumber();return n.data.slice(4,4+a).toString()}async function ce(e,t){let r=[];for(let e of t){const t=ae(e.toBase58()),i=se(t,q);r.push(i)}return(await ve.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new l(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}const ue=async(e,t)=>{const r=[{memcmp:{offset:0,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:q.toBase58()}}],i=await e.getProgramAccounts(j,{filters:r}),n=await oe(e,t),a=i.map((e=>{var t;return null===(t=e.account.data.slice(97).toString("utf-8"))||void 0===t?void 0:t.split("\0").join("")})),s=a.map((e=>fe(e+"."+n).pubkey)),o=await e.getMultipleAccountsInfo(s);return a.filter(((e,t)=>!!o[t]))},le=(e,t=G)=>{let r=ae(e);return{pubkey:se(r,void 0,t),hashed:r}},fe=(e,t=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const r=e.split(".");if(2===r.length){const e=n.from([t?1:0]).toString().concat(r[0]),{pubkey:i}=le(r[1]);return{...le(e,i),isSub:!0,parent:i}}if(3===r.length&&t){const{pubkey:e}=le(r[2]),{pubkey:t}=le("\0".concat(r[1]),e),i=n.from([1]).toString();return{...le(i.concat(r[0]),t),isSub:!0,parent:e,isSubRecord:!0}}if(r.length>=3)throw new I(A.InvalidInput);return{...le(e,G),isSub:!1,parent:void 0}};async function de(e,t){const r=[{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:0,bytes:G.toBase58()}}];return(await e.getProgramAccounts(j,{filters:r})).map((e=>e.pubkey))}const pe=async e=>{const t=[{memcmp:{offset:0,bytes:G.toBase58()}}];return await e.getProgramAccounts(j,{dataSlice:{offset:32,length:32},filters:t})},we=(e,t)=>{const{pubkey:r,parent:i}=fe(e),n=ae(r.toBase58());return se(n,q,t?i:void 0)},ge=(e,t)=>{if(!e)throw new I(t)},me=async(t,r)=>{try{const[i]=await e.findProgramAddress([C,r.toBuffer()],M);if("0"===(await s(t,i)).supply.toString())return;const n=[{memcmp:{offset:0,bytes:i.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],o=await t.getProgramAccounts(a,{filters:n});if(1!=o.length)return;return new e(o[0].account.data.slice(32,64))}catch{return}},ye=async t=>{const r=await t.getProgramAccounts(M,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return r.map((t=>new e(t.account.data.slice(66,98))))},he=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],be=async(e,t)=>{const r=await(async(e,t)=>{const r=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:t.toBase58()}}];return await e.getProgramAccounts(M,{filters:r})})(e,t.mint);if(1===r.length)return z.deserialize(r[0].account.data)},Se=async(e,t)=>{const r=await(async(e,t)=>{const r=[...he(t.toBase58()),{dataSize:165}],i=(await e.getProgramAccounts(a,{filters:r})).map((e=>o.decode(e.account.data))).map((t=>be(e,t)));return(await Promise.all(i)).filter((e=>void 0!==e))})(e,t);return(await ce(e,r.map((e=>e.nameAccount)))).map(((e,t)=>({key:r[t].nameAccount,mint:r[t].nftMint,reverse:e}))).filter((e=>!!e.reverse))};class ve{constructor(t){this.parentName=new e(t.parentName),this.owner=new e(t.owner),this.class=new e(t.class)}static async retrieve(e,t){var r;const i=await e.getAccountInfo(t);if(!i)throw new I(A.AccountDoesNotExist);let n=p(this.schema,ve,i.data);n.data=null===(r=i.data)||void 0===r?void 0:r.slice(this.HEADER_LEN);return{registry:n,nftOwner:await me(e,t)}}static async _retrieveBatch(e,t){const r=await e.getMultipleAccountsInfo(t),i=e=>{if(!e)return;const t=p(this.schema,ve,e);return t.data=null==e?void 0:e.slice(this.HEADER_LEN),t};return r.map((e=>i(null==e?void 0:e.data)))}static async retrieveBatch(e,t){let r=[];const i=[...t];for(;i.length>0;)r.push(...await this._retrieveBatch(e,i.splice(0,100)));return r}}async function ke(e,t){if(!await e.getAccountInfo(t))throw new I(A.AccountDoesNotExist);return ve.retrieve(e,t)}async function Ae(e){const t=U+e,r=w(n.from(t,"utf8")).slice(2);return n.from(r,"hex")}async function Ie(t,r,i){const a=[t];r?a.push(r.toBuffer()):a.push(n.alloc(32)),i?a.push(i.toBuffer()):a.push(n.alloc(32));const[s]=await e.findProgramAddress(a,j);return s}async function Be(e,t){const r=await Ae(t.toBase58()),i=await Ie(r,q),{registry:n}=await ve.retrieve(e,i);if(!n.data)throw new I(A.NoAccountData);const a=new l(n.data.slice(0,4),"le").toNumber();return n.data.slice(4,4+a).toString()}async function We(e,t){let r=[];for(let e of t){const t=await Ae(e.toBase58()),i=await Ie(t,q);r.push(i)}return(await ve.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new l(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}ve.HEADER_LEN=96,ve.schema=new Map([[ve,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const Ee=async(e,t=G)=>{let r=await Ae(e);return{pubkey:await Ie(r,void 0,t),hashed:r}},Re=async(e,t=!1)=>{e.endsWith(".sol")&&(e=e.slice(0,-4));const r=e.split(".");if(2===r.length){const e=n.from([t?1:0]).toString().concat(r[0]),{pubkey:i}=await Ee(r[1]);return{...await Ee(e,i),isSub:!0,parent:i}}if(3===r.length&&t){const{pubkey:e}=await Ee(r[2]),{pubkey:t}=await Ee("\0".concat(r[1]),e),i=n.from([1]).toString();return{...await Ee(i.concat(r[0]),t),isSub:!0,parent:e,isSubRecord:!0}}if(r.length>=3)throw new I(A.InvalidInput);return{...await Ee(e,G),isSub:!1,parent:void 0}},De=async(e,t)=>{const{pubkey:r,parent:i}=await Re(e),n=await Ae(r.toBase58());return await Ie(n,q,t?i:void 0)};var Ne;!function(e){e.IPFS="IPFS",e.ARWV="ARWV",e.SOL="SOL",e.ETH="ETH",e.BTC="BTC",e.LTC="LTC",e.DOGE="DOGE",e.Email="email",e.Url="url",e.Discord="discord",e.Github="github",e.Reddit="reddit",e.Twitter="twitter",e.Telegram="telegram",e.Pic="pic",e.SHDW="SHDW",e.POINT="POINT",e.BSC="BSC",e.Injective="INJ",e.Backpack="backpack",e.A="A",e.AAAA="AAAA",e.CNAME="CNAME",e.TXT="TXT",e.Background="background"}(Ne||(Ne={}));const xe=new Map([[Ne.SOL,96],[Ne.ETH,20],[Ne.BSC,20],[Ne.Injective,20],[Ne.A,4],[Ne.AAAA,16],[Ne.Background,32]]),Pe=(e,t,r)=>b.sign.detached.verify(e,t,r.toBytes()),Te=async(t,r)=>{const{pubkey:i}=fe(r),{registry:a,nftOwner:s}=await ve.retrieve(t,i);if(s)return s;try{const i=Le(r,Ne.SOL),s=await _e(t,r);if(!(null==s?void 0:s.data))throw new I(A.NoRecordData);const o=new TextEncoder,c=n.concat([s.data.slice(0,32),i.toBuffer()]),u=o.encode(c.toString("hex"));if(!Pe(u,s.data.slice(32),a.owner))throw new I(A.InvalidSignature);return new e(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return a.owner},Le=(e,t)=>{const{pubkey:r}=fe(t+"."+e,!0);return r};async function He(e,t,r,i){const n=Le(t,r);let{registry:a}=await ve.retrieve(e,n);if(!a.data)throw new I(A.NoRecordData);if(i)return nt(a,r,n);const s=xe.get(r);return a.data=a.data.slice(0,s),a}async function Me(e,t,r,i){const n=r.map((e=>Le(t,e))),a=await ve.retrieveBatch(e,n);return i?a.map(((e,i)=>{if(e)return nt(e,r[i],Le(t,r[i]))})):a}const Ce=async(e,t)=>await He(e,t,Ne.IPFS,!0),Fe=async(e,t)=>await He(e,t,Ne.ARWV,!0),ze=async(e,t)=>await He(e,t,Ne.ETH,!0),je=async(e,t)=>await He(e,t,Ne.BTC,!0),Ue=async(e,t)=>await He(e,t,Ne.LTC,!0),Ge=async(e,t)=>await He(e,t,Ne.DOGE,!0),Oe=async(e,t)=>await He(e,t,Ne.Email,!0),Xe=async(e,t)=>await He(e,t,Ne.Url,!0),Ke=async(e,t)=>await He(e,t,Ne.Discord,!0),qe=async(e,t)=>await He(e,t,Ne.Github,!0),Ze=async(e,t)=>await He(e,t,Ne.Reddit,!0),Ye=async(e,t)=>await He(e,t,Ne.Twitter,!0),Je=async(e,t)=>await He(e,t,Ne.Telegram,!0),Ve=async(e,t)=>await He(e,t,Ne.Pic,!0),Qe=async(e,t)=>await He(e,t,Ne.SHDW,!0),_e=async(e,t)=>await He(e,t,Ne.SOL),$e=async(e,t)=>await He(e,t,Ne.POINT,!0),et=async(e,t)=>await He(e,t,Ne.BSC,!0),tt=async(e,t)=>await He(e,t,Ne.Injective,!0),rt=async(e,t)=>await He(e,t,Ne.Backpack,!0),it=async(e,t)=>await He(e,t,Ne.Background,!0),nt=(t,r,i)=>{const a=null==t?void 0:t.data;if(!a)return;if(0===a.compare(n.alloc(a.length)))return;const s=xe.get(r),o=(e=>{const t=Array.from(e);return t.length-1-t.reverse().findIndex((e=>0!==e))+1})(a);if(!s)return a.slice(0,o).toString("utf-8");if(r===Ne.SOL){const e=new TextEncoder,r=n.concat([a.slice(0,32),i.toBuffer()]),s=e.encode(r.toString("hex"));if(Pe(s,a.slice(32,96),t.owner))return S.encode(a.slice(0,32))}if(s&&o!==s){const e=a.slice(0,o).toString("utf-8");if(r===Ne.Injective){const t=y(e);if("inj"===t.prefix&&20===t.data.length)return e}else if(r===Ne.BSC||r===Ne.ETH){const t=e.slice(0,2),r=e.slice(2);if("0x"===t&&20===n.from(r,"hex").length)return e}else if((r===Ne.A||r===Ne.AAAA)&&v.isValid(e))return e;throw new I(A.InvalidRecordData)}if(r===Ne.ETH||r===Ne.BSC)return"0x"+a.slice(0,s).toString("hex");if(r===Ne.Injective)return h("inj",a.slice(0,s),"bech32");if(r===Ne.A||r===Ne.AAAA)return v.fromByteArray([...a.slice(0,s)]).toString();if(r===Ne.Background)return new e(a.slice(0,s)).toString();throw new I(A.InvalidRecordData)},at=(t,r)=>{if(!xe.get(r))return r!==Ne.CNAME&&r!==Ne.TXT||(t=k(t)),n.from(t,"utf-8");if(r===Ne.SOL)throw new I(A.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(r===Ne.ETH||r===Ne.BSC)return ge("0x"===t.slice(0,2),A.InvalidEvmAddress),n.from(t.slice(2),"hex");if(r===Ne.Injective){const e=y(t);return ge("inj"===e.prefix,A.InvalidInjectiveAddress),ge(20===e.data.length,A.InvalidInjectiveAddress),n.from(e.data)}if(r===Ne.A){const e=v.parse(t).toByteArray();return ge(4===e.length,A.InvalidARecord),n.from(e)}if(r===Ne.AAAA){const e=v.parse(t).toByteArray();return ge(16===e.length,A.InvalidAAAARecord),n.from(e)}if(r===Ne.Background)return new e(t).toBuffer();throw new I(A.InvalidRecordInput)},st=(e,t,r,i)=>{const a=n.concat([e.toBuffer(),t.toBuffer()]),s=(new TextEncoder).encode(a.toString("hex")),o=Pe(s,i,r);return ge(o,A.InvalidSignature),n.concat([e.toBuffer(),i])};async function ot(e,t,i,n,a,s,o,c){const u=await Ae(t),l=await Ie(u,o,c),f=s||await e.getMinimumBalanceForRentExemption(i);let d;if(c){const{registry:t}=await ke(e,c);d=t.owner}return E(j,r.programId,l,a,n,u,new W(f),new B(i),o,c,d)}async function ct(e,t,r,i,n,a){const s=await Ae(t),o=await Ie(s,n,a);let c;c=n||(await ve.retrieve(e,o)).registry.owner;return R(j,o,new B(r),i,c)}async function ut(e,t,r,i,n,a){const s=await Ae(t),o=await Ie(s,i,n);let c;c=i||(await ve.retrieve(e,o)).registry.owner;return D(j,o,r,c,i,n,a)}async function lt(e,t,r,i,n){const a=await Ae(t),s=await Ie(a,i,n);let o;o=i||(await ve.retrieve(e,s)).registry.owner;return N(j,s,r,o)}const ft=async(t,n,s,o,l,f=Q,d)=>{if(n.includes(".")||n.trim().toLowerCase()!==n)throw new I(A.InvalidDomain);const[p]=e.findProgramAddressSync([O.toBuffer()],O),w=ae(n),y=se(w,void 0,G),h=ae(y.toBase58()),b=se(h,p),[S]=e.findProgramAddressSync([y.toBuffer()],O),v=_.findIndex((e=>null==d?void 0:d.equals(e)));let k;const B=[];if(-1!==v&&d){k=c(f,d,!0);const e=await t.getAccountInfo(k);if(!(null==e?void 0:e.data)){const e=u(o,k,d,f);B.push(e)}}const W=new g(t,m("mainnet-beta")),E=await W.getData(),R=$.get(f.toBase58());if(!R)throw new I(A.SymbolNotFound,`No symbol found for mint ${f.toBase58()}`);const D=E.productPrice.get("Crypto."+R+"/USD"),N=E.productFromSymbol.get("Crypto."+R+"/USD"),x=c(f,te),P=new T({name:n,space:s,referrerIdxOpt:-1!=v?v:null}).getInstruction(O,j,G,y,b,r.programId,p,o,l,ee,D.productAccountKey,new e(N.price_account),x,a,i,S,k);return B.push(P),[[],B]},dt=async(t,n,a,s,o)=>{let[c]=await e.findProgramAddress([O.toBuffer()],O),u=await Ae(t.toBase58()),l=await Ie(u,c,s);return[[],[new P({name:n}).getInstruction(O,j,G,l,r.programId,c,a,i,s,o)]]},pt=async(e,t,r,i=2e3)=>{const n=[],a=t.split(".")[0];if(!a)throw new I(A.InvalidSubdomain);const{parent:s,pubkey:o}=fe(t),c=await e.getMinimumBalanceForRentExemption(i+ve.HEADER_LEN),u=await ot(e,"\0".concat(a),i,r,r,c,void 0,s);n.push(u);const l=we(t,!0),f=await e.getAccountInfo(l);if(!(null==f?void 0:f.data)){const[,e]=await dt(o,"\0".concat(a),r,s,r);n.push(...e)}return[[],n]},wt=async(e,t,i,n,a,s)=>{ge(i!==Ne.SOL,A.UnsupportedRecord);const{pubkey:o,hashed:c,parent:u}=fe(`${i}.${t}`,!0),l=at(n,i).length,f=await e.getMinimumBalanceForRentExemption(l+ve.HEADER_LEN);return E(j,r.programId,o,a,s,c,new W(f),new B(l),void 0,u,a)},gt=async(e,t,r,i,n,a)=>{ge(r!==Ne.SOL,A.UnsupportedRecord);const{pubkey:s}=fe(`${r}.${t}`,!0),o=await e.getAccountInfo(s);ge(!!(null==o?void 0:o.data),A.AccountDoesNotExist);const c=at(i,r);if((null==o?void 0:o.data.slice(96).length)!==c.length)return[N(j,s,a,n),await wt(e,t,r,i,n,a)];return[R(j,s,new B(0),c,n)]},mt=async(e,t,i,n,a,s)=>{const{pubkey:o,hashed:c,parent:u}=fe(`${Ne.SOL}.${t}`,!0),l=st(i,o,n,a).length,f=await e.getMinimumBalanceForRentExemption(l+ve.HEADER_LEN);return[E(j,r.programId,o,n,s,c,new W(f),new B(l),void 0,u,n)]},yt=async(e,t,r,i,n,a)=>{const{pubkey:s}=fe(`${Ne.SOL}.${t}`,!0),o=await e.getAccountInfo(s);if(ge(!!(null==o?void 0:o.data),A.AccountDoesNotExist),96!==(null==o?void 0:o.data.length))return[N(j,s,a,i),await mt(e,t,r,i,n,a)];const c=st(r,s,i,n);return[R(j,s,new B(0),c,i)]},ht=(t,i,n)=>{const{pubkey:a}=fe(t),[s]=e.findProgramAddressSync([a.toBuffer()],O),[o]=e.findProgramAddressSync([a.toBuffer(),Uint8Array.from([1,1])],O);return(new H).getInstruction(O,j,r.programId,a,we(t),o,s,q,i,n)},bt=(t,n,s,o,c,u,l,f,d)=>{const[p]=e.findProgramAddressSync([s.toBuffer()],O);return new L({space:n,name:t}).getInstruction(O,j,G,s,o,r.programId,q,c,u,l,f,d,ie,a,i,p,ne)};async function St(e,t,i,n,a){const s=await Ae(t),o=await Ie(s,void 0,Y),c=await e.getMinimumBalanceForRentExemption(n+ve.HEADER_LEN);let u=[E(j,r.programId,o,i,a,s,new W(c),new B(n),void 0,Y,Z)];return u=u.concat(await Nt(e,t,o,i,a)),u}async function vt(e,t,r,i){const n=await Ae(e),a=await Ie(n,void 0,Y);return[R(j,a,new B(r),i,t)]}async function kt(e,t,r,i,n){const a=await Ae(t),s=await Ie(a,void 0,Y);let o=[D(j,s,i,r,void 0)];const c=await Ae(r.toString());return await Ie(c,Z,void 0),o.push(await lt(e,r.toString(),n,Z,Y)),o=o.concat(await Nt(e,t,s,i,n)),o}async function At(e,t){const r=await Ae(e),i=await Ie(r,void 0,Y),n=await Ae(t.toString()),a=await Ie(n,Z,Y);return[N(j,i,t,t),N(j,a,t,t)]}async function It(e){const t=await Ae(e);return await Ie(t,void 0,Y)}async function Bt(e,t){const r=await Ae(t),i=await Ie(r,void 0,Y),{registry:n}=await ve.retrieve(e,i);return n}async function Wt(t,r){const i=await Ae(r.toString()),n=await Ie(i,Z,Y);let a=await Dt.retrieve(t,n);return[a.twitterHandle,new e(a.twitterRegistryKey)]}async function Et(t,r){const i=[{memcmp:{offset:0,bytes:Y.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:Z.toBase58()}}],n=await t.getProgramAccounts(j,{filters:i});for(const t of n)if(t.account.data.length>ve.HEADER_LEN+32){let r=t.account.data.slice(ve.HEADER_LEN),i=p(Dt.schema,Dt,r);return[i.twitterHandle,new e(i.twitterRegistryKey)]}throw new I(A.AccountDoesNotExist)}async function Rt(t,r){const i=[{memcmp:{offset:0,bytes:Y.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:new e(n.alloc(32,0)).toBase58()}}],a=await t.getProgramAccounts(j,{filters:i});if(a.length>1)throw new I(A.MultipleRegistries);return a[0].account.data.slice(ve.HEADER_LEN)}class Dt{constructor(e){this.twitterRegistryKey=e.twitterRegistryKey,this.twitterHandle=e.twitterHandle}static async retrieve(e,t){let r=await e.getAccountInfo(t,"processed");if(!r)throw new I(A.InvalidReverseTwitter);return p(this.schema,Dt,r.data.slice(ve.HEADER_LEN))}}async function Nt(e,t,i,a,s){const o=await Ae(a.toString()),c=await Ie(o,Z,Y);let u=f(Dt.schema,new Dt({twitterRegistryKey:i.toBytes(),twitterHandle:t}));return[E(j,r.programId,c,a,s,o,new W(await e.getMinimumBalanceForRentExemption(u.length+ve.HEADER_LEN)),new B(u.length),Z,Y,Z),R(j,c,new B(0),n.from(u),Z)]}Dt.schema=new Map([[Dt,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const xt=new e("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Pt{constructor(t){this.tag=t.tag,this.nameAccount=new e(t.nameAccount)}static deserialize(e){return d(this.schema,Pt,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new I(A.FavouriteDomainNotFound);return this.deserialize(r.data)}static async getKey(t,r){return await e.findProgramAddress([n.from("favourite_domain"),r.toBuffer()],t)}static getKeySync(t,r){return e.findProgramAddressSync([n.from("favourite_domain"),r.toBuffer()],t)}}Pt.schema=new Map([[Pt,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);const Tt=async(t,r)=>{const[i]=Pt.getKeySync(xt,new e(r)),n=await Pt.retrieve(t,i),a=await oe(t,n.nameAccount);return{domain:n.nameAccount,reverse:a}};var Lt;!function(e){e.DegenPoet1="DegenPoet#1"}(Lt||(Lt={}));const Ht=new e("ART5dr4bDic2sQVZoFheEmUxwQq5VGSx9he7JxHcXNQD"),Mt=(e,t)=>{const r=ae(t),i=ae(e),n=se(i,void 0,re);return{domainKey:n,bgKey:se(r,void 0,n)}},Ct=e=>{if(e===Lt.DegenPoet1)return Ht;throw new I(A.InvalidCustomBg)};export{K as BONFIDA_FIDA_BNB,V as BONFIDA_USDC_BNB,re as CUSTOM_BG_TLD,Lt as CustomBg,A as ErrorType,Pt as FavouriteDomain,U as HASH_PREFIX,ne as METAPLEX_ID,xt as NAME_OFFERS_ID,j as NAME_PROGRAM_ID,ve as NameRegistryState,B as Numberu32,W as Numberu64,X as PYTH_FIDA_PRICE_ACC,ee as PYTH_MAPPING_ACC,xe as RECORD_V1_SIZE,_ as REFERRERS,O as REGISTER_PROGRAM_ID,q as REVERSE_LOOKUP_CLASS,G as ROOT_DOMAIN_ACCOUNT,Ne as Record,Dt as ReverseTwitterRegistryState,I as SNSError,J as SOL_RECORD_SIG_LEN,$ as TOKENS_SYM_MINT,Y as TWITTER_ROOT_PARENT_REGISTRY_KEY,Z as TWITTER_VERIFICATION_AUTHORITY,Q as USDC_MINT,te as VAULT_OWNER,ie as WOLVES_COLLECTION_METADATA,ht as burnDomain,H as burnInstruction,vt as changeTwitterRegistryData,kt as changeVerifiedPubkey,ge as check,Pe as checkSolRecord,E as createInstruction,T as createInstructionV3,ot as createNameRegistry,wt as createRecordInstruction,P as createReverseInstruction,dt as createReverseName,Nt as createReverseTwitterRegistry,mt as createSolRecordInstruction,pt as createSubdomain,x as createV2Instruction,St as createVerifiedTwitterRegistry,L as createWithNftInstruction,N as deleteInstruction,lt as deleteNameRegistry,At as deleteTwitterRegistry,nt as deserializeRecord,ue as findSubdomains,de as getAllDomains,pe as getAllRegisteredDomains,Ct as getArtistPubkey,Fe as getArweaveRecord,it as getBackgroundRecord,rt as getBackpackRecord,et as getBscRecord,je as getBtcRecord,Mt as getCustomBgKeys,Ke as getDiscordRecord,Ge as getDogeRecord,Re as getDomainKey,fe as getDomainKeySync,Oe as getEmailRecord,ze as getEthRecord,Tt as getFavoriteDomain,qe as getGithubRecord,Wt as getHandleAndRegistryKey,Ae as getHashedName,ae as getHashedNameSync,tt as getInjectiveRecord,Ce as getIpfsRecord,Ue as getLtcRecord,Ie as getNameAccountKey,se as getNameAccountKeySync,ke as getNameOwner,Ve as getPicRecord,$e as getPointRecord,He as getRecord,Le as getRecordKeySync,Me as getRecords,Ze as getRedditRecord,De as getReverseKey,we as getReverseKeySync,Qe as getShdwRecord,_e as getSolRecord,Je as getTelegramRecord,Se as getTokenizedDomains,Et as getTwitterHandleandRegistryKeyViaFilters,Ye as getTwitterRecord,Bt as getTwitterRegistry,Rt as getTwitterRegistryData,It as getTwitterRegistryKey,Xe as getUrlRecord,Be as performReverseLookup,We as performReverseLookupBatch,ft as registerDomainName,bt as registerWithNft,Te as resolve,me as retrieveNftOwner,ye as retrieveNfts,oe as reverseLookup,ce as reverseLookupBatch,at as serializeRecord,st as serializeSolRecord,D as transferInstruction,ut as transferNameOwnership,R as updateInstruction,ct as updateNameRegistryData,gt as updateRecordInstruction,yt as updateSolRecordInstruction};
@@ -48,3 +48,22 @@ export declare class createInstructionV3 {
48
48
  serialize(): Uint8Array;
49
49
  getInstruction(programId: PublicKey, namingServiceProgram: PublicKey, rootDomain: PublicKey, name: PublicKey, reverseLookup: PublicKey, systemProgram: PublicKey, centralState: PublicKey, buyer: PublicKey, buyerTokenSource: PublicKey, pythMappingAcc: PublicKey, pythProductAcc: PublicKey, pythPriceAcc: PublicKey, vault: PublicKey, splTokenProgram: PublicKey, rentSysvar: PublicKey, state: PublicKey, referrerAccountOpt?: PublicKey): TransactionInstruction;
50
50
  }
51
+ export declare class createWithNftInstruction {
52
+ tag: number;
53
+ name: string;
54
+ space: number;
55
+ static schema: Schema;
56
+ constructor(obj: {
57
+ name: string;
58
+ space: number;
59
+ });
60
+ serialize(): Uint8Array;
61
+ getInstruction(programId: PublicKey, namingServiceProgram: PublicKey, rootDomain: PublicKey, name: PublicKey, reverseLookup: PublicKey, systemProgram: PublicKey, centralState: PublicKey, buyer: PublicKey, nftSource: PublicKey, nftMetadata: PublicKey, nftMint: PublicKey, masterEdition: PublicKey, collection: PublicKey, splTokenProgram: PublicKey, rentSysvar: PublicKey, state: PublicKey, mplTokenMetadata: PublicKey): TransactionInstruction;
62
+ }
63
+ export declare class burnInstruction {
64
+ tag: number;
65
+ static schema: Schema;
66
+ constructor();
67
+ serialize(): Uint8Array;
68
+ getInstruction(programId: PublicKey, nameServiceId: PublicKey, systemProgram: PublicKey, domain: PublicKey, reverse: PublicKey, resellingState: PublicKey, state: PublicKey, centralState: PublicKey, owner: PublicKey, target: PublicKey): TransactionInstruction;
69
+ }
package/dist/record.d.ts CHANGED
@@ -154,7 +154,16 @@ export declare const getInjectiveRecord: (connection: Connection, domain: string
154
154
  */
155
155
  export declare const getBackpackRecord: (connection: Connection, domain: string) => Promise<string | undefined>;
156
156
  /**
157
+
157
158
  * This function can be used to deserialize the content of a record. If the content is invalid it will throw an error
159
+ * This function can be used to retrieve the Background record (V1) of a domain name
160
+ * @param connection The Solana RPC connection object
161
+ * @param domain The .sol domain name
162
+ * @returns
163
+ */
164
+ export declare const getBackgroundRecord: (connection: Connection, domain: string) => Promise<string | undefined>;
165
+ /**
166
+ * This function can be used to deserialize the content of a record (V1). If the content is invalid it will throw an error
158
167
  * @param registry The name registry state object of the record being deserialized
159
168
  * @param record The record enum being deserialized
160
169
  * @param recordKey The public key of the record being deserialized
@@ -0,0 +1,3 @@
1
+ export declare enum CustomBg {
2
+ DegenPoet1 = "DegenPoet#1"
3
+ }
@@ -25,6 +25,7 @@ export declare enum Record {
25
25
  A = "A",
26
26
  AAAA = "AAAA",
27
27
  CNAME = "CNAME",
28
- TXT = "TXT"
28
+ TXT = "TXT",
29
+ Background = "background"
29
30
  }
30
31
  export declare const RECORD_V1_SIZE: Map<Record, number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonfida/spl-name-service",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist"
@@ -33,6 +33,7 @@
33
33
  "doc": "yarn typedoc src/index.ts"
34
34
  },
35
35
  "devDependencies": {
36
+ "@metaplex-foundation/js": "^0.19.5",
36
37
  "@rollup/plugin-commonjs": "^24.1.0",
37
38
  "@rollup/plugin-json": "^6.0.0",
38
39
  "@rollup/plugin-typescript": "^11.1.0",