Skip to content

Commit 13e7621

Browse files
committed
fix ci
1 parent f56835f commit 13e7621

File tree

15 files changed

+90
-69
lines changed

15 files changed

+90
-69
lines changed

js/compressed-token/src/v3/actions/mint-to-compressed.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ export async function mintToCompressed(
8383
splMint: mintInfo.mintContext!.splMint,
8484
cmintDecompressed: mintInfo.mintContext!.cmintDecompressed,
8585
version: mintInfo.mintContext!.version,
86+
mintSigner: mintInfo.mintContext!.mintSigner,
87+
bump: mintInfo.mintContext!.bump,
8688
metadata: mintInfo.tokenMetadata
8789
? {
8890
updateAuthority:

js/compressed-token/src/v3/actions/mint-to.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ export async function mintTo(
7979
splMint: mintInfo.mintContext!.splMint,
8080
cmintDecompressed: mintInfo.mintContext!.cmintDecompressed,
8181
version: mintInfo.mintContext!.version,
82+
mintSigner: mintInfo.mintContext!.mintSigner,
83+
bump: mintInfo.mintContext!.bump,
8284
metadata: mintInfo.tokenMetadata
8385
? {
8486
updateAuthority:

js/compressed-token/src/v3/instructions/create-mint.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CTOKEN_PROGRAM_ID,
1010
LightSystemProgram,
1111
defaultStaticAccountsStruct,
12-
deriveAddressV2,
1312
TreeInfo,
1413
AddressTreeInfo,
1514
ValidityProof,
@@ -95,12 +94,7 @@ function validateProofArrays(
9594
export function encodeCreateMintInstructionData(
9695
params: EncodeCreateMintInstructionParams,
9796
): Buffer {
98-
const [splMintPda] = findMintAddress(params.mintSigner);
99-
const compressedAddress = deriveAddressV2(
100-
splMintPda.toBytes(),
101-
params.addressTree,
102-
CTOKEN_PROGRAM_ID,
103-
);
97+
const [splMintPda, bump] = findMintAddress(params.mintSigner);
10498

10599
// Build extensions if metadata present
106100
let extensions: { tokenMetadata: TokenMetadataBorshData }[] | null = null;
@@ -141,7 +135,8 @@ export function encodeCreateMintInstructionData(
141135
version: TokenDataVersion.ShaFlat,
142136
cmintDecompressed: false,
143137
mint: splMintPda,
144-
compressedAddress: Array.from(compressedAddress.toBytes()),
138+
mintSigner: Array.from(params.mintSigner.toBytes()),
139+
bump,
145140
},
146141
mintAuthority: params.mintAuthority,
147142
freezeAuthority: params.freezeAuthority,

js/compressed-token/src/v3/instructions/mint-to-compressed.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CTOKEN_PROGRAM_ID,
1010
LightSystemProgram,
1111
defaultStaticAccountsStruct,
12-
deriveAddressV2,
1312
getDefaultAddressTreeInfo,
1413
MerkleContext,
1514
TreeInfo,
@@ -36,12 +35,6 @@ interface EncodeCompressedMintToInstructionParams {
3635
function encodeCompressedMintToInstructionData(
3736
params: EncodeCompressedMintToInstructionParams,
3837
): Buffer {
39-
const compressedAddress = deriveAddressV2(
40-
params.mintData.splMint.toBytes(),
41-
params.addressTree,
42-
CTOKEN_PROGRAM_ID,
43-
);
44-
4538
// TokenMetadata extension not supported in mintTo instruction
4639
if (params.mintData.metadata) {
4740
throw new Error(
@@ -75,7 +68,8 @@ function encodeCompressedMintToInstructionData(
7568
version: params.mintData.version,
7669
cmintDecompressed: params.mintData.cmintDecompressed,
7770
mint: params.mintData.splMint,
78-
compressedAddress: Array.from(compressedAddress.toBytes()),
71+
mintSigner: Array.from(params.mintData.mintSigner),
72+
bump: params.mintData.bump,
7973
},
8074
mintAuthority: params.mintData.mintAuthority,
8175
freezeAuthority: params.mintData.freezeAuthority,

js/compressed-token/src/v3/instructions/mint-to-interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ export function createMintToInterfaceInstruction(
6969
splMint: mintInterface.mintContext.splMint,
7070
cmintDecompressed: mintInterface.mintContext.cmintDecompressed,
7171
version: mintInterface.mintContext.version,
72+
mintSigner: mintInterface.mintContext.mintSigner,
73+
bump: mintInterface.mintContext.bump,
7274
metadata: mintInterface.tokenMetadata
7375
? {
7476
updateAuthority:

js/compressed-token/src/v3/instructions/mint-to.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CTOKEN_PROGRAM_ID,
1010
LightSystemProgram,
1111
defaultStaticAccountsStruct,
12-
deriveAddressV2,
1312
getDefaultAddressTreeInfo,
1413
MerkleContext,
1514
TreeInfo,
@@ -34,12 +33,6 @@ interface EncodeMintToCTokenInstructionParams {
3433
function encodeMintToCTokenInstructionData(
3534
params: EncodeMintToCTokenInstructionParams,
3635
): Buffer {
37-
const compressedAddress = deriveAddressV2(
38-
params.mintData.splMint.toBytes(),
39-
params.addressTree,
40-
CTOKEN_PROGRAM_ID,
41-
);
42-
4336
// TokenMetadata extension not supported in mintTo instruction
4437
if (params.mintData.metadata) {
4538
throw new Error(
@@ -70,7 +63,8 @@ function encodeMintToCTokenInstructionData(
7063
version: params.mintData.version,
7164
cmintDecompressed: params.mintData.cmintDecompressed,
7265
mint: params.mintData.splMint,
73-
compressedAddress: Array.from(compressedAddress.toBytes()),
66+
mintSigner: Array.from(params.mintData.mintSigner),
67+
bump: params.mintData.bump,
7468
},
7569
mintAuthority: params.mintData.mintAuthority,
7670
freezeAuthority: params.mintData.freezeAuthority,

js/compressed-token/src/v3/instructions/update-metadata.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CTOKEN_PROGRAM_ID,
1010
LightSystemProgram,
1111
defaultStaticAccountsStruct,
12-
deriveAddressV2,
1312
getDefaultAddressTreeInfo,
1413
getOutputQueue,
1514
} from '@lightprotocol/stateless.js';
@@ -82,12 +81,6 @@ function convertActionToBorsh(action: UpdateMetadataAction): Action {
8281
function encodeUpdateMetadataInstructionData(
8382
params: EncodeUpdateMetadataInstructionParams,
8483
): Buffer {
85-
const compressedAddress = deriveAddressV2(
86-
params.splMint.toBytes(),
87-
params.addressTree,
88-
CTOKEN_PROGRAM_ID,
89-
);
90-
9184
const mintInterface = params.mintInterface;
9285

9386
if (!mintInterface.tokenMetadata) {
@@ -112,7 +105,8 @@ function encodeUpdateMetadataInstructionData(
112105
version: mintInterface.mintContext!.version,
113106
cmintDecompressed: mintInterface.mintContext!.cmintDecompressed,
114107
mint: mintInterface.mintContext!.splMint,
115-
compressedAddress: Array.from(compressedAddress.toBytes()),
108+
mintSigner: Array.from(mintInterface.mintContext!.mintSigner),
109+
bump: mintInterface.mintContext!.bump,
116110
},
117111
mintAuthority: mintInterface.mint.mintAuthority,
118112
freezeAuthority: mintInterface.mint.freezeAuthority,

js/compressed-token/src/v3/instructions/update-mint.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
CTOKEN_PROGRAM_ID,
1010
LightSystemProgram,
1111
defaultStaticAccountsStruct,
12-
deriveAddressV2,
1312
getDefaultAddressTreeInfo,
1413
getOutputQueue,
1514
} from '@lightprotocol/stateless.js';
@@ -37,12 +36,6 @@ interface EncodeUpdateMintInstructionParams {
3736
function encodeUpdateMintInstructionData(
3837
params: EncodeUpdateMintInstructionParams,
3938
): Buffer {
40-
const compressedAddress = deriveAddressV2(
41-
params.splMint.toBytes(),
42-
params.addressTree,
43-
CTOKEN_PROGRAM_ID,
44-
);
45-
4639
// Build action
4740
const action: Action =
4841
params.actionType === 'mintAuthority'
@@ -86,7 +79,10 @@ function encodeUpdateMintInstructionData(
8679
cmintDecompressed:
8780
params.mintInterface.mintContext!.cmintDecompressed,
8881
mint: params.mintInterface.mintContext!.splMint,
89-
compressedAddress: Array.from(compressedAddress.toBytes()),
82+
mintSigner: Array.from(
83+
params.mintInterface.mintContext!.mintSigner,
84+
),
85+
bump: params.mintInterface.mintContext!.bump,
9086
},
9187
mintAuthority: params.mintInterface.mint.mintAuthority,
9288
freezeAuthority: params.mintInterface.mint.freezeAuthority,

js/compressed-token/src/v3/layout/layout-mint-action.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ export const CompressedMintMetadataLayout = struct([
142142
u8('version'),
143143
bool('cmintDecompressed'),
144144
publicKey('mint'),
145-
array(u8(), 32, 'compressedAddress'),
145+
array(u8(), 32, 'mintSigner'),
146+
u8('bump'),
146147
]);
147148

148149
export const CompressedMintInstructionDataLayout = struct([
@@ -309,7 +310,8 @@ export interface CompressedMintMetadata {
309310
version: number;
310311
cmintDecompressed: boolean;
311312
mint: PublicKey;
312-
compressedAddress: number[];
313+
mintSigner: number[];
314+
bump: number;
313315
}
314316

315317
export interface CompressedMintInstructionData {

js/compressed-token/src/v3/layout/layout-mint.ts

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export interface MintContext {
3737
cmintDecompressed: boolean;
3838
/** PDA of the associated SPL mint */
3939
splMint: PublicKey;
40+
/** Signer pubkey used to derive the mint PDA */
41+
mintSigner: Uint8Array;
42+
/** Bump seed for the mint PDA */
43+
bump: number;
4044
}
4145

4246
/**
@@ -95,6 +99,9 @@ export interface CompressedMint {
9599
}
96100

97101
/** MintContext as stored by the program */
102+
/**
103+
* Raw mint context for layout encoding (mintSigner and bump are encoded separately)
104+
*/
98105
export interface RawMintContext {
99106
version: number;
100107
cmintDecompressed: number; // bool as u8
@@ -108,9 +115,13 @@ export const MintContextLayout = struct<RawMintContext>([
108115
publicKey('splMint'),
109116
]);
110117

111-
/** Byte length of MintContext */
118+
/** Byte length of MintContext (excluding mintSigner and bump which are read separately) */
112119
export const MINT_CONTEXT_SIZE = MintContextLayout.span; // 34 bytes
113120

121+
/** Additional bytes for mintSigner (32) + bump (1) */
122+
export const MINT_SIGNER_SIZE = 32;
123+
export const BUMP_SIZE = 1;
124+
114125
/** Reserved bytes for T22 layout compatibility */
115126
export const RESERVED_SIZE = 49;
116127

@@ -323,6 +334,12 @@ export function deserializeMint(data: Buffer | Uint8Array): CompressedMint {
323334
);
324335
offset += MINT_CONTEXT_SIZE;
325336

337+
// 2b. Read mintSigner (32 bytes) and bump (1 byte)
338+
const mintSigner = buffer.slice(offset, offset + MINT_SIGNER_SIZE);
339+
offset += MINT_SIGNER_SIZE;
340+
const bump = buffer.readUInt8(offset);
341+
offset += BUMP_SIZE;
342+
326343
// 3. Read reserved bytes (49 bytes) for T22 compatibility
327344
const reserved = buffer.slice(offset, offset + RESERVED_SIZE);
328345
offset += RESERVED_SIZE;
@@ -386,6 +403,8 @@ export function deserializeMint(data: Buffer | Uint8Array): CompressedMint {
386403
version: rawContext.version,
387404
cmintDecompressed: rawContext.cmintDecompressed !== 0,
388405
splMint: rawContext.splMint,
406+
mintSigner,
407+
bump,
389408
};
390409

391410
const mint: CompressedMint = {
@@ -487,6 +506,10 @@ export function serializeMint(mint: CompressedMint): Buffer {
487506
);
488507
buffers.push(contextBuffer);
489508

509+
// 2b. Encode mintSigner (32 bytes) and bump (1 byte)
510+
buffers.push(Buffer.from(mint.mintContext.mintSigner));
511+
buffers.push(Buffer.from([mint.mintContext.bump]));
512+
490513
// 3. Encode reserved bytes (49 bytes) - default to zeros
491514
const reserved = mint.reserved ?? new Uint8Array(RESERVED_SIZE);
492515
buffers.push(Buffer.from(reserved));
@@ -663,6 +686,10 @@ export interface MintInstructionData {
663686
splMint: PublicKey;
664687
cmintDecompressed: boolean;
665688
version: number;
689+
/** Signer pubkey used to derive the mint PDA */
690+
mintSigner: Uint8Array;
691+
/** Bump seed for the mint PDA */
692+
bump: number;
666693
metadata?: MintMetadataField;
667694
}
668695

@@ -705,6 +732,8 @@ export function toMintInstructionData(
705732
splMint: mintContext.splMint,
706733
cmintDecompressed: mintContext.cmintDecompressed,
707734
version: mintContext.version,
735+
mintSigner: mintContext.mintSigner,
736+
bump: mintContext.bump,
708737
metadata,
709738
};
710739
}

0 commit comments

Comments
 (0)