@thru/programs 0.2.27 → 0.2.28

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.
Files changed (30) hide show
  1. package/dist/multicall/index.cjs +166 -24
  2. package/dist/multicall/index.cjs.map +1 -1
  3. package/dist/multicall/index.d.cts +39 -3
  4. package/dist/multicall/index.d.ts +39 -3
  5. package/dist/multicall/index.js +166 -25
  6. package/dist/multicall/index.js.map +1 -1
  7. package/dist/passkey-manager/index.cjs +1235 -345
  8. package/dist/passkey-manager/index.cjs.map +1 -1
  9. package/dist/passkey-manager/index.d.cts +45 -11
  10. package/dist/passkey-manager/index.d.ts +45 -11
  11. package/dist/passkey-manager/index.js +1225 -346
  12. package/dist/passkey-manager/index.js.map +1 -1
  13. package/package.json +2 -2
  14. package/src/multicall/abi/thru/common/primitives/types.ts +14 -9
  15. package/src/multicall/abi/thru/program/multicall/types.ts +136 -4
  16. package/src/multicall/index.ts +6 -17
  17. package/src/passkey-manager/abi/thru/blockchain/state_proof/types.ts +11 -6
  18. package/src/passkey-manager/abi/thru/common/primitives/types.ts +19 -14
  19. package/src/passkey-manager/abi/thru/program/passkey_manager/types.ts +1069 -271
  20. package/src/passkey-manager/accounts.ts +79 -40
  21. package/src/passkey-manager/constants.ts +10 -1
  22. package/src/passkey-manager/index.ts +18 -2
  23. package/src/passkey-manager/instructions/add-authority.ts +31 -3
  24. package/src/passkey-manager/instructions/create.ts +106 -11
  25. package/src/passkey-manager/instructions/invoke.ts +9 -0
  26. package/src/passkey-manager/instructions/shared.ts +15 -0
  27. package/src/passkey-manager/instructions/transfer.ts +1 -1
  28. package/src/passkey-manager/instructions/validate.ts +13 -43
  29. package/src/passkey-manager/types.ts +7 -2
  30. package/src/passkey-manager/validate.test.ts +71 -3
@@ -1,6 +1,6 @@
1
1
  export { decodeAddress, encodeAddress } from '@thru/sdk/helpers';
2
2
 
3
- declare const PASSKEY_MANAGER_PROGRAM_ADDRESS = "taUDdQyFxvM5i0HFRkEK3W45kWLyblAHSnMg4zplgUnz6Z";
3
+ declare const PASSKEY_MANAGER_PROGRAM_ADDRESS = "tabsq39mzj3DZlutXOGG6VtfMj8fUvI0HIOXfZm7TLLY6N";
4
4
  declare const INSTRUCTION_CREATE = 0;
5
5
  declare const INSTRUCTION_VALIDATE = 1;
6
6
  declare const INSTRUCTION_TRANSFER = 2;
@@ -9,6 +9,9 @@ declare const INSTRUCTION_REMOVE_AUTHORITY = 5;
9
9
  declare const INSTRUCTION_REGISTER_CREDENTIAL = 6;
10
10
  declare const AUTHORITY_TAG_PASSKEY = 1;
11
11
  declare const AUTHORITY_TAG_PUBKEY = 2;
12
+ declare const AUTHORITY_BYTES: number;
13
+ declare const AUTHORITY_RECORD_BYTES: number;
14
+ declare const LONG_LIVED_AUTHORITY_EXPIRY_SECONDS = 18446744073709551615n;
12
15
 
13
16
  /**
14
17
  * Result of passkey registration (credential creation).
@@ -69,9 +72,13 @@ type Authority = {
69
72
  tag: 2;
70
73
  pubkey: Uint8Array;
71
74
  };
75
+ interface AuthorityRecord {
76
+ authority: Authority;
77
+ expiresAtBlockTimeSeconds: bigint;
78
+ }
72
79
  interface CreateInstructionParams {
73
80
  walletAccountIdx: number;
74
- authority: Authority;
81
+ authorityRecord: AuthorityRecord;
75
82
  seed: Uint8Array;
76
83
  stateProof: Uint8Array;
77
84
  }
@@ -95,7 +102,7 @@ interface ValidateInstructionParams {
95
102
  }
96
103
  interface AddAuthorityInstructionParams {
97
104
  walletAccountIdx: number;
98
- authority: Authority;
105
+ authorityRecord: AuthorityRecord;
99
106
  }
100
107
  interface RemoveAuthorityInstructionParams {
101
108
  walletAccountIdx: number;
@@ -123,18 +130,47 @@ type TransactionExecutionSummary = {
123
130
  vmError?: number | string | bigint | null;
124
131
  };
125
132
 
133
+ declare function buildAuthority(authority: Authority): Uint8Array;
134
+
135
+ declare function createAuthorityRecord(authority: Authority, expiresAtBlockTimeSeconds?: bigint): AuthorityRecord;
136
+ declare function createSessionAuthorityRecord(params: {
137
+ pubkey: Uint8Array;
138
+ expiresAtBlockTimeSeconds: bigint;
139
+ }): AuthorityRecord;
140
+ declare function buildAuthorityRecord(record: AuthorityRecord): Uint8Array;
126
141
  declare function encodeCreateInstruction(params: CreateInstructionParams): Uint8Array;
142
+ /**
143
+ * Encode CREATE for the currently deployed legacy passkey-manager program.
144
+ *
145
+ * Legacy CREATE stores the initial bare Authority directly:
146
+ * tag || wallet_account_idx || Authority || seed || StateProof
147
+ *
148
+ * Newer program builds should use encodeCreateInstruction, which carries a
149
+ * full AuthorityRecord with an expiry timestamp.
150
+ */
151
+ declare function encodeLegacyCreateInstruction(params: CreateInstructionParams): Uint8Array;
127
152
 
128
153
  declare function encodeValidateInstruction(params: ValidateInstructionParams): Uint8Array;
129
154
 
130
155
  declare function encodeTransferInstruction(params: TransferInstructionParams): Uint8Array;
131
156
 
157
+ declare function encodeInvokeInstruction(_programPubkey: Uint8Array, _instruction: Uint8Array): Uint8Array;
158
+
132
159
  declare function encodeAddAuthorityInstruction(params: AddAuthorityInstructionParams): Uint8Array;
160
+ /**
161
+ * Encode ADD_AUTHORITY for the currently deployed legacy passkey-manager.
162
+ *
163
+ * Legacy ADD_AUTHORITY appends a bare 65-byte Authority. Expiry remains a
164
+ * local wallet/session policy until the AuthorityRecord program is deployed.
165
+ */
166
+ declare function encodeLegacyAddAuthorityInstruction(params: AddAuthorityInstructionParams): Uint8Array;
133
167
 
134
168
  declare function encodeRemoveAuthorityInstruction(params: RemoveAuthorityInstructionParams): Uint8Array;
135
169
 
136
170
  declare function encodeRegisterCredentialInstruction(params: RegisterCredentialInstructionParams): Uint8Array;
137
171
 
172
+ declare function concatenateInstructions(instructions: Uint8Array[]): Uint8Array;
173
+
138
174
  /**
139
175
  * Create challenge for VALIDATE instruction.
140
176
  * SHA256(domain || nonce || wallet_account_idx || auth_idx || account_count ||
@@ -206,15 +242,18 @@ declare function fetchWalletNonce(sdk: {
206
242
  }, walletAddress: string): Promise<bigint>;
207
243
  type ParsedAuthority = {
208
244
  idx: number;
245
+ expiresAtBlockTimeSeconds: bigint;
209
246
  kind: 'passkey';
210
247
  x: Uint8Array;
211
248
  y: Uint8Array;
212
249
  } | {
213
250
  idx: number;
251
+ expiresAtBlockTimeSeconds: bigint;
214
252
  kind: 'pubkey';
215
253
  pubkey: Uint8Array;
216
254
  } | {
217
255
  idx: number;
256
+ expiresAtBlockTimeSeconds: bigint;
218
257
  kind: 'unknown';
219
258
  tag: number;
220
259
  data: Uint8Array;
@@ -222,16 +261,11 @@ type ParsedAuthority = {
222
261
  interface WalletAuthorities {
223
262
  nonce: bigint;
224
263
  authorities: ParsedAuthority[];
264
+ layout: 'authorityRecord' | 'legacyAuthority';
225
265
  }
226
266
  /**
227
267
  * Parse the on-chain WalletAccount data buffer into its nonce and full
228
- * authority list. The on-chain layout is:
229
- *
230
- * num_auth: u8
231
- * nonce: u64 LE
232
- * authorities[num_auth + 1]: { tag: u8, data: [u8; 64] }
233
- *
234
- * (`num_auth + 1` because num_auth stores the count minus one.)
268
+ * authority list using the generated ABI view.
235
269
  */
236
270
  declare function parseWalletAuthorities(data: Uint8Array): WalletAuthorities;
237
271
  /**
@@ -322,4 +356,4 @@ declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
322
356
  declare function compareBytes(a: Uint8Array, b: Uint8Array): number;
323
357
  declare function uniqueAccounts(accounts: Uint8Array[]): Uint8Array[];
324
358
 
325
- export { AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, type AccountContext, type AddAuthorityInstructionParams, type Authority, type CheckablePasskeyAuthorityIdentity, type CreateInstructionParams, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE, INSTRUCTION_REGISTER_CREDENTIAL, INSTRUCTION_REMOVE_AUTHORITY, INSTRUCTION_TRANSFER, INSTRUCTION_VALIDATE, P256_HALF_N, P256_N, PASSKEY_MANAGER_PROGRAM_ADDRESS, type ParsedAuthority, type PasskeyAuthorityIdentity, type PasskeyAuthorityTarget, type PasskeyDiscoverableSigningResult, type PasskeyMetadata, type PasskeyRegistrationResult, type PasskeySigningResult, type PreparePasskeyAuthorityTargetsOptions, type RegisterCredentialInstructionParams, type RemoveAuthorityInstructionParams, type TargetInstructionParams, type TransactionExecutionSummary, type TransferInstructionParams, VALIDATE_CHALLENGE_DOMAIN, type ValidateInstructionParams, type WalletAuthorities, type WalletSigner, arrayBufferToBase64Url, base64UrlToArrayBuffer, base64UrlToBytes, bigIntToBytesBE, buildAccountContext, buildPasskeyReadWriteAccounts, bytesEqual, bytesToBase64, bytesToBase64Url, bytesToBigIntBE, bytesToHex, compareBytes, createCredentialLookupSeed, createValidateChallenge, createWalletSeed, deriveCredentialLookupAddress, deriveWalletAddress, encodeAddAuthorityInstruction, encodeCreateInstruction, encodeRegisterCredentialInstruction, encodeRemoveAuthorityInstruction, encodeTransferInstruction, encodeValidateInstruction, fetchWalletNonce, findPasskeyAuthorityIndexForIdentity, findPasskeyAuthorityIndexInWalletData, formatAuthorityPubkey, hexToBytes, isPasskeyAuthorityCheckable, normalizeLowS, normalizeSignatureComponent, parseCredentialLookupWallet, parseDerSignature, parseWalletAuthorities, parseWalletNonce, preparePasskeyAuthorityTargets, resolvePasskeyAuthorityIndex, uniqueAccounts };
359
+ export { AUTHORITY_BYTES, AUTHORITY_RECORD_BYTES, AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, type AccountContext, type AddAuthorityInstructionParams, type Authority, type AuthorityRecord, type CheckablePasskeyAuthorityIdentity, type CreateInstructionParams, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE, INSTRUCTION_REGISTER_CREDENTIAL, INSTRUCTION_REMOVE_AUTHORITY, INSTRUCTION_TRANSFER, INSTRUCTION_VALIDATE, LONG_LIVED_AUTHORITY_EXPIRY_SECONDS, P256_HALF_N, P256_N, PASSKEY_MANAGER_PROGRAM_ADDRESS, type ParsedAuthority, type PasskeyAuthorityIdentity, type PasskeyAuthorityTarget, type PasskeyDiscoverableSigningResult, type PasskeyMetadata, type PasskeyRegistrationResult, type PasskeySigningResult, type PreparePasskeyAuthorityTargetsOptions, type RegisterCredentialInstructionParams, type RemoveAuthorityInstructionParams, type TargetInstructionParams, type TransactionExecutionSummary, type TransferInstructionParams, VALIDATE_CHALLENGE_DOMAIN, type ValidateInstructionParams, type WalletAuthorities, type WalletSigner, arrayBufferToBase64Url, base64UrlToArrayBuffer, base64UrlToBytes, bigIntToBytesBE, buildAccountContext, buildAuthority, buildAuthorityRecord, buildPasskeyReadWriteAccounts, bytesEqual, bytesToBase64, bytesToBase64Url, bytesToBigIntBE, bytesToHex, compareBytes, concatenateInstructions, createAuthorityRecord, createCredentialLookupSeed, createSessionAuthorityRecord, createValidateChallenge, createWalletSeed, deriveCredentialLookupAddress, deriveWalletAddress, encodeAddAuthorityInstruction, encodeCreateInstruction, encodeInvokeInstruction, encodeLegacyAddAuthorityInstruction, encodeLegacyCreateInstruction, encodeRegisterCredentialInstruction, encodeRemoveAuthorityInstruction, encodeTransferInstruction, encodeValidateInstruction, fetchWalletNonce, findPasskeyAuthorityIndexForIdentity, findPasskeyAuthorityIndexInWalletData, formatAuthorityPubkey, hexToBytes, isPasskeyAuthorityCheckable, normalizeLowS, normalizeSignatureComponent, parseCredentialLookupWallet, parseDerSignature, parseWalletAuthorities, parseWalletNonce, preparePasskeyAuthorityTargets, resolvePasskeyAuthorityIndex, uniqueAccounts };
@@ -1,6 +1,6 @@
1
1
  export { decodeAddress, encodeAddress } from '@thru/sdk/helpers';
2
2
 
3
- declare const PASSKEY_MANAGER_PROGRAM_ADDRESS = "taUDdQyFxvM5i0HFRkEK3W45kWLyblAHSnMg4zplgUnz6Z";
3
+ declare const PASSKEY_MANAGER_PROGRAM_ADDRESS = "tabsq39mzj3DZlutXOGG6VtfMj8fUvI0HIOXfZm7TLLY6N";
4
4
  declare const INSTRUCTION_CREATE = 0;
5
5
  declare const INSTRUCTION_VALIDATE = 1;
6
6
  declare const INSTRUCTION_TRANSFER = 2;
@@ -9,6 +9,9 @@ declare const INSTRUCTION_REMOVE_AUTHORITY = 5;
9
9
  declare const INSTRUCTION_REGISTER_CREDENTIAL = 6;
10
10
  declare const AUTHORITY_TAG_PASSKEY = 1;
11
11
  declare const AUTHORITY_TAG_PUBKEY = 2;
12
+ declare const AUTHORITY_BYTES: number;
13
+ declare const AUTHORITY_RECORD_BYTES: number;
14
+ declare const LONG_LIVED_AUTHORITY_EXPIRY_SECONDS = 18446744073709551615n;
12
15
 
13
16
  /**
14
17
  * Result of passkey registration (credential creation).
@@ -69,9 +72,13 @@ type Authority = {
69
72
  tag: 2;
70
73
  pubkey: Uint8Array;
71
74
  };
75
+ interface AuthorityRecord {
76
+ authority: Authority;
77
+ expiresAtBlockTimeSeconds: bigint;
78
+ }
72
79
  interface CreateInstructionParams {
73
80
  walletAccountIdx: number;
74
- authority: Authority;
81
+ authorityRecord: AuthorityRecord;
75
82
  seed: Uint8Array;
76
83
  stateProof: Uint8Array;
77
84
  }
@@ -95,7 +102,7 @@ interface ValidateInstructionParams {
95
102
  }
96
103
  interface AddAuthorityInstructionParams {
97
104
  walletAccountIdx: number;
98
- authority: Authority;
105
+ authorityRecord: AuthorityRecord;
99
106
  }
100
107
  interface RemoveAuthorityInstructionParams {
101
108
  walletAccountIdx: number;
@@ -123,18 +130,47 @@ type TransactionExecutionSummary = {
123
130
  vmError?: number | string | bigint | null;
124
131
  };
125
132
 
133
+ declare function buildAuthority(authority: Authority): Uint8Array;
134
+
135
+ declare function createAuthorityRecord(authority: Authority, expiresAtBlockTimeSeconds?: bigint): AuthorityRecord;
136
+ declare function createSessionAuthorityRecord(params: {
137
+ pubkey: Uint8Array;
138
+ expiresAtBlockTimeSeconds: bigint;
139
+ }): AuthorityRecord;
140
+ declare function buildAuthorityRecord(record: AuthorityRecord): Uint8Array;
126
141
  declare function encodeCreateInstruction(params: CreateInstructionParams): Uint8Array;
142
+ /**
143
+ * Encode CREATE for the currently deployed legacy passkey-manager program.
144
+ *
145
+ * Legacy CREATE stores the initial bare Authority directly:
146
+ * tag || wallet_account_idx || Authority || seed || StateProof
147
+ *
148
+ * Newer program builds should use encodeCreateInstruction, which carries a
149
+ * full AuthorityRecord with an expiry timestamp.
150
+ */
151
+ declare function encodeLegacyCreateInstruction(params: CreateInstructionParams): Uint8Array;
127
152
 
128
153
  declare function encodeValidateInstruction(params: ValidateInstructionParams): Uint8Array;
129
154
 
130
155
  declare function encodeTransferInstruction(params: TransferInstructionParams): Uint8Array;
131
156
 
157
+ declare function encodeInvokeInstruction(_programPubkey: Uint8Array, _instruction: Uint8Array): Uint8Array;
158
+
132
159
  declare function encodeAddAuthorityInstruction(params: AddAuthorityInstructionParams): Uint8Array;
160
+ /**
161
+ * Encode ADD_AUTHORITY for the currently deployed legacy passkey-manager.
162
+ *
163
+ * Legacy ADD_AUTHORITY appends a bare 65-byte Authority. Expiry remains a
164
+ * local wallet/session policy until the AuthorityRecord program is deployed.
165
+ */
166
+ declare function encodeLegacyAddAuthorityInstruction(params: AddAuthorityInstructionParams): Uint8Array;
133
167
 
134
168
  declare function encodeRemoveAuthorityInstruction(params: RemoveAuthorityInstructionParams): Uint8Array;
135
169
 
136
170
  declare function encodeRegisterCredentialInstruction(params: RegisterCredentialInstructionParams): Uint8Array;
137
171
 
172
+ declare function concatenateInstructions(instructions: Uint8Array[]): Uint8Array;
173
+
138
174
  /**
139
175
  * Create challenge for VALIDATE instruction.
140
176
  * SHA256(domain || nonce || wallet_account_idx || auth_idx || account_count ||
@@ -206,15 +242,18 @@ declare function fetchWalletNonce(sdk: {
206
242
  }, walletAddress: string): Promise<bigint>;
207
243
  type ParsedAuthority = {
208
244
  idx: number;
245
+ expiresAtBlockTimeSeconds: bigint;
209
246
  kind: 'passkey';
210
247
  x: Uint8Array;
211
248
  y: Uint8Array;
212
249
  } | {
213
250
  idx: number;
251
+ expiresAtBlockTimeSeconds: bigint;
214
252
  kind: 'pubkey';
215
253
  pubkey: Uint8Array;
216
254
  } | {
217
255
  idx: number;
256
+ expiresAtBlockTimeSeconds: bigint;
218
257
  kind: 'unknown';
219
258
  tag: number;
220
259
  data: Uint8Array;
@@ -222,16 +261,11 @@ type ParsedAuthority = {
222
261
  interface WalletAuthorities {
223
262
  nonce: bigint;
224
263
  authorities: ParsedAuthority[];
264
+ layout: 'authorityRecord' | 'legacyAuthority';
225
265
  }
226
266
  /**
227
267
  * Parse the on-chain WalletAccount data buffer into its nonce and full
228
- * authority list. The on-chain layout is:
229
- *
230
- * num_auth: u8
231
- * nonce: u64 LE
232
- * authorities[num_auth + 1]: { tag: u8, data: [u8; 64] }
233
- *
234
- * (`num_auth + 1` because num_auth stores the count minus one.)
268
+ * authority list using the generated ABI view.
235
269
  */
236
270
  declare function parseWalletAuthorities(data: Uint8Array): WalletAuthorities;
237
271
  /**
@@ -322,4 +356,4 @@ declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
322
356
  declare function compareBytes(a: Uint8Array, b: Uint8Array): number;
323
357
  declare function uniqueAccounts(accounts: Uint8Array[]): Uint8Array[];
324
358
 
325
- export { AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, type AccountContext, type AddAuthorityInstructionParams, type Authority, type CheckablePasskeyAuthorityIdentity, type CreateInstructionParams, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE, INSTRUCTION_REGISTER_CREDENTIAL, INSTRUCTION_REMOVE_AUTHORITY, INSTRUCTION_TRANSFER, INSTRUCTION_VALIDATE, P256_HALF_N, P256_N, PASSKEY_MANAGER_PROGRAM_ADDRESS, type ParsedAuthority, type PasskeyAuthorityIdentity, type PasskeyAuthorityTarget, type PasskeyDiscoverableSigningResult, type PasskeyMetadata, type PasskeyRegistrationResult, type PasskeySigningResult, type PreparePasskeyAuthorityTargetsOptions, type RegisterCredentialInstructionParams, type RemoveAuthorityInstructionParams, type TargetInstructionParams, type TransactionExecutionSummary, type TransferInstructionParams, VALIDATE_CHALLENGE_DOMAIN, type ValidateInstructionParams, type WalletAuthorities, type WalletSigner, arrayBufferToBase64Url, base64UrlToArrayBuffer, base64UrlToBytes, bigIntToBytesBE, buildAccountContext, buildPasskeyReadWriteAccounts, bytesEqual, bytesToBase64, bytesToBase64Url, bytesToBigIntBE, bytesToHex, compareBytes, createCredentialLookupSeed, createValidateChallenge, createWalletSeed, deriveCredentialLookupAddress, deriveWalletAddress, encodeAddAuthorityInstruction, encodeCreateInstruction, encodeRegisterCredentialInstruction, encodeRemoveAuthorityInstruction, encodeTransferInstruction, encodeValidateInstruction, fetchWalletNonce, findPasskeyAuthorityIndexForIdentity, findPasskeyAuthorityIndexInWalletData, formatAuthorityPubkey, hexToBytes, isPasskeyAuthorityCheckable, normalizeLowS, normalizeSignatureComponent, parseCredentialLookupWallet, parseDerSignature, parseWalletAuthorities, parseWalletNonce, preparePasskeyAuthorityTargets, resolvePasskeyAuthorityIndex, uniqueAccounts };
359
+ export { AUTHORITY_BYTES, AUTHORITY_RECORD_BYTES, AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, type AccountContext, type AddAuthorityInstructionParams, type Authority, type AuthorityRecord, type CheckablePasskeyAuthorityIdentity, type CreateInstructionParams, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE, INSTRUCTION_REGISTER_CREDENTIAL, INSTRUCTION_REMOVE_AUTHORITY, INSTRUCTION_TRANSFER, INSTRUCTION_VALIDATE, LONG_LIVED_AUTHORITY_EXPIRY_SECONDS, P256_HALF_N, P256_N, PASSKEY_MANAGER_PROGRAM_ADDRESS, type ParsedAuthority, type PasskeyAuthorityIdentity, type PasskeyAuthorityTarget, type PasskeyDiscoverableSigningResult, type PasskeyMetadata, type PasskeyRegistrationResult, type PasskeySigningResult, type PreparePasskeyAuthorityTargetsOptions, type RegisterCredentialInstructionParams, type RemoveAuthorityInstructionParams, type TargetInstructionParams, type TransactionExecutionSummary, type TransferInstructionParams, VALIDATE_CHALLENGE_DOMAIN, type ValidateInstructionParams, type WalletAuthorities, type WalletSigner, arrayBufferToBase64Url, base64UrlToArrayBuffer, base64UrlToBytes, bigIntToBytesBE, buildAccountContext, buildAuthority, buildAuthorityRecord, buildPasskeyReadWriteAccounts, bytesEqual, bytesToBase64, bytesToBase64Url, bytesToBigIntBE, bytesToHex, compareBytes, concatenateInstructions, createAuthorityRecord, createCredentialLookupSeed, createSessionAuthorityRecord, createValidateChallenge, createWalletSeed, deriveCredentialLookupAddress, deriveWalletAddress, encodeAddAuthorityInstruction, encodeCreateInstruction, encodeInvokeInstruction, encodeLegacyAddAuthorityInstruction, encodeLegacyCreateInstruction, encodeRegisterCredentialInstruction, encodeRemoveAuthorityInstruction, encodeTransferInstruction, encodeValidateInstruction, fetchWalletNonce, findPasskeyAuthorityIndexForIdentity, findPasskeyAuthorityIndexInWalletData, formatAuthorityPubkey, hexToBytes, isPasskeyAuthorityCheckable, normalizeLowS, normalizeSignatureComponent, parseCredentialLookupWallet, parseDerSignature, parseWalletAuthorities, parseWalletNonce, preparePasskeyAuthorityTargets, resolvePasskeyAuthorityIndex, uniqueAccounts };