@bonfida/spl-name-service 2.0.0-alpha.8 → 2.0.0-alpha.9

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.
@@ -45,3 +45,4 @@ export declare const REFERRERS: PublicKey[];
45
45
  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
+ export declare const CUSTOM_BG_TLD: PublicKey;
@@ -0,0 +1,7 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { CustomBg } from "./types/custom-bg";
3
+ export declare const getCustomBgKeys: (domain: string, customBg: CustomBg) => {
4
+ domainKey: PublicKey;
5
+ bgKey: PublicKey;
6
+ };
7
+ export declare const getArtistPubkey: (bg: CustomBg) => PublicKey;
package/dist/error.d.ts CHANGED
@@ -24,7 +24,8 @@ export declare enum ErrorType {
24
24
  UnsupportedSignature = "UnsupportedSignature",
25
25
  RecordDoestNotSupportGuardianSig = "RecordDoestNotSupportGuardianSig",
26
26
  RecordIsNotSigned = "RecordIsNotSigned",
27
- UnsupportedSignatureType = "UnsupportedSignatureType"
27
+ UnsupportedSignatureType = "UnsupportedSignatureType",
28
+ InvalidCustomBg = "InvalidCustomBackground"
28
29
  }
29
30
  export declare class SNSError extends Error {
30
31
  type: ErrorType;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("buffer"),r=require("@solana/web3.js"),t=require("@solana/spl-token"),o=require("bn.js"),n=require("borsh"),i=require("@ethersproject/sha2"),s=require("@pythnetwork/client"),a=require("bech32-buffer"),c=require("tweetnacl"),u=require("bs58"),p=require("ipaddr.js"),d=require("punycode"),f=require("@ethersproject/hash"),l=require("@ethersproject/transactions"),g=require("@ethersproject/address");function y(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var w,x=y(c);exports.ErrorType=void 0,(w=exports.ErrorType||(exports.ErrorType={})).SymbolNotFound="SymbolNotFound",w.InvalidSubdomain="InvalidSubdomain",w.FavouriteDomainNotFound="FavouriteDomainNotFound",w.MissingParentOwner="MissingParentOwner",w.U32Overflow="U32Overflow",w.InvalidBufferLength="InvalidBufferLength",w.U64Overflow="U64Overflow",w.NoRecordData="NoRecordData",w.InvalidRecordData="InvalidRecordData",w.UnsupportedRecord="UnsupportedRecord",w.InvalidEvmAddress="InvalidEvmAddress",w.InvalidInjectiveAddress="InvalidInjectiveAddress",w.InvalidARecord="InvalidARecord",w.InvalidAAAARecord="InvalidAAAARecord",w.InvalidRecordInput="InvalidRecordInput",w.InvalidSignature="InvalidSignature",w.AccountDoesNotExist="AccountDoesNotExist",w.MultipleRegistries="MultipleRegistries",w.InvalidReverseTwitter="InvalidReverseTwitter",w.NoAccountData="NoAccountData",w.InvalidInput="InvalidInput",w.InvalidDomain="InvalidDomain",w.UnsupportedSignature="UnsupportedSignature",w.RecordDoestNotSupportGuardianSig="RecordDoestNotSupportGuardianSig",w.RecordIsNotSigned="RecordIsNotSigned",w.UnsupportedSignatureType="UnsupportedSignatureType";class h extends Error{constructor(e,r){super(r),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,h)}}class m extends o{toBuffer(){const r=super.toArray().reverse(),t=e.Buffer.from(r);if(4===t.length)return t;if(t.length>4)throw new h(exports.ErrorType.U32Overflow);const o=e.Buffer.alloc(4);return t.copy(o),o}static fromBuffer(e){if(4!==e.length)throw new h(exports.ErrorType.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new o([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class S extends o{toBuffer(){const r=super.toArray().reverse(),t=e.Buffer.from(r);if(8===t.length)return t;if(t.length>8)throw new h(exports.ErrorType.U64Overflow);const o=e.Buffer.alloc(8);return t.copy(o),o}static fromBuffer(e){if(8!==e.length)throw new h(exports.ErrorType.U64Overflow,`Invalid buffer length: ${e.length}`);return new o([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function R(t,o,n,i,s,a,c,u,p,d,f){const l=[e.Buffer.from(Int8Array.from([0])),new m(a.length).toBuffer(),a,c.toBuffer(),u.toBuffer()],g=e.Buffer.concat(l),y=[{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}];return p?y.push({pubkey:p,isSigner:!0,isWritable:!1}):y.push({pubkey:new r.PublicKey(e.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),d?y.push({pubkey:d,isSigner:!1,isWritable:!1}):y.push({pubkey:new r.PublicKey(e.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),f&&y.push({pubkey:f,isSigner:!0,isWritable:!1}),new r.TransactionInstruction({keys:y,programId:t,data:g})}function b(t,o,n,i,s){const a=[e.Buffer.from(Int8Array.from([1])),n.toBuffer(),new m(i.length).toBuffer(),i],c=e.Buffer.concat(a),u=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}];return new r.TransactionInstruction({keys:u,programId:t,data:c})}function v(t,o,n,i,s,a,c){const u=[e.Buffer.from(Int8Array.from([2])),n.toBuffer()],p=e.Buffer.concat(u),d=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c||i,isSigner:!0,isWritable:!1}];return s&&d.push({pubkey:s,isSigner:!0,isWritable:!1}),c&&a&&(s||d.push({pubkey:r.PublicKey.default,isSigner:!1,isWritable:!1}),d.push({pubkey:a,isSigner:!1,isWritable:!1})),new r.TransactionInstruction({keys:d,programId:t,data:p})}function A(t,o,n,i){const s=[e.Buffer.from(Int8Array.from([3]))],a=e.Buffer.concat(s),c=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0}];return new r.TransactionInstruction({keys:c,programId:t,data:a})}class E{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return n.serialize(E.schema,this)}getInstruction(o,n,i,s,a,c,u,p,d,f,l){const g=e.Buffer.from(this.serialize()),y=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:r.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:t.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1}];return new r.TransactionInstruction({keys:y,programId:o,data:g})}}E.schema=new Map([[E,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class B{constructor(e){this.tag=12,this.name=e.name}serialize(){return n.serialize(B.schema,this)}getInstruction(t,o,n,i,s,a,c,u,p,d){const f=e.Buffer.from(this.serialize());let l=[];return l.push({pubkey:o,isSigner:!1,isWritable:!1}),l.push({pubkey:n,isSigner:!1,isWritable:!1}),l.push({pubkey:i,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 r.TransactionInstruction({keys:l,programId:t,data:f})}}B.schema=new Map([[B,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class I{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return n.serialize(I.schema,this)}getInstruction(t,o,n,i,s,a,c,u,p,d,f,l,g,y,w,x,h){const m=e.Buffer.from(this.serialize());let S=[];return S.push({pubkey:o,isSigner:!1,isWritable:!1}),S.push({pubkey:n,isSigner:!1,isWritable:!1}),S.push({pubkey:i,isSigner:!1,isWritable:!0}),S.push({pubkey:s,isSigner:!1,isWritable:!0}),S.push({pubkey:a,isSigner:!1,isWritable:!1}),S.push({pubkey:c,isSigner:!1,isWritable:!1}),S.push({pubkey:u,isSigner:!0,isWritable:!0}),S.push({pubkey:p,isSigner:!1,isWritable:!0}),S.push({pubkey:d,isSigner:!1,isWritable:!1}),S.push({pubkey:f,isSigner:!1,isWritable:!1}),S.push({pubkey:l,isSigner:!1,isWritable:!1}),S.push({pubkey:g,isSigner:!1,isWritable:!0}),S.push({pubkey:y,isSigner:!1,isWritable:!1}),S.push({pubkey:w,isSigner:!1,isWritable:!1}),S.push({pubkey:x,isSigner:!1,isWritable:!1}),h&&S.push({pubkey:h,isSigner:!1,isWritable:!0}),new r.TransactionInstruction({keys:S,programId:t,data:m})}}I.schema=new Map([[I,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const T=new r.PublicKey("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),k=e.Buffer.from("tokenized_name");var P;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(P||(P={}));class N{constructor(e){this.tag=e.tag,this.nonce=e.nonce,this.nameAccount=new r.PublicKey(e.nameAccount),this.owner=new r.PublicKey(e.owner),this.nftMint=new r.PublicKey(e.nftMint)}static deserialize(e){return n.deserialize(this.schema,N,e)}static async retrieve(e,r){const t=await e.getAccountInfo(r);if(!t||!t.data)throw new Error("NFT record not found");return this.deserialize(t.data)}static async findKey(t,o){return await r.PublicKey.findProgramAddress([e.Buffer.from("nft_record"),t.toBuffer()],o)}}N.schema=new Map([[N,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const D=new r.PublicKey("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),K="SPL Name Service",W=new r.PublicKey("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),L=new r.PublicKey("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),O=new r.PublicKey("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),U=new r.PublicKey("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),C=new r.PublicKey("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),M=new r.PublicKey("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),z=new r.PublicKey("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),G=new r.PublicKey("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),_=new r.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),H=[new r.PublicKey("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new r.PublicKey("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new r.PublicKey("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new r.PublicKey("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new r.PublicKey("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new r.PublicKey("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],j=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),F=new r.PublicKey("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),V=new r.PublicKey("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),q=r=>{const t=K+r,o=i.sha256(e.Buffer.from(t,"utf8")).slice(2);return e.Buffer.from(o,"hex")},X=(t,o,n)=>{const i=[t];o?i.push(o.toBuffer()):i.push(e.Buffer.alloc(32)),n?i.push(n.toBuffer()):i.push(e.Buffer.alloc(32));const[s]=r.PublicKey.findProgramAddressSync(i,D);return s};async function Y(e,r){const t=q(r.toBase58()),n=X(t,C),{registry:i}=await ne.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoAccountData);const s=new o(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+s).toString()}async function Z(e,r){let t=[];for(let e of r){const r=q(e.toBase58()),o=X(r,C);t.push(o)}return(await ne.retrieveBatch(e,t)).map((e=>{if(void 0===e||void 0===e.data)return;let r=new o(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+r).toString()}))}const J=(e,r=W)=>{let t=q(e);return{pubkey:X(t,void 0,r),hashed:t}},$=(r,t)=>{r.endsWith(".sol")&&(r=r.slice(0,-4));const o=r.split(".");if(2===o.length){const r=e.Buffer.from([t||0]).toString().concat(o[0]),{pubkey:n}=J(o[1]);return{...J(r,n),isSub:!0,parent:n}}if(3===o.length&&t){const{pubkey:r}=J(o[2]),{pubkey:t}=J("\0".concat(o[1]),r),n=e.Buffer.from([1]).toString();return{...J(n.concat(o[0]),t),isSub:!0,parent:r,isSubRecord:!0}}if(o.length>=3)throw new h(exports.ErrorType.InvalidInput);return{...J(r,W),isSub:!1,parent:void 0}};const Q=(e,r)=>{const{pubkey:t,parent:o}=$(e),n=q(t.toBase58());return X(n,C,r?o:void 0)},ee=(e,r)=>{if(!e)throw new h(r)},re=async(e,o)=>{try{const[n]=await r.PublicKey.findProgramAddress([k,o.toBuffer()],T);if("0"===(await t.getMint(e,n)).supply.toString())return;const i=[{memcmp:{offset:0,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],s=await e.getProgramAccounts(t.TOKEN_PROGRAM_ID,{filters:i});if(1!=s.length)return;return new r.PublicKey(s[0].account.data.slice(32,64))}catch{return}},te=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],oe=async(e,r)=>{const t=await(async(e,r)=>{const t=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:r.toBase58()}}];return await e.getProgramAccounts(T,{filters:t})})(e,r.mint);if(1===t.length)return N.deserialize(t[0].account.data)};class ne{constructor(e){this.parentName=new r.PublicKey(e.parentName),this.owner=new r.PublicKey(e.owner),this.class=new r.PublicKey(e.class)}static async retrieve(e,r){var t;const o=await e.getAccountInfo(r);if(!o)throw new h(exports.ErrorType.AccountDoesNotExist);let i=n.deserializeUnchecked(this.schema,ne,o.data);i.data=null===(t=o.data)||void 0===t?void 0:t.slice(this.HEADER_LEN);return{registry:i,nftOwner:await re(e,r)}}static async _retrieveBatch(e,r){const t=await e.getMultipleAccountsInfo(r),o=e=>{if(!e)return;const r=n.deserializeUnchecked(this.schema,ne,e);return r.data=null==e?void 0:e.slice(this.HEADER_LEN),r};return t.map((e=>o(null==e?void 0:e.data)))}static async retrieveBatch(e,r){let t=[];const o=[...r];for(;o.length>0;)t.push(...await this._retrieveBatch(e,o.splice(0,100)));return t}}async function ie(e,r){if(!await e.getAccountInfo(r))throw new h(exports.ErrorType.AccountDoesNotExist);return ne.retrieve(e,r)}async function se(r){const t=K+r,o=i.sha256(e.Buffer.from(t,"utf8")).slice(2);return e.Buffer.from(o,"hex")}async function ae(t,o,n){const i=[t];o?i.push(o.toBuffer()):i.push(e.Buffer.alloc(32)),n?i.push(n.toBuffer()):i.push(e.Buffer.alloc(32));const[s]=await r.PublicKey.findProgramAddress(i,D);return s}ne.HEADER_LEN=96,ne.schema=new Map([[ne,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const ce=async(e,r=W)=>{let t=await se(e);return{pubkey:await ae(t,void 0,r),hashed:t}},ue=async(r,t=!1)=>{r.endsWith(".sol")&&(r=r.slice(0,-4));const o=r.split(".");if(2===o.length){const r=e.Buffer.from([t?1:0]).toString().concat(o[0]),{pubkey:n}=await ce(o[1]);return{...await ce(r,n),isSub:!0,parent:n}}if(3===o.length&&t){const{pubkey:r}=await ce(o[2]),{pubkey:t}=await ce("\0".concat(o[1]),r),n=e.Buffer.from([1]).toString();return{...await ce(n.concat(o[0]),t),isSub:!0,parent:r,isSubRecord:!0}}if(o.length>=3)throw new h(exports.ErrorType.InvalidInput);return{...await ce(r,W),isSub:!1,parent:void 0}};var pe;exports.Record=void 0,(pe=exports.Record||(exports.Record={})).IPFS="IPFS",pe.ARWV="ARWV",pe.SOL="SOL",pe.ETH="ETH",pe.BTC="BTC",pe.LTC="LTC",pe.DOGE="DOGE",pe.Email="email",pe.Url="url",pe.Discord="discord",pe.Github="github",pe.Reddit="reddit",pe.Twitter="twitter",pe.Telegram="telegram",pe.Pic="pic",pe.SHDW="SHDW",pe.POINT="POINT",pe.BSC="BSC",pe.Injective="INJ",pe.Backpack="backpack",pe.A="A",pe.AAAA="AAAA",pe.CNAME="CNAME",pe.TXT="TXT";const de=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]]);var fe;exports.RecordVersion=void 0,(fe=exports.RecordVersion||(exports.RecordVersion={}))[fe.V1=1]="V1",fe[fe.V2=2]="V2";const le=(e,r,t)=>x.sign.detached.verify(e,r,t.toBytes()),ge=(e,r)=>{const{pubkey:t}=$(r+"."+e,exports.RecordVersion.V1);return t};async function ye(e,r,t,o){const n=ge(r,t);let{registry:i}=await ne.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoRecordData);if(o)return xe(i,t,n);const s=de.get(t);return i.data=i.data.slice(0,s),i}const we=async(e,r)=>await ye(e,r,exports.Record.SOL),xe=(r,t,o)=>{const n=null==r?void 0:r.data;if(!n)return;if(0===n.compare(e.Buffer.alloc(n.length)))return;const i=de.get(t),s=(e=>{const r=Array.from(e);return r.length-1-r.reverse().findIndex((e=>0!==e))+1})(n);if(!i)return n.slice(0,s).toString("utf-8");if(t===exports.Record.SOL){const t=new TextEncoder,i=e.Buffer.concat([n.slice(0,32),o.toBuffer()]),s=t.encode(i.toString("hex"));if(le(s,n.slice(32,96),r.owner))return u.encode(n.slice(0,32))}if(i&&s!==i){const r=n.slice(0,s).toString("utf-8");if(t===exports.Record.Injective){const e=a.decode(r);if("inj"===e.prefix&&20===e.data.length)return r}else if(t===exports.Record.BSC||t===exports.Record.ETH){const t=r.slice(0,2),o=r.slice(2);if("0x"===t&&20===e.Buffer.from(o,"hex").length)return r}else if((t===exports.Record.A||t===exports.Record.AAAA)&&p.isValid(r))return r;throw new h(exports.ErrorType.InvalidRecordData)}if(t===exports.Record.ETH||t===exports.Record.BSC)return"0x"+n.slice(0,i).toString("hex");if(t===exports.Record.Injective)return a.encode("inj",n.slice(0,i),"bech32");if(t===exports.Record.A||t===exports.Record.AAAA)return p.fromByteArray([...n.slice(0,i)]).toString();throw new h(exports.ErrorType.InvalidRecordData)},he=(r,t)=>{if(!de.get(t))return t!==exports.Record.CNAME&&t!==exports.Record.TXT||(r=d.encode(r)),e.Buffer.from(r,"utf-8");if(t===exports.Record.SOL)throw new h(exports.ErrorType.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(t===exports.Record.ETH||t===exports.Record.BSC)return ee("0x"===r.slice(0,2),exports.ErrorType.InvalidEvmAddress),e.Buffer.from(r.slice(2),"hex");if(t===exports.Record.Injective){const t=a.decode(r);return ee("inj"===t.prefix,exports.ErrorType.InvalidInjectiveAddress),ee(20===t.data.length,exports.ErrorType.InvalidInjectiveAddress),e.Buffer.from(t.data)}if(t===exports.Record.A){const t=p.parse(r).toByteArray();return ee(4===t.length,exports.ErrorType.InvalidARecord),e.Buffer.from(t)}if(t===exports.Record.AAAA){const t=p.parse(r).toByteArray();return ee(16===t.length,exports.ErrorType.InvalidAAAARecord),e.Buffer.from(t)}throw new h(exports.ErrorType.InvalidRecordInput)},me=(r,t,o,n)=>{const i=e.Buffer.concat([r.toBuffer(),t.toBuffer()]),s=(new TextEncoder).encode(i.toString("hex")),a=le(s,n,o);return ee(a,exports.ErrorType.InvalidSignature),e.Buffer.concat([r.toBuffer(),n])};async function Se(e,t,o,n,i,s,a,c){const u=await se(t),p=await ae(u,a,c),d=s||await e.getMinimumBalanceForRentExemption(o);let f;if(c){const{registry:r}=await ie(e,c);f=r.owner}return R(D,r.SystemProgram.programId,p,i,n,u,new S(d),new m(o),a,c,f)}async function Re(e,r,t,o,n){const i=await se(r),s=await ae(i,o,n);let a;a=o||(await ne.retrieve(e,s)).registry.owner;return A(D,s,t,a)}const be=async(e,t,o,n,i)=>{let[s]=await r.PublicKey.findProgramAddress([L.toBuffer()],L),a=await se(e.toBase58()),c=await ae(a,s,n);return[[],[new B({name:t}).getInstruction(L,D,W,c,r.SystemProgram.programId,s,o,r.SYSVAR_RENT_PUBKEY,n,i)]]},ve=async(e,t,o,n,i,s)=>{ee(o!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:a,hashed:c,parent:u}=$(`${o}.${t}`,exports.RecordVersion.V1),p=he(n,o).length,d=await e.getMinimumBalanceForRentExemption(p+ne.HEADER_LEN);return R(D,r.SystemProgram.programId,a,i,s,c,new S(d),new m(p),void 0,u,i)},Ae=async(e,t,o,n,i,s)=>{const a=n.serialize().length,{pubkey:c,hashed:u,parent:p}=$(`${o}.${t}`,exports.RecordVersion.V2),d=await e.getMinimumBalanceForRentExemption(a+ne.HEADER_LEN);return R(D,r.SystemProgram.programId,c,i,s,u,new S(d),new m(a),void 0,p,i)},Ee=async(e,t,o,n,i,s)=>{const{pubkey:a,hashed:c,parent:u}=$(`${exports.Record.SOL}.${t}`,exports.RecordVersion.V1),p=me(o,a,n,i).length,d=await e.getMinimumBalanceForRentExemption(p+ne.HEADER_LEN);return[R(D,r.SystemProgram.programId,a,n,s,c,new S(d),new m(p),void 0,u,n)]};class Be{constructor(e){this.twitterRegistryKey=e.twitterRegistryKey,this.twitterHandle=e.twitterHandle}static async retrieve(e,r){let t=await e.getAccountInfo(r,"processed");if(!t)throw new h(exports.ErrorType.InvalidReverseTwitter);return n.deserializeUnchecked(this.schema,Be,t.data.slice(ne.HEADER_LEN))}}async function Ie(t,o,i,s,a){const c=await se(s.toString()),u=await ae(c,M,z);let p=n.serialize(Be.schema,new Be({twitterRegistryKey:i.toBytes(),twitterHandle:o}));return[R(D,r.SystemProgram.programId,u,s,a,c,new S(await t.getMinimumBalanceForRentExemption(p.length+ne.HEADER_LEN)),new m(p.length),M,z,M),b(D,u,new m(0),e.Buffer.from(p),M)]}Be.schema=new Map([[Be,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const Te=new r.PublicKey("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class ke{constructor(e){this.tag=e.tag,this.nameAccount=new r.PublicKey(e.nameAccount)}static deserialize(e){return n.deserialize(this.schema,ke,e)}static async retrieve(e,r){const t=await e.getAccountInfo(r);if(!t||!t.data)throw new h(exports.ErrorType.FavouriteDomainNotFound);return this.deserialize(t.data)}static async getKey(t,o){return await r.PublicKey.findProgramAddress([e.Buffer.from("favourite_domain"),o.toBuffer()],t)}static getKeySync(t,o){return r.PublicKey.findProgramAddressSync([e.Buffer.from("favourite_domain"),o.toBuffer()],t)}}ke.schema=new Map([[ke,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);var Pe,Ne;exports.GuardianSig=void 0,(Pe=exports.GuardianSig||(exports.GuardianSig={}))[Pe.None=0]="None",Pe[Pe.Solana=1]="Solana",Pe[Pe.Ethereum=2]="Ethereum",Pe[Pe.Injective=3]="Injective",exports.UserSig=void 0,(Ne=exports.UserSig||(exports.UserSig={}))[Ne.None=0]="None",Ne[Ne.Solana=1]="Solana";const De={signatureType:exports.UserSig.None,signature:Buffer.alloc(0)},Ke={signatureType:exports.GuardianSig.None,signature:Buffer.alloc(0)},We=new Map([[exports.Record.Backpack,new r.PublicKey("ExXjtfdQe8JacoqP9Z535WzQKjF4CzW1TTRKRgpxvya3").toBuffer()]]),Le=new Set([exports.Record.IPFS,exports.Record.ARWV,exports.Record.LTC,exports.Record.DOGE,exports.Record.Email,exports.Record.Url,exports.Record.Discord,exports.Record.Github,exports.Record.Reddit,exports.Record.Twitter,exports.Record.Telegram,exports.Record.Pic,exports.Record.SHDW,exports.Record.POINT,exports.Record.Backpack,exports.Record.TXT,exports.Record.CNAME,exports.Record.BTC]),Oe=new Set([exports.Record.ETH,exports.Record.Injective,exports.Record.SOL]),Ue=e=>{switch(e){case exports.GuardianSig.None:return 0;case exports.GuardianSig.Solana:return 64;case exports.GuardianSig.Ethereum:case exports.GuardianSig.Injective:return 65;case exports.UserSig.None:return 0;case exports.UserSig.Solana:return 64;default:throw new h(exports.ErrorType.UnsupportedSignature,`Unsupported signature type: ${e}`)}},Ce=e=>{const r=We.get(e);if(!r)throw new h(exports.ErrorType.RecordDoestNotSupportGuardianSig);return r},Me=(e,r,t)=>x.sign.detached.verify(e,r,t),ze=(e,r,t)=>{const o=f.hashMessage(e);return l.recoverAddress(o,r)===g.getAddress(t)},Ge=(e,r,t,o)=>{switch(o){case exports.GuardianSig.Ethereum:case exports.GuardianSig.Injective:return ze(e.toString(),r.toString(),t.toString());case exports.GuardianSig.Solana:return Me(e,r,t);case exports.GuardianSig.None:throw new h(exports.ErrorType.RecordIsNotSigned);default:throw new h(exports.ErrorType.UnsupportedSignatureType)}},_e=(e,r,t,o)=>{switch(o){case exports.UserSig.Solana:return Me(e,r,t);case exports.UserSig.None:throw new h(exports.ErrorType.RecordIsNotSigned);default:throw new h(exports.ErrorType.UnsupportedSignatureType)}};class He{constructor(e){this.userSignature=e.userSignature,this.guardianSignature=e.guardianSignature,this.contentLength=e.contentLength}serialize(){return n.serialize(He.schema,this)}static deserialize(e){return n.deserialize(this.schema,He,e)}}He.LEN=8,He.schema=new Map([[He,{kind:"struct",fields:[["userSignature","u16"],["guardianSignature","u16"],["contentLength","u32"]]}]]);class je{constructor(e){this.header=e.header,this.buffer=e.buffer}getLength(){return He.LEN+this.buffer.length}static deserializeUnchecked(e){const r=n.deserializeUnchecked(He.schema,He,e);return new je({header:r,buffer:Buffer.from(e.slice(He.LEN))})}serialize(){const e=this.header.serialize();return Buffer.concat([e,this.buffer])}deserializeContent(e){return Fe(this.getContent(),e)}getContent(){const e=Ue(this.header.guardianSignature)+Ue(this.header.userSignature);return Buffer.from(this.buffer.slice(e,e+this.header.contentLength))}static new(e,r,t=De,o=Ke){const n=Ve(e,r),i=Buffer.concat([t.signature,o.signature,n]),s=new He({userSignature:t.signatureType,guardianSignature:o.signatureType,contentLength:n.length});return new je({header:s,buffer:i})}checkGuardianSignature(e,r){const t=Ue(this.header.guardianSignature),o=Ue(this.header.userSignature),n=Buffer.from(this.buffer.slice(o,o+t));return Ge(e,n,r,this.header.guardianSignature)}checkUserSignature(e,r){const t=Ue(this.header.userSignature),o=Buffer.from(this.buffer.slice(0,t));return _e(e,o,r,this.header.userSignature)}static async retrieve(e,r,t,o){const n=qe(t,r),{registry:i}=await ne.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.InvalidRecordData);const s=this.deserializeUnchecked(i.data),a=s.getContent(),c=Buffer.concat([n.toBuffer(),a]);if(!(null==o?void 0:o.skipGuardianSig)){const e=Oe.has(r)?Buffer.from(s.getContent().slice(32)):Ce(r);s.checkGuardianSignature(c,e)}return(null==o?void 0:o.skipUserSig)||s.checkUserSignature(c,i.owner.toBuffer()),s}static async retrieveBatch(e,r,t){const o=r.map((e=>qe(t,e))),n=await ne.retrieveBatch(e,o),i=[];for(let e of n)try{if(!(null==e?void 0:e.data)){i.push(void 0);continue}const r=je.deserializeUnchecked(null==e?void 0:e.data);i.push(r)}catch{i.push(void 0)}return i}}const Fe=(e,t)=>{if(Le.has(t)){const r=e.toString("utf-8");return t===exports.Record.CNAME||t===exports.Record.TXT?d.decode(r):r}if(t===exports.Record.SOL)return new r.PublicKey(e).toBase58();if(t===exports.Record.ETH||t===exports.Record.BSC)return"0x"+e.toString("hex");if(t===exports.Record.Injective)return a.encode("inj",e,"bech32");if(t===exports.Record.A||t===exports.Record.AAAA)return p.fromByteArray([...e]).toString();throw new h(exports.ErrorType.InvalidARecord)},Ve=(e,t)=>{if(Le.has(t))return t!==exports.Record.CNAME&&t!==exports.Record.TXT||(e=d.encode(e)),Buffer.from(e,"utf-8");if(t===exports.Record.SOL)return new r.PublicKey(e).toBuffer();if(t===exports.Record.ETH||t===exports.Record.BSC)return ee("0x"===e.slice(0,2),exports.ErrorType.InvalidEvmAddress),Buffer.from(e.slice(2),"hex");if(t===exports.Record.Injective){const r=a.decode(e);return ee("inj"===r.prefix,exports.ErrorType.InvalidInjectiveAddress),ee(20===r.data.length,exports.ErrorType.InvalidInjectiveAddress),Buffer.from(r.data)}if(t===exports.Record.A){const r=p.parse(e).toByteArray();return ee(4===r.length,exports.ErrorType.InvalidARecord),Buffer.from(r)}if(t===exports.Record.AAAA){const r=p.parse(e).toByteArray();return ee(16===r.length,exports.ErrorType.InvalidAAAARecord),Buffer.from(r)}throw new h(exports.ErrorType.InvalidARecord)},qe=(e,r)=>{const{pubkey:t}=$(r+"."+e,exports.RecordVersion.V2);return t};exports.BONFIDA_FIDA_BNB=U,exports.BONFIDA_USDC_BNB=G,exports.FavouriteDomain=ke,exports.Guardians=We,exports.HASH_PREFIX=K,exports.NAME_OFFERS_ID=Te,exports.NAME_PROGRAM_ID=D,exports.NameRegistryState=ne,exports.NullGuardianSig=Ke,exports.NullUserSig=De,exports.Numberu32=m,exports.Numberu64=S,exports.PYTH_FIDA_PRICE_ACC=O,exports.PYTH_MAPPING_ACC=F,exports.RECORD_V1_SIZE=de,exports.REFERRERS=H,exports.REGISTER_PROGRAM_ID=L,exports.REVERSE_LOOKUP_CLASS=C,exports.ROOT_DOMAIN_ACCOUNT=W,exports.RecordV2=je,exports.RecordV2Header=He,exports.ReverseTwitterRegistryState=Be,exports.SELF_SIGNED=Oe,exports.SNSError=h,exports.SOL_RECORD_SIG_LEN=96,exports.TOKENS_SYM_MINT=j,exports.TWITTER_ROOT_PARENT_REGISTRY_KEY=z,exports.TWITTER_VERIFICATION_AUTHORITY=M,exports.USDC_MINT=_,exports.UTF8_ENCODED=Le,exports.VAULT_OWNER=V,exports.changeTwitterRegistryData=async function(e,r,t,o){const n=await se(e),i=await ae(n,void 0,z);return[b(D,i,new m(t),o,r)]},exports.changeVerifiedPubkey=async function(e,r,t,o,n){const i=await se(r),s=await ae(i,void 0,z);let a=[v(D,s,o,t,void 0)];const c=await se(t.toString());return await ae(c,M,void 0),a.push(await Re(e,t.toString(),n,M,z)),a=a.concat(await Ie(e,r,s,o,n)),a},exports.check=ee,exports.checkSolRecord=le,exports.createInstruction=R,exports.createInstructionV3=I,exports.createNameRegistry=Se,exports.createRecordInstruction=ve,exports.createRecordV2Instruction=Ae,exports.createReverseInstruction=B,exports.createReverseName=be,exports.createReverseTwitterRegistry=Ie,exports.createSolRecordInstruction=Ee,exports.createSubdomain=async(e,r,t,o=2e3)=>{const n=[],i=r.split(".")[0];if(!i)throw new h(exports.ErrorType.InvalidSubdomain);const{parent:s,pubkey:a}=$(r),c=await e.getMinimumBalanceForRentExemption(o+ne.HEADER_LEN),u=await Se(e,"\0".concat(i),o,t,t,c,void 0,s);n.push(u);const p=Q(r,!0),d=await e.getAccountInfo(p);if(!(null==d?void 0:d.data)){const[,e]=await be(a,"\0".concat(i),t,s,t);n.push(...e)}return[[],n]},exports.createV2Instruction=E,exports.createVerifiedTwitterRegistry=async function(e,t,o,n,i){const s=await se(t),a=await ae(s,void 0,z),c=await e.getMinimumBalanceForRentExemption(n+ne.HEADER_LEN);let u=[R(D,r.SystemProgram.programId,a,o,i,s,new S(c),new m(n),void 0,z,M)];return u=u.concat(await Ie(e,t,a,o,i)),u},exports.deleteInstruction=A,exports.deleteNameRegistry=Re,exports.deleteRecordV2=async(e,r,t,o)=>{const{pubkey:n}=$(`${r}.${e}`,exports.RecordVersion.V2);return A(D,n,o,t)},exports.deleteTwitterRegistry=async function(e,r){const t=await se(e),o=await ae(t,void 0,z),n=await se(r.toString()),i=await ae(n,M,z);return[A(D,o,r,r),A(D,i,r,r)]},exports.deserializeRecord=xe,exports.deserializeRecordV2Content=Fe,exports.findSubdomains=async(e,r)=>{const t=[{memcmp:{offset:0,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:C.toBase58()}}],o=await e.getProgramAccounts(D,{filters:t}),n=await Y(e,r),i=o.map((e=>{var r;return null===(r=e.account.data.slice(97).toString("utf-8"))||void 0===r?void 0:r.split("\0").join("")})),s=i.map((e=>$(e+"."+n).pubkey)),a=await e.getMultipleAccountsInfo(s);return i.filter(((e,r)=>!!a[r]))},exports.getAllDomains=async function(e,r){const t=[{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:0,bytes:W.toBase58()}}];return(await e.getProgramAccounts(D,{filters:t})).map((e=>e.pubkey))},exports.getAllRegisteredDomains=async e=>{const r=[{memcmp:{offset:0,bytes:W.toBase58()}}];return await e.getProgramAccounts(D,{dataSlice:{offset:32,length:32},filters:r})},exports.getArweaveRecord=async(e,r)=>await ye(e,r,exports.Record.ARWV,!0),exports.getBackpackRecord=async(e,r)=>await ye(e,r,exports.Record.Backpack,!0),exports.getBscRecord=async(e,r)=>await ye(e,r,exports.Record.BSC,!0),exports.getBtcRecord=async(e,r)=>await ye(e,r,exports.Record.BTC,!0),exports.getDiscordRecord=async(e,r)=>await ye(e,r,exports.Record.Discord,!0),exports.getDogeRecord=async(e,r)=>await ye(e,r,exports.Record.DOGE,!0),exports.getDomainKey=ue,exports.getDomainKeySync=$,exports.getEmailRecord=async(e,r)=>await ye(e,r,exports.Record.Email,!0),exports.getEthRecord=async(e,r)=>await ye(e,r,exports.Record.ETH,!0),exports.getFavoriteDomain=async(e,t)=>{const[o]=ke.getKeySync(Te,new r.PublicKey(t)),n=await ke.retrieve(e,o),i=await Y(e,n.nameAccount);return{domain:n.nameAccount,reverse:i}},exports.getGithubRecord=async(e,r)=>await ye(e,r,exports.Record.Github,!0),exports.getGuardianPublickey=Ce,exports.getHandleAndRegistryKey=async function(e,t){const o=await se(t.toString()),n=await ae(o,M,z);let i=await Be.retrieve(e,n);return[i.twitterHandle,new r.PublicKey(i.twitterRegistryKey)]},exports.getHashedName=se,exports.getHashedNameSync=q,exports.getInjectiveRecord=async(e,r)=>await ye(e,r,exports.Record.Injective,!0),exports.getIpfsRecord=async(e,r)=>await ye(e,r,exports.Record.IPFS,!0),exports.getLtcRecord=async(e,r)=>await ye(e,r,exports.Record.LTC,!0),exports.getMessageToSign=(e,r,t)=>{const o=Ve(e,t),n=qe(r,t),i=Buffer.concat([n.toBuffer(),o]).toString("hex");return Buffer.from(i)},exports.getNameAccountKey=ae,exports.getNameAccountKeySync=X,exports.getNameOwner=ie,exports.getPicRecord=async(e,r)=>await ye(e,r,exports.Record.Pic,!0),exports.getPointRecord=async(e,r)=>await ye(e,r,exports.Record.POINT,!0),exports.getRecord=ye,exports.getRecordKeySync=ge,exports.getRecordV2Key=qe,exports.getRecords=async function(e,r,t,o){const n=t.map((e=>ge(r,e))),i=await ne.retrieveBatch(e,n);return o?i.map(((e,o)=>{if(e)return xe(e,t[o],ge(r,t[o]))})):i},exports.getRedditRecord=async(e,r)=>await ye(e,r,exports.Record.Reddit,!0),exports.getReverseKey=async(e,r)=>{const{pubkey:t,parent:o}=await ue(e),n=await se(t.toBase58());return await ae(n,C,r?o:void 0)},exports.getReverseKeySync=Q,exports.getShdwRecord=async(e,r)=>await ye(e,r,exports.Record.SHDW,!0),exports.getSignatureByteLength=Ue,exports.getSolRecord=we,exports.getTelegramRecord=async(e,r)=>await ye(e,r,exports.Record.Telegram,!0),exports.getTokenizedDomains=async(e,r)=>{const o=await(async(e,r)=>{const o=[...te(r.toBase58()),{dataSize:165}],n=(await e.getProgramAccounts(t.TOKEN_PROGRAM_ID,{filters:o})).map((e=>t.AccountLayout.decode(e.account.data))).map((r=>oe(e,r)));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,r);return(await Z(e,o.map((e=>e.nameAccount)))).map(((e,r)=>({key:o[r].nameAccount,mint:o[r].nftMint,reverse:e}))).filter((e=>!!e.reverse))},exports.getTwitterHandleandRegistryKeyViaFilters=async function(e,t){const o=[{memcmp:{offset:0,bytes:z.toBase58()}},{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:M.toBase58()}}],i=await e.getProgramAccounts(D,{filters:o});for(const e of i)if(e.account.data.length>ne.HEADER_LEN+32){let t=e.account.data.slice(ne.HEADER_LEN),o=n.deserializeUnchecked(Be.schema,Be,t);return[o.twitterHandle,new r.PublicKey(o.twitterRegistryKey)]}throw new h(exports.ErrorType.AccountDoesNotExist)},exports.getTwitterRecord=async(e,r)=>await ye(e,r,exports.Record.Twitter,!0),exports.getTwitterRegistry=async function(e,r){const t=await se(r),o=await ae(t,void 0,z),{registry:n}=await ne.retrieve(e,o);return n},exports.getTwitterRegistryData=async function(t,o){const n=[{memcmp:{offset:0,bytes:z.toBase58()}},{memcmp:{offset:32,bytes:o.toBase58()}},{memcmp:{offset:64,bytes:new r.PublicKey(e.Buffer.alloc(32,0)).toBase58()}}],i=await t.getProgramAccounts(D,{filters:n});if(i.length>1)throw new h(exports.ErrorType.MultipleRegistries);return i[0].account.data.slice(ne.HEADER_LEN)},exports.getTwitterRegistryKey=async function(e){const r=await se(e);return await ae(r,void 0,z)},exports.getUrlRecord=async(e,r)=>await ye(e,r,exports.Record.Url,!0),exports.performReverseLookup=async function(e,r){const t=await se(r.toBase58()),n=await ae(t,C),{registry:i}=await ne.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoAccountData);const s=new o(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+s).toString()},exports.performReverseLookupBatch=async function(e,r){let t=[];for(let e of r){const r=await se(e.toBase58()),o=await ae(r,C);t.push(o)}return(await ne.retrieveBatch(e,t)).map((e=>{if(void 0===e||void 0===e.data)return;let r=new o(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+r).toString()}))},exports.registerDomainName=async(e,o,n,i,a,c=_,u)=>{if(o.includes(".")||o.trim().toLowerCase()!==o)throw new h(exports.ErrorType.InvalidDomain);const[p]=r.PublicKey.findProgramAddressSync([L.toBuffer()],L),d=q(o),f=X(d,void 0,W),l=q(f.toBase58()),g=X(l,p),[y]=r.PublicKey.findProgramAddressSync([f.toBuffer()],L),w=H.findIndex((e=>null==u?void 0:u.equals(e)));let x;const m=[];if(-1!==w&&u){x=t.getAssociatedTokenAddressSync(c,u,!0);const r=await e.getAccountInfo(x);if(!(null==r?void 0:r.data)){const e=t.createAssociatedTokenAccountInstruction(i,x,u,c);m.push(e)}}const S=new s.PythHttpClient(e,s.getPythProgramKeyForCluster("mainnet-beta")),R=await S.getData(),b=j.get(c.toBase58());if(!b)throw new h(exports.ErrorType.SymbolNotFound,`No symbol found for mint ${c.toBase58()}`);const v=R.productPrice.get("Crypto."+b+"/USD"),A=R.productFromSymbol.get("Crypto."+b+"/USD"),E=t.getAssociatedTokenAddressSync(c,V),B=new I({name:o,space:n,referrerIdxOpt:-1!=w?w:null}).getInstruction(L,D,W,f,g,r.SystemProgram.programId,p,i,a,F,v.productAccountKey,new r.PublicKey(A.price_account),E,t.TOKEN_PROGRAM_ID,r.SYSVAR_RENT_PUBKEY,y,x);return m.push(B),[[],m]},exports.resolve=async(t,o)=>{const{pubkey:n}=$(o),{registry:i,nftOwner:s}=await ne.retrieve(t,n);if(s)return s;try{const n=ge(o,exports.Record.SOL),s=await we(t,o);if(!(null==s?void 0:s.data))throw new h(exports.ErrorType.NoRecordData);const a=new TextEncoder,c=e.Buffer.concat([s.data.slice(0,32),n.toBuffer()]),u=a.encode(c.toString("hex"));if(!le(u,s.data.slice(32),i.owner))throw new h(exports.ErrorType.InvalidSignature);return new r.PublicKey(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return i.owner},exports.retrieveNftOwner=re,exports.retrieveNfts=async e=>{const t=await e.getProgramAccounts(T,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return t.map((e=>new r.PublicKey(e.account.data.slice(66,98))))},exports.reverseLookup=Y,exports.reverseLookupBatch=Z,exports.serializeRecord=he,exports.serializeRecordV2Content=Ve,exports.serializeSolRecord=me,exports.transferInstruction=v,exports.transferNameOwnership=async function(e,r,t,o,n,i){const s=await se(r),a=await ae(s,o,n);let c;return c=o||(await ne.retrieve(e,a)).registry.owner,v(D,a,t,c,o,n,i)},exports.updateInstruction=b,exports.updateNameRegistryData=async function(e,r,t,o,n,i){const s=await se(r),a=await ae(s,n,i);let c;return c=n||(await ne.retrieve(e,a)).registry.owner,b(D,a,new m(t),o,c)},exports.updateRecordInstruction=async(e,r,t,o,n,i)=>{ee(t!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:s}=$(`${t}.${r}`,exports.RecordVersion.V1),a=await e.getAccountInfo(s);ee(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist);const c=he(o,t);if((null==a?void 0:a.data.slice(96).length)!==c.length)return[A(D,s,i,n),await ve(e,r,t,o,n,i)];return[b(D,s,new m(0),c,n)]},exports.updateRecordV2Instruction=async(r,t,o,n,i,s)=>{const{pubkey:a}=$(`${o}.${t}`,exports.RecordVersion.V2),c=await r.getAccountInfo(a),u=n.serialize();if(c&&(null==c?void 0:c.data.slice(96).length)!==u.length)return[A(D,a,s,i),await Ae(r,t,o,n,i,s),b(D,a,new m(0),e.Buffer.from(u),i)];return[b(D,a,new m(0),e.Buffer.from(u),i)]},exports.updateSolRecordInstruction=async(e,r,t,o,n,i)=>{const{pubkey:s}=$(`${exports.Record.SOL}.${r}`,exports.RecordVersion.V1),a=await e.getAccountInfo(s);if(ee(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist),96!==(null==a?void 0:a.data.length))return[A(D,s,i,o),await Ee(e,r,t,o,n,i)];const c=me(t,s,o,n);return[b(D,s,new m(0),c,o)]},exports.verifyEthereumSignature=ze,exports.verifyGuardianSignature=Ge,exports.verifyInjectiveSignature=(e,r,t)=>{throw new Error("TODO")},exports.verifySolanaSignature=Me,exports.verifyUserSignature=_e;
1
+ "use strict";var e=require("buffer"),r=require("@solana/web3.js"),t=require("@solana/spl-token"),o=require("bn.js"),n=require("borsh"),i=require("@ethersproject/sha2"),s=require("@pythnetwork/client"),a=require("bech32-buffer"),c=require("tweetnacl"),u=require("bs58"),p=require("ipaddr.js"),d=require("punycode"),f=require("@ethersproject/hash"),l=require("@ethersproject/transactions"),g=require("@ethersproject/address");function y(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var w,x=y(c);exports.ErrorType=void 0,(w=exports.ErrorType||(exports.ErrorType={})).SymbolNotFound="SymbolNotFound",w.InvalidSubdomain="InvalidSubdomain",w.FavouriteDomainNotFound="FavouriteDomainNotFound",w.MissingParentOwner="MissingParentOwner",w.U32Overflow="U32Overflow",w.InvalidBufferLength="InvalidBufferLength",w.U64Overflow="U64Overflow",w.NoRecordData="NoRecordData",w.InvalidRecordData="InvalidRecordData",w.UnsupportedRecord="UnsupportedRecord",w.InvalidEvmAddress="InvalidEvmAddress",w.InvalidInjectiveAddress="InvalidInjectiveAddress",w.InvalidARecord="InvalidARecord",w.InvalidAAAARecord="InvalidAAAARecord",w.InvalidRecordInput="InvalidRecordInput",w.InvalidSignature="InvalidSignature",w.AccountDoesNotExist="AccountDoesNotExist",w.MultipleRegistries="MultipleRegistries",w.InvalidReverseTwitter="InvalidReverseTwitter",w.NoAccountData="NoAccountData",w.InvalidInput="InvalidInput",w.InvalidDomain="InvalidDomain",w.UnsupportedSignature="UnsupportedSignature",w.RecordDoestNotSupportGuardianSig="RecordDoestNotSupportGuardianSig",w.RecordIsNotSigned="RecordIsNotSigned",w.UnsupportedSignatureType="UnsupportedSignatureType",w.InvalidCustomBg="InvalidCustomBackground";class h extends Error{constructor(e,r){super(r),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,h)}}class m extends o{toBuffer(){const r=super.toArray().reverse(),t=e.Buffer.from(r);if(4===t.length)return t;if(t.length>4)throw new h(exports.ErrorType.U32Overflow);const o=e.Buffer.alloc(4);return t.copy(o),o}static fromBuffer(e){if(4!==e.length)throw new h(exports.ErrorType.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new o([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class S extends o{toBuffer(){const r=super.toArray().reverse(),t=e.Buffer.from(r);if(8===t.length)return t;if(t.length>8)throw new h(exports.ErrorType.U64Overflow);const o=e.Buffer.alloc(8);return t.copy(o),o}static fromBuffer(e){if(8!==e.length)throw new h(exports.ErrorType.U64Overflow,`Invalid buffer length: ${e.length}`);return new o([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function R(t,o,n,i,s,a,c,u,p,d,f){const l=[e.Buffer.from(Int8Array.from([0])),new m(a.length).toBuffer(),a,c.toBuffer(),u.toBuffer()],g=e.Buffer.concat(l),y=[{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1}];return p?y.push({pubkey:p,isSigner:!0,isWritable:!1}):y.push({pubkey:new r.PublicKey(e.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),d?y.push({pubkey:d,isSigner:!1,isWritable:!1}):y.push({pubkey:new r.PublicKey(e.Buffer.alloc(32)),isSigner:!1,isWritable:!1}),f&&y.push({pubkey:f,isSigner:!0,isWritable:!1}),new r.TransactionInstruction({keys:y,programId:t,data:g})}function b(t,o,n,i,s){const a=[e.Buffer.from(Int8Array.from([1])),n.toBuffer(),new m(i.length).toBuffer(),i],c=e.Buffer.concat(a),u=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}];return new r.TransactionInstruction({keys:u,programId:t,data:c})}function v(t,o,n,i,s,a,c){const u=[e.Buffer.from(Int8Array.from([2])),n.toBuffer()],p=e.Buffer.concat(u),d=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c||i,isSigner:!0,isWritable:!1}];return s&&d.push({pubkey:s,isSigner:!0,isWritable:!1}),c&&a&&(s||d.push({pubkey:r.PublicKey.default,isSigner:!1,isWritable:!1}),d.push({pubkey:a,isSigner:!1,isWritable:!1})),new r.TransactionInstruction({keys:d,programId:t,data:p})}function A(t,o,n,i){const s=[e.Buffer.from(Int8Array.from([3]))],a=e.Buffer.concat(s),c=[{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0}];return new r.TransactionInstruction({keys:c,programId:t,data:a})}class E{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return n.serialize(E.schema,this)}getInstruction(o,n,i,s,a,c,u,p,d,f,l){const g=e.Buffer.from(this.serialize()),y=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:r.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:t.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1}];return new r.TransactionInstruction({keys:y,programId:o,data:g})}}E.schema=new Map([[E,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class B{constructor(e){this.tag=12,this.name=e.name}serialize(){return n.serialize(B.schema,this)}getInstruction(t,o,n,i,s,a,c,u,p,d){const f=e.Buffer.from(this.serialize());let l=[];return l.push({pubkey:o,isSigner:!1,isWritable:!1}),l.push({pubkey:n,isSigner:!1,isWritable:!1}),l.push({pubkey:i,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 r.TransactionInstruction({keys:l,programId:t,data:f})}}B.schema=new Map([[B,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class I{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return n.serialize(I.schema,this)}getInstruction(t,o,n,i,s,a,c,u,p,d,f,l,g,y,w,x,h){const m=e.Buffer.from(this.serialize());let S=[];return S.push({pubkey:o,isSigner:!1,isWritable:!1}),S.push({pubkey:n,isSigner:!1,isWritable:!1}),S.push({pubkey:i,isSigner:!1,isWritable:!0}),S.push({pubkey:s,isSigner:!1,isWritable:!0}),S.push({pubkey:a,isSigner:!1,isWritable:!1}),S.push({pubkey:c,isSigner:!1,isWritable:!1}),S.push({pubkey:u,isSigner:!0,isWritable:!0}),S.push({pubkey:p,isSigner:!1,isWritable:!0}),S.push({pubkey:d,isSigner:!1,isWritable:!1}),S.push({pubkey:f,isSigner:!1,isWritable:!1}),S.push({pubkey:l,isSigner:!1,isWritable:!1}),S.push({pubkey:g,isSigner:!1,isWritable:!0}),S.push({pubkey:y,isSigner:!1,isWritable:!1}),S.push({pubkey:w,isSigner:!1,isWritable:!1}),S.push({pubkey:x,isSigner:!1,isWritable:!1}),h&&S.push({pubkey:h,isSigner:!1,isWritable:!0}),new r.TransactionInstruction({keys:S,programId:t,data:m})}}I.schema=new Map([[I,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const T=new r.PublicKey("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),k=e.Buffer.from("tokenized_name");var P;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(P||(P={}));class N{constructor(e){this.tag=e.tag,this.nonce=e.nonce,this.nameAccount=new r.PublicKey(e.nameAccount),this.owner=new r.PublicKey(e.owner),this.nftMint=new r.PublicKey(e.nftMint)}static deserialize(e){return n.deserialize(this.schema,N,e)}static async retrieve(e,r){const t=await e.getAccountInfo(r);if(!t||!t.data)throw new Error("NFT record not found");return this.deserialize(t.data)}static async findKey(t,o){return await r.PublicKey.findProgramAddress([e.Buffer.from("nft_record"),t.toBuffer()],o)}}N.schema=new Map([[N,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const D=new r.PublicKey("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),K="SPL Name Service",W=new r.PublicKey("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),C=new r.PublicKey("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),U=new r.PublicKey("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),L=new r.PublicKey("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),O=new r.PublicKey("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),M=new r.PublicKey("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),z=new r.PublicKey("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),G=new r.PublicKey("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),_=new r.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),H=[new r.PublicKey("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new r.PublicKey("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new r.PublicKey("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new r.PublicKey("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new r.PublicKey("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new r.PublicKey("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],V=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),j=new r.PublicKey("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),F=new r.PublicKey("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),q=new r.PublicKey("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),X=r=>{const t=K+r,o=i.sha256(e.Buffer.from(t,"utf8")).slice(2);return e.Buffer.from(o,"hex")},Y=(t,o,n)=>{const i=[t];o?i.push(o.toBuffer()):i.push(e.Buffer.alloc(32)),n?i.push(n.toBuffer()):i.push(e.Buffer.alloc(32));const[s]=r.PublicKey.findProgramAddressSync(i,D);return s};async function Z(e,r){const t=X(r.toBase58()),n=Y(t,O),{registry:i}=await ie.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoAccountData);const s=new o(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+s).toString()}async function J(e,r){let t=[];for(let e of r){const r=X(e.toBase58()),o=Y(r,O);t.push(o)}return(await ie.retrieveBatch(e,t)).map((e=>{if(void 0===e||void 0===e.data)return;let r=new o(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+r).toString()}))}const Q=(e,r=W)=>{let t=X(e);return{pubkey:Y(t,void 0,r),hashed:t}},$=(r,t)=>{r.endsWith(".sol")&&(r=r.slice(0,-4));const o=r.split(".");if(2===o.length){const r=e.Buffer.from([t||0]).toString().concat(o[0]),{pubkey:n}=Q(o[1]);return{...Q(r,n),isSub:!0,parent:n}}if(3===o.length&&t){const{pubkey:r}=Q(o[2]),{pubkey:t}=Q("\0".concat(o[1]),r),n=e.Buffer.from([1]).toString();return{...Q(n.concat(o[0]),t),isSub:!0,parent:r,isSubRecord:!0}}if(o.length>=3)throw new h(exports.ErrorType.InvalidInput);return{...Q(r,W),isSub:!1,parent:void 0}};const ee=(e,r)=>{const{pubkey:t,parent:o}=$(e),n=X(t.toBase58());return Y(n,O,r?o:void 0)},re=(e,r)=>{if(!e)throw new h(r)},te=async(e,o)=>{try{const[n]=await r.PublicKey.findProgramAddress([k,o.toBuffer()],T);if("0"===(await t.getMint(e,n)).supply.toString())return;const i=[{memcmp:{offset:0,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:"2"}},{dataSize:165}],s=await e.getProgramAccounts(t.TOKEN_PROGRAM_ID,{filters:i});if(1!=s.length)return;return new r.PublicKey(s[0].account.data.slice(32,64))}catch{return}},oe=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],ne=async(e,r)=>{const t=await(async(e,r)=>{const t=[{memcmp:{offset:0,bytes:"3"}},{memcmp:{offset:66,bytes:r.toBase58()}}];return await e.getProgramAccounts(T,{filters:t})})(e,r.mint);if(1===t.length)return N.deserialize(t[0].account.data)};class ie{constructor(e){this.parentName=new r.PublicKey(e.parentName),this.owner=new r.PublicKey(e.owner),this.class=new r.PublicKey(e.class)}static async retrieve(e,r){var t;const o=await e.getAccountInfo(r);if(!o)throw new h(exports.ErrorType.AccountDoesNotExist);let i=n.deserializeUnchecked(this.schema,ie,o.data);i.data=null===(t=o.data)||void 0===t?void 0:t.slice(this.HEADER_LEN);return{registry:i,nftOwner:await te(e,r)}}static async _retrieveBatch(e,r){const t=await e.getMultipleAccountsInfo(r),o=e=>{if(!e)return;const r=n.deserializeUnchecked(this.schema,ie,e);return r.data=null==e?void 0:e.slice(this.HEADER_LEN),r};return t.map((e=>o(null==e?void 0:e.data)))}static async retrieveBatch(e,r){let t=[];const o=[...r];for(;o.length>0;)t.push(...await this._retrieveBatch(e,o.splice(0,100)));return t}}async function se(e,r){if(!await e.getAccountInfo(r))throw new h(exports.ErrorType.AccountDoesNotExist);return ie.retrieve(e,r)}async function ae(r){const t=K+r,o=i.sha256(e.Buffer.from(t,"utf8")).slice(2);return e.Buffer.from(o,"hex")}async function ce(t,o,n){const i=[t];o?i.push(o.toBuffer()):i.push(e.Buffer.alloc(32)),n?i.push(n.toBuffer()):i.push(e.Buffer.alloc(32));const[s]=await r.PublicKey.findProgramAddress(i,D);return s}ie.HEADER_LEN=96,ie.schema=new Map([[ie,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const ue=async(e,r=W)=>{let t=await ae(e);return{pubkey:await ce(t,void 0,r),hashed:t}},pe=async(r,t=!1)=>{r.endsWith(".sol")&&(r=r.slice(0,-4));const o=r.split(".");if(2===o.length){const r=e.Buffer.from([t?1:0]).toString().concat(o[0]),{pubkey:n}=await ue(o[1]);return{...await ue(r,n),isSub:!0,parent:n}}if(3===o.length&&t){const{pubkey:r}=await ue(o[2]),{pubkey:t}=await ue("\0".concat(o[1]),r),n=e.Buffer.from([1]).toString();return{...await ue(n.concat(o[0]),t),isSub:!0,parent:r,isSubRecord:!0}}if(o.length>=3)throw new h(exports.ErrorType.InvalidInput);return{...await ue(r,W),isSub:!1,parent:void 0}};var de;exports.Record=void 0,(de=exports.Record||(exports.Record={})).IPFS="IPFS",de.ARWV="ARWV",de.SOL="SOL",de.ETH="ETH",de.BTC="BTC",de.LTC="LTC",de.DOGE="DOGE",de.Email="email",de.Url="url",de.Discord="discord",de.Github="github",de.Reddit="reddit",de.Twitter="twitter",de.Telegram="telegram",de.Pic="pic",de.SHDW="SHDW",de.POINT="POINT",de.BSC="BSC",de.Injective="INJ",de.Backpack="backpack",de.A="A",de.AAAA="AAAA",de.CNAME="CNAME",de.TXT="TXT";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]]);var le;exports.RecordVersion=void 0,(le=exports.RecordVersion||(exports.RecordVersion={}))[le.V1=1]="V1",le[le.V2=2]="V2";const ge=(e,r,t)=>x.sign.detached.verify(e,r,t.toBytes()),ye=(e,r)=>{const{pubkey:t}=$(r+"."+e,exports.RecordVersion.V1);return t};async function we(e,r,t,o){const n=ye(r,t);let{registry:i}=await ie.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoRecordData);if(o)return he(i,t,n);const s=fe.get(t);return i.data=i.data.slice(0,s),i}const xe=async(e,r)=>await we(e,r,exports.Record.SOL),he=(r,t,o)=>{const n=null==r?void 0:r.data;if(!n)return;if(0===n.compare(e.Buffer.alloc(n.length)))return;const i=fe.get(t),s=(e=>{const r=Array.from(e);return r.length-1-r.reverse().findIndex((e=>0!==e))+1})(n);if(!i)return n.slice(0,s).toString("utf-8");if(t===exports.Record.SOL){const t=new TextEncoder,i=e.Buffer.concat([n.slice(0,32),o.toBuffer()]),s=t.encode(i.toString("hex"));if(ge(s,n.slice(32,96),r.owner))return u.encode(n.slice(0,32))}if(i&&s!==i){const r=n.slice(0,s).toString("utf-8");if(t===exports.Record.Injective){const e=a.decode(r);if("inj"===e.prefix&&20===e.data.length)return r}else if(t===exports.Record.BSC||t===exports.Record.ETH){const t=r.slice(0,2),o=r.slice(2);if("0x"===t&&20===e.Buffer.from(o,"hex").length)return r}else if((t===exports.Record.A||t===exports.Record.AAAA)&&p.isValid(r))return r;throw new h(exports.ErrorType.InvalidRecordData)}if(t===exports.Record.ETH||t===exports.Record.BSC)return"0x"+n.slice(0,i).toString("hex");if(t===exports.Record.Injective)return a.encode("inj",n.slice(0,i),"bech32");if(t===exports.Record.A||t===exports.Record.AAAA)return p.fromByteArray([...n.slice(0,i)]).toString();throw new h(exports.ErrorType.InvalidRecordData)},me=(r,t)=>{if(!fe.get(t))return t!==exports.Record.CNAME&&t!==exports.Record.TXT||(r=d.encode(r)),e.Buffer.from(r,"utf-8");if(t===exports.Record.SOL)throw new h(exports.ErrorType.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(t===exports.Record.ETH||t===exports.Record.BSC)return re("0x"===r.slice(0,2),exports.ErrorType.InvalidEvmAddress),e.Buffer.from(r.slice(2),"hex");if(t===exports.Record.Injective){const t=a.decode(r);return re("inj"===t.prefix,exports.ErrorType.InvalidInjectiveAddress),re(20===t.data.length,exports.ErrorType.InvalidInjectiveAddress),e.Buffer.from(t.data)}if(t===exports.Record.A){const t=p.parse(r).toByteArray();return re(4===t.length,exports.ErrorType.InvalidARecord),e.Buffer.from(t)}if(t===exports.Record.AAAA){const t=p.parse(r).toByteArray();return re(16===t.length,exports.ErrorType.InvalidAAAARecord),e.Buffer.from(t)}throw new h(exports.ErrorType.InvalidRecordInput)},Se=(r,t,o,n)=>{const i=e.Buffer.concat([r.toBuffer(),t.toBuffer()]),s=(new TextEncoder).encode(i.toString("hex")),a=ge(s,n,o);return re(a,exports.ErrorType.InvalidSignature),e.Buffer.concat([r.toBuffer(),n])};async function Re(e,t,o,n,i,s,a,c){const u=await ae(t),p=await ce(u,a,c),d=s||await e.getMinimumBalanceForRentExemption(o);let f;if(c){const{registry:r}=await se(e,c);f=r.owner}return R(D,r.SystemProgram.programId,p,i,n,u,new S(d),new m(o),a,c,f)}async function be(e,r,t,o,n){const i=await ae(r),s=await ce(i,o,n);let a;a=o||(await ie.retrieve(e,s)).registry.owner;return A(D,s,t,a)}const ve=async(e,t,o,n,i)=>{let[s]=await r.PublicKey.findProgramAddress([C.toBuffer()],C),a=await ae(e.toBase58()),c=await ce(a,s,n);return[[],[new B({name:t}).getInstruction(C,D,W,c,r.SystemProgram.programId,s,o,r.SYSVAR_RENT_PUBKEY,n,i)]]},Ae=async(e,t,o,n,i,s)=>{re(o!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:a,hashed:c,parent:u}=$(`${o}.${t}`,exports.RecordVersion.V1),p=me(n,o).length,d=await e.getMinimumBalanceForRentExemption(p+ie.HEADER_LEN);return R(D,r.SystemProgram.programId,a,i,s,c,new S(d),new m(p),void 0,u,i)},Ee=async(e,t,o,n,i,s)=>{const a=n.serialize().length,{pubkey:c,hashed:u,parent:p}=$(`${o}.${t}`,exports.RecordVersion.V2),d=await e.getMinimumBalanceForRentExemption(a+ie.HEADER_LEN);return R(D,r.SystemProgram.programId,c,i,s,u,new S(d),new m(a),void 0,p,i)},Be=async(e,t,o,n,i,s)=>{const{pubkey:a,hashed:c,parent:u}=$(`${exports.Record.SOL}.${t}`,exports.RecordVersion.V1),p=Se(o,a,n,i).length,d=await e.getMinimumBalanceForRentExemption(p+ie.HEADER_LEN);return[R(D,r.SystemProgram.programId,a,n,s,c,new S(d),new m(p),void 0,u,n)]};class Ie{constructor(e){this.twitterRegistryKey=e.twitterRegistryKey,this.twitterHandle=e.twitterHandle}static async retrieve(e,r){let t=await e.getAccountInfo(r,"processed");if(!t)throw new h(exports.ErrorType.InvalidReverseTwitter);return n.deserializeUnchecked(this.schema,Ie,t.data.slice(ie.HEADER_LEN))}}async function Te(t,o,i,s,a){const c=await ae(s.toString()),u=await ce(c,M,z);let p=n.serialize(Ie.schema,new Ie({twitterRegistryKey:i.toBytes(),twitterHandle:o}));return[R(D,r.SystemProgram.programId,u,s,a,c,new S(await t.getMinimumBalanceForRentExemption(p.length+ie.HEADER_LEN)),new m(p.length),M,z,M),b(D,u,new m(0),e.Buffer.from(p),M)]}Ie.schema=new Map([[Ie,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const ke=new r.PublicKey("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Pe{constructor(e){this.tag=e.tag,this.nameAccount=new r.PublicKey(e.nameAccount)}static deserialize(e){return n.deserialize(this.schema,Pe,e)}static async retrieve(e,r){const t=await e.getAccountInfo(r);if(!t||!t.data)throw new h(exports.ErrorType.FavouriteDomainNotFound);return this.deserialize(t.data)}static async getKey(t,o){return await r.PublicKey.findProgramAddress([e.Buffer.from("favourite_domain"),o.toBuffer()],t)}static getKeySync(t,o){return r.PublicKey.findProgramAddressSync([e.Buffer.from("favourite_domain"),o.toBuffer()],t)}}Pe.schema=new Map([[Pe,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);var Ne,De;exports.CustomBg=void 0,(exports.CustomBg||(exports.CustomBg={})).DegenPoet1="DegenPoet#1",exports.GuardianSig=void 0,(Ne=exports.GuardianSig||(exports.GuardianSig={}))[Ne.None=0]="None",Ne[Ne.Solana=1]="Solana",Ne[Ne.Ethereum=2]="Ethereum",Ne[Ne.Injective=3]="Injective",exports.UserSig=void 0,(De=exports.UserSig||(exports.UserSig={}))[De.None=0]="None",De[De.Solana=1]="Solana";const Ke={signatureType:exports.UserSig.None,signature:Buffer.alloc(0)},We={signatureType:exports.GuardianSig.None,signature:Buffer.alloc(0)},Ce=new Map([[exports.Record.Backpack,new r.PublicKey("ExXjtfdQe8JacoqP9Z535WzQKjF4CzW1TTRKRgpxvya3").toBuffer()]]),Ue=new Set([exports.Record.IPFS,exports.Record.ARWV,exports.Record.LTC,exports.Record.DOGE,exports.Record.Email,exports.Record.Url,exports.Record.Discord,exports.Record.Github,exports.Record.Reddit,exports.Record.Twitter,exports.Record.Telegram,exports.Record.Pic,exports.Record.SHDW,exports.Record.POINT,exports.Record.Backpack,exports.Record.TXT,exports.Record.CNAME,exports.Record.BTC]),Le=new Set([exports.Record.ETH,exports.Record.Injective,exports.Record.SOL]),Oe=e=>{switch(e){case exports.GuardianSig.None:return 0;case exports.GuardianSig.Solana:return 64;case exports.GuardianSig.Ethereum:case exports.GuardianSig.Injective:return 65;case exports.UserSig.None:return 0;case exports.UserSig.Solana:return 64;default:throw new h(exports.ErrorType.UnsupportedSignature,`Unsupported signature type: ${e}`)}},Me=e=>{const r=Ce.get(e);if(!r)throw new h(exports.ErrorType.RecordDoestNotSupportGuardianSig);return r},ze=(e,r,t)=>x.sign.detached.verify(e,r,t),Ge=(e,r,t)=>{const o=f.hashMessage(e);return l.recoverAddress(o,r)===g.getAddress(t)},_e=(e,r,t,o)=>{switch(o){case exports.GuardianSig.Ethereum:case exports.GuardianSig.Injective:return Ge(e.toString(),r.toString(),t.toString());case exports.GuardianSig.Solana:return ze(e,r,t);case exports.GuardianSig.None:throw new h(exports.ErrorType.RecordIsNotSigned);default:throw new h(exports.ErrorType.UnsupportedSignatureType)}},He=(e,r,t,o)=>{switch(o){case exports.UserSig.Solana:return ze(e,r,t);case exports.UserSig.None:throw new h(exports.ErrorType.RecordIsNotSigned);default:throw new h(exports.ErrorType.UnsupportedSignatureType)}};class Ve{constructor(e){this.userSignature=e.userSignature,this.guardianSignature=e.guardianSignature,this.contentLength=e.contentLength}serialize(){return n.serialize(Ve.schema,this)}static deserialize(e){return n.deserialize(this.schema,Ve,e)}}Ve.LEN=8,Ve.schema=new Map([[Ve,{kind:"struct",fields:[["userSignature","u16"],["guardianSignature","u16"],["contentLength","u32"]]}]]);class je{constructor(e){this.header=e.header,this.buffer=e.buffer}getLength(){return Ve.LEN+this.buffer.length}static deserializeUnchecked(e){const r=n.deserializeUnchecked(Ve.schema,Ve,e);return new je({header:r,buffer:Buffer.from(e.slice(Ve.LEN))})}serialize(){const e=this.header.serialize();return Buffer.concat([e,this.buffer])}deserializeContent(e){return Fe(this.getContent(),e)}getContent(){const e=Oe(this.header.guardianSignature)+Oe(this.header.userSignature);return Buffer.from(this.buffer.slice(e,e+this.header.contentLength))}static new(e,r,t=Ke,o=We){const n=qe(e,r),i=Buffer.concat([t.signature,o.signature,n]),s=new Ve({userSignature:t.signatureType,guardianSignature:o.signatureType,contentLength:n.length});return new je({header:s,buffer:i})}checkGuardianSignature(e,r){const t=Oe(this.header.guardianSignature),o=Oe(this.header.userSignature),n=Buffer.from(this.buffer.slice(o,o+t));return _e(e,n,r,this.header.guardianSignature)}checkUserSignature(e,r){const t=Oe(this.header.userSignature),o=Buffer.from(this.buffer.slice(0,t));return He(e,o,r,this.header.userSignature)}static async retrieve(e,r,t,o){const n=Xe(t,r),{registry:i}=await ie.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.InvalidRecordData);const s=this.deserializeUnchecked(i.data),a=s.getContent(),c=Buffer.concat([n.toBuffer(),a]);if(!(null==o?void 0:o.skipGuardianSig)){const e=Le.has(r)?Buffer.from(s.getContent().slice(32)):Me(r);s.checkGuardianSignature(c,e)}return(null==o?void 0:o.skipUserSig)||s.checkUserSignature(c,i.owner.toBuffer()),s}static async retrieveBatch(e,r,t){const o=r.map((e=>Xe(t,e))),n=await ie.retrieveBatch(e,o),i=[];for(let e of n)try{if(!(null==e?void 0:e.data)){i.push(void 0);continue}const r=je.deserializeUnchecked(null==e?void 0:e.data);i.push(r)}catch{i.push(void 0)}return i}}const Fe=(e,t)=>{if(Ue.has(t)){const r=e.toString("utf-8");return t===exports.Record.CNAME||t===exports.Record.TXT?d.decode(r):r}if(t===exports.Record.SOL)return new r.PublicKey(e).toBase58();if(t===exports.Record.ETH||t===exports.Record.BSC)return"0x"+e.toString("hex");if(t===exports.Record.Injective)return a.encode("inj",e,"bech32");if(t===exports.Record.A||t===exports.Record.AAAA)return p.fromByteArray([...e]).toString();throw new h(exports.ErrorType.InvalidARecord)},qe=(e,t)=>{if(Ue.has(t))return t!==exports.Record.CNAME&&t!==exports.Record.TXT||(e=d.encode(e)),Buffer.from(e,"utf-8");if(t===exports.Record.SOL)return new r.PublicKey(e).toBuffer();if(t===exports.Record.ETH||t===exports.Record.BSC)return re("0x"===e.slice(0,2),exports.ErrorType.InvalidEvmAddress),Buffer.from(e.slice(2),"hex");if(t===exports.Record.Injective){const r=a.decode(e);return re("inj"===r.prefix,exports.ErrorType.InvalidInjectiveAddress),re(20===r.data.length,exports.ErrorType.InvalidInjectiveAddress),Buffer.from(r.data)}if(t===exports.Record.A){const r=p.parse(e).toByteArray();return re(4===r.length,exports.ErrorType.InvalidARecord),Buffer.from(r)}if(t===exports.Record.AAAA){const r=p.parse(e).toByteArray();return re(16===r.length,exports.ErrorType.InvalidAAAARecord),Buffer.from(r)}throw new h(exports.ErrorType.InvalidARecord)},Xe=(e,r)=>{const{pubkey:t}=$(r+"."+e,exports.RecordVersion.V2);return t},Ye=new r.PublicKey("ART5dr4bDic2sQVZoFheEmUxwQq5VGSx9he7JxHcXNQD");exports.BONFIDA_FIDA_BNB=L,exports.BONFIDA_USDC_BNB=G,exports.CUSTOM_BG_TLD=q,exports.FavouriteDomain=Pe,exports.Guardians=Ce,exports.HASH_PREFIX=K,exports.NAME_OFFERS_ID=ke,exports.NAME_PROGRAM_ID=D,exports.NameRegistryState=ie,exports.NullGuardianSig=We,exports.NullUserSig=Ke,exports.Numberu32=m,exports.Numberu64=S,exports.PYTH_FIDA_PRICE_ACC=U,exports.PYTH_MAPPING_ACC=j,exports.RECORD_V1_SIZE=fe,exports.REFERRERS=H,exports.REGISTER_PROGRAM_ID=C,exports.REVERSE_LOOKUP_CLASS=O,exports.ROOT_DOMAIN_ACCOUNT=W,exports.RecordV2=je,exports.RecordV2Header=Ve,exports.ReverseTwitterRegistryState=Ie,exports.SELF_SIGNED=Le,exports.SNSError=h,exports.SOL_RECORD_SIG_LEN=96,exports.TOKENS_SYM_MINT=V,exports.TWITTER_ROOT_PARENT_REGISTRY_KEY=z,exports.TWITTER_VERIFICATION_AUTHORITY=M,exports.USDC_MINT=_,exports.UTF8_ENCODED=Ue,exports.VAULT_OWNER=F,exports.changeTwitterRegistryData=async function(e,r,t,o){const n=await ae(e),i=await ce(n,void 0,z);return[b(D,i,new m(t),o,r)]},exports.changeVerifiedPubkey=async function(e,r,t,o,n){const i=await ae(r),s=await ce(i,void 0,z);let a=[v(D,s,o,t,void 0)];const c=await ae(t.toString());return await ce(c,M,void 0),a.push(await be(e,t.toString(),n,M,z)),a=a.concat(await Te(e,r,s,o,n)),a},exports.check=re,exports.checkSolRecord=ge,exports.createInstruction=R,exports.createInstructionV3=I,exports.createNameRegistry=Re,exports.createRecordInstruction=Ae,exports.createRecordV2Instruction=Ee,exports.createReverseInstruction=B,exports.createReverseName=ve,exports.createReverseTwitterRegistry=Te,exports.createSolRecordInstruction=Be,exports.createSubdomain=async(e,r,t,o=2e3)=>{const n=[],i=r.split(".")[0];if(!i)throw new h(exports.ErrorType.InvalidSubdomain);const{parent:s,pubkey:a}=$(r),c=await e.getMinimumBalanceForRentExemption(o+ie.HEADER_LEN),u=await Re(e,"\0".concat(i),o,t,t,c,void 0,s);n.push(u);const p=ee(r,!0),d=await e.getAccountInfo(p);if(!(null==d?void 0:d.data)){const[,e]=await ve(a,"\0".concat(i),t,s,t);n.push(...e)}return[[],n]},exports.createV2Instruction=E,exports.createVerifiedTwitterRegistry=async function(e,t,o,n,i){const s=await ae(t),a=await ce(s,void 0,z),c=await e.getMinimumBalanceForRentExemption(n+ie.HEADER_LEN);let u=[R(D,r.SystemProgram.programId,a,o,i,s,new S(c),new m(n),void 0,z,M)];return u=u.concat(await Te(e,t,a,o,i)),u},exports.deleteInstruction=A,exports.deleteNameRegistry=be,exports.deleteRecordV2=async(e,r,t,o)=>{const{pubkey:n}=$(`${r}.${e}`,exports.RecordVersion.V2);return A(D,n,o,t)},exports.deleteTwitterRegistry=async function(e,r){const t=await ae(e),o=await ce(t,void 0,z),n=await ae(r.toString()),i=await ce(n,M,z);return[A(D,o,r,r),A(D,i,r,r)]},exports.deserializeRecord=he,exports.deserializeRecordV2Content=Fe,exports.findSubdomains=async(e,r)=>{const t=[{memcmp:{offset:0,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:O.toBase58()}}],o=await e.getProgramAccounts(D,{filters:t}),n=await Z(e,r),i=o.map((e=>{var r;return null===(r=e.account.data.slice(97).toString("utf-8"))||void 0===r?void 0:r.split("\0").join("")})),s=i.map((e=>$(e+"."+n).pubkey)),a=await e.getMultipleAccountsInfo(s);return i.filter(((e,r)=>!!a[r]))},exports.getAllDomains=async function(e,r){const t=[{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:0,bytes:W.toBase58()}}];return(await e.getProgramAccounts(D,{filters:t})).map((e=>e.pubkey))},exports.getAllRegisteredDomains=async e=>{const r=[{memcmp:{offset:0,bytes:W.toBase58()}}];return await e.getProgramAccounts(D,{dataSlice:{offset:32,length:32},filters:r})},exports.getArtistPubkey=e=>{if(e===exports.CustomBg.DegenPoet1)return Ye;throw new h(exports.ErrorType.InvalidCustomBg)},exports.getArweaveRecord=async(e,r)=>await we(e,r,exports.Record.ARWV,!0),exports.getBackpackRecord=async(e,r)=>await we(e,r,exports.Record.Backpack,!0),exports.getBscRecord=async(e,r)=>await we(e,r,exports.Record.BSC,!0),exports.getBtcRecord=async(e,r)=>await we(e,r,exports.Record.BTC,!0),exports.getCustomBgKeys=(e,r)=>{const t=X(r),o=X(e),n=Y(o,void 0,q);return{domainKey:n,bgKey:Y(t,void 0,n)}},exports.getDiscordRecord=async(e,r)=>await we(e,r,exports.Record.Discord,!0),exports.getDogeRecord=async(e,r)=>await we(e,r,exports.Record.DOGE,!0),exports.getDomainKey=pe,exports.getDomainKeySync=$,exports.getEmailRecord=async(e,r)=>await we(e,r,exports.Record.Email,!0),exports.getEthRecord=async(e,r)=>await we(e,r,exports.Record.ETH,!0),exports.getFavoriteDomain=async(e,t)=>{const[o]=Pe.getKeySync(ke,new r.PublicKey(t)),n=await Pe.retrieve(e,o),i=await Z(e,n.nameAccount);return{domain:n.nameAccount,reverse:i}},exports.getGithubRecord=async(e,r)=>await we(e,r,exports.Record.Github,!0),exports.getGuardianPublickey=Me,exports.getHandleAndRegistryKey=async function(e,t){const o=await ae(t.toString()),n=await ce(o,M,z);let i=await Ie.retrieve(e,n);return[i.twitterHandle,new r.PublicKey(i.twitterRegistryKey)]},exports.getHashedName=ae,exports.getHashedNameSync=X,exports.getInjectiveRecord=async(e,r)=>await we(e,r,exports.Record.Injective,!0),exports.getIpfsRecord=async(e,r)=>await we(e,r,exports.Record.IPFS,!0),exports.getLtcRecord=async(e,r)=>await we(e,r,exports.Record.LTC,!0),exports.getMessageToSign=(e,r,t)=>{const o=qe(e,t),n=Xe(r,t),i=Buffer.concat([n.toBuffer(),o]).toString("hex");return Buffer.from(i)},exports.getNameAccountKey=ce,exports.getNameAccountKeySync=Y,exports.getNameOwner=se,exports.getPicRecord=async(e,r)=>await we(e,r,exports.Record.Pic,!0),exports.getPointRecord=async(e,r)=>await we(e,r,exports.Record.POINT,!0),exports.getRecord=we,exports.getRecordKeySync=ye,exports.getRecordV2Key=Xe,exports.getRecords=async function(e,r,t,o){const n=t.map((e=>ye(r,e))),i=await ie.retrieveBatch(e,n);return o?i.map(((e,o)=>{if(e)return he(e,t[o],ye(r,t[o]))})):i},exports.getRedditRecord=async(e,r)=>await we(e,r,exports.Record.Reddit,!0),exports.getReverseKey=async(e,r)=>{const{pubkey:t,parent:o}=await pe(e),n=await ae(t.toBase58());return await ce(n,O,r?o:void 0)},exports.getReverseKeySync=ee,exports.getShdwRecord=async(e,r)=>await we(e,r,exports.Record.SHDW,!0),exports.getSignatureByteLength=Oe,exports.getSolRecord=xe,exports.getTelegramRecord=async(e,r)=>await we(e,r,exports.Record.Telegram,!0),exports.getTokenizedDomains=async(e,r)=>{const o=await(async(e,r)=>{const o=[...oe(r.toBase58()),{dataSize:165}],n=(await e.getProgramAccounts(t.TOKEN_PROGRAM_ID,{filters:o})).map((e=>t.AccountLayout.decode(e.account.data))).map((r=>ne(e,r)));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,r);return(await J(e,o.map((e=>e.nameAccount)))).map(((e,r)=>({key:o[r].nameAccount,mint:o[r].nftMint,reverse:e}))).filter((e=>!!e.reverse))},exports.getTwitterHandleandRegistryKeyViaFilters=async function(e,t){const o=[{memcmp:{offset:0,bytes:z.toBase58()}},{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:M.toBase58()}}],i=await e.getProgramAccounts(D,{filters:o});for(const e of i)if(e.account.data.length>ie.HEADER_LEN+32){let t=e.account.data.slice(ie.HEADER_LEN),o=n.deserializeUnchecked(Ie.schema,Ie,t);return[o.twitterHandle,new r.PublicKey(o.twitterRegistryKey)]}throw new h(exports.ErrorType.AccountDoesNotExist)},exports.getTwitterRecord=async(e,r)=>await we(e,r,exports.Record.Twitter,!0),exports.getTwitterRegistry=async function(e,r){const t=await ae(r),o=await ce(t,void 0,z),{registry:n}=await ie.retrieve(e,o);return n},exports.getTwitterRegistryData=async function(t,o){const n=[{memcmp:{offset:0,bytes:z.toBase58()}},{memcmp:{offset:32,bytes:o.toBase58()}},{memcmp:{offset:64,bytes:new r.PublicKey(e.Buffer.alloc(32,0)).toBase58()}}],i=await t.getProgramAccounts(D,{filters:n});if(i.length>1)throw new h(exports.ErrorType.MultipleRegistries);return i[0].account.data.slice(ie.HEADER_LEN)},exports.getTwitterRegistryKey=async function(e){const r=await ae(e);return await ce(r,void 0,z)},exports.getUrlRecord=async(e,r)=>await we(e,r,exports.Record.Url,!0),exports.performReverseLookup=async function(e,r){const t=await ae(r.toBase58()),n=await ce(t,O),{registry:i}=await ie.retrieve(e,n);if(!i.data)throw new h(exports.ErrorType.NoAccountData);const s=new o(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+s).toString()},exports.performReverseLookupBatch=async function(e,r){let t=[];for(let e of r){const r=await ae(e.toBase58()),o=await ce(r,O);t.push(o)}return(await ie.retrieveBatch(e,t)).map((e=>{if(void 0===e||void 0===e.data)return;let r=new o(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+r).toString()}))},exports.registerDomainName=async(e,o,n,i,a,c=_,u)=>{if(o.includes(".")||o.trim().toLowerCase()!==o)throw new h(exports.ErrorType.InvalidDomain);const[p]=r.PublicKey.findProgramAddressSync([C.toBuffer()],C),d=X(o),f=Y(d,void 0,W),l=X(f.toBase58()),g=Y(l,p),[y]=r.PublicKey.findProgramAddressSync([f.toBuffer()],C),w=H.findIndex((e=>null==u?void 0:u.equals(e)));let x;const m=[];if(-1!==w&&u){x=t.getAssociatedTokenAddressSync(c,u,!0);const r=await e.getAccountInfo(x);if(!(null==r?void 0:r.data)){const e=t.createAssociatedTokenAccountInstruction(i,x,u,c);m.push(e)}}const S=new s.PythHttpClient(e,s.getPythProgramKeyForCluster("mainnet-beta")),R=await S.getData(),b=V.get(c.toBase58());if(!b)throw new h(exports.ErrorType.SymbolNotFound,`No symbol found for mint ${c.toBase58()}`);const v=R.productPrice.get("Crypto."+b+"/USD"),A=R.productFromSymbol.get("Crypto."+b+"/USD"),E=t.getAssociatedTokenAddressSync(c,F),B=new I({name:o,space:n,referrerIdxOpt:-1!=w?w:null}).getInstruction(C,D,W,f,g,r.SystemProgram.programId,p,i,a,j,v.productAccountKey,new r.PublicKey(A.price_account),E,t.TOKEN_PROGRAM_ID,r.SYSVAR_RENT_PUBKEY,y,x);return m.push(B),[[],m]},exports.resolve=async(t,o)=>{const{pubkey:n}=$(o),{registry:i,nftOwner:s}=await ie.retrieve(t,n);if(s)return s;try{const n=ye(o,exports.Record.SOL),s=await xe(t,o);if(!(null==s?void 0:s.data))throw new h(exports.ErrorType.NoRecordData);const a=new TextEncoder,c=e.Buffer.concat([s.data.slice(0,32),n.toBuffer()]),u=a.encode(c.toString("hex"));if(!ge(u,s.data.slice(32),i.owner))throw new h(exports.ErrorType.InvalidSignature);return new r.PublicKey(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return i.owner},exports.retrieveNftOwner=te,exports.retrieveNfts=async e=>{const t=await e.getProgramAccounts(T,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return t.map((e=>new r.PublicKey(e.account.data.slice(66,98))))},exports.reverseLookup=Z,exports.reverseLookupBatch=J,exports.serializeRecord=me,exports.serializeRecordV2Content=qe,exports.serializeSolRecord=Se,exports.transferInstruction=v,exports.transferNameOwnership=async function(e,r,t,o,n,i){const s=await ae(r),a=await ce(s,o,n);let c;return c=o||(await ie.retrieve(e,a)).registry.owner,v(D,a,t,c,o,n,i)},exports.updateInstruction=b,exports.updateNameRegistryData=async function(e,r,t,o,n,i){const s=await ae(r),a=await ce(s,n,i);let c;return c=n||(await ie.retrieve(e,a)).registry.owner,b(D,a,new m(t),o,c)},exports.updateRecordInstruction=async(e,r,t,o,n,i)=>{re(t!==exports.Record.SOL,exports.ErrorType.UnsupportedRecord);const{pubkey:s}=$(`${t}.${r}`,exports.RecordVersion.V1),a=await e.getAccountInfo(s);re(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist);const c=me(o,t);if((null==a?void 0:a.data.slice(96).length)!==c.length)return[A(D,s,i,n),await Ae(e,r,t,o,n,i)];return[b(D,s,new m(0),c,n)]},exports.updateRecordV2Instruction=async(r,t,o,n,i,s)=>{const{pubkey:a}=$(`${o}.${t}`,exports.RecordVersion.V2),c=await r.getAccountInfo(a),u=n.serialize();if(c&&(null==c?void 0:c.data.slice(96).length)!==u.length)return[A(D,a,s,i),await Ee(r,t,o,n,i,s),b(D,a,new m(0),e.Buffer.from(u),i)];return[b(D,a,new m(0),e.Buffer.from(u),i)]},exports.updateSolRecordInstruction=async(e,r,t,o,n,i)=>{const{pubkey:s}=$(`${exports.Record.SOL}.${r}`,exports.RecordVersion.V1),a=await e.getAccountInfo(s);if(re(!!(null==a?void 0:a.data),exports.ErrorType.AccountDoesNotExist),96!==(null==a?void 0:a.data.length))return[A(D,s,i,o),await Be(e,r,t,o,n,i)];const c=Se(t,s,o,n);return[b(D,s,new m(0),c,o)]},exports.verifyEthereumSignature=Ge,exports.verifyGuardianSignature=_e,exports.verifyInjectiveSignature=(e,r,t)=>{throw new Error("TODO")},exports.verifySolanaSignature=ze,exports.verifyUserSignature=He;
package/dist/index.d.ts CHANGED
@@ -9,7 +9,9 @@ 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";
15
16
  export * from "./record_v2";
17
+ export * from "./custom-bg";
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{Buffer as e}from"buffer";import{PublicKey as t,TransactionInstruction as r,SystemProgram as n,SYSVAR_RENT_PUBKEY as i}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as a,getMint as s,AccountLayout as o,getAssociatedTokenAddressSync as c,createAssociatedTokenAccountInstruction as u}from"@solana/spl-token";import f from"bn.js";import{serialize as d,deserialize as l,deserializeUnchecked as w}from"borsh";import{sha256 as p}from"@ethersproject/sha2";import{PythHttpClient as g,getPythProgramKeyForCluster as h}from"@pythnetwork/client";import{decode as m,encode as y}from"bech32-buffer";import*as S from"tweetnacl";import b from"bs58";import v from"ipaddr.js";import{encode as A,decode as k}from"punycode";import{hashMessage as B}from"@ethersproject/hash";import{recoverAddress as I}from"@ethersproject/transactions";import{getAddress as E}from"@ethersproject/address";var R;!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.UnsupportedSignature="UnsupportedSignature",e.RecordDoestNotSupportGuardianSig="RecordDoestNotSupportGuardianSig",e.RecordIsNotSigned="RecordIsNotSigned",e.UnsupportedSignatureType="UnsupportedSignatureType"}(R||(R={}));class N extends Error{constructor(e,t){super(t),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,N)}}class W extends f{toBuffer(){const t=super.toArray().reverse(),r=e.from(t);if(4===r.length)return r;if(r.length>4)throw new N(R.U32Overflow);const n=e.alloc(4);return r.copy(n),n}static fromBuffer(e){if(4!==e.length)throw new N(R.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new f([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class D extends f{toBuffer(){const t=super.toArray().reverse(),r=e.from(t);if(8===r.length)return r;if(r.length>8)throw new N(R.U64Overflow);const n=e.alloc(8);return r.copy(n),n}static fromBuffer(e){if(8!==e.length)throw new N(R.U64Overflow,`Invalid buffer length: ${e.length}`);return new f([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function T(n,i,a,s,o,c,u,f,d,l,w){const p=[e.from(Int8Array.from([0])),new W(c.length).toBuffer(),c,u.toBuffer(),f.toBuffer()],g=e.concat(p),h=[{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 d?h.push({pubkey:d,isSigner:!0,isWritable:!1}):h.push({pubkey:new t(e.alloc(32)),isSigner:!1,isWritable:!1}),l?h.push({pubkey:l,isSigner:!1,isWritable:!1}):h.push({pubkey:new t(e.alloc(32)),isSigner:!1,isWritable:!1}),w&&h.push({pubkey:w,isSigner:!0,isWritable:!1}),new r({keys:h,programId:n,data:g})}function L(t,n,i,a,s){const o=[e.from(Int8Array.from([1])),i.toBuffer(),new W(a.length).toBuffer(),a],c=e.concat(o);return new r({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}],programId:t,data:c})}function x(n,i,a,s,o,c,u){const f=[e.from(Int8Array.from([2])),a.toBuffer()],d=e.concat(f),l=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:u||s,isSigner:!0,isWritable:!1}];return o&&l.push({pubkey:o,isSigner:!0,isWritable:!1}),u&&c&&(o||l.push({pubkey:t.default,isSigner:!1,isWritable:!1}),l.push({pubkey:c,isSigner:!1,isWritable:!1})),new r({keys:l,programId:n,data:d})}function j(t,n,i,a){const s=[e.from(Int8Array.from([3]))],o=e.concat(s);return new r({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0}],programId:t,data:o})}class C{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return d(C.schema,this)}getInstruction(t,i,s,o,c,u,f,d,l,w,p){const g=e.from(this.serialize()),h=[{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:n.programId,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!0,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1}];return new r({keys:h,programId:t,data:g})}}C.schema=new Map([[C,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class H{constructor(e){this.tag=12,this.name=e.name}serialize(){return d(H.schema,this)}getInstruction(t,n,i,a,s,o,c,u,f,d){const l=e.from(this.serialize());let w=[];return w.push({pubkey:n,isSigner:!1,isWritable:!1}),w.push({pubkey:i,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}),f&&w.push({pubkey:f,isSigner:!1,isWritable:!0}),d&&w.push({pubkey:d,isSigner:!0,isWritable:!0}),new r({keys:w,programId:t,data:l})}}H.schema=new Map([[H,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class M{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return d(M.schema,this)}getInstruction(t,n,i,a,s,o,c,u,f,d,l,w,p,g,h,m,y){const S=e.from(this.serialize());let b=[];return b.push({pubkey:n,isSigner:!1,isWritable:!1}),b.push({pubkey:i,isSigner:!1,isWritable:!1}),b.push({pubkey:a,isSigner:!1,isWritable:!0}),b.push({pubkey:s,isSigner:!1,isWritable:!0}),b.push({pubkey:o,isSigner:!1,isWritable:!1}),b.push({pubkey:c,isSigner:!1,isWritable:!1}),b.push({pubkey:u,isSigner:!0,isWritable:!0}),b.push({pubkey:f,isSigner:!1,isWritable:!0}),b.push({pubkey:d,isSigner:!1,isWritable:!1}),b.push({pubkey:l,isSigner:!1,isWritable:!1}),b.push({pubkey:w,isSigner:!1,isWritable:!1}),b.push({pubkey:p,isSigner:!1,isWritable:!0}),b.push({pubkey:g,isSigner:!1,isWritable:!1}),b.push({pubkey:h,isSigner:!1,isWritable:!1}),b.push({pubkey:m,isSigner:!1,isWritable:!1}),y&&b.push({pubkey:y,isSigner:!1,isWritable:!0}),new r({keys:b,programId:t,data:S})}}M.schema=new Map([[M,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const P=new t("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),U=e.from("tokenized_name");var z;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(z||(z={}));class F{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(e){return l(this.schema,F,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,n){return await t.findProgramAddress([e.from("nft_record"),r.toBuffer()],n)}}F.schema=new Map([[F,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const O=new t("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),G="SPL Name Service",X=new t("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),V=new t("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),K=new t("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),Z=new t("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),q=new t("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),Y=new t("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),J=new t("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),$=96,_=new t("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),Q=new t("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ee=[new t("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new t("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new t("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new t("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new t("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new t("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],te=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),re=new t("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),ne=new t("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),ie=t=>{const r=G+t,n=p(e.from(r,"utf8")).slice(2);return e.from(n,"hex")},ae=(r,n,i)=>{const a=[r];n?a.push(n.toBuffer()):a.push(e.alloc(32)),i?a.push(i.toBuffer()):a.push(e.alloc(32));const[s]=t.findProgramAddressSync(a,O);return s};async function se(e,t){const r=ie(t.toBase58()),n=ae(r,q),{registry:i}=await be.retrieve(e,n);if(!i.data)throw new N(R.NoAccountData);const a=new f(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function oe(e,t){let r=[];for(let e of t){const t=ie(e.toBase58()),n=ae(t,q);r.push(n)}return(await be.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new f(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}const ce=async(e,t)=>{const r=[{memcmp:{offset:0,bytes:t.toBase58()}},{memcmp:{offset:64,bytes:q.toBase58()}}],n=await e.getProgramAccounts(O,{filters:r}),i=await se(e,t),a=n.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+"."+i).pubkey)),o=await e.getMultipleAccountsInfo(s);return a.filter(((e,t)=>!!o[t]))},ue=(e,t=X)=>{let r=ie(e);return{pubkey:ae(r,void 0,t),hashed:r}},fe=(t,r)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=e.from([r||0]).toString().concat(n[0]),{pubkey:i}=ue(n[1]);return{...ue(t,i),isSub:!0,parent:i}}if(3===n.length&&r){const{pubkey:t}=ue(n[2]),{pubkey:r}=ue("\0".concat(n[1]),t),i=e.from([1]).toString();return{...ue(i.concat(n[0]),r),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new N(R.InvalidInput);return{...ue(t,X),isSub:!1,parent:void 0}};async function de(e,t){const r=[{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:0,bytes:X.toBase58()}}];return(await e.getProgramAccounts(O,{filters:r})).map((e=>e.pubkey))}const le=async e=>{const t=[{memcmp:{offset:0,bytes:X.toBase58()}}];return await e.getProgramAccounts(O,{dataSlice:{offset:32,length:32},filters:t})},we=(e,t)=>{const{pubkey:r,parent:n}=fe(e),i=ie(r.toBase58());return ae(i,q,t?n:void 0)},pe=(e,t)=>{if(!e)throw new N(t)},ge=async(e,r)=>{try{const[n]=await t.findProgramAddress([U,r.toBuffer()],P);if("0"===(await s(e,n)).supply.toString())return;const i=[{memcmp:{offset:0,bytes:n.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}},he=async e=>{const r=await e.getProgramAccounts(P,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return r.map((e=>new t(e.account.data.slice(66,98))))},me=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],ye=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(P,{filters:r})})(e,t.mint);if(1===r.length)return F.deserialize(r[0].account.data)},Se=async(e,t)=>{const r=await(async(e,t)=>{const r=[...me(t.toBase58()),{dataSize:165}],n=(await e.getProgramAccounts(a,{filters:r})).map((e=>o.decode(e.account.data))).map((t=>ye(e,t)));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,t);return(await oe(e,r.map((e=>e.nameAccount)))).map(((e,t)=>({key:r[t].nameAccount,mint:r[t].nftMint,reverse:e}))).filter((e=>!!e.reverse))};class be{constructor(e){this.parentName=new t(e.parentName),this.owner=new t(e.owner),this.class=new t(e.class)}static async retrieve(e,t){var r;const n=await e.getAccountInfo(t);if(!n)throw new N(R.AccountDoesNotExist);let i=w(this.schema,be,n.data);i.data=null===(r=n.data)||void 0===r?void 0:r.slice(this.HEADER_LEN);return{registry:i,nftOwner:await ge(e,t)}}static async _retrieveBatch(e,t){const r=await e.getMultipleAccountsInfo(t),n=e=>{if(!e)return;const t=w(this.schema,be,e);return t.data=null==e?void 0:e.slice(this.HEADER_LEN),t};return r.map((e=>n(null==e?void 0:e.data)))}static async retrieveBatch(e,t){let r=[];const n=[...t];for(;n.length>0;)r.push(...await this._retrieveBatch(e,n.splice(0,100)));return r}}async function ve(e,t){if(!await e.getAccountInfo(t))throw new N(R.AccountDoesNotExist);return be.retrieve(e,t)}async function Ae(t){const r=G+t,n=p(e.from(r,"utf8")).slice(2);return e.from(n,"hex")}async function ke(r,n,i){const a=[r];n?a.push(n.toBuffer()):a.push(e.alloc(32)),i?a.push(i.toBuffer()):a.push(e.alloc(32));const[s]=await t.findProgramAddress(a,O);return s}async function Be(e,t){const r=await Ae(t.toBase58()),n=await ke(r,q),{registry:i}=await be.retrieve(e,n);if(!i.data)throw new N(R.NoAccountData);const a=new f(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function Ie(e,t){let r=[];for(let e of t){const t=await Ae(e.toBase58()),n=await ke(t,q);r.push(n)}return(await be.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new f(e.data.slice(0,4),"le").toNumber();return e.data.slice(4,4+t).toString()}))}be.HEADER_LEN=96,be.schema=new Map([[be,{kind:"struct",fields:[["parentName",[32]],["owner",[32]],["class",[32]]]}]]);const Ee=async(e,t=X)=>{let r=await Ae(e);return{pubkey:await ke(r,void 0,t),hashed:r}},Re=async(t,r=!1)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=e.from([r?1:0]).toString().concat(n[0]),{pubkey:i}=await Ee(n[1]);return{...await Ee(t,i),isSub:!0,parent:i}}if(3===n.length&&r){const{pubkey:t}=await Ee(n[2]),{pubkey:r}=await Ee("\0".concat(n[1]),t),i=e.from([1]).toString();return{...await Ee(i.concat(n[0]),r),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new N(R.InvalidInput);return{...await Ee(t,X),isSub:!1,parent:void 0}},Ne=async(e,t)=>{const{pubkey:r,parent:n}=await Re(e),i=await Ae(r.toBase58());return await ke(i,q,t?n:void 0)};var We;!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"}(We||(We={}));const De=new Map([[We.SOL,96],[We.ETH,20],[We.BSC,20],[We.Injective,20],[We.A,4],[We.AAAA,16]]);var Te;!function(e){e[e.V1=1]="V1",e[e.V2=2]="V2"}(Te||(Te={}));const Le=(e,t,r)=>S.sign.detached.verify(e,t,r.toBytes()),xe=async(r,n)=>{const{pubkey:i}=fe(n),{registry:a,nftOwner:s}=await be.retrieve(r,i);if(s)return s;try{const i=je(n,We.SOL),s=await _e(r,n);if(!(null==s?void 0:s.data))throw new N(R.NoRecordData);const o=new TextEncoder,c=e.concat([s.data.slice(0,32),i.toBuffer()]),u=o.encode(c.toString("hex"));if(!Le(u,s.data.slice(32),a.owner))throw new N(R.InvalidSignature);return new t(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return a.owner},je=(e,t)=>{const{pubkey:r}=fe(t+"."+e,Te.V1);return r};async function Ce(e,t,r,n){const i=je(t,r);let{registry:a}=await be.retrieve(e,i);if(!a.data)throw new N(R.NoRecordData);if(n)return nt(a,r,i);const s=De.get(r);return a.data=a.data.slice(0,s),a}async function He(e,t,r,n){const i=r.map((e=>je(t,e))),a=await be.retrieveBatch(e,i);return n?a.map(((e,n)=>{if(e)return nt(e,r[n],je(t,r[n]))})):a}const Me=async(e,t)=>await Ce(e,t,We.IPFS,!0),Pe=async(e,t)=>await Ce(e,t,We.ARWV,!0),Ue=async(e,t)=>await Ce(e,t,We.ETH,!0),ze=async(e,t)=>await Ce(e,t,We.BTC,!0),Fe=async(e,t)=>await Ce(e,t,We.LTC,!0),Oe=async(e,t)=>await Ce(e,t,We.DOGE,!0),Ge=async(e,t)=>await Ce(e,t,We.Email,!0),Xe=async(e,t)=>await Ce(e,t,We.Url,!0),Ve=async(e,t)=>await Ce(e,t,We.Discord,!0),Ke=async(e,t)=>await Ce(e,t,We.Github,!0),Ze=async(e,t)=>await Ce(e,t,We.Reddit,!0),qe=async(e,t)=>await Ce(e,t,We.Twitter,!0),Ye=async(e,t)=>await Ce(e,t,We.Telegram,!0),Je=async(e,t)=>await Ce(e,t,We.Pic,!0),$e=async(e,t)=>await Ce(e,t,We.SHDW,!0),_e=async(e,t)=>await Ce(e,t,We.SOL),Qe=async(e,t)=>await Ce(e,t,We.POINT,!0),et=async(e,t)=>await Ce(e,t,We.BSC,!0),tt=async(e,t)=>await Ce(e,t,We.Injective,!0),rt=async(e,t)=>await Ce(e,t,We.Backpack,!0),nt=(t,r,n)=>{const i=null==t?void 0:t.data;if(!i)return;if(0===i.compare(e.alloc(i.length)))return;const a=De.get(r),s=(e=>{const t=Array.from(e);return t.length-1-t.reverse().findIndex((e=>0!==e))+1})(i);if(!a)return i.slice(0,s).toString("utf-8");if(r===We.SOL){const r=new TextEncoder,a=e.concat([i.slice(0,32),n.toBuffer()]),s=r.encode(a.toString("hex"));if(Le(s,i.slice(32,96),t.owner))return b.encode(i.slice(0,32))}if(a&&s!==a){const t=i.slice(0,s).toString("utf-8");if(r===We.Injective){const e=m(t);if("inj"===e.prefix&&20===e.data.length)return t}else if(r===We.BSC||r===We.ETH){const r=t.slice(0,2),n=t.slice(2);if("0x"===r&&20===e.from(n,"hex").length)return t}else if((r===We.A||r===We.AAAA)&&v.isValid(t))return t;throw new N(R.InvalidRecordData)}if(r===We.ETH||r===We.BSC)return"0x"+i.slice(0,a).toString("hex");if(r===We.Injective)return y("inj",i.slice(0,a),"bech32");if(r===We.A||r===We.AAAA)return v.fromByteArray([...i.slice(0,a)]).toString();throw new N(R.InvalidRecordData)},it=(t,r)=>{if(!De.get(r))return r!==We.CNAME&&r!==We.TXT||(t=A(t)),e.from(t,"utf-8");if(r===We.SOL)throw new N(R.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(r===We.ETH||r===We.BSC)return pe("0x"===t.slice(0,2),R.InvalidEvmAddress),e.from(t.slice(2),"hex");if(r===We.Injective){const r=m(t);return pe("inj"===r.prefix,R.InvalidInjectiveAddress),pe(20===r.data.length,R.InvalidInjectiveAddress),e.from(r.data)}if(r===We.A){const r=v.parse(t).toByteArray();return pe(4===r.length,R.InvalidARecord),e.from(r)}if(r===We.AAAA){const r=v.parse(t).toByteArray();return pe(16===r.length,R.InvalidAAAARecord),e.from(r)}throw new N(R.InvalidRecordInput)},at=(t,r,n,i)=>{const a=e.concat([t.toBuffer(),r.toBuffer()]),s=(new TextEncoder).encode(a.toString("hex")),o=Le(s,i,n);return pe(o,R.InvalidSignature),e.concat([t.toBuffer(),i])};async function st(e,t,r,i,a,s,o,c){const u=await Ae(t),f=await ke(u,o,c),d=s||await e.getMinimumBalanceForRentExemption(r);let l;if(c){const{registry:t}=await ve(e,c);l=t.owner}return T(O,n.programId,f,a,i,u,new D(d),new W(r),o,c,l)}async function ot(e,t,r,n,i,a){const s=await Ae(t),o=await ke(s,i,a);let c;c=i||(await be.retrieve(e,o)).registry.owner;return L(O,o,new W(r),n,c)}async function ct(e,t,r,n,i,a){const s=await Ae(t),o=await ke(s,n,i);let c;c=n||(await be.retrieve(e,o)).registry.owner;return x(O,o,r,c,n,i,a)}async function ut(e,t,r,n,i){const a=await Ae(t),s=await ke(a,n,i);let o;o=n||(await be.retrieve(e,s)).registry.owner;return j(O,s,r,o)}const ft=async(e,r,s,o,f,d=Q,l)=>{if(r.includes(".")||r.trim().toLowerCase()!==r)throw new N(R.InvalidDomain);const[w]=t.findProgramAddressSync([V.toBuffer()],V),p=ie(r),m=ae(p,void 0,X),y=ie(m.toBase58()),S=ae(y,w),[b]=t.findProgramAddressSync([m.toBuffer()],V),v=ee.findIndex((e=>null==l?void 0:l.equals(e)));let A;const k=[];if(-1!==v&&l){A=c(d,l,!0);const t=await e.getAccountInfo(A);if(!(null==t?void 0:t.data)){const e=u(o,A,l,d);k.push(e)}}const B=new g(e,h("mainnet-beta")),I=await B.getData(),E=te.get(d.toBase58());if(!E)throw new N(R.SymbolNotFound,`No symbol found for mint ${d.toBase58()}`);const W=I.productPrice.get("Crypto."+E+"/USD"),D=I.productFromSymbol.get("Crypto."+E+"/USD"),T=c(d,ne),L=new M({name:r,space:s,referrerIdxOpt:-1!=v?v:null}).getInstruction(V,O,X,m,S,n.programId,w,o,f,re,W.productAccountKey,new t(D.price_account),T,a,i,b,A);return k.push(L),[[],k]},dt=async(e,r,a,s,o)=>{let[c]=await t.findProgramAddress([V.toBuffer()],V),u=await Ae(e.toBase58()),f=await ke(u,c,s);return[[],[new H({name:r}).getInstruction(V,O,X,f,n.programId,c,a,i,s,o)]]},lt=async(e,t,r,n=2e3)=>{const i=[],a=t.split(".")[0];if(!a)throw new N(R.InvalidSubdomain);const{parent:s,pubkey:o}=fe(t),c=await e.getMinimumBalanceForRentExemption(n+be.HEADER_LEN),u=await st(e,"\0".concat(a),n,r,r,c,void 0,s);i.push(u);const f=we(t,!0),d=await e.getAccountInfo(f);if(!(null==d?void 0:d.data)){const[,e]=await dt(o,"\0".concat(a),r,s,r);i.push(...e)}return[[],i]},wt=async(e,t,r,i,a,s)=>{pe(r!==We.SOL,R.UnsupportedRecord);const{pubkey:o,hashed:c,parent:u}=fe(`${r}.${t}`,Te.V1),f=it(i,r).length,d=await e.getMinimumBalanceForRentExemption(f+be.HEADER_LEN);return T(O,n.programId,o,a,s,c,new D(d),new W(f),void 0,u,a)},pt=async(e,t,r,i,a,s)=>{const o=i.serialize().length,{pubkey:c,hashed:u,parent:f}=fe(`${r}.${t}`,Te.V2),d=await e.getMinimumBalanceForRentExemption(o+be.HEADER_LEN);return T(O,n.programId,c,a,s,u,new D(d),new W(o),void 0,f,a)},gt=async(e,t,r,n,i,a)=>{pe(r!==We.SOL,R.UnsupportedRecord);const{pubkey:s}=fe(`${r}.${t}`,Te.V1),o=await e.getAccountInfo(s);pe(!!(null==o?void 0:o.data),R.AccountDoesNotExist);const c=it(n,r);if((null==o?void 0:o.data.slice(96).length)!==c.length)return[j(O,s,a,i),await wt(e,t,r,n,i,a)];return[L(O,s,new W(0),c,i)]},ht=async(t,r,n,i,a,s)=>{const{pubkey:o}=fe(`${n}.${r}`,Te.V2),c=await t.getAccountInfo(o),u=i.serialize();if(c&&(null==c?void 0:c.data.slice(96).length)!==u.length)return[j(O,o,s,a),await pt(t,r,n,i,a,s),L(O,o,new W(0),e.from(u),a)];return[L(O,o,new W(0),e.from(u),a)]},mt=async(e,t,r,n)=>{const{pubkey:i}=fe(`${t}.${e}`,Te.V2);return j(O,i,n,r)},yt=async(e,t,r,i,a,s)=>{const{pubkey:o,hashed:c,parent:u}=fe(`${We.SOL}.${t}`,Te.V1),f=at(r,o,i,a).length,d=await e.getMinimumBalanceForRentExemption(f+be.HEADER_LEN);return[T(O,n.programId,o,i,s,c,new D(d),new W(f),void 0,u,i)]},St=async(e,t,r,n,i,a)=>{const{pubkey:s}=fe(`${We.SOL}.${t}`,Te.V1),o=await e.getAccountInfo(s);if(pe(!!(null==o?void 0:o.data),R.AccountDoesNotExist),96!==(null==o?void 0:o.data.length))return[j(O,s,a,n),await yt(e,t,r,n,i,a)];const c=at(r,s,n,i);return[L(O,s,new W(0),c,n)]};async function bt(e,t,r,i,a){const s=await Ae(t),o=await ke(s,void 0,J),c=await e.getMinimumBalanceForRentExemption(i+be.HEADER_LEN);let u=[T(O,n.programId,o,r,a,s,new D(c),new W(i),void 0,J,Y)];return u=u.concat(await Dt(e,t,o,r,a)),u}async function vt(e,t,r,n){const i=await Ae(e),a=await ke(i,void 0,J);return[L(O,a,new W(r),n,t)]}async function At(e,t,r,n,i){const a=await Ae(t),s=await ke(a,void 0,J);let o=[x(O,s,n,r,void 0)];const c=await Ae(r.toString());return await ke(c,Y,void 0),o.push(await ut(e,r.toString(),i,Y,J)),o=o.concat(await Dt(e,t,s,n,i)),o}async function kt(e,t){const r=await Ae(e),n=await ke(r,void 0,J),i=await Ae(t.toString()),a=await ke(i,Y,J);return[j(O,n,t,t),j(O,a,t,t)]}async function Bt(e){const t=await Ae(e);return await ke(t,void 0,J)}async function It(e,t){const r=await Ae(t),n=await ke(r,void 0,J),{registry:i}=await be.retrieve(e,n);return i}async function Et(e,r){const n=await Ae(r.toString()),i=await ke(n,Y,J);let a=await Wt.retrieve(e,i);return[a.twitterHandle,new t(a.twitterRegistryKey)]}async function Rt(e,r){const n=[{memcmp:{offset:0,bytes:J.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:Y.toBase58()}}],i=await e.getProgramAccounts(O,{filters:n});for(const e of i)if(e.account.data.length>be.HEADER_LEN+32){let r=e.account.data.slice(be.HEADER_LEN),n=w(Wt.schema,Wt,r);return[n.twitterHandle,new t(n.twitterRegistryKey)]}throw new N(R.AccountDoesNotExist)}async function Nt(r,n){const i=[{memcmp:{offset:0,bytes:J.toBase58()}},{memcmp:{offset:32,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:new t(e.alloc(32,0)).toBase58()}}],a=await r.getProgramAccounts(O,{filters:i});if(a.length>1)throw new N(R.MultipleRegistries);return a[0].account.data.slice(be.HEADER_LEN)}class Wt{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 N(R.InvalidReverseTwitter);return w(this.schema,Wt,r.data.slice(be.HEADER_LEN))}}async function Dt(t,r,i,a,s){const o=await Ae(a.toString()),c=await ke(o,Y,J);let u=d(Wt.schema,new Wt({twitterRegistryKey:i.toBytes(),twitterHandle:r}));return[T(O,n.programId,c,a,s,o,new D(await t.getMinimumBalanceForRentExemption(u.length+be.HEADER_LEN)),new W(u.length),Y,J,Y),L(O,c,new W(0),e.from(u),Y)]}Wt.schema=new Map([[Wt,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const Tt=new t("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Lt{constructor(e){this.tag=e.tag,this.nameAccount=new t(e.nameAccount)}static deserialize(e){return l(this.schema,Lt,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new N(R.FavouriteDomainNotFound);return this.deserialize(r.data)}static async getKey(r,n){return await t.findProgramAddress([e.from("favourite_domain"),n.toBuffer()],r)}static getKeySync(r,n){return t.findProgramAddressSync([e.from("favourite_domain"),n.toBuffer()],r)}}Lt.schema=new Map([[Lt,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);const xt=async(e,r)=>{const[n]=Lt.getKeySync(Tt,new t(r)),i=await Lt.retrieve(e,n),a=await se(e,i.nameAccount);return{domain:i.nameAccount,reverse:a}};var jt,Ct;!function(e){e[e.None=0]="None",e[e.Solana=1]="Solana",e[e.Ethereum=2]="Ethereum",e[e.Injective=3]="Injective"}(jt||(jt={})),function(e){e[e.None=0]="None",e[e.Solana=1]="Solana"}(Ct||(Ct={}));const Ht={signatureType:Ct.None,signature:Buffer.alloc(0)},Mt={signatureType:jt.None,signature:Buffer.alloc(0)},Pt=new Map([[We.Backpack,new t("ExXjtfdQe8JacoqP9Z535WzQKjF4CzW1TTRKRgpxvya3").toBuffer()]]),Ut=new Set([We.IPFS,We.ARWV,We.LTC,We.DOGE,We.Email,We.Url,We.Discord,We.Github,We.Reddit,We.Twitter,We.Telegram,We.Pic,We.SHDW,We.POINT,We.Backpack,We.TXT,We.CNAME,We.BTC]),zt=new Set([We.ETH,We.Injective,We.SOL]),Ft=e=>{switch(e){case jt.None:return 0;case jt.Solana:return 64;case jt.Ethereum:case jt.Injective:return 65;case Ct.None:return 0;case Ct.Solana:return 64;default:throw new N(R.UnsupportedSignature,`Unsupported signature type: ${e}`)}},Ot=e=>{const t=Pt.get(e);if(!t)throw new N(R.RecordDoestNotSupportGuardianSig);return t},Gt=(e,t,r)=>S.sign.detached.verify(e,t,r),Xt=(e,t,r)=>{const n=B(e);return I(n,t)===E(r)},Vt=(e,t,r)=>{throw new Error("TODO")},Kt=(e,t,r,n)=>{switch(n){case jt.Ethereum:case jt.Injective:return Xt(e.toString(),t.toString(),r.toString());case jt.Solana:return Gt(e,t,r);case jt.None:throw new N(R.RecordIsNotSigned);default:throw new N(R.UnsupportedSignatureType)}},Zt=(e,t,r,n)=>{switch(n){case Ct.Solana:return Gt(e,t,r);case Ct.None:throw new N(R.RecordIsNotSigned);default:throw new N(R.UnsupportedSignatureType)}};class qt{constructor(e){this.userSignature=e.userSignature,this.guardianSignature=e.guardianSignature,this.contentLength=e.contentLength}serialize(){return d(qt.schema,this)}static deserialize(e){return l(this.schema,qt,e)}}qt.LEN=8,qt.schema=new Map([[qt,{kind:"struct",fields:[["userSignature","u16"],["guardianSignature","u16"],["contentLength","u32"]]}]]);class Yt{constructor(e){this.header=e.header,this.buffer=e.buffer}getLength(){return qt.LEN+this.buffer.length}static deserializeUnchecked(e){const t=w(qt.schema,qt,e);return new Yt({header:t,buffer:Buffer.from(e.slice(qt.LEN))})}serialize(){const e=this.header.serialize();return Buffer.concat([e,this.buffer])}deserializeContent(e){return Jt(this.getContent(),e)}getContent(){const e=Ft(this.header.guardianSignature)+Ft(this.header.userSignature);return Buffer.from(this.buffer.slice(e,e+this.header.contentLength))}static new(e,t,r=Ht,n=Mt){const i=$t(e,t),a=Buffer.concat([r.signature,n.signature,i]),s=new qt({userSignature:r.signatureType,guardianSignature:n.signatureType,contentLength:i.length});return new Yt({header:s,buffer:a})}checkGuardianSignature(e,t){const r=Ft(this.header.guardianSignature),n=Ft(this.header.userSignature),i=Buffer.from(this.buffer.slice(n,n+r));return Kt(e,i,t,this.header.guardianSignature)}checkUserSignature(e,t){const r=Ft(this.header.userSignature),n=Buffer.from(this.buffer.slice(0,r));return Zt(e,n,t,this.header.userSignature)}static async retrieve(e,t,r,n){const i=Qt(r,t),{registry:a}=await be.retrieve(e,i);if(!a.data)throw new N(R.InvalidRecordData);const s=this.deserializeUnchecked(a.data),o=s.getContent(),c=Buffer.concat([i.toBuffer(),o]);if(!(null==n?void 0:n.skipGuardianSig)){const e=zt.has(t)?Buffer.from(s.getContent().slice(32)):Ot(t);s.checkGuardianSignature(c,e)}return(null==n?void 0:n.skipUserSig)||s.checkUserSignature(c,a.owner.toBuffer()),s}static async retrieveBatch(e,t,r){const n=t.map((e=>Qt(r,e))),i=await be.retrieveBatch(e,n),a=[];for(let e of i)try{if(!(null==e?void 0:e.data)){a.push(void 0);continue}const t=Yt.deserializeUnchecked(null==e?void 0:e.data);a.push(t)}catch{a.push(void 0)}return a}}const Jt=(e,r)=>{if(Ut.has(r)){const t=e.toString("utf-8");return r===We.CNAME||r===We.TXT?k(t):t}if(r===We.SOL)return new t(e).toBase58();if(r===We.ETH||r===We.BSC)return"0x"+e.toString("hex");if(r===We.Injective)return y("inj",e,"bech32");if(r===We.A||r===We.AAAA)return v.fromByteArray([...e]).toString();throw new N(R.InvalidARecord)},$t=(e,r)=>{if(Ut.has(r))return r!==We.CNAME&&r!==We.TXT||(e=A(e)),Buffer.from(e,"utf-8");if(r===We.SOL)return new t(e).toBuffer();if(r===We.ETH||r===We.BSC)return pe("0x"===e.slice(0,2),R.InvalidEvmAddress),Buffer.from(e.slice(2),"hex");if(r===We.Injective){const t=m(e);return pe("inj"===t.prefix,R.InvalidInjectiveAddress),pe(20===t.data.length,R.InvalidInjectiveAddress),Buffer.from(t.data)}if(r===We.A){const t=v.parse(e).toByteArray();return pe(4===t.length,R.InvalidARecord),Buffer.from(t)}if(r===We.AAAA){const t=v.parse(e).toByteArray();return pe(16===t.length,R.InvalidAAAARecord),Buffer.from(t)}throw new N(R.InvalidARecord)},_t=(e,t,r)=>{const n=$t(e,r),i=Qt(t,r),a=Buffer.concat([i.toBuffer(),n]).toString("hex");return Buffer.from(a)},Qt=(e,t)=>{const{pubkey:r}=fe(t+"."+e,Te.V2);return r};export{Z as BONFIDA_FIDA_BNB,_ as BONFIDA_USDC_BNB,R as ErrorType,Lt as FavouriteDomain,jt as GuardianSig,Pt as Guardians,G as HASH_PREFIX,Tt as NAME_OFFERS_ID,O as NAME_PROGRAM_ID,be as NameRegistryState,Mt as NullGuardianSig,Ht as NullUserSig,W as Numberu32,D as Numberu64,K as PYTH_FIDA_PRICE_ACC,re as PYTH_MAPPING_ACC,De as RECORD_V1_SIZE,ee as REFERRERS,V as REGISTER_PROGRAM_ID,q as REVERSE_LOOKUP_CLASS,X as ROOT_DOMAIN_ACCOUNT,We as Record,Yt as RecordV2,qt as RecordV2Header,Te as RecordVersion,Wt as ReverseTwitterRegistryState,zt as SELF_SIGNED,N as SNSError,$ as SOL_RECORD_SIG_LEN,te as TOKENS_SYM_MINT,J as TWITTER_ROOT_PARENT_REGISTRY_KEY,Y as TWITTER_VERIFICATION_AUTHORITY,Q as USDC_MINT,Ut as UTF8_ENCODED,Ct as UserSig,ne as VAULT_OWNER,vt as changeTwitterRegistryData,At as changeVerifiedPubkey,pe as check,Le as checkSolRecord,T as createInstruction,M as createInstructionV3,st as createNameRegistry,wt as createRecordInstruction,pt as createRecordV2Instruction,H as createReverseInstruction,dt as createReverseName,Dt as createReverseTwitterRegistry,yt as createSolRecordInstruction,lt as createSubdomain,C as createV2Instruction,bt as createVerifiedTwitterRegistry,j as deleteInstruction,ut as deleteNameRegistry,mt as deleteRecordV2,kt as deleteTwitterRegistry,nt as deserializeRecord,Jt as deserializeRecordV2Content,ce as findSubdomains,de as getAllDomains,le as getAllRegisteredDomains,Pe as getArweaveRecord,rt as getBackpackRecord,et as getBscRecord,ze as getBtcRecord,Ve as getDiscordRecord,Oe as getDogeRecord,Re as getDomainKey,fe as getDomainKeySync,Ge as getEmailRecord,Ue as getEthRecord,xt as getFavoriteDomain,Ke as getGithubRecord,Ot as getGuardianPublickey,Et as getHandleAndRegistryKey,Ae as getHashedName,ie as getHashedNameSync,tt as getInjectiveRecord,Me as getIpfsRecord,Fe as getLtcRecord,_t as getMessageToSign,ke as getNameAccountKey,ae as getNameAccountKeySync,ve as getNameOwner,Je as getPicRecord,Qe as getPointRecord,Ce as getRecord,je as getRecordKeySync,Qt as getRecordV2Key,He as getRecords,Ze as getRedditRecord,Ne as getReverseKey,we as getReverseKeySync,$e as getShdwRecord,Ft as getSignatureByteLength,_e as getSolRecord,Ye as getTelegramRecord,Se as getTokenizedDomains,Rt as getTwitterHandleandRegistryKeyViaFilters,qe as getTwitterRecord,It as getTwitterRegistry,Nt as getTwitterRegistryData,Bt as getTwitterRegistryKey,Xe as getUrlRecord,Be as performReverseLookup,Ie as performReverseLookupBatch,ft as registerDomainName,xe as resolve,ge as retrieveNftOwner,he as retrieveNfts,se as reverseLookup,oe as reverseLookupBatch,it as serializeRecord,$t as serializeRecordV2Content,at as serializeSolRecord,x as transferInstruction,ct as transferNameOwnership,L as updateInstruction,ot as updateNameRegistryData,gt as updateRecordInstruction,ht as updateRecordV2Instruction,St as updateSolRecordInstruction,Xt as verifyEthereumSignature,Kt as verifyGuardianSignature,Vt as verifyInjectiveSignature,Gt as verifySolanaSignature,Zt as verifyUserSignature};
1
+ import{Buffer as e}from"buffer";import{PublicKey as t,TransactionInstruction as r,SystemProgram as n,SYSVAR_RENT_PUBKEY as i}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as a,getMint as s,AccountLayout as o,getAssociatedTokenAddressSync as c,createAssociatedTokenAccountInstruction as u}from"@solana/spl-token";import f from"bn.js";import{serialize as d,deserialize as l,deserializeUnchecked as w}from"borsh";import{sha256 as p}from"@ethersproject/sha2";import{PythHttpClient as g,getPythProgramKeyForCluster as h}from"@pythnetwork/client";import{decode as m,encode as y}from"bech32-buffer";import*as S from"tweetnacl";import b from"bs58";import v from"ipaddr.js";import{encode as A,decode as k}from"punycode";import{hashMessage as B}from"@ethersproject/hash";import{recoverAddress as I}from"@ethersproject/transactions";import{getAddress as E}from"@ethersproject/address";var R;!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.UnsupportedSignature="UnsupportedSignature",e.RecordDoestNotSupportGuardianSig="RecordDoestNotSupportGuardianSig",e.RecordIsNotSigned="RecordIsNotSigned",e.UnsupportedSignatureType="UnsupportedSignatureType",e.InvalidCustomBg="InvalidCustomBackground"}(R||(R={}));class D extends Error{constructor(e,t){super(t),this.name="SNSError",this.type=e,Error.captureStackTrace&&Error.captureStackTrace(this,D)}}class N extends f{toBuffer(){const t=super.toArray().reverse(),r=e.from(t);if(4===r.length)return r;if(r.length>4)throw new D(R.U32Overflow);const n=e.alloc(4);return r.copy(n),n}static fromBuffer(e){if(4!==e.length)throw new D(R.InvalidBufferLength,`Invalid buffer length: ${e.length}`);return new f([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}class W extends f{toBuffer(){const t=super.toArray().reverse(),r=e.from(t);if(8===r.length)return r;if(r.length>8)throw new D(R.U64Overflow);const n=e.alloc(8);return r.copy(n),n}static fromBuffer(e){if(8!==e.length)throw new D(R.U64Overflow,`Invalid buffer length: ${e.length}`);return new f([...e].reverse().map((e=>`00${e.toString(16)}`.slice(-2))).join(""),16)}}function T(n,i,a,s,o,c,u,f,d,l,w){const p=[e.from(Int8Array.from([0])),new N(c.length).toBuffer(),c,u.toBuffer(),f.toBuffer()],g=e.concat(p),h=[{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 d?h.push({pubkey:d,isSigner:!0,isWritable:!1}):h.push({pubkey:new t(e.alloc(32)),isSigner:!1,isWritable:!1}),l?h.push({pubkey:l,isSigner:!1,isWritable:!1}):h.push({pubkey:new t(e.alloc(32)),isSigner:!1,isWritable:!1}),w&&h.push({pubkey:w,isSigner:!0,isWritable:!1}),new r({keys:h,programId:n,data:g})}function x(t,n,i,a,s){const o=[e.from(Int8Array.from([1])),i.toBuffer(),new N(a.length).toBuffer(),a],c=e.concat(o);return new r({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!1}],programId:t,data:c})}function L(n,i,a,s,o,c,u){const f=[e.from(Int8Array.from([2])),a.toBuffer()],d=e.concat(f),l=[{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:u||s,isSigner:!0,isWritable:!1}];return o&&l.push({pubkey:o,isSigner:!0,isWritable:!1}),u&&c&&(o||l.push({pubkey:t.default,isSigner:!1,isWritable:!1}),l.push({pubkey:c,isSigner:!1,isWritable:!1})),new r({keys:l,programId:n,data:d})}function C(t,n,i,a){const s=[e.from(Int8Array.from([3]))],o=e.concat(s);return new r({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0}],programId:t,data:o})}class P{constructor(e){this.tag=9,this.name=e.name,this.space=e.space}serialize(){return d(P.schema,this)}getInstruction(t,i,s,o,c,u,f,d,l,w,p){const g=e.from(this.serialize()),h=[{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:n.programId,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!0,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1}];return new r({keys:h,programId:t,data:g})}}P.schema=new Map([[P,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"]]}]]);class j{constructor(e){this.tag=12,this.name=e.name}serialize(){return d(j.schema,this)}getInstruction(t,n,i,a,s,o,c,u,f,d){const l=e.from(this.serialize());let w=[];return w.push({pubkey:n,isSigner:!1,isWritable:!1}),w.push({pubkey:i,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}),f&&w.push({pubkey:f,isSigner:!1,isWritable:!0}),d&&w.push({pubkey:d,isSigner:!0,isWritable:!0}),new r({keys:w,programId:t,data:l})}}j.schema=new Map([[j,{kind:"struct",fields:[["tag","u8"],["name","string"]]}]]);class U{constructor(e){this.tag=13,this.name=e.name,this.space=e.space,this.referrerIdxOpt=e.referrerIdxOpt}serialize(){return d(U.schema,this)}getInstruction(t,n,i,a,s,o,c,u,f,d,l,w,p,g,h,m,y){const S=e.from(this.serialize());let b=[];return b.push({pubkey:n,isSigner:!1,isWritable:!1}),b.push({pubkey:i,isSigner:!1,isWritable:!1}),b.push({pubkey:a,isSigner:!1,isWritable:!0}),b.push({pubkey:s,isSigner:!1,isWritable:!0}),b.push({pubkey:o,isSigner:!1,isWritable:!1}),b.push({pubkey:c,isSigner:!1,isWritable:!1}),b.push({pubkey:u,isSigner:!0,isWritable:!0}),b.push({pubkey:f,isSigner:!1,isWritable:!0}),b.push({pubkey:d,isSigner:!1,isWritable:!1}),b.push({pubkey:l,isSigner:!1,isWritable:!1}),b.push({pubkey:w,isSigner:!1,isWritable:!1}),b.push({pubkey:p,isSigner:!1,isWritable:!0}),b.push({pubkey:g,isSigner:!1,isWritable:!1}),b.push({pubkey:h,isSigner:!1,isWritable:!1}),b.push({pubkey:m,isSigner:!1,isWritable:!1}),y&&b.push({pubkey:y,isSigner:!1,isWritable:!0}),new r({keys:b,programId:t,data:S})}}U.schema=new Map([[U,{kind:"struct",fields:[["tag","u8"],["name","string"],["space","u32"],["referrerIdxOpt",{kind:"option",type:"u16"}]]}]]);const H=new t("nftD3vbNkNqfj2Sd3HZwbpw4BxxKWr4AjGb9X38JeZk"),M=e.from("tokenized_name");var z;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.CentralState=1]="CentralState",e[e.ActiveRecord=2]="ActiveRecord",e[e.InactiveRecord=3]="InactiveRecord"}(z||(z={}));class F{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(e){return l(this.schema,F,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,n){return await t.findProgramAddress([e.from("nft_record"),r.toBuffer()],n)}}F.schema=new Map([[F,{kind:"struct",fields:[["tag","u8"],["nonce","u8"],["nameAccount",[32]],["owner",[32]],["nftMint",[32]]]}]]);const G=new t("namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"),O="SPL Name Service",V=new t("58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx"),X=new t("jCebN34bUfdeUYJT13J1yG16XWQpt5PDx6Mse9GUqhR"),K=new t("ETp9eKXVv1dWwHSpsXRUuXHmw24PwRkttCGVgpZEY9zF"),Z=new t("AUoZ3YAhV3b2rZeEH93UMZHXUZcTramBvb4d9YEVySkc"),q=new t("33m47vH6Eav6jr5Ry86XjhRft2jRBLDnDgPSHoquXi2Z"),J=new t("FvPH7PrVrLGKPfqaf3xJodFTjZriqrAXXLTVWEorTFBi"),Y=new t("4YcexoW3r78zz16J2aqmukBLRwGq6rAvWzJpkYAXqebv"),Q=96,$=new t("DmSyHDSM9eSLyvoLsPvDr5fRRFZ7Bfr3h3ULvWpgQaq7"),_=new t("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ee=[new t("3ogYncmMM5CmytsGCqKHydmXmKUZ6sGWvizkzqwT7zb1"),new t("DM1jJCkZZEwY5tmWbgvKRxsDFzXCdbfrYCCH1CtwguEs"),new t("ADCp4QXFajHrhy4f43pD6GJFtQLkdBY2mjS9DfCk7tNW"),new t("2XTgjw8yi1E3Etgj4CUyRD7Zk49gynH2U9gA5N2MY4NP"),new t("5oDWj8vr3vbcq9JZTtwXqrkCMZggMsDzNietvbr1BNfe"),new t("8kJqxAbqbPLGLMgB6FhLcnw2SiUEavx2aEGM3WQGhtJF")],te=new Map([["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","USDC"],["Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB","USDT"],["So11111111111111111111111111111111111111112","SOL"],["EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp","FIDA"],["FeGn77dhg1KXRRFeSwwMiykZnZPw5JXW6naf2aQgZDQf","ETH"],["7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx","GMT"],["AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB","GST"],["mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So","MSOL"],["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","BONK"],["EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz","BAT"]]),re=new t("AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J"),ne=new t("GcWEQ9K78FV7LEHteFVciYApERk5YvQuFDQPk1yYJVXi"),ie=new t("BPeXUQDqGbzxeK1LJby6ugvCBuo7kRSEUkjD726mUVsz"),ae=t=>{const r=O+t,n=p(e.from(r,"utf8")).slice(2);return e.from(n,"hex")},se=(r,n,i)=>{const a=[r];n?a.push(n.toBuffer()):a.push(e.alloc(32)),i?a.push(i.toBuffer()):a.push(e.alloc(32));const[s]=t.findProgramAddressSync(a,G);return s};async function oe(e,t){const r=ae(t.toBase58()),n=se(r,q),{registry:i}=await ve.retrieve(e,n);if(!i.data)throw new D(R.NoAccountData);const a=new f(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function ce(e,t){let r=[];for(let e of t){const t=ae(e.toBase58()),n=se(t,q);r.push(n)}return(await ve.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new f(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()}}],n=await e.getProgramAccounts(G,{filters:r}),i=await oe(e,t),a=n.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=>de(e+"."+i).pubkey)),o=await e.getMultipleAccountsInfo(s);return a.filter(((e,t)=>!!o[t]))},fe=(e,t=V)=>{let r=ae(e);return{pubkey:se(r,void 0,t),hashed:r}},de=(t,r)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=e.from([r||0]).toString().concat(n[0]),{pubkey:i}=fe(n[1]);return{...fe(t,i),isSub:!0,parent:i}}if(3===n.length&&r){const{pubkey:t}=fe(n[2]),{pubkey:r}=fe("\0".concat(n[1]),t),i=e.from([1]).toString();return{...fe(i.concat(n[0]),r),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new D(R.InvalidInput);return{...fe(t,V),isSub:!1,parent:void 0}};async function le(e,t){const r=[{memcmp:{offset:32,bytes:t.toBase58()}},{memcmp:{offset:0,bytes:V.toBase58()}}];return(await e.getProgramAccounts(G,{filters:r})).map((e=>e.pubkey))}const we=async e=>{const t=[{memcmp:{offset:0,bytes:V.toBase58()}}];return await e.getProgramAccounts(G,{dataSlice:{offset:32,length:32},filters:t})},pe=(e,t)=>{const{pubkey:r,parent:n}=de(e),i=ae(r.toBase58());return se(i,q,t?n:void 0)},ge=(e,t)=>{if(!e)throw new D(t)},he=async(e,r)=>{try{const[n]=await t.findProgramAddress([M,r.toBuffer()],H);if("0"===(await s(e,n)).supply.toString())return;const i=[{memcmp:{offset:0,bytes:n.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}},me=async e=>{const r=await e.getProgramAccounts(H,{filters:[{memcmp:{offset:0,bytes:"3"}}]});return r.map((e=>new t(e.account.data.slice(66,98))))},ye=e=>[{memcmp:{offset:32,bytes:e}},{memcmp:{offset:64,bytes:"2"}}],Se=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(H,{filters:r})})(e,t.mint);if(1===r.length)return F.deserialize(r[0].account.data)},be=async(e,t)=>{const r=await(async(e,t)=>{const r=[...ye(t.toBase58()),{dataSize:165}],n=(await e.getProgramAccounts(a,{filters:r})).map((e=>o.decode(e.account.data))).map((t=>Se(e,t)));return(await Promise.all(n)).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(e){this.parentName=new t(e.parentName),this.owner=new t(e.owner),this.class=new t(e.class)}static async retrieve(e,t){var r;const n=await e.getAccountInfo(t);if(!n)throw new D(R.AccountDoesNotExist);let i=w(this.schema,ve,n.data);i.data=null===(r=n.data)||void 0===r?void 0:r.slice(this.HEADER_LEN);return{registry:i,nftOwner:await he(e,t)}}static async _retrieveBatch(e,t){const r=await e.getMultipleAccountsInfo(t),n=e=>{if(!e)return;const t=w(this.schema,ve,e);return t.data=null==e?void 0:e.slice(this.HEADER_LEN),t};return r.map((e=>n(null==e?void 0:e.data)))}static async retrieveBatch(e,t){let r=[];const n=[...t];for(;n.length>0;)r.push(...await this._retrieveBatch(e,n.splice(0,100)));return r}}async function Ae(e,t){if(!await e.getAccountInfo(t))throw new D(R.AccountDoesNotExist);return ve.retrieve(e,t)}async function ke(t){const r=O+t,n=p(e.from(r,"utf8")).slice(2);return e.from(n,"hex")}async function Be(r,n,i){const a=[r];n?a.push(n.toBuffer()):a.push(e.alloc(32)),i?a.push(i.toBuffer()):a.push(e.alloc(32));const[s]=await t.findProgramAddress(a,G);return s}async function Ie(e,t){const r=await ke(t.toBase58()),n=await Be(r,q),{registry:i}=await ve.retrieve(e,n);if(!i.data)throw new D(R.NoAccountData);const a=new f(i.data.slice(0,4),"le").toNumber();return i.data.slice(4,4+a).toString()}async function Ee(e,t){let r=[];for(let e of t){const t=await ke(e.toBase58()),n=await Be(t,q);r.push(n)}return(await ve.retrieveBatch(e,r)).map((e=>{if(void 0===e||void 0===e.data)return;let t=new f(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 Re=async(e,t=V)=>{let r=await ke(e);return{pubkey:await Be(r,void 0,t),hashed:r}},De=async(t,r=!1)=>{t.endsWith(".sol")&&(t=t.slice(0,-4));const n=t.split(".");if(2===n.length){const t=e.from([r?1:0]).toString().concat(n[0]),{pubkey:i}=await Re(n[1]);return{...await Re(t,i),isSub:!0,parent:i}}if(3===n.length&&r){const{pubkey:t}=await Re(n[2]),{pubkey:r}=await Re("\0".concat(n[1]),t),i=e.from([1]).toString();return{...await Re(i.concat(n[0]),r),isSub:!0,parent:t,isSubRecord:!0}}if(n.length>=3)throw new D(R.InvalidInput);return{...await Re(t,V),isSub:!1,parent:void 0}},Ne=async(e,t)=>{const{pubkey:r,parent:n}=await De(e),i=await ke(r.toBase58());return await Be(i,q,t?n:void 0)};var We;!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"}(We||(We={}));const Te=new Map([[We.SOL,96],[We.ETH,20],[We.BSC,20],[We.Injective,20],[We.A,4],[We.AAAA,16]]);var xe;!function(e){e[e.V1=1]="V1",e[e.V2=2]="V2"}(xe||(xe={}));const Le=(e,t,r)=>S.sign.detached.verify(e,t,r.toBytes()),Ce=async(r,n)=>{const{pubkey:i}=de(n),{registry:a,nftOwner:s}=await ve.retrieve(r,i);if(s)return s;try{const i=Pe(n,We.SOL),s=await _e(r,n);if(!(null==s?void 0:s.data))throw new D(R.NoRecordData);const o=new TextEncoder,c=e.concat([s.data.slice(0,32),i.toBuffer()]),u=o.encode(c.toString("hex"));if(!Le(u,s.data.slice(32),a.owner))throw new D(R.InvalidSignature);return new t(s.data.slice(0,32))}catch(e){if(e instanceof Error&&"FetchError"===e.name)throw e}return a.owner},Pe=(e,t)=>{const{pubkey:r}=de(t+"."+e,xe.V1);return r};async function je(e,t,r,n){const i=Pe(t,r);let{registry:a}=await ve.retrieve(e,i);if(!a.data)throw new D(R.NoRecordData);if(n)return it(a,r,i);const s=Te.get(r);return a.data=a.data.slice(0,s),a}async function Ue(e,t,r,n){const i=r.map((e=>Pe(t,e))),a=await ve.retrieveBatch(e,i);return n?a.map(((e,n)=>{if(e)return it(e,r[n],Pe(t,r[n]))})):a}const He=async(e,t)=>await je(e,t,We.IPFS,!0),Me=async(e,t)=>await je(e,t,We.ARWV,!0),ze=async(e,t)=>await je(e,t,We.ETH,!0),Fe=async(e,t)=>await je(e,t,We.BTC,!0),Ge=async(e,t)=>await je(e,t,We.LTC,!0),Oe=async(e,t)=>await je(e,t,We.DOGE,!0),Ve=async(e,t)=>await je(e,t,We.Email,!0),Xe=async(e,t)=>await je(e,t,We.Url,!0),Ke=async(e,t)=>await je(e,t,We.Discord,!0),Ze=async(e,t)=>await je(e,t,We.Github,!0),qe=async(e,t)=>await je(e,t,We.Reddit,!0),Je=async(e,t)=>await je(e,t,We.Twitter,!0),Ye=async(e,t)=>await je(e,t,We.Telegram,!0),Qe=async(e,t)=>await je(e,t,We.Pic,!0),$e=async(e,t)=>await je(e,t,We.SHDW,!0),_e=async(e,t)=>await je(e,t,We.SOL),et=async(e,t)=>await je(e,t,We.POINT,!0),tt=async(e,t)=>await je(e,t,We.BSC,!0),rt=async(e,t)=>await je(e,t,We.Injective,!0),nt=async(e,t)=>await je(e,t,We.Backpack,!0),it=(t,r,n)=>{const i=null==t?void 0:t.data;if(!i)return;if(0===i.compare(e.alloc(i.length)))return;const a=Te.get(r),s=(e=>{const t=Array.from(e);return t.length-1-t.reverse().findIndex((e=>0!==e))+1})(i);if(!a)return i.slice(0,s).toString("utf-8");if(r===We.SOL){const r=new TextEncoder,a=e.concat([i.slice(0,32),n.toBuffer()]),s=r.encode(a.toString("hex"));if(Le(s,i.slice(32,96),t.owner))return b.encode(i.slice(0,32))}if(a&&s!==a){const t=i.slice(0,s).toString("utf-8");if(r===We.Injective){const e=m(t);if("inj"===e.prefix&&20===e.data.length)return t}else if(r===We.BSC||r===We.ETH){const r=t.slice(0,2),n=t.slice(2);if("0x"===r&&20===e.from(n,"hex").length)return t}else if((r===We.A||r===We.AAAA)&&v.isValid(t))return t;throw new D(R.InvalidRecordData)}if(r===We.ETH||r===We.BSC)return"0x"+i.slice(0,a).toString("hex");if(r===We.Injective)return y("inj",i.slice(0,a),"bech32");if(r===We.A||r===We.AAAA)return v.fromByteArray([...i.slice(0,a)]).toString();throw new D(R.InvalidRecordData)},at=(t,r)=>{if(!Te.get(r))return r!==We.CNAME&&r!==We.TXT||(t=A(t)),e.from(t,"utf-8");if(r===We.SOL)throw new D(R.UnsupportedRecord,"Use `serializeSolRecord` for SOL record");if(r===We.ETH||r===We.BSC)return ge("0x"===t.slice(0,2),R.InvalidEvmAddress),e.from(t.slice(2),"hex");if(r===We.Injective){const r=m(t);return ge("inj"===r.prefix,R.InvalidInjectiveAddress),ge(20===r.data.length,R.InvalidInjectiveAddress),e.from(r.data)}if(r===We.A){const r=v.parse(t).toByteArray();return ge(4===r.length,R.InvalidARecord),e.from(r)}if(r===We.AAAA){const r=v.parse(t).toByteArray();return ge(16===r.length,R.InvalidAAAARecord),e.from(r)}throw new D(R.InvalidRecordInput)},st=(t,r,n,i)=>{const a=e.concat([t.toBuffer(),r.toBuffer()]),s=(new TextEncoder).encode(a.toString("hex")),o=Le(s,i,n);return ge(o,R.InvalidSignature),e.concat([t.toBuffer(),i])};async function ot(e,t,r,i,a,s,o,c){const u=await ke(t),f=await Be(u,o,c),d=s||await e.getMinimumBalanceForRentExemption(r);let l;if(c){const{registry:t}=await Ae(e,c);l=t.owner}return T(G,n.programId,f,a,i,u,new W(d),new N(r),o,c,l)}async function ct(e,t,r,n,i,a){const s=await ke(t),o=await Be(s,i,a);let c;c=i||(await ve.retrieve(e,o)).registry.owner;return x(G,o,new N(r),n,c)}async function ut(e,t,r,n,i,a){const s=await ke(t),o=await Be(s,n,i);let c;c=n||(await ve.retrieve(e,o)).registry.owner;return L(G,o,r,c,n,i,a)}async function ft(e,t,r,n,i){const a=await ke(t),s=await Be(a,n,i);let o;o=n||(await ve.retrieve(e,s)).registry.owner;return C(G,s,r,o)}const dt=async(e,r,s,o,f,d=_,l)=>{if(r.includes(".")||r.trim().toLowerCase()!==r)throw new D(R.InvalidDomain);const[w]=t.findProgramAddressSync([X.toBuffer()],X),p=ae(r),m=se(p,void 0,V),y=ae(m.toBase58()),S=se(y,w),[b]=t.findProgramAddressSync([m.toBuffer()],X),v=ee.findIndex((e=>null==l?void 0:l.equals(e)));let A;const k=[];if(-1!==v&&l){A=c(d,l,!0);const t=await e.getAccountInfo(A);if(!(null==t?void 0:t.data)){const e=u(o,A,l,d);k.push(e)}}const B=new g(e,h("mainnet-beta")),I=await B.getData(),E=te.get(d.toBase58());if(!E)throw new D(R.SymbolNotFound,`No symbol found for mint ${d.toBase58()}`);const N=I.productPrice.get("Crypto."+E+"/USD"),W=I.productFromSymbol.get("Crypto."+E+"/USD"),T=c(d,ne),x=new U({name:r,space:s,referrerIdxOpt:-1!=v?v:null}).getInstruction(X,G,V,m,S,n.programId,w,o,f,re,N.productAccountKey,new t(W.price_account),T,a,i,b,A);return k.push(x),[[],k]},lt=async(e,r,a,s,o)=>{let[c]=await t.findProgramAddress([X.toBuffer()],X),u=await ke(e.toBase58()),f=await Be(u,c,s);return[[],[new j({name:r}).getInstruction(X,G,V,f,n.programId,c,a,i,s,o)]]},wt=async(e,t,r,n=2e3)=>{const i=[],a=t.split(".")[0];if(!a)throw new D(R.InvalidSubdomain);const{parent:s,pubkey:o}=de(t),c=await e.getMinimumBalanceForRentExemption(n+ve.HEADER_LEN),u=await ot(e,"\0".concat(a),n,r,r,c,void 0,s);i.push(u);const f=pe(t,!0),d=await e.getAccountInfo(f);if(!(null==d?void 0:d.data)){const[,e]=await lt(o,"\0".concat(a),r,s,r);i.push(...e)}return[[],i]},pt=async(e,t,r,i,a,s)=>{ge(r!==We.SOL,R.UnsupportedRecord);const{pubkey:o,hashed:c,parent:u}=de(`${r}.${t}`,xe.V1),f=at(i,r).length,d=await e.getMinimumBalanceForRentExemption(f+ve.HEADER_LEN);return T(G,n.programId,o,a,s,c,new W(d),new N(f),void 0,u,a)},gt=async(e,t,r,i,a,s)=>{const o=i.serialize().length,{pubkey:c,hashed:u,parent:f}=de(`${r}.${t}`,xe.V2),d=await e.getMinimumBalanceForRentExemption(o+ve.HEADER_LEN);return T(G,n.programId,c,a,s,u,new W(d),new N(o),void 0,f,a)},ht=async(e,t,r,n,i,a)=>{ge(r!==We.SOL,R.UnsupportedRecord);const{pubkey:s}=de(`${r}.${t}`,xe.V1),o=await e.getAccountInfo(s);ge(!!(null==o?void 0:o.data),R.AccountDoesNotExist);const c=at(n,r);if((null==o?void 0:o.data.slice(96).length)!==c.length)return[C(G,s,a,i),await pt(e,t,r,n,i,a)];return[x(G,s,new N(0),c,i)]},mt=async(t,r,n,i,a,s)=>{const{pubkey:o}=de(`${n}.${r}`,xe.V2),c=await t.getAccountInfo(o),u=i.serialize();if(c&&(null==c?void 0:c.data.slice(96).length)!==u.length)return[C(G,o,s,a),await gt(t,r,n,i,a,s),x(G,o,new N(0),e.from(u),a)];return[x(G,o,new N(0),e.from(u),a)]},yt=async(e,t,r,n)=>{const{pubkey:i}=de(`${t}.${e}`,xe.V2);return C(G,i,n,r)},St=async(e,t,r,i,a,s)=>{const{pubkey:o,hashed:c,parent:u}=de(`${We.SOL}.${t}`,xe.V1),f=st(r,o,i,a).length,d=await e.getMinimumBalanceForRentExemption(f+ve.HEADER_LEN);return[T(G,n.programId,o,i,s,c,new W(d),new N(f),void 0,u,i)]},bt=async(e,t,r,n,i,a)=>{const{pubkey:s}=de(`${We.SOL}.${t}`,xe.V1),o=await e.getAccountInfo(s);if(ge(!!(null==o?void 0:o.data),R.AccountDoesNotExist),96!==(null==o?void 0:o.data.length))return[C(G,s,a,n),await St(e,t,r,n,i,a)];const c=st(r,s,n,i);return[x(G,s,new N(0),c,n)]};async function vt(e,t,r,i,a){const s=await ke(t),o=await Be(s,void 0,Y),c=await e.getMinimumBalanceForRentExemption(i+ve.HEADER_LEN);let u=[T(G,n.programId,o,r,a,s,new W(c),new N(i),void 0,Y,J)];return u=u.concat(await Tt(e,t,o,r,a)),u}async function At(e,t,r,n){const i=await ke(e),a=await Be(i,void 0,Y);return[x(G,a,new N(r),n,t)]}async function kt(e,t,r,n,i){const a=await ke(t),s=await Be(a,void 0,Y);let o=[L(G,s,n,r,void 0)];const c=await ke(r.toString());return await Be(c,J,void 0),o.push(await ft(e,r.toString(),i,J,Y)),o=o.concat(await Tt(e,t,s,n,i)),o}async function Bt(e,t){const r=await ke(e),n=await Be(r,void 0,Y),i=await ke(t.toString()),a=await Be(i,J,Y);return[C(G,n,t,t),C(G,a,t,t)]}async function It(e){const t=await ke(e);return await Be(t,void 0,Y)}async function Et(e,t){const r=await ke(t),n=await Be(r,void 0,Y),{registry:i}=await ve.retrieve(e,n);return i}async function Rt(e,r){const n=await ke(r.toString()),i=await Be(n,J,Y);let a=await Wt.retrieve(e,i);return[a.twitterHandle,new t(a.twitterRegistryKey)]}async function Dt(e,r){const n=[{memcmp:{offset:0,bytes:Y.toBase58()}},{memcmp:{offset:32,bytes:r.toBase58()}},{memcmp:{offset:64,bytes:J.toBase58()}}],i=await e.getProgramAccounts(G,{filters:n});for(const e of i)if(e.account.data.length>ve.HEADER_LEN+32){let r=e.account.data.slice(ve.HEADER_LEN),n=w(Wt.schema,Wt,r);return[n.twitterHandle,new t(n.twitterRegistryKey)]}throw new D(R.AccountDoesNotExist)}async function Nt(r,n){const i=[{memcmp:{offset:0,bytes:Y.toBase58()}},{memcmp:{offset:32,bytes:n.toBase58()}},{memcmp:{offset:64,bytes:new t(e.alloc(32,0)).toBase58()}}],a=await r.getProgramAccounts(G,{filters:i});if(a.length>1)throw new D(R.MultipleRegistries);return a[0].account.data.slice(ve.HEADER_LEN)}class Wt{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 D(R.InvalidReverseTwitter);return w(this.schema,Wt,r.data.slice(ve.HEADER_LEN))}}async function Tt(t,r,i,a,s){const o=await ke(a.toString()),c=await Be(o,J,Y);let u=d(Wt.schema,new Wt({twitterRegistryKey:i.toBytes(),twitterHandle:r}));return[T(G,n.programId,c,a,s,o,new W(await t.getMinimumBalanceForRentExemption(u.length+ve.HEADER_LEN)),new N(u.length),J,Y,J),x(G,c,new N(0),e.from(u),J)]}Wt.schema=new Map([[Wt,{kind:"struct",fields:[["twitterRegistryKey",[32]],["twitterHandle","string"]]}]]);const xt=new t("85iDfUvr3HJyLM2zcq5BXSiDvUWfw6cSE1FfNBo8Ap29");class Lt{constructor(e){this.tag=e.tag,this.nameAccount=new t(e.nameAccount)}static deserialize(e){return l(this.schema,Lt,e)}static async retrieve(e,t){const r=await e.getAccountInfo(t);if(!r||!r.data)throw new D(R.FavouriteDomainNotFound);return this.deserialize(r.data)}static async getKey(r,n){return await t.findProgramAddress([e.from("favourite_domain"),n.toBuffer()],r)}static getKeySync(r,n){return t.findProgramAddressSync([e.from("favourite_domain"),n.toBuffer()],r)}}Lt.schema=new Map([[Lt,{kind:"struct",fields:[["tag","u8"],["nameAccount",[32]]]}]]);const Ct=async(e,r)=>{const[n]=Lt.getKeySync(xt,new t(r)),i=await Lt.retrieve(e,n),a=await oe(e,i.nameAccount);return{domain:i.nameAccount,reverse:a}};var Pt,jt,Ut;!function(e){e.DegenPoet1="DegenPoet#1"}(Pt||(Pt={})),function(e){e[e.None=0]="None",e[e.Solana=1]="Solana",e[e.Ethereum=2]="Ethereum",e[e.Injective=3]="Injective"}(jt||(jt={})),function(e){e[e.None=0]="None",e[e.Solana=1]="Solana"}(Ut||(Ut={}));const Ht={signatureType:Ut.None,signature:Buffer.alloc(0)},Mt={signatureType:jt.None,signature:Buffer.alloc(0)},zt=new Map([[We.Backpack,new t("ExXjtfdQe8JacoqP9Z535WzQKjF4CzW1TTRKRgpxvya3").toBuffer()]]),Ft=new Set([We.IPFS,We.ARWV,We.LTC,We.DOGE,We.Email,We.Url,We.Discord,We.Github,We.Reddit,We.Twitter,We.Telegram,We.Pic,We.SHDW,We.POINT,We.Backpack,We.TXT,We.CNAME,We.BTC]),Gt=new Set([We.ETH,We.Injective,We.SOL]),Ot=e=>{switch(e){case jt.None:return 0;case jt.Solana:return 64;case jt.Ethereum:case jt.Injective:return 65;case Ut.None:return 0;case Ut.Solana:return 64;default:throw new D(R.UnsupportedSignature,`Unsupported signature type: ${e}`)}},Vt=e=>{const t=zt.get(e);if(!t)throw new D(R.RecordDoestNotSupportGuardianSig);return t},Xt=(e,t,r)=>S.sign.detached.verify(e,t,r),Kt=(e,t,r)=>{const n=B(e);return I(n,t)===E(r)},Zt=(e,t,r)=>{throw new Error("TODO")},qt=(e,t,r,n)=>{switch(n){case jt.Ethereum:case jt.Injective:return Kt(e.toString(),t.toString(),r.toString());case jt.Solana:return Xt(e,t,r);case jt.None:throw new D(R.RecordIsNotSigned);default:throw new D(R.UnsupportedSignatureType)}},Jt=(e,t,r,n)=>{switch(n){case Ut.Solana:return Xt(e,t,r);case Ut.None:throw new D(R.RecordIsNotSigned);default:throw new D(R.UnsupportedSignatureType)}};class Yt{constructor(e){this.userSignature=e.userSignature,this.guardianSignature=e.guardianSignature,this.contentLength=e.contentLength}serialize(){return d(Yt.schema,this)}static deserialize(e){return l(this.schema,Yt,e)}}Yt.LEN=8,Yt.schema=new Map([[Yt,{kind:"struct",fields:[["userSignature","u16"],["guardianSignature","u16"],["contentLength","u32"]]}]]);class Qt{constructor(e){this.header=e.header,this.buffer=e.buffer}getLength(){return Yt.LEN+this.buffer.length}static deserializeUnchecked(e){const t=w(Yt.schema,Yt,e);return new Qt({header:t,buffer:Buffer.from(e.slice(Yt.LEN))})}serialize(){const e=this.header.serialize();return Buffer.concat([e,this.buffer])}deserializeContent(e){return $t(this.getContent(),e)}getContent(){const e=Ot(this.header.guardianSignature)+Ot(this.header.userSignature);return Buffer.from(this.buffer.slice(e,e+this.header.contentLength))}static new(e,t,r=Ht,n=Mt){const i=_t(e,t),a=Buffer.concat([r.signature,n.signature,i]),s=new Yt({userSignature:r.signatureType,guardianSignature:n.signatureType,contentLength:i.length});return new Qt({header:s,buffer:a})}checkGuardianSignature(e,t){const r=Ot(this.header.guardianSignature),n=Ot(this.header.userSignature),i=Buffer.from(this.buffer.slice(n,n+r));return qt(e,i,t,this.header.guardianSignature)}checkUserSignature(e,t){const r=Ot(this.header.userSignature),n=Buffer.from(this.buffer.slice(0,r));return Jt(e,n,t,this.header.userSignature)}static async retrieve(e,t,r,n){const i=tr(r,t),{registry:a}=await ve.retrieve(e,i);if(!a.data)throw new D(R.InvalidRecordData);const s=this.deserializeUnchecked(a.data),o=s.getContent(),c=Buffer.concat([i.toBuffer(),o]);if(!(null==n?void 0:n.skipGuardianSig)){const e=Gt.has(t)?Buffer.from(s.getContent().slice(32)):Vt(t);s.checkGuardianSignature(c,e)}return(null==n?void 0:n.skipUserSig)||s.checkUserSignature(c,a.owner.toBuffer()),s}static async retrieveBatch(e,t,r){const n=t.map((e=>tr(r,e))),i=await ve.retrieveBatch(e,n),a=[];for(let e of i)try{if(!(null==e?void 0:e.data)){a.push(void 0);continue}const t=Qt.deserializeUnchecked(null==e?void 0:e.data);a.push(t)}catch{a.push(void 0)}return a}}const $t=(e,r)=>{if(Ft.has(r)){const t=e.toString("utf-8");return r===We.CNAME||r===We.TXT?k(t):t}if(r===We.SOL)return new t(e).toBase58();if(r===We.ETH||r===We.BSC)return"0x"+e.toString("hex");if(r===We.Injective)return y("inj",e,"bech32");if(r===We.A||r===We.AAAA)return v.fromByteArray([...e]).toString();throw new D(R.InvalidARecord)},_t=(e,r)=>{if(Ft.has(r))return r!==We.CNAME&&r!==We.TXT||(e=A(e)),Buffer.from(e,"utf-8");if(r===We.SOL)return new t(e).toBuffer();if(r===We.ETH||r===We.BSC)return ge("0x"===e.slice(0,2),R.InvalidEvmAddress),Buffer.from(e.slice(2),"hex");if(r===We.Injective){const t=m(e);return ge("inj"===t.prefix,R.InvalidInjectiveAddress),ge(20===t.data.length,R.InvalidInjectiveAddress),Buffer.from(t.data)}if(r===We.A){const t=v.parse(e).toByteArray();return ge(4===t.length,R.InvalidARecord),Buffer.from(t)}if(r===We.AAAA){const t=v.parse(e).toByteArray();return ge(16===t.length,R.InvalidAAAARecord),Buffer.from(t)}throw new D(R.InvalidARecord)},er=(e,t,r)=>{const n=_t(e,r),i=tr(t,r),a=Buffer.concat([i.toBuffer(),n]).toString("hex");return Buffer.from(a)},tr=(e,t)=>{const{pubkey:r}=de(t+"."+e,xe.V2);return r},rr=new t("ART5dr4bDic2sQVZoFheEmUxwQq5VGSx9he7JxHcXNQD"),nr=(e,t)=>{const r=ae(t),n=ae(e),i=se(n,void 0,ie);return{domainKey:i,bgKey:se(r,void 0,i)}},ir=e=>{if(e===Pt.DegenPoet1)return rr;throw new D(R.InvalidCustomBg)};export{Z as BONFIDA_FIDA_BNB,$ as BONFIDA_USDC_BNB,ie as CUSTOM_BG_TLD,Pt as CustomBg,R as ErrorType,Lt as FavouriteDomain,jt as GuardianSig,zt as Guardians,O as HASH_PREFIX,xt as NAME_OFFERS_ID,G as NAME_PROGRAM_ID,ve as NameRegistryState,Mt as NullGuardianSig,Ht as NullUserSig,N as Numberu32,W as Numberu64,K as PYTH_FIDA_PRICE_ACC,re as PYTH_MAPPING_ACC,Te as RECORD_V1_SIZE,ee as REFERRERS,X as REGISTER_PROGRAM_ID,q as REVERSE_LOOKUP_CLASS,V as ROOT_DOMAIN_ACCOUNT,We as Record,Qt as RecordV2,Yt as RecordV2Header,xe as RecordVersion,Wt as ReverseTwitterRegistryState,Gt as SELF_SIGNED,D as SNSError,Q as SOL_RECORD_SIG_LEN,te as TOKENS_SYM_MINT,Y as TWITTER_ROOT_PARENT_REGISTRY_KEY,J as TWITTER_VERIFICATION_AUTHORITY,_ as USDC_MINT,Ft as UTF8_ENCODED,Ut as UserSig,ne as VAULT_OWNER,At as changeTwitterRegistryData,kt as changeVerifiedPubkey,ge as check,Le as checkSolRecord,T as createInstruction,U as createInstructionV3,ot as createNameRegistry,pt as createRecordInstruction,gt as createRecordV2Instruction,j as createReverseInstruction,lt as createReverseName,Tt as createReverseTwitterRegistry,St as createSolRecordInstruction,wt as createSubdomain,P as createV2Instruction,vt as createVerifiedTwitterRegistry,C as deleteInstruction,ft as deleteNameRegistry,yt as deleteRecordV2,Bt as deleteTwitterRegistry,it as deserializeRecord,$t as deserializeRecordV2Content,ue as findSubdomains,le as getAllDomains,we as getAllRegisteredDomains,ir as getArtistPubkey,Me as getArweaveRecord,nt as getBackpackRecord,tt as getBscRecord,Fe as getBtcRecord,nr as getCustomBgKeys,Ke as getDiscordRecord,Oe as getDogeRecord,De as getDomainKey,de as getDomainKeySync,Ve as getEmailRecord,ze as getEthRecord,Ct as getFavoriteDomain,Ze as getGithubRecord,Vt as getGuardianPublickey,Rt as getHandleAndRegistryKey,ke as getHashedName,ae as getHashedNameSync,rt as getInjectiveRecord,He as getIpfsRecord,Ge as getLtcRecord,er as getMessageToSign,Be as getNameAccountKey,se as getNameAccountKeySync,Ae as getNameOwner,Qe as getPicRecord,et as getPointRecord,je as getRecord,Pe as getRecordKeySync,tr as getRecordV2Key,Ue as getRecords,qe as getRedditRecord,Ne as getReverseKey,pe as getReverseKeySync,$e as getShdwRecord,Ot as getSignatureByteLength,_e as getSolRecord,Ye as getTelegramRecord,be as getTokenizedDomains,Dt as getTwitterHandleandRegistryKeyViaFilters,Je as getTwitterRecord,Et as getTwitterRegistry,Nt as getTwitterRegistryData,It as getTwitterRegistryKey,Xe as getUrlRecord,Ie as performReverseLookup,Ee as performReverseLookupBatch,dt as registerDomainName,Ce as resolve,he as retrieveNftOwner,me as retrieveNfts,oe as reverseLookup,ce as reverseLookupBatch,at as serializeRecord,_t as serializeRecordV2Content,st as serializeSolRecord,L as transferInstruction,ut as transferNameOwnership,x as updateInstruction,ct as updateNameRegistryData,ht as updateRecordInstruction,mt as updateRecordV2Instruction,bt as updateSolRecordInstruction,Kt as verifyEthereumSignature,qt as verifyGuardianSignature,Zt as verifyInjectiveSignature,Xt as verifySolanaSignature,Jt as verifyUserSignature};
@@ -0,0 +1,3 @@
1
+ export declare enum CustomBg {
2
+ DegenPoet1 = "DegenPoet#1"
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonfida/spl-name-service",
3
- "version": "2.0.0-alpha.8",
3
+ "version": "2.0.0-alpha.9",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist"