From b05cd7514ecc8cdf8519691c6452d119eb47fad0 Mon Sep 17 00:00:00 2001 From: Swen Date: Fri, 5 Apr 2024 01:30:11 +0100 Subject: [PATCH] wip --- .../src/idl/psp_compressed_token.ts | 140 ++++++++++++- .../src/idls/psp_compressed_pda.ts | 198 +++++++++++++++++- programs/compressed-token/src/process_mint.rs | 1 + 3 files changed, 335 insertions(+), 4 deletions(-) diff --git a/js/compressed-token/src/idl/psp_compressed_token.ts b/js/compressed-token/src/idl/psp_compressed_token.ts index 57eeccfa7c..b857481800 100644 --- a/js/compressed-token/src/idl/psp_compressed_token.ts +++ b/js/compressed-token/src/idl/psp_compressed_token.ts @@ -52,6 +52,11 @@ export type PspCompressedToken = { isMut: false; isSigner: false; }, + { + name: 'cpiAuthorityPda'; + isMut: false; + isSigner: false; + }, ]; args: []; }, @@ -182,6 +187,24 @@ export type PspCompressedToken = { isMut: false; isSigner: false; }, + { + name: 'tokenPoolPda'; + isMut: true; + isSigner: false; + isOptional: true; + }, + { + name: 'decompressTokenAccount'; + isMut: true; + isSigner: false; + isOptional: true; + }, + { + name: 'tokenProgram'; + isMut: false; + isSigner: false; + isOptional: true; + }, ]; args: [ { @@ -332,7 +355,7 @@ export type PspCompressedToken = { type: 'bool'; }, { - name: 'deCompressAmount'; + name: 'compressionLamports'; type: { option: 'u64'; }; @@ -422,6 +445,16 @@ export type PspCompressedToken = { option: 'u64'; }; }, + { + name: 'compressionLamports'; + type: { + option: 'u64'; + }; + }, + { + name: 'isCompress'; + type: 'bool'; + }, ]; }; }, @@ -498,6 +531,16 @@ export type PspCompressedToken = { name: 'outputStateMerkleTreeAccountIndices'; type: 'bytes'; }, + { + name: 'isCompress'; + type: 'bool'; + }, + { + name: 'compressionAmount'; + type: { + option: 'u64'; + }; + }, ]; }; }, @@ -699,6 +742,31 @@ export type PspCompressedToken = { name: 'SumCheckFailed'; msg: 'SumCheckFailed'; }, + { + code: 6009; + name: 'DecompressRecipientUndefinedForDecompress'; + msg: 'DecompressRecipientUndefinedForDecompress'; + }, + { + code: 6010; + name: 'CompressedPdaUndefinedForDecompress'; + msg: 'CompressedPdaUndefinedForDecompress'; + }, + { + code: 6011; + name: 'DeCompressAmountUndefinedForDecompress'; + msg: 'DeCompressAmountUndefinedForDecompress'; + }, + { + code: 6012; + name: 'CompressedPdaUndefinedForCompress'; + msg: 'CompressedPdaUndefinedForCompress'; + }, + { + code: 6013; + name: 'DeCompressAmountUndefinedForCompress'; + msg: 'DeCompressAmountUndefinedForCompress'; + }, ]; }; export const IDL: PspCompressedToken = { @@ -755,6 +823,11 @@ export const IDL: PspCompressedToken = { isMut: false, isSigner: false, }, + { + name: 'cpiAuthorityPda', + isMut: false, + isSigner: false, + }, ], args: [], }, @@ -885,6 +958,24 @@ export const IDL: PspCompressedToken = { isMut: false, isSigner: false, }, + { + name: 'tokenPoolPda', + isMut: true, + isSigner: false, + isOptional: true, + }, + { + name: 'decompressTokenAccount', + isMut: true, + isSigner: false, + isOptional: true, + }, + { + name: 'tokenProgram', + isMut: false, + isSigner: false, + isOptional: true, + }, ], args: [ { @@ -1035,7 +1126,7 @@ export const IDL: PspCompressedToken = { type: 'bool', }, { - name: 'deCompressAmount', + name: 'compressionLamports', type: { option: 'u64', }, @@ -1125,6 +1216,16 @@ export const IDL: PspCompressedToken = { option: 'u64', }, }, + { + name: 'compressionLamports', + type: { + option: 'u64', + }, + }, + { + name: 'isCompress', + type: 'bool', + }, ], }, }, @@ -1201,6 +1302,16 @@ export const IDL: PspCompressedToken = { name: 'outputStateMerkleTreeAccountIndices', type: 'bytes', }, + { + name: 'isCompress', + type: 'bool', + }, + { + name: 'compressionAmount', + type: { + option: 'u64', + }, + }, ], }, }, @@ -1402,5 +1513,30 @@ export const IDL: PspCompressedToken = { name: 'SumCheckFailed', msg: 'SumCheckFailed', }, + { + code: 6009, + name: 'DecompressRecipientUndefinedForDecompress', + msg: 'DecompressRecipientUndefinedForDecompress', + }, + { + code: 6010, + name: 'CompressedPdaUndefinedForDecompress', + msg: 'CompressedPdaUndefinedForDecompress', + }, + { + code: 6011, + name: 'DeCompressAmountUndefinedForDecompress', + msg: 'DeCompressAmountUndefinedForDecompress', + }, + { + code: 6012, + name: 'CompressedPdaUndefinedForCompress', + msg: 'CompressedPdaUndefinedForCompress', + }, + { + code: 6013, + name: 'DeCompressAmountUndefinedForCompress', + msg: 'DeCompressAmountUndefinedForCompress', + }, ], }; diff --git a/js/stateless.js/src/idls/psp_compressed_pda.ts b/js/stateless.js/src/idls/psp_compressed_pda.ts index b83ab76ecd..3ca5f3f234 100644 --- a/js/stateless.js/src/idls/psp_compressed_pda.ts +++ b/js/stateless.js/src/idls/psp_compressed_pda.ts @@ -1,7 +1,39 @@ export type PspCompressedPda = { version: '0.3.0'; name: 'psp_compressed_pda'; + constants: [ + { + name: 'COMPRESSED_SOL_PDA_SEED'; + type: 'bytes'; + value: '[99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 115, 111, 108, 95, 112, 100, 97]'; + }, + ]; instructions: [ + { + name: 'initCompressSolPda'; + docs: [ + 'Initializes the compressed sol pda.', + 'This pda is used to store compressed sol for the protocol.', + ]; + accounts: [ + { + name: 'feePayer'; + isMut: true; + isSigner: true; + }, + { + name: 'compressedSolPda'; + isMut: true; + isSigner: false; + }, + { + name: 'systemProgram'; + isMut: false; + isSigner: false; + }, + ]; + args: []; + }, { name: 'executeCompressedTransaction'; docs: [ @@ -47,6 +79,24 @@ export type PspCompressedPda = { isSigner: false; isOptional: true; }, + { + name: 'compressedSolPda'; + isMut: true; + isSigner: false; + isOptional: true; + }, + { + name: 'compressionRecipient'; + isMut: true; + isSigner: false; + isOptional: true; + }, + { + name: 'systemProgram'; + isMut: false; + isSigner: false; + isOptional: true; + }, ]; args: [ { @@ -84,6 +134,13 @@ export type PspCompressedPda = { ]; }; }, + { + name: 'compressedSolPda'; + type: { + kind: 'struct'; + fields: []; + }; + }, ]; types: [ { @@ -226,7 +283,7 @@ export type PspCompressedPda = { type: 'bool'; }, { - name: 'deCompressAmount'; + name: 'compressionLamports'; type: { option: 'u64'; }; @@ -316,6 +373,16 @@ export type PspCompressedPda = { option: 'u64'; }; }, + { + name: 'compressionLamports'; + type: { + option: 'u64'; + }; + }, + { + name: 'isCompress'; + type: 'bool'; + }, ]; }; }, @@ -457,13 +524,75 @@ export type PspCompressedPda = { name: 'DeriveAddressError'; msg: 'DeriveAddressError'; }, + { + code: 6022; + name: 'CompressSolTransferFailed'; + msg: 'CompressSolTransferFailed'; + }, + { + code: 6023; + name: 'CompressedSolPdaUndefinedForCompressSol'; + msg: 'CompressedSolPdaUndefinedForCompressSol'; + }, + { + code: 6024; + name: 'DeCompressLamportsUndefinedForCompressSol'; + msg: 'DeCompressLamportsUndefinedForCompressSol'; + }, + { + code: 6025; + name: 'CompressedSolPdaUndefinedForDecompressSol'; + msg: 'CompressedSolPdaUndefinedForDecompressSol'; + }, + { + code: 6026; + name: 'DeCompressLamportsUndefinedForDecompressSol'; + msg: 'DeCompressLamportsUndefinedForDecompressSol'; + }, + { + code: 6027; + name: 'DecompressRecipientUndefinedForDecompressSol'; + msg: 'DecompressRecipientUndefinedForDecompressSol'; + }, ]; }; export const IDL: PspCompressedPda = { version: '0.3.0', name: 'psp_compressed_pda', + constants: [ + { + name: 'COMPRESSED_SOL_PDA_SEED', + type: 'bytes', + value: '[99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 115, 111, 108, 95, 112, 100, 97]', + }, + ], instructions: [ + { + name: 'initCompressSolPda', + docs: [ + 'Initializes the compressed sol pda.', + 'This pda is used to store compressed sol for the protocol.', + ], + accounts: [ + { + name: 'feePayer', + isMut: true, + isSigner: true, + }, + { + name: 'compressedSolPda', + isMut: true, + isSigner: false, + }, + { + name: 'systemProgram', + isMut: false, + isSigner: false, + }, + ], + args: [], + }, { name: 'executeCompressedTransaction', docs: [ @@ -509,6 +638,24 @@ export const IDL: PspCompressedPda = { isSigner: false, isOptional: true, }, + { + name: 'compressedSolPda', + isMut: true, + isSigner: false, + isOptional: true, + }, + { + name: 'compressionRecipient', + isMut: true, + isSigner: false, + isOptional: true, + }, + { + name: 'systemProgram', + isMut: false, + isSigner: false, + isOptional: true, + }, ], args: [ { @@ -546,6 +693,13 @@ export const IDL: PspCompressedPda = { ], }, }, + { + name: 'compressedSolPda', + type: { + kind: 'struct', + fields: [], + }, + }, ], types: [ { @@ -688,7 +842,7 @@ export const IDL: PspCompressedPda = { type: 'bool', }, { - name: 'deCompressAmount', + name: 'compressionLamports', type: { option: 'u64', }, @@ -778,6 +932,16 @@ export const IDL: PspCompressedPda = { option: 'u64', }, }, + { + name: 'compressionLamports', + type: { + option: 'u64', + }, + }, + { + name: 'isCompress', + type: 'bool', + }, ], }, }, @@ -919,5 +1083,35 @@ export const IDL: PspCompressedPda = { name: 'DeriveAddressError', msg: 'DeriveAddressError', }, + { + code: 6022, + name: 'CompressSolTransferFailed', + msg: 'CompressSolTransferFailed', + }, + { + code: 6023, + name: 'CompressedSolPdaUndefinedForCompressSol', + msg: 'CompressedSolPdaUndefinedForCompressSol', + }, + { + code: 6024, + name: 'DeCompressLamportsUndefinedForCompressSol', + msg: 'DeCompressLamportsUndefinedForCompressSol', + }, + { + code: 6025, + name: 'CompressedSolPdaUndefinedForDecompressSol', + msg: 'CompressedSolPdaUndefinedForDecompressSol', + }, + { + code: 6026, + name: 'DeCompressLamportsUndefinedForDecompressSol', + msg: 'DeCompressLamportsUndefinedForDecompressSol', + }, + { + code: 6027, + name: 'DecompressRecipientUndefinedForDecompressSol', + msg: 'DecompressRecipientUndefinedForDecompressSol', + }, ], }; diff --git a/programs/compressed-token/src/process_mint.rs b/programs/compressed-token/src/process_mint.rs index 0ffb29e910..a06b342765 100644 --- a/programs/compressed-token/src/process_mint.rs +++ b/programs/compressed-token/src/process_mint.rs @@ -35,6 +35,7 @@ pub struct CreateMintInstruction<'info> { #[account(mut, seeds=[MINT_AUTHORITY_SEED, authority.key().to_bytes().as_slice(), mint.key().to_bytes().as_slice()], bump)] pub mint_authority_pda: AccountInfo<'info>, pub token_program: Program<'info, Token>, + /// CHECK: TODO #[account(seeds = [b"cpi_authority", account_compression::ID.to_bytes().as_slice()], bump)] pub cpi_authority_pda: AccountInfo<'info>, }