@x1id/resolve 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -605,8 +605,10 @@ const requirements = buildX402Requirements({
605
605
  buyer: buyerAddress, // x1id v1 is self-sponsored: buyer pays their own fee, no facilitator
606
606
  network: X1_MAINNET_NETWORK, // defaults to mainnet; a server on another cluster
607
607
  // should pass x402NetworkForGenesis(await getGenesisHash)
608
- memo: "invoice-42",
608
+ reference: invoiceReference, // a unique base58 reference per invoice (the payment carries it)
609
609
  });
610
+ // Buyer side for api.x1id.io: sign x402RedeemMessage(reference) with the paying
611
+ // wallet and send it as payload.payerSig next to payload.signature.
610
612
  ```
611
613
 
612
614
  This package only builds the requirements object — it does not build, sign,
@@ -44,6 +44,18 @@ export declare const SET_LEASE_GRACE_PERIOD_DISCRIMINATOR: Uint8Array;
44
44
  export declare const SET_RECOVERY_TIMELOCK_DISCRIMINATOR: Uint8Array;
45
45
  export declare const SET_MIN_COMMITMENT_AGE_DISCRIMINATOR: Uint8Array;
46
46
  export declare const SET_MAX_COMMITMENT_AGE_DISCRIMINATOR: Uint8Array;
47
+ /** `sha256("global:set_namespace_creation_fee")[0..8]` — sets
48
+ * `Config.namespace_creation_fee_lamports` (u64, the permissionless
49
+ * `create_namespace` TLD creation fee paid to treasury). */
50
+ export declare const SET_NAMESPACE_CREATION_FEE_DISCRIMINATOR: Uint8Array;
51
+ /** Byte offset of `Config.namespace_creation_fee_lamports` (u64 LE) in the
52
+ * Config account data, including the 8-byte Anchor discriminator — mirrors
53
+ * `Config::NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET` (state.rs). */
54
+ export declare const NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET = 436;
55
+ /** Decode `Config.namespace_creation_fee_lamports` from raw Config account
56
+ * data. Returns null for a Config too short to carry the field (pre-v6
57
+ * layout) — never a guessed default. */
58
+ export declare function decodeNamespaceCreationFeeLamports(configData: Uint8Array): bigint | null;
47
59
  /** Map an admin config action name → its discriminator (for a relay executor
48
60
  * that dispatches on the action string). set_admin/set_attestor intentionally
49
61
  * absent — those are owner-gated, never dispatched here. */
@@ -54,10 +66,12 @@ export interface AdminScalarParams {
54
66
  readonly config: AddressLike;
55
67
  /** The discriminator for the specific setter (from ADMIN_SCALAR_DISCRIMINATORS). */
56
68
  readonly discriminator: Uint8Array;
57
- /** The integer arg (u64/i64 encoding is identical for a non-negative value). */
58
- readonly value: number | bigint;
69
+ /** The integer arg (u64/i64 encoding is identical for a non-negative value).
70
+ * A string must be plain decimal digits (lamports amounts beyond JS's safe
71
+ * integer range arrive from the admin queue as decimal strings). */
72
+ readonly value: number | bigint | string;
59
73
  }
60
74
  /** Build any one-integer-arg AdminOnly setter (lease rate divisor, lease grace,
61
- * recovery timelock, min/max commitment age). disc(8) + value as little-endian
75
+ * recovery timelock, min/max commitment age, namespace creation fee). disc(8) + value as little-endian
62
76
  * u64(8). The value must be a non-negative integer that fits u64. */
63
77
  export declare function buildAdminScalarSetterIx(p: AdminScalarParams): BuiltInstruction;
@@ -84,6 +84,22 @@ export const SET_LEASE_GRACE_PERIOD_DISCRIMINATOR = Uint8Array.from([212, 2, 110
84
84
  export const SET_RECOVERY_TIMELOCK_DISCRIMINATOR = Uint8Array.from([178, 183, 148, 243, 155, 166, 79, 6]);
85
85
  export const SET_MIN_COMMITMENT_AGE_DISCRIMINATOR = Uint8Array.from([181, 20, 114, 43, 51, 23, 47, 248]);
86
86
  export const SET_MAX_COMMITMENT_AGE_DISCRIMINATOR = Uint8Array.from([163, 106, 196, 206, 146, 156, 79, 249]);
87
+ /** `sha256("global:set_namespace_creation_fee")[0..8]` — sets
88
+ * `Config.namespace_creation_fee_lamports` (u64, the permissionless
89
+ * `create_namespace` TLD creation fee paid to treasury). */
90
+ export const SET_NAMESPACE_CREATION_FEE_DISCRIMINATOR = Uint8Array.from([158, 152, 239, 141, 143, 5, 75, 198]);
91
+ /** Byte offset of `Config.namespace_creation_fee_lamports` (u64 LE) in the
92
+ * Config account data, including the 8-byte Anchor discriminator — mirrors
93
+ * `Config::NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET` (state.rs). */
94
+ export const NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET = 436;
95
+ /** Decode `Config.namespace_creation_fee_lamports` from raw Config account
96
+ * data. Returns null for a Config too short to carry the field (pre-v6
97
+ * layout) — never a guessed default. */
98
+ export function decodeNamespaceCreationFeeLamports(configData) {
99
+ if (configData.length < NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET + 8)
100
+ return null;
101
+ return new DataView(configData.buffer, configData.byteOffset, configData.byteLength).getBigUint64(NAMESPACE_CREATION_FEE_LAMPORTS_OFFSET, true);
102
+ }
87
103
  /** Map an admin config action name → its discriminator (for a relay executor
88
104
  * that dispatches on the action string). set_admin/set_attestor intentionally
89
105
  * absent — those are owner-gated, never dispatched here. */
@@ -93,11 +109,18 @@ export const ADMIN_SCALAR_DISCRIMINATORS = {
93
109
  set_recovery_timelock: SET_RECOVERY_TIMELOCK_DISCRIMINATOR,
94
110
  set_min_commitment_age: SET_MIN_COMMITMENT_AGE_DISCRIMINATOR,
95
111
  set_max_commitment_age: SET_MAX_COMMITMENT_AGE_DISCRIMINATOR,
112
+ set_namespace_creation_fee: SET_NAMESPACE_CREATION_FEE_DISCRIMINATOR,
96
113
  };
97
114
  /** Build any one-integer-arg AdminOnly setter (lease rate divisor, lease grace,
98
- * recovery timelock, min/max commitment age). disc(8) + value as little-endian
115
+ * recovery timelock, min/max commitment age, namespace creation fee). disc(8) + value as little-endian
99
116
  * u64(8). The value must be a non-negative integer that fits u64. */
100
117
  export function buildAdminScalarSetterIx(p) {
118
+ if (typeof p.value === "string" && !/^\d{1,20}$/.test(p.value)) {
119
+ throw new Error(`value ${JSON.stringify(p.value)} is not a non-negative decimal integer`);
120
+ }
121
+ if (typeof p.value === "number" && !Number.isSafeInteger(p.value)) {
122
+ throw new Error(`value ${p.value} is not a safe integer`);
123
+ }
101
124
  const raw = typeof p.value === "bigint" ? p.value : BigInt(p.value);
102
125
  if (raw < 0n || raw > 0xffffffffffffffffn) {
103
126
  throw new Error(`value ${p.value} is out of u64 range`);
package/dist/index.d.ts CHANGED
@@ -52,6 +52,7 @@ export * from "./recordWrite.js";
52
52
  export * from "./clearRecords.js";
53
53
  export * from "./commitReveal.js";
54
54
  export * from "./pnftTransfer.js";
55
+ export * from "./mintNft.js";
55
56
  export * from "./payment.js";
56
57
  export * from "./signin.js";
57
58
  export * from "./connect.js";
@@ -126,4 +127,5 @@ export interface Resolver {
126
127
  export declare function createResolver(config: ResolverConfig): Resolver;
127
128
  export * from "./adminMarket.js";
128
129
  export * from "./namespaceOverride.js";
130
+ export * from "./namespacePricing.js";
129
131
  export * from "./universal.js";
package/dist/index.js CHANGED
@@ -59,6 +59,7 @@ export * from "./recordWrite.js";
59
59
  export * from "./clearRecords.js";
60
60
  export * from "./commitReveal.js";
61
61
  export * from "./pnftTransfer.js";
62
+ export * from "./mintNft.js";
62
63
  export * from "./payment.js";
63
64
  export * from "./signin.js";
64
65
  export * from "./connect.js";
@@ -816,6 +817,7 @@ export function createResolver(config) {
816
817
  }
817
818
  export * from "./adminMarket.js";
818
819
  export * from "./namespaceOverride.js";
820
+ export * from "./namespacePricing.js";
819
821
  // The X1ID Universal Resolver (#8475): cross-namespace resolution (.sol via SNS,
820
822
  // .eth via ENS) alongside the native path. Additive — the native resolver above
821
823
  // is untouched; `createUniversalResolver` composes it with external adapters.
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Tokenized registration — the capability-pNFT instructions of the registry
3
+ * program: `mint_handle_nft` (tokenize an already-registered handle),
4
+ * `mint_handle_nft_with_uri` (same, caller-pinned metadata URI),
5
+ * `register_tokenized` (register + mint in ONE instruction — the default
6
+ * permanent-XNT purchase) and `register_revealed_tokenized` (its
7
+ * commit-reveal sibling).
8
+ *
9
+ * The minted NFT is a Metaplex ProgrammableNonFungible (pNFT) VERIFIED into
10
+ * the "X1ID Handles" collection, with treasury royalties. Its token account
11
+ * is FROZEN by Token Metadata; move it with `buildTransferV1Ix`
12
+ * (pnftTransfer.ts), never a plain SPL transfer.
13
+ *
14
+ * One backend call for a tokenized purchase (payer = owner = the user):
15
+ *
16
+ * ```ts
17
+ * import { PublicKey } from "@solana/web3.js";
18
+ * import {
19
+ * deriveTokenizedNftAccounts, buildRegisterTokenizedIx, fetchConfigTreasury,
20
+ * REGISTER_TOKENIZED_CU_LIMIT, HandleType,
21
+ * } from "@x1id/resolve";
22
+ *
23
+ * const find = (seeds, pid) => PublicKey.findProgramAddressSync(seeds, new PublicKey(pid))[0].toBase58();
24
+ * const te = new TextEncoder();
25
+ * const handle = find([te.encode("handle"), te.encode(canonical)], programId);
26
+ * const accounts = await deriveTokenizedNftAccounts(find, { programId, owner: user, handle });
27
+ * const treasury = await fetchConfigTreasury(rpc, accounts.config);
28
+ * const ix = buildRegisterTokenizedIx({
29
+ * ...accounts, programId, payer: user, owner: user, handle, treasury,
30
+ * name: canonical, handleType: HandleType.Human,
31
+ * });
32
+ * // prepend ComputeBudget SetComputeUnitLimit(REGISTER_TOKENIZED_CU_LIMIT)
33
+ * ```
34
+ *
35
+ * # Account order (source of truth: programs/x1-handles/src/lib.rs)
36
+ *
37
+ * - `MintHandleNft<'info>`: payer(s,w) owner(s) config(w) treasury(w)
38
+ * handle(w) auction listing mint(w) owner_token_account(w) metadata(w)
39
+ * master_edition(w) token_record(w) collection_mint collection_metadata(w)
40
+ * collection_master_edition collection_authority token_metadata_program
41
+ * token_program associated_token_program system_program
42
+ * sysvar_instructions.
43
+ * - `RegisterTokenized<'info>`: payer(s,w) owner config(w) treasury(w)
44
+ * handle(w), then the SAME `mint` … `sysvar_instructions` tail (no
45
+ * auction/listing — a just-created handle can have neither), then the
46
+ * optional integrator(w) / integrator_allowlist pair.
47
+ * - `RegisterRevealedTokenized<'info>`: as `RegisterTokenized` plus
48
+ * commitment(w) right after handle.
49
+ *
50
+ * Note `owner` SIGNS `mint_handle_nft` (it tokenizes its own handle) but does
51
+ * NOT sign the register variants (gifting parity with `register`).
52
+ *
53
+ * # Compute budget
54
+ *
55
+ * The pNFT path (CreateV1 + MintV1 + VerifyCollectionV1 in one program
56
+ * instruction) exceeds the 200k-CU per-instruction default: every
57
+ * transaction carrying one of these instructions MUST also carry a
58
+ * ComputeBudget `SetComputeUnitLimit` — {@link MINT_HANDLE_NFT_CU_LIMIT} or
59
+ * {@link REGISTER_TOKENIZED_CU_LIMIT}. X1 prices the fee by the REQUESTED
60
+ * limit, so these are sized close to measured mainnet consumption.
61
+ *
62
+ * Hand-rolled like the rest of this package: no Anchor client, no
63
+ * `@solana/web3.js` import, no `@types/node`. Builders are pure (no RPC);
64
+ * PDAs are derived through an INJECTED `find_program_address`
65
+ * ({@link PdaFinder}) because this package never hand-rolls the ed25519
66
+ * on-curve check.
67
+ */
68
+ import type { AddressLike, BuiltInstruction, InstructionKey } from "./delegate.js";
69
+ import type { PdaFinder } from "./namespacePricing.js";
70
+ import type { HandleTypeValue } from "./voucher.js";
71
+ /** `sha256("global:mint_handle_nft")[0..8]`. */
72
+ export declare const MINT_HANDLE_NFT_DISCRIMINATOR: Uint8Array;
73
+ /** `sha256("global:mint_handle_nft_with_uri")[0..8]`. */
74
+ export declare const MINT_HANDLE_NFT_WITH_URI_DISCRIMINATOR: Uint8Array;
75
+ /** `sha256("global:register_tokenized")[0..8]`. */
76
+ export declare const REGISTER_TOKENIZED_DISCRIMINATOR: Uint8Array;
77
+ /** `sha256("global:register_revealed_tokenized")[0..8]`. */
78
+ export declare const REGISTER_REVEALED_TOKENIZED_DISCRIMINATOR: Uint8Array;
79
+ /** Compute-unit limit for any transaction carrying `mint_handle_nft` /
80
+ * `mint_handle_nft_with_uri` (measured ~318k CU on mainnet; ~41% headroom). */
81
+ export declare const MINT_HANDLE_NFT_CU_LIMIT = 450000;
82
+ /** Compute-unit limit for any transaction carrying `register_tokenized` /
83
+ * `register_revealed_tokenized` (measured 299k–347k CU live; ≥17% headroom). */
84
+ export declare const REGISTER_TOKENIZED_CU_LIMIT = 420000;
85
+ /** `mpl_token_metadata::MAX_URI_LENGTH` — `mint_handle_nft_with_uri` refuses
86
+ * (`UriTooLong`) a longer URI; checked client-side too. */
87
+ export declare const MAX_NFT_METADATA_URI_LENGTH = 200;
88
+ /** Seed prefix of a handle's NFT mint PDA: `["nft_mint", handle]`. */
89
+ export declare const NFT_MINT_SEED = "nft_mint";
90
+ /** Seed of the collection parent's mint PDA: `["collection_mint"]`. */
91
+ export declare const COLLECTION_MINT_SEED = "collection_mint";
92
+ /** Seed of the collection update-authority PDA: `["collection_authority"]`. */
93
+ export declare const COLLECTION_AUTHORITY_SEED = "collection_authority";
94
+ /** The pNFT account block every tokenized instruction carries from `mint`
95
+ * onward, plus the `["config"]` PDA. Everything here is a PDA/ATA derived
96
+ * from `(programId, owner, handle)` — see {@link deriveTokenizedNftAccounts}. */
97
+ export interface TokenizedNftAccounts {
98
+ /** The `["config"]` PDA. */
99
+ readonly config: string;
100
+ /** The handle's NFT mint — `["nft_mint", handle]` under the registry program. */
101
+ readonly mint: string;
102
+ /** `owner`'s ATA for `mint` (classic SPL Token) — receives the single unit, frozen. */
103
+ readonly ownerTokenAccount: string;
104
+ /** Metaplex metadata PDA for `mint`. */
105
+ readonly metadata: string;
106
+ /** Metaplex master-edition PDA for `mint`. */
107
+ readonly masterEdition: string;
108
+ /** pNFT `TokenRecord` PDA for (`mint`, `ownerTokenAccount`). */
109
+ readonly tokenRecord: string;
110
+ /** Collection parent's mint — `["collection_mint"]` under the registry program. */
111
+ readonly collectionMint: string;
112
+ /** Collection parent's metadata (writable — sized-collection count bump). */
113
+ readonly collectionMetadata: string;
114
+ /** Collection parent's master edition. */
115
+ readonly collectionMasterEdition: string;
116
+ /** `["collection_authority"]` program-signer PDA. */
117
+ readonly collectionAuthority: string;
118
+ }
119
+ /** {@link TokenizedNftAccounts} plus the two read-only market PDAs
120
+ * `mint_handle_nft` checks (no live auction/listing may exist). */
121
+ export interface MintHandleNftAccounts extends TokenizedNftAccounts {
122
+ /** `["auction", handle]` under the registry program (normally absent). */
123
+ readonly auction: string;
124
+ /** `["listing", handle]` under the registry program (normally absent). */
125
+ readonly listing: string;
126
+ }
127
+ export interface TokenizedNftAccountsInput {
128
+ /** The registry program id. */
129
+ readonly programId: AddressLike;
130
+ /** The wallet that will hold the NFT (its ATA + token record are derived). */
131
+ readonly owner: AddressLike;
132
+ /** The `["handle", name]` PDA being tokenized. */
133
+ readonly handle: AddressLike;
134
+ }
135
+ /**
136
+ * Derive every PDA/ATA a tokenized REGISTER (`register_tokenized` /
137
+ * `register_revealed_tokenized`) needs beyond payer/owner/handle/treasury.
138
+ * Pure: nothing is fetched. `Config.treasury` is NOT derivable — read it with
139
+ * `fetchConfigTreasury` (register.ts).
140
+ */
141
+ export declare function deriveTokenizedNftAccounts(find: PdaFinder, p: TokenizedNftAccountsInput): Promise<TokenizedNftAccounts>;
142
+ /**
143
+ * Derive every PDA/ATA `mint_handle_nft` needs beyond payer/owner/handle/
144
+ * treasury: {@link deriveTokenizedNftAccounts} plus `["auction", handle]` and
145
+ * `["listing", handle]`. Pure: nothing is fetched.
146
+ */
147
+ export declare function deriveMintHandleNftAccounts(find: PdaFinder, p: TokenizedNftAccountsInput): Promise<MintHandleNftAccounts>;
148
+ /** The `mint` … `collectionAuthority` addresses — any object carrying them
149
+ * (e.g. a {@link TokenizedNftAccounts}, or a per-TLD collection variant). */
150
+ export interface TokenizedTailAccounts {
151
+ readonly mint: AddressLike;
152
+ readonly ownerTokenAccount: AddressLike;
153
+ readonly metadata: AddressLike;
154
+ readonly masterEdition: AddressLike;
155
+ readonly tokenRecord: AddressLike;
156
+ readonly collectionMint: AddressLike;
157
+ readonly collectionMetadata: AddressLike;
158
+ readonly collectionMasterEdition: AddressLike;
159
+ readonly collectionAuthority: AddressLike;
160
+ }
161
+ /**
162
+ * The 14-account pNFT tail shared by every tokenized instruction, from
163
+ * `mint` through `sysvar_instructions` (order + signer/writable flags exactly
164
+ * as `MintHandleNft` / `RegisterTokenized` declare them in lib.rs). Exposed
165
+ * for instructions that append the same tail to their own preamble.
166
+ */
167
+ export declare function buildTokenizedTailKeys(a: TokenizedTailAccounts): InstructionKey[];
168
+ export interface MintHandleNftParams extends TokenizedTailAccounts {
169
+ /** The registry program id. */
170
+ readonly programId: AddressLike;
171
+ /** Pays the mint fee + all new-account rent. Signer. */
172
+ readonly payer: AddressLike;
173
+ /** The handle's current owner — SIGNS (normally the same wallet as payer). */
174
+ readonly owner: AddressLike;
175
+ /** The `["config"]` PDA. */
176
+ readonly config: AddressLike;
177
+ /** `Config.treasury` — `fetchConfigTreasury` (register.ts). */
178
+ readonly treasury: AddressLike;
179
+ /** The existing, untokenized `["handle", name]` PDA. */
180
+ readonly handle: AddressLike;
181
+ /** `["auction", handle]` — read-only. */
182
+ readonly auction: AddressLike;
183
+ /** `["listing", handle]` — read-only. */
184
+ readonly listing: AddressLike;
185
+ }
186
+ /**
187
+ * Build `mint_handle_nft` — tokenize an ALREADY-REGISTERED, untokenized
188
+ * handle as its capability pNFT. Signers: `payer` AND `owner` (two signature
189
+ * slots unless they are the same key). Account order: `MintHandleNft<'info>`
190
+ * (see module docs). Data is the 8-byte discriminator only. Prepend
191
+ * `SetComputeUnitLimit(MINT_HANDLE_NFT_CU_LIMIT)`.
192
+ */
193
+ export declare function buildMintHandleNftIx(p: MintHandleNftParams): BuiltInstruction;
194
+ export interface MintHandleNftWithUriParams extends MintHandleNftParams {
195
+ /** A metadata URI the caller has ALREADY pinned (Arweave/IPFS), ≤ 200 bytes. */
196
+ readonly metadataUri: string;
197
+ }
198
+ /**
199
+ * Build `mint_handle_nft_with_uri` — {@link buildMintHandleNftIx} with a
200
+ * caller-supplied Metaplex `uri` instead of the program's hosted one. Same
201
+ * accounts and signers; data = discriminator ‖ borsh(String metadataUri).
202
+ */
203
+ export declare function buildMintHandleNftWithUriIx(p: MintHandleNftWithUriParams): BuiltInstruction;
204
+ export interface RegisterTokenizedParams extends TokenizedTailAccounts {
205
+ /** The registry program id. */
206
+ readonly programId: AddressLike;
207
+ /** Pays the price and all rent. Signer. */
208
+ readonly payer: AddressLike;
209
+ /** Receives the handle + NFT. Need NOT sign (gifting parity with `register`). */
210
+ readonly owner: AddressLike;
211
+ /** The `["config"]` PDA. */
212
+ readonly config: AddressLike;
213
+ /** `Config.treasury` — `fetchConfigTreasury` (register.ts). */
214
+ readonly treasury: AddressLike;
215
+ /** The `["handle", name]` PDA being claimed — must not already exist. */
216
+ readonly handle: AddressLike;
217
+ /** Canonical form (`normalizeHandle` output), 1..=32 bytes. */
218
+ readonly name: string;
219
+ readonly handleType: HandleTypeValue;
220
+ /** OPTIONAL revenue-share pair (#7397) — supply BOTH or NEITHER. */
221
+ readonly integrator?: AddressLike;
222
+ /** The `["integrator", integrator]` allowlist PDA. */
223
+ readonly integratorAllowlist?: AddressLike;
224
+ }
225
+ /**
226
+ * Build `register_tokenized` — register a new handle AND mint its pNFT in
227
+ * one instruction (the default permanent-XNT purchase). Signer: `payer`
228
+ * only. Account order: `RegisterTokenized<'info>` (see module docs). Data =
229
+ * discriminator ‖ borsh(name) ‖ handle_type(u8). Price is computed on-chain
230
+ * (as for `register`). Prepend `SetComputeUnitLimit(REGISTER_TOKENIZED_CU_LIMIT)`.
231
+ * `name` must be canonical (the PDA seeds on it).
232
+ */
233
+ export declare function buildRegisterTokenizedIx(p: RegisterTokenizedParams): BuiltInstruction;
234
+ export interface RegisterRevealedTokenizedParams extends RegisterTokenizedParams {
235
+ /** The `["commitment", commitmentHash]` PDA the matching `commit` created. */
236
+ readonly commitment: AddressLike;
237
+ /** The exact 32-byte secret the commitment hashed. */
238
+ readonly secret: Uint8Array;
239
+ }
240
+ /**
241
+ * Build `register_revealed_tokenized` — the commit-reveal sibling of
242
+ * {@link buildRegisterTokenizedIx}. Signer: `payer` only. Same accounts plus
243
+ * `commitment` (w) right after `handle`; data = discriminator ‖ borsh(name)
244
+ * ‖ handle_type(u8) ‖ secret[32]. Prepend
245
+ * `SetComputeUnitLimit(REGISTER_TOKENIZED_CU_LIMIT)`.
246
+ */
247
+ export declare function buildRegisterRevealedTokenizedIx(p: RegisterRevealedTokenizedParams): BuiltInstruction;